From mboxrd@z Thu Jan 1 00:00:00 1970 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 766D0C52D7C for ; Tue, 13 Aug 2024 18:16:05 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id B65786B0095; Tue, 13 Aug 2024 14:16:04 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id B16406B0098; Tue, 13 Aug 2024 14:16:04 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id A03BD6B009A; Tue, 13 Aug 2024 14:16:04 -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 843706B0095 for ; Tue, 13 Aug 2024 14:16:04 -0400 (EDT) Received: from smtpin14.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id 2BB4940A5C for ; Tue, 13 Aug 2024 18:16:04 +0000 (UTC) X-FDA: 82448026248.14.6AF29F7 Received: from mail-pj1-f46.google.com (mail-pj1-f46.google.com [209.85.216.46]) by imf12.hostedemail.com (Postfix) with ESMTP id 4F5FB40012 for ; Tue, 13 Aug 2024 18:16:01 +0000 (UTC) Authentication-Results: imf12.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b="X/L2UiFc"; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf12.hostedemail.com: domain of andrii.nakryiko@gmail.com designates 209.85.216.46 as permitted sender) smtp.mailfrom=andrii.nakryiko@gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1723572949; a=rsa-sha256; cv=none; b=wa6o8Jg/eg27q0yVCav4DAJXnEySp7ShyHmWTQCNhlDEKKSOZuqrWLa0oB3vjGHBpX1PiA eiSYk5wov/ZJ0WEn4898FsPiEoOKh+Nwm3lIC2z9hYP5IEZPGE3keE+QySHkWVaK+Um4aG nw3R5xKdo/vpE2+eY7eZt/01JxSdx7s= ARC-Authentication-Results: i=1; imf12.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b="X/L2UiFc"; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf12.hostedemail.com: domain of andrii.nakryiko@gmail.com designates 209.85.216.46 as permitted sender) smtp.mailfrom=andrii.nakryiko@gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1723572949; 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=kAzH8LG114tu4AipYMPHdFEY5MuOGD24M4NXf9WaOks=; b=N8eMh9pV5KSfObZxPN6j5V44RhMJ+R+e2eRlRiFxlUHv3W/mQIVswHjlnULR6Ab8FwHe80 3nJ6FIFK6YQ7UzKlJHLp0PMZ947HZjyhZAZ2EFZCfSbteZ5v/jo4+vBZM2b8hwpip/u9sd QpMeFn9D5ura04iG0O0lZxv5zHtD3qQ= Received: by mail-pj1-f46.google.com with SMTP id 98e67ed59e1d1-2d1fe3754f4so2179806a91.1 for ; Tue, 13 Aug 2024 11:16:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1723572960; x=1724177760; darn=kvack.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=kAzH8LG114tu4AipYMPHdFEY5MuOGD24M4NXf9WaOks=; b=X/L2UiFc4WxermzntZqLuZBxnfiy2A4jOipHLcCsBx1VFPqcsW9rPykSb1VMrtakcn vKiZ/sNDGr4r8xhHjPnZLvMPNI5oEtsKTNuMR5aTY1jc6ts8hfj0ZGIgcYNHfAUmRtu/ ZfC8txv5VwrbRwVhnHoI7G5MtO2o6R4grnTYtOR4AffvpBZqfJQVcV8PyEwxF0WnzPWf +HoRQ85e3FPosb0QH7DBf0AvfC+klPBikJolBsOUFROCqIztB2NMvntusuiIY3LDIyGD 3u00RyWob+QlMkoOF7UiBuWHIH2/IFB1A6IGjOevVZcuouJ3SlxYBwJunGnN82+iAk3V WfIg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1723572960; x=1724177760; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=kAzH8LG114tu4AipYMPHdFEY5MuOGD24M4NXf9WaOks=; b=B1FoHdQ9y4+qaopLikbLXq6xZaOtKlHtxTwoOUO3okfIY9NuwmZxZYRnvc+TTuuMsE 631XqE2gfRJLak4qyOJqlUF1oG4oBhvOZaorU8SNUIakYEtRsFbtPg6rO0wrnBWMxAHy IGmj+uEUZMeaFDutv0TcE+V3nN9StSpHqGFhWH4PYoCWr9gVa0ZVr/f2A3KIxRj/jR2K bhgksucwEiC4TDPwEeq+JkVfve1eNg7S5PISk9feBA0HoLERJVXcmFfJx7iIL5DaPGme SXvvd0jx2ZHazUKSQz0UIo81rSYayP4QaRCc6X7f9Sst0R64MRewt+MHSrFJebwEU98Q Q3yg== X-Forwarded-Encrypted: i=1; AJvYcCXa4LzL2+5kLkop/0+xSjsqa6M0a1KsS0BvzkcuBPZ4VG2cp9cecOPsjilFY8hRq/vJuBGpMLkvoQ==@kvack.org X-Gm-Message-State: AOJu0Yy2OLu3GF2FmJS8lAtYafpt2K7g+pERqARJrwmfkHwe5ZnXuxPO a5H7hV2BM2mUtcc9u4UcXW3Mou5+3oi3ZBqL7Le6SsHR8g+RMEundAJGd93dDZbsDBt4bTmW3cd F4ip32/aX4rbmf4zuPwywtBtg4po= X-Google-Smtp-Source: AGHT+IHmmIelDCrSXZO6Sr0mSmHsjSmEfcI8hr8mtmZqQMMfFDqXzwl7MXs0x3tSNM6LlixYQ72EMoidQyJzWt16YLs= X-Received: by 2002:a17:90a:cf0e:b0:2c9:73ff:6a0c with SMTP id 98e67ed59e1d1-2d3aaabb985mr378925a91.20.1723572959615; Tue, 13 Aug 2024 11:15:59 -0700 (PDT) MIME-Version: 1.0 References: <20240813042917.506057-1-andrii@kernel.org> <20240813042917.506057-13-andrii@kernel.org> In-Reply-To: From: Andrii Nakryiko Date: Tue, 13 Aug 2024 11:15:47 -0700 Message-ID: Subject: Re: [PATCH RFC v3 12/13] mm: add SLAB_TYPESAFE_BY_RCU to files_cache To: Suren Baghdasaryan Cc: Mateusz Guzik , Andrii Nakryiko , linux-trace-kernel@vger.kernel.org, peterz@infradead.org, oleg@redhat.com, rostedt@goodmis.org, mhiramat@kernel.org, bpf@vger.kernel.org, linux-kernel@vger.kernel.org, jolsa@kernel.org, paulmck@kernel.org, willy@infradead.org, akpm@linux-foundation.org, linux-mm@kvack.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspam-User: X-Rspamd-Queue-Id: 4F5FB40012 X-Rspamd-Server: rspam01 X-Stat-Signature: gd8kjbmoy46tw63igakp34fckzsnec7d X-HE-Tag: 1723572961-220860 X-HE-Meta: U2FsdGVkX1/yM4ZB9OWQmdBW1zSZ6xYGJZxJu8Ili6qEB1RVox4MILzL6QxUSzbo0EfYjI4TpL5uAjvAxoeuuxaoQd9pV7TA3XNZHWEoQYptzF6DZr91vXHaQz/uH9njYILp/40XtIbGiV8jdOl7ulLuuaQmdTLRi6isUUTj05Cj3OvDSRVnNMhbIo6IJlRNi8xJcDcPztId6qVR8sUSxmrLiX1GsQT8K7nX+SMVPUj5CJ4T1sDKTx9+12knO+usWyBKZ0P5Dr74nj65g50of4isUPfUVmLZ31bcQ7imATra+Fc7t2JHy/gO3Z82t0GOMbT8Hmpw8sJJVwIBalh5CbEkokC7HEX+yeNBDvAYdwJxQLuW6o7MDympYOUtDoAbo7iZp2FVSIH74hjEhO76BdwCtQs1ZVvv5kOC9uwRLZcnUFhHv+gYifa9cMr/e1sgf5MK4A1LB9y/D3Aiq/JkcPcVVgMvAbFdAg4NGbL+lsPTyuZ4w17RCCBpfQKYvM1NjjWhLJN+lvclKEOvHF61M4ge6vaBr/iz65KX3b1NPBW5N0gmjnfIDjSHM/bG/isOHeM+zDiLkAv8RzGNN9j3k2piR1n555ISruyLzOJWwer7umtljg1Rk1gWCFizZZMVzvBxs4DphavyjK2st/ELH0iJSZJF+Tqk2q8ikEkSD6E7ZN1jEs7La1jPKB//SgJFmA09dUiiQBmZcGcNbeiwhbGzN/uRurfe4baYBE0zHfJzD3ga/errYLs3xLR4Msol6E2TZFER2+Y4qra7+69to5Xp/cLjBnNaBaB5xJOqO65iGchMe8XxnJ1JuHEOsQJMVOt01xVRX9vEKq0Tvd5XbUt/fa1YCv/sCr5egtG/EF2rgOX0ipBsbonmeRv7dbmy/u/MLuFSFgM93Ixw/o/Xgn+EvD3KQXmqX/S/6+iiGdtk2xEl78DMzr7JWeuudm2s2Kf2Bd0asx+USkWqWI/ 4CaEXVUg V3ejJaMNYof3o/VhURjxKSr3rfP58JSDhW5GLV4TAHpxosxCoZXFt8lfuXILBUSdbH2At4N0U4PtfWLkdWcKG9YoYeVnYYt8J/UMx/OgIOCYJ0AfoxlJqKCoVPPNUTrYeaK00TPrsDSv6PEzRuWEnYPJoKa8WgNteGwbmZGKLVv0EcR5BYVvzHgex8EV/fagtRpLDUHRWw+B23LDqfQzAFVrP5LJbt14PEogEIJXThF6DMrLiGBDu+pF54rfWTCn7rOTIgB2h9+AtS2O1FcFkbLnZbVKbkLLz++kHPnXMOGpxcUb1SBpF3Ajky2qdBWV6YohJNI4x1uydJ7yp/0uWHgjhY7OtH/DuaMcLAhyq7o43llFlcoWIG5qnunzKNpfmtOyLKzOmZACwuwbHAfFJeOoNPv7sNqOzJ6p5oC6Cqqp3XqUnOfdW5DsQbgCe3PtUYnRg3rMVl5GcDDCAdJg6GCePhvRDQcyZmj+O1lbws3YzAaTHxNc9vqZP1uqj+oTBq3hVMEdoZbnnjdyUxpoZFRWpUs7kMGaD1TyA X-Bogosity: Ham, tests=bogofilter, spamicity=0.000007, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: On Tue, Aug 13, 2024 at 7:49=E2=80=AFAM Suren Baghdasaryan wrote: > > On Mon, Aug 12, 2024 at 11:07=E2=80=AFPM Mateusz Guzik wrote: > > > > On Mon, Aug 12, 2024 at 09:29:16PM -0700, Andrii Nakryiko wrote: > > > Add RCU protection for file struct's backing memory by adding > > > SLAB_TYPESAFE_BY_RCU flag to files_cachep. This will allow to lockles= sly > > > access struct file's fields under RCU lock protection without having = to > > > take much more expensive and contended locks. > > > > > > This is going to be used for lockless uprobe look up in the next patc= h. > > > > > > Suggested-by: Matthew Wilcox > > > Signed-off-by: Andrii Nakryiko > > > --- > > > kernel/fork.c | 4 ++-- > > > 1 file changed, 2 insertions(+), 2 deletions(-) > > > > > > diff --git a/kernel/fork.c b/kernel/fork.c > > > index 76ebafb956a6..91ecc32a491c 100644 > > > --- a/kernel/fork.c > > > +++ b/kernel/fork.c > > > @@ -3157,8 +3157,8 @@ void __init proc_caches_init(void) > > > NULL); > > > files_cachep =3D kmem_cache_create("files_cache", > > > sizeof(struct files_struct), 0, > > > - SLAB_HWCACHE_ALIGN|SLAB_PANIC|SLAB_ACCOUNT, > > > - NULL); > > > + SLAB_HWCACHE_ALIGN|SLAB_PANIC|SLAB_TYPESAFE_BY_= RCU| > > > + SLAB_ACCOUNT, NULL); > > > fs_cachep =3D kmem_cache_create("fs_cache", > > > sizeof(struct fs_struct), 0, > > > SLAB_HWCACHE_ALIGN|SLAB_PANIC|SLAB_ACCOUNT, > > > > Did you mean to add it to the cache backing 'struct file' allocations? Yep, thanks for catching this! > > > > That cache is created in fs/file_table.c and already has the flag: > > filp_cachep =3D kmem_cache_create("filp", sizeof(struct file), = 0, > > SLAB_TYPESAFE_BY_RCU | SLAB_HWCACHE_ALI= GN | > > SLAB_PANIC | SLAB_ACCOUNT, NULL); > > Oh, I completely missed the SLAB_TYPESAFE_BY_RCU for this cache, and > here I was telling Andrii that it's RCU unsafe to access > vma->vm_file... Mea culpa. > Well, my bad for not double-checking and going just by the name. filp_cachep vs files_cachep is easy to mix up. > > > > The cache you are modifying in this patch contains the fd array et al > > and is of no consequence to "uprobes: add speculative lockless VMA to > > inode resolution". > > > > iow this patch needs to be dropped > > I believe you are correct. > I'm happy that we already have SLAB_TYPESAFE_BY_RCU on filp_cachep, I'll just drop this patch.