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 3FDE5C52D7C for ; Thu, 22 Aug 2024 17:35:53 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 9BA076B033B; Thu, 22 Aug 2024 13:35:52 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 969BC6B033C; Thu, 22 Aug 2024 13:35:52 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 831AE80044; Thu, 22 Aug 2024 13:35:52 -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 6492D6B033B for ; Thu, 22 Aug 2024 13:35:52 -0400 (EDT) Received: from smtpin04.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id D64CD1216A7 for ; Thu, 22 Aug 2024 17:35:51 +0000 (UTC) X-FDA: 82480584102.04.E73D8CB Received: from mail-ej1-f44.google.com (mail-ej1-f44.google.com [209.85.218.44]) by imf17.hostedemail.com (Postfix) with ESMTP id 78FF640007 for ; Thu, 22 Aug 2024 17:35:49 +0000 (UTC) Authentication-Results: imf17.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=SZiaVNVf; spf=pass (imf17.hostedemail.com: domain of olsajiri@gmail.com designates 209.85.218.44 as permitted sender) smtp.mailfrom=olsajiri@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1724348068; 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=xkghB6aOOio8GGfQ7tQKfRPcfOy2NJ6+od2KQKax6X8=; b=DJagtfYanTpCvBIv2uyPopAmRuHaOFcJJ4Ywhv0ViCl3aHVYxsf18TQ5gZj8TvH5kEpESl ITegy43ijrWSaxOGOoOQb5RtvDM3G7Cz8a1bhaXP91H0oJKDez+Aeng6v3a+Q4C+X6IuH3 FQXm5G7GfZSJ3NBRxTTLidQj5bDPr9k= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1724348068; a=rsa-sha256; cv=none; b=TKrU+EDecRHyC+uK7SueUde9Nt+x8HtLbtZScjq0LvUZUa0ZOnJNFjaF0fQCI+x9qI50/8 AHJMM4BqHq1iYbv1ZWEMZ/hyiekduZwTqf+aby58ib9vSlE9CflFdbm+e8LFeHsHFJcDTN vXofSF/6xr4/skWVKCaghEB1o+bBOdw= ARC-Authentication-Results: i=1; imf17.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=SZiaVNVf; spf=pass (imf17.hostedemail.com: domain of olsajiri@gmail.com designates 209.85.218.44 as permitted sender) smtp.mailfrom=olsajiri@gmail.com; dmarc=pass (policy=none) header.from=gmail.com Received: by mail-ej1-f44.google.com with SMTP id a640c23a62f3a-a7d26c2297eso138637466b.2 for ; Thu, 22 Aug 2024 10:35:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1724348148; x=1724952948; darn=kvack.org; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:date:from:from:to :cc:subject:date:message-id:reply-to; bh=xkghB6aOOio8GGfQ7tQKfRPcfOy2NJ6+od2KQKax6X8=; b=SZiaVNVfgM/qieeEJLaR2mJ/ill1jQ+XeG8x7QyNUBPGcGuaDTLMjoKvlDnVtytyz5 89yzF+fosQOpkQLfRb6OmQvYVIP8sN1Qw6DGlxS3HSk30pwidL4i1TMNx9vc5E272sis J9lCtwJY4VM3jLWSb6NL68A6zU7yMLxM0TwOYfzK/oWjHuBVgUQuIWmfASXXt0ZEyOyo gkKwdg2UZJvBbtmJtesJQZafy76uL1pWVYt5bg06ykMhmlfd/Dl/MXezEi6ewnQ3zZIO OnN6suNW6bSY8N0MDP1at5GDr6FhIyAxXWasZ+x/3bNv0sJoMeAkreSDt1Jbis1ZFbg2 XvaA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1724348148; x=1724952948; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:date:from :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=xkghB6aOOio8GGfQ7tQKfRPcfOy2NJ6+od2KQKax6X8=; b=Olm/OYPwJRagOMEAVN5KKuBi64CRpuzJ0PiBX2cLUS6d4PVdQvBVPi5rolnJUdHzpn K0sIGEw5SWjE/gJCsW524WD/fTb3wxrDS23k2Jn9+o4XWjDMElWjyMR+wCL1PUvrEPKA dLaJjHXKcn3ZclUiSsGXQaMzt8F3X4+CNFgu1scnW3yOqdfveU45NpaxhSEqrcB5/DY2 WUmkG335pIflofFMPbjCcSvS6dTicU3yqIlyPDhGGtCX7uNu+M9tVJIfsCAPFArEQeLx lHed2ppMU2j1e7NhwlVkE1CBYXjN+lqOGztKK08DLUHmuZJbcfrWa53FUbPGis+nsUzO Ywaw== X-Forwarded-Encrypted: i=1; AJvYcCUd41wva04f1b4x2S+5HFztTklUoljeD+D1uiTHdm0o0FX76Cf2LOs2/awrzXnp+ZEri4dTI4BxTw==@kvack.org X-Gm-Message-State: AOJu0YyCSm5csmJR3R2FfcZHGXZaUJe16ToHEOT+0u2qti+lI34Pwmiy vEeKXv6k3d2bEvhw53S8ZawKQb0aPA2N31v2bD7M2A3r6aCXUwnH X-Google-Smtp-Source: AGHT+IG13gU20y3TlIQxwweTw3gebAPEJD5PFbgA33AGSYwPcKHrWQnQCve7QM97eDQ02yrRkx83NQ== X-Received: by 2002:a17:907:96a3:b0:a86:78ef:d4ad with SMTP id a640c23a62f3a-a8678efd649mr496048566b.20.1724348147459; Thu, 22 Aug 2024 10:35:47 -0700 (PDT) Received: from krava (85-193-35-108.rib.o2.cz. [85.193.35.108]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-a868f48a77asm144168466b.180.2024.08.22.10.35.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 22 Aug 2024 10:35:47 -0700 (PDT) From: Jiri Olsa X-Google-Original-From: Jiri Olsa Date: Thu, 22 Aug 2024 19:35:45 +0200 To: Andrii Nakryiko Cc: Jiri Olsa , 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, paulmck@kernel.org, willy@infradead.org, surenb@google.com, akpm@linux-foundation.org, linux-mm@kvack.org Subject: Re: [PATCH v3 04/13] uprobes: travers uprobe's consumer list locklessly under SRCU protection Message-ID: References: <20240813042917.506057-1-andrii@kernel.org> <20240813042917.506057-5-andrii@kernel.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: X-Rspam-User: X-Rspamd-Server: rspam04 X-Rspamd-Queue-Id: 78FF640007 X-Stat-Signature: r5o8d4wzk7kyfg43mddsfgysh4smboon X-HE-Tag: 1724348149-235030 X-HE-Meta: U2FsdGVkX1+t6stNdIrSzRIDMIoIsysWNg5APOcWKLT+ZjiAKCUWIA0vC96+f/ojAshAQ4td9zGqK+i7GxoZCrI9XFn3wvoNWF60tS9rX/ncpVCuOq9HKTrlY4zaJTpCQX59+5M5vQKuwHbQEoVmoBDOjNxluw2PLQDpkjgAMhZIBZLxgKHIodXdVtmu/E8003vA3n7709AUuotFugGv21nx6l6A9aV7Y/c5M6QivMr7VzUjxLPuspl5pWgui8NPPllpYWBXq/H4nNjI0g2w5zhllWfZmr/qp3+Plznw27V+HoioMcY7iuGSZeCzE1BUShrjRjoQDtrdNS+sM8ohTzMaKPy/cw6UTf+hAUbdhNqUoV2RtWhT7rp+m8EWhUh4pwhwLveJdNs+xgZg4hUNfCMh4VvtYRlt767NbwxWvq+90yGD58/mwxlGczCJH7DEY9ot0pA6PqohzECoQkQFLKY5RlAylKMdd+qShbFAONeoBlmZKNKMp2imsKmvIvjgVYP7i8McsAsFQSpNVYYCXf7vN1DjSToBvHGKtADuHfsvduCPNjAAlXCezkBtRuq2EiFid8Qg3cZy4DAZObZ8cU2fwaq9w4o8Q9Ev8EwQkjLY3LdzKiTqALazLdFFXSxIarD7no+7NQk2L/S0a9vIMrmO1amLHoV8jwaNUya68/efdU16LQBEExQc5nw15JTscItt2NG9OwsaIjMwf/SqV8e5ojDtyxrle6NapYsWNH1CT7oecNDaah7r8DJMELnQ/0lDPf/4dK3qF8Sq70Lxxi6/2njJ715G4GuNTU3Par36ERDp+LTV9mczXeyMmWIn+5uuESC1ja+33/aHDox/3SFwpFQWN5gn/fKKk3ncQIr+TBAhQjTxd49ldwILb5H4G/VdICyG3TCArDVjtOufaCTOAYaM5JYD9bH7YnfT8Ps7+dhA06AMjVGerPW/O1W1jJ4LFq5KxIWu1i1vYzJ Mp04Ehmy ij84MA2bfM1yzuVvKJr5BijbLTSRY5KzNAwSVF4bKPIOiGehcrJPbInnJAVF7GtA4X3mUNko6Gt6QrGNKqOZPdKKqDpP2y6nOgGQZz3jJdsXFQ+yQgT1NSOxANk4sKE27V3PbQYbm1Ea9qsa6M8McHq6CKmdODSZSgoDSIyh6Q1zLLmE8rQq1qn7fkJ5/pjJ8jV/ws2NmLbJRmdYpdxDeSfp5QJlYFguTxkWLDiNgmzV1tKjNSCfi2aCk0xCtz9BxEwfkf6WIabz8No67fj7NirDT8/OJ/4SSqruDo3SOUqt8f0tgnTPxUZ3tUVET5i0M8sYWSU7SiUDu8qJ/ongCW0QU/oaEq6IgmYIfYJwwBIqe85SO/WOwjRahcyppqXgB6T6MFnaHd9Z7ZJoTVn/65Fkc3/2L+GUNw/c6rW9BYYrZ+UOotfcyB+RgU8o2s1N5iJTlOA8aIvPSO4gEje7BSPQzTUFPaNz+1iPKOEwCA5Njb38= 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: On Thu, Aug 22, 2024 at 09:59:29AM -0700, Andrii Nakryiko wrote: > On Thu, Aug 22, 2024 at 7:22 AM Jiri Olsa wrote: > > > > On Mon, Aug 12, 2024 at 09:29:08PM -0700, Andrii Nakryiko wrote: > > > > SNIP > > > > > @@ -1125,18 +1103,31 @@ void uprobe_unregister(struct uprobe *uprobe, struct uprobe_consumer *uc) > > > int err; > > > > > > down_write(&uprobe->register_rwsem); > > > - if (WARN_ON(!consumer_del(uprobe, uc))) { > > > - err = -ENOENT; > > > - } else { > > > - err = register_for_each_vma(uprobe, NULL); > > > - /* TODO : cant unregister? schedule a worker thread */ > > > - if (unlikely(err)) > > > - uprobe_warn(current, "unregister, leaking uprobe"); > > > - } > > > + > > > + list_del_rcu(&uc->cons_node); > > > > hi, > > I'm using this patchset as base for my changes and stumbled on this today, > > I'm probably missing something, but should we keep the 'uprobe->consumer_rwsem' > > lock around the list_del_rcu? > > > > Note that original code also didn't take consumer_rwsem, but rather > kept register_rwsem (which we still use). humm, consumer_del took consumer_rwsem, right? jirka > > There is a bit of mix of using register_rwsem and consumer_rwsem for > working with consumer list. Code hints at this as being undesirable > and "temporary", but you know, it's not broken :) > > Anyways, my point is that we didn't change the behavior, this should > be fine. That _rcu() in list_del_rcu() is not about lockless > modification of the list, but rather modification in such a way as to > keep lockless RCU-protected *readers* correct. It just does some more > memory barrier/release operations more carefully. > > > jirka > > > > > > > + err = register_for_each_vma(uprobe, NULL); > > > + > > > up_write(&uprobe->register_rwsem); > > > > > > - if (!err) > > > - put_uprobe(uprobe); > > > + /* TODO : cant unregister? schedule a worker thread */ > > > + if (unlikely(err)) { > > > + uprobe_warn(current, "unregister, leaking uprobe"); > > > + goto out_sync; > > > + } > > > + > > > + put_uprobe(uprobe); > > > +