From patchwork Tue Aug 27 15:59:44 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Christian Brauner X-Patchwork-Id: 13779787 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 6DCF2C54731 for ; Tue, 27 Aug 2024 16:37:27 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id B17A06B007B; Tue, 27 Aug 2024 12:37:26 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id AC8606B0082; Tue, 27 Aug 2024 12:37:26 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 98F7C6B0083; Tue, 27 Aug 2024 12:37:26 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id 7DD036B007B for ; Tue, 27 Aug 2024 12:37:26 -0400 (EDT) Received: from smtpin11.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id 2DB95A1946 for ; Tue, 27 Aug 2024 16:37:26 +0000 (UTC) X-FDA: 82498580892.11.C2FB830 Received: from nyc.source.kernel.org (nyc.source.kernel.org [147.75.193.91]) by imf23.hostedemail.com (Postfix) with ESMTP id 6D64814000F for ; Tue, 27 Aug 2024 16:37:23 +0000 (UTC) Authentication-Results: imf23.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=XDQq7ZjD; spf=pass (imf23.hostedemail.com: domain of brauner@kernel.org designates 147.75.193.91 as permitted sender) smtp.mailfrom=brauner@kernel.org; dmarc=pass (policy=quarantine) header.from=kernel.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1724776600; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=g7XDYs8Zib1E0KHu2lnyVJ0hUSitDf1ok71h59C/6Ng=; b=xvbDo/Cgo+ginwSQy7md6jqMRWrWX0flpWqfBl3X26PyaNiZlP41gZdSweCfn/EOrErMuY zfN86bOaVNXep3/wi77fnCsdN/6TXA0A4bqlmvUhrknx99XfqZy04IK9FnYDddJjspKtTJ HMfijApINwIF0HAyzvlDHYX6bujdPoo= ARC-Authentication-Results: i=1; imf23.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=XDQq7ZjD; spf=pass (imf23.hostedemail.com: domain of brauner@kernel.org designates 147.75.193.91 as permitted sender) smtp.mailfrom=brauner@kernel.org; dmarc=pass (policy=quarantine) header.from=kernel.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1724776600; a=rsa-sha256; cv=none; b=JMGOH/dvfPEP2ABszFXv+BUxRG1EqJn8E1JpaeKPFy7TtkowtmqUO53bfo11MjZ/Z7pkq9 3UZlfYl8Gufux3XylDqiQAH2Ica0XZiQC9RTTBtEBxktM1DSVAhJfBy20p/NuVMKQBTJ2n XaXdLKE7tvB/JdMHr2De8FXgIUC4xQw= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by nyc.source.kernel.org (Postfix) with ESMTP id 96F21A4215D; Tue, 27 Aug 2024 16:37:15 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 783A1C4FE07; Tue, 27 Aug 2024 16:00:02 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1724774404; bh=DE+gGtjVtEol42ZCGLAdc2sv/qn+B/OiKlktxCin3uE=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=XDQq7ZjDwI8AC6Fj1oxAsuHrCGy9En+5jUbhNv0Hn009zPn4EP5k3gaSgiWsMIcmU v1aYprobuu5S8xNKWJJRLEpZ9Sn9FF9ZUjueUF9l2gAqAkHuB4G/via8om737bC4R7 s5ZFwup6mp0rtIPfyiegT5qfOvoG1HTnQupT70d7fQ2dqldnbQnk/T1tsD8Bfh+qGr JDkeBjOVndsuv1YbThNR/Y41t72q5vvxcypc6aj4ziqaQPe/U2JBo1+GjPpfSj1qPm yHjMC+JW2U2I1LdAjG6yiIVsNj5C6xrXW28N561WPBYxapRMufCgNcRPSZDMcUx28L 3xzdoo92Hg9NA== From: Christian Brauner Date: Tue, 27 Aug 2024 17:59:44 +0200 Subject: [PATCH v2 3/3] fs: use kmem_cache_create_rcu() MIME-Version: 1.0 Message-Id: <20240827-work-kmem_cache-rcu-v2-3-7bc9c90d5eef@kernel.org> References: <20240827-work-kmem_cache-rcu-v2-0-7bc9c90d5eef@kernel.org> In-Reply-To: <20240827-work-kmem_cache-rcu-v2-0-7bc9c90d5eef@kernel.org> To: Vlastimil Babka , Jens Axboe , "Paul E. McKenney" , Roman Gushchin , Jann Horn , Linus Torvalds , linux-mm@kvack.org Cc: Christian Brauner , linux-fsdevel@vger.kernel.org X-Mailer: b4 0.15-dev-37811 X-Developer-Signature: v=1; a=openpgp-sha256; l=1379; i=brauner@kernel.org; h=from:subject:message-id; bh=DE+gGtjVtEol42ZCGLAdc2sv/qn+B/OiKlktxCin3uE=; b=owGbwMvMwCU28Zj0gdSKO4sYT6slMaSd/f7767KcLA/hXX+3aE6tvXhpOj9fz6VNL8v+yF7fO GGj0dxcjo5SFgYxLgZZMUUWh3aTcLnlPBWbjTI1YOawMoEMYeDiFICJcKUw/C95ceaBUq2q+/RX X04fzUt9zn6zW5GxcvKWiepRa62Ss4UZ/lcZel3xF2AyljeveZNyn7PvRPK98DnzdspOlFy3QcT qCSMA X-Developer-Key: i=brauner@kernel.org; a=openpgp; fpr=4880B8C9BD0E5106FC070F4F7B3C391EFEA93624 X-Rspamd-Server: rspam03 X-Rspam-User: X-Rspamd-Queue-Id: 6D64814000F X-Stat-Signature: m49xmq8sy85kjhqcoqhbr68sggz4j6wc X-HE-Tag: 1724776643-720914 X-HE-Meta: U2FsdGVkX183WTYpPaxQ/iCMFHwdV036MHa+5UPP90p1O6gOFL5ZIirzt2KNUa4MtJfrOVaZSOlsl9FByIGIdf05AlSSkGML489cmQc7IWKiwXMZpheEe750q5tT27h7AGvOCDwsoCKpC3nur/9sSBqx0bmarbGUR7BjU5zi1UcnKNM/Vy/E1cSD0tlBI3s5ysDiIkThwJNWgUODbPBvbGaPE+jb8Z5+i1IPkyCANesqM5cksBETBq0C9ljMnefyTzQIpcD3k4Si9+xJxoHFEv8AQS8drlUpvGMz7ypjSzijB9zrxFYNrMCVudFHmVND5pQ1arvgsXXBWJWwH3IFA6ViiSMDdoL6XATstgp7MrHASA072rsxvXZg8OAx0rSs5mlbBjdfn4PJHyHu47gX4KJeoktmG5DM3O2gtGmGUMQbeTbP6OOqT6vbgNYXyeaZaw1Op2IuMcqCzQgu6dGtovgmcv7WpujDnxs2CmnbK0j0ckSwCyuPG9qNLVCyKdsNId5q19Mpg30J79zp1Mm6SjetqT64BDSqkt8h71rSiJt6D/x1LQoVfNWdRQWoKBevKzYeahuogblWPiShe79BMGW+geEyaWLrJqlSgJ1l+YH3E5lYUewGlMWZMTUk9NAccyUvqbb7gwJgA+FW3fQLuuts1753kP+687aWcKSECT6EXUS4i7OOl439Wx/AeNBKdep5pTFy/Sh2v62ePyHs9tRYkUl1Oip62sNlttx0MZ2XDgANuXM/iViv3D31FoicAobGn1wuew4PkBekKuGplndUa1XXoSBkSSfdLCpkWLsYQguH9BQkIk0lMBc3OIuX24VByuUOL795BD0tvaqU/EpzQEGVZ/3MVvT1SX3R5bmAqn1JnsW+MpetdBFSP99Xz2NhTK3PgvymrTFPe47EkvDFe3cHkhQTSYB9iNwWKB3HaII+Lw+okiY3Bke8kpF9A5yrXJTqsj8Vcnomb5D vNfQISo4 jNUrqhORog5UETSoslfjySa+xIdYcPKB3Fv6kHrWemY6Rzl/V7Rkw9iH+gK16AHMl0vSme6l6T1soijdp1/FqeZeNGmX3nkc+WLb1FBXVS4mRyDthgQhVE6BErtWgtxEEi9HLAyur8CMqoPLvMxnrzBd/Et3UeLZiyj3sor+JsNmUTxWAA7sblu1feaKGpxNeG1u2COs6nZsGLYkykoXKh9l7HMgscdsOAtpxdFL+xqmkbCXi4S4o7yBUS0LlyJpkHTurRFHZeSY0fdo+GKifpGnzhfw51KVXG8oW7kr94wO5/BhAZK/dwdsu8c2H7YR92cCp X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: Switch to the new kmem_cache_create_rcu() helper which allows us to use a custom free pointer offset avoiding the need to have an external free pointer which would grow struct file behind our backs. Signed-off-by: Christian Brauner --- fs/file_table.c | 6 +++--- include/linux/fs.h | 1 + 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/fs/file_table.c b/fs/file_table.c index 694199a1a966..83d5ac1fadc0 100644 --- a/fs/file_table.c +++ b/fs/file_table.c @@ -514,9 +514,9 @@ EXPORT_SYMBOL(__fput_sync); void __init files_init(void) { - filp_cachep = kmem_cache_create("filp", sizeof(struct file), 0, - SLAB_TYPESAFE_BY_RCU | SLAB_HWCACHE_ALIGN | - SLAB_PANIC | SLAB_ACCOUNT, NULL); + filp_cachep = kmem_cache_create_rcu("filp", sizeof(struct file), + offsetof(struct file, f_freeptr), + SLAB_HWCACHE_ALIGN | SLAB_PANIC | SLAB_ACCOUNT); percpu_counter_init(&nr_files, 0, GFP_KERNEL); } diff --git a/include/linux/fs.h b/include/linux/fs.h index 61097a9cf317..12a72f162da7 100644 --- a/include/linux/fs.h +++ b/include/linux/fs.h @@ -1057,6 +1057,7 @@ struct file { struct callback_head f_task_work; struct llist_node f_llist; struct file_ra_state f_ra; + freeptr_t f_freeptr; }; /* --- cacheline 3 boundary (192 bytes) --- */ } __randomize_layout