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 6076FC77B70 for ; Mon, 17 Apr 2023 11:05:47 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id D3EF18E0005; Mon, 17 Apr 2023 07:05:46 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id CEE1B8E0001; Mon, 17 Apr 2023 07:05:46 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id BB5F58E0005; Mon, 17 Apr 2023 07:05:46 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id A8C7B8E0001 for ; Mon, 17 Apr 2023 07:05:46 -0400 (EDT) Received: from smtpin09.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id 6A48C805AA for ; Mon, 17 Apr 2023 11:05:46 +0000 (UTC) X-FDA: 80690602692.09.852ACE9 Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.220.29]) by imf22.hostedemail.com (Postfix) with ESMTP id 28CEFC0006 for ; Mon, 17 Apr 2023 11:05:42 +0000 (UTC) Authentication-Results: imf22.hostedemail.com; dkim=pass header.d=suse.cz header.s=susede2_rsa header.b=COW+9s2V; dkim=pass header.d=suse.cz header.s=susede2_ed25519 header.b=09I3ZDMZ; dmarc=none; spf=pass (imf22.hostedemail.com: domain of vbabka@suse.cz designates 195.135.220.29 as permitted sender) smtp.mailfrom=vbabka@suse.cz ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1681729543; 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=06x+K+qEGfBWa+nBU0/XoNWbB2gYx2EZL8IXlmuFUqM=; b=w2pg2mkY+rwKpB7xiTpw1lmLaNL02/VBcomg8VCNDb8g3sTqWkoBzrzFRFKcmf7x8M7Ri/ ag1t7JzKgaUNMId0KVKNqQaY69eT3mnM/m2pEny4v6s+c3uOduTZOqNJ0syxdIpwo6yN94 821laEky4pZP49Ta1TDzTqpRiHAFn8Q= ARC-Authentication-Results: i=1; imf22.hostedemail.com; dkim=pass header.d=suse.cz header.s=susede2_rsa header.b=COW+9s2V; dkim=pass header.d=suse.cz header.s=susede2_ed25519 header.b=09I3ZDMZ; dmarc=none; spf=pass (imf22.hostedemail.com: domain of vbabka@suse.cz designates 195.135.220.29 as permitted sender) smtp.mailfrom=vbabka@suse.cz ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1681729543; a=rsa-sha256; cv=none; b=LbFg/abGHlzzzmdVzYcum/gOPx2G5PwIwFKvF6I9DBE7hY3Ery0aqYpGzM5Gk+yXlUai/L dZin/s5u3MC80U8lMlAbuHYGe4StA77bdIHbM5olbBWHJJQB8s+0e5BKqfJaysSUPO8TMt jIAHHV8ojN+6fVpsacXG2ZhwhFPL5NA= Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out2.suse.de (Postfix) with ESMTPS id 5D9931F749; Mon, 17 Apr 2023 11:05:41 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_rsa; t=1681729541; h=from:from:reply-to: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; bh=06x+K+qEGfBWa+nBU0/XoNWbB2gYx2EZL8IXlmuFUqM=; b=COW+9s2VXZkV8/jn1ThdDLAyMwQJ0ocv9VeWZi5xuVChVexb3Qh8ZTBIiPUs0hIbmhzCWZ RPhWlsG7+x4MuHb252ImXQHQZPA/pkuTsGIRe//3frw7ptJPEBaNvFEpn7AjP8DrRcJCLY qvYWRoVmAzXsQNpqm8H7stf+BBxqDwo= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_ed25519; t=1681729541; h=from:from:reply-to: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; bh=06x+K+qEGfBWa+nBU0/XoNWbB2gYx2EZL8IXlmuFUqM=; b=09I3ZDMZvSsWvPtIVWL71LdC5t61NhDSuFrK9CiRWpjWyI/LYDb1vsB+RAmuhPyFZdoALV bDh3m348Ja6awAAQ== Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 3EFF113319; Mon, 17 Apr 2023 11:05:41 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id TjzHDgUoPWRwGwAAMHmgww (envelope-from ); Mon, 17 Apr 2023 11:05:41 +0000 Message-ID: Date: Mon, 17 Apr 2023 13:05:40 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.10.0 Subject: Re: [PATCH v2 2/2] mm/slab: break up RCU readers on SLAB_TYPESAFE_BY_RCU example code To: SeongJae Park , akpm@linux-foundation.org Cc: willy@infradead.org, paulmck@kernel.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org References: <20230415033159.4249-1-sj@kernel.org> <20230415033159.4249-3-sj@kernel.org> Content-Language: en-US From: Vlastimil Babka In-Reply-To: <20230415033159.4249-3-sj@kernel.org> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Rspam-User: X-Rspamd-Server: rspam02 X-Rspamd-Queue-Id: 28CEFC0006 X-Stat-Signature: euq9sa15mdensfi5ri83e1xyu4tnh1hw X-HE-Tag: 1681729542-674656 X-HE-Meta: U2FsdGVkX19RZd+8ppCDDyp7H/nXLLCPDMQNo0mOmvRlIRhGwrBVajQqnY9qxs8yvAzJApyLr97c9AOBF1I0AoKzIy9P72+yBrho7wrur2kpAYHnyAVFZjLwY2p4G9qNYfmQDZ32HjEZjU98nrJQY2Z0f5WRXxBo9kkLhRg4ye2wnI5IjW7bDUYSCUjTWHA+HHvyRnYQChJ0EGTP8j2cf0FONABP+EI/4SjcpKVoqmXbDhQCsrMbMRWVBxVpLGH58hAEyHbJjrTjYADcL+JZ/sbFt55yf4INLq/XP76AZhz5fh/PVU44ly+Or4cQgbkDcUyqAg4F5lEUNhwJdf5oSDWMzgXhT7yDNgN9fvnBw8WZhNWPf0WEhE7gw4YPctumlmLX6fROoFgkT3a37QQlx37p/riTqzV/Jpu05NlqEm7EZZ3SxTYyW9mKz9ar6vOUZjM3KvM5mAbqVd5drhHiM8WanwhWIZD4DZpJDKtIM0WGQM/z4BDjcTIHwIeA1RulvAIzmBSwwHqRLR+EIei5aErpbimVsV4BAMayjtzZKQPlN/rLjX2A/Mts2CmeuvjW9432iVliA1D2zjQDRwPfva5q6vtDTJph8x2miSKDoXmHAlP3jem9D6oAo3OXy/iNz/8kI2aySFwEheTYzPIKCQP/lkrWfaWLFU9AzYIk3Wq9WQEG+pwlUbuHis3MH+uPY15HctkrQR/8sR4hWW0eAb0O5nVKP6MgpzzJ2M/kVun2cC9uLj00QLjx8zP8zxukBpg9iAU84dAoHqWnLPPtdpPwk0YaJOYN0g+8nmpyU5Cju+HhzMR9tu2j//AAvy3yfENRQL4j2BSB9CccUtBAyLJv3exDq9y6RTjSGa3/hMO1ZvhUuHUmte3nahc3Wgbu/Psuc0C3Z2Jz55OjDnUDRdkVQHaoI/PlWIDsfpYAmiApwn9KVeR4bxX7eOaTB+mBgcA9fAVyKxBVjcdhszX JKkzHbWg 63Wkv06BZePfK/nmvkDL2SXl4og3wLd60mptsCqPbFoQ3yJS4WwTdRrVhE/EQZz0/0UH6uBiTCSgS+cQATMlU9VzNCY7sCFs5515z6LSzxSZJGJy31MEL9cUMC+7rmPlcZ49ZQBpe4W6a2hWFmIthuA0CPcFib3ZgRupFsXNRpNuNbRzDrKJUkEdCgO2EEjT/F92deooMYAjYXeJ+hz4SCtWLLoCtHzcUIKHebQ8uZa8BrQv57RjdCr/yVRGUhVpzWlixs9u2PPwcZlekVUNTIuu/dFLr+wwhg88Zvj7AoaPdh0s+UolP2IVFxEuEYfqbPhrj 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: On 4/15/23 05:31, SeongJae Park wrote: > The SLAB_TYPESAFE_BY_RCU example code snippet is having not tiny RCU Since "tiny RCU" means something quite specific in the RCU world, it can be confusing to read it in this sense. We could say e.g. "... snippet uses a single RCU read-side critical section for retries"? > read-side critical section. 'Documentation/RCU/rculist_nulls.rst' has > similar example code snippet, and commit da82af04352b ("doc: Update and > wordsmith rculist_nulls.rst") has broken it. "has broken it" has quite different meaning than "has broken it up" :) I guess we could just add the "up", unless someone has an even better wording. > Apply the change to > SLAB_TYPESAFE_BY_RCU example code snippet, too. > > Signed-off-by: SeongJae Park > --- > include/linux/slab.h | 8 +++++--- > 1 file changed, 5 insertions(+), 3 deletions(-) > > diff --git a/include/linux/slab.h b/include/linux/slab.h > index b18e56c6f06c..6acf1b7c6551 100644 > --- a/include/linux/slab.h > +++ b/include/linux/slab.h > @@ -53,16 +53,18 @@ > * stays valid, the trick to using this is relying on an independent > * object validation pass. Something like: > * > + * begin: > * rcu_read_lock(); > - * again: > * obj = lockless_lookup(key); > * if (obj) { > * if (!try_get_ref(obj)) // might fail for free objects > - * goto again; > + * rcu_read_unlock(); > + * goto begin; > * > * if (obj->key != key) { // not the object we expected > * put_ref(obj); > - * goto again; > + * rcu_read_unlock(); > + * goto begin; > * } > * } > * rcu_read_unlock();