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 0F426C02182 for ; Thu, 23 Jan 2025 20:26:48 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 9744E280018; Thu, 23 Jan 2025 15:26:47 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 92420280014; Thu, 23 Jan 2025 15:26:47 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 7EC37280018; Thu, 23 Jan 2025 15:26:47 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id 5AB64280014 for ; Thu, 23 Jan 2025 15:26:47 -0500 (EST) Received: from smtpin03.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id 1F29A805F2 for ; Thu, 23 Jan 2025 20:26:47 +0000 (UTC) X-FDA: 83039850054.03.6EF1979 Received: from nyc.source.kernel.org (nyc.source.kernel.org [147.75.193.91]) by imf12.hostedemail.com (Postfix) with ESMTP id 548B440002 for ; Thu, 23 Jan 2025 20:26:45 +0000 (UTC) Authentication-Results: imf12.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=BM8Ylsvk; dmarc=pass (policy=quarantine) header.from=kernel.org; spf=pass (imf12.hostedemail.com: domain of "SRS0=CRYu=UP=paulmck-ThinkPad-P17-Gen-1.home=paulmck@kernel.org" designates 147.75.193.91 as permitted sender) smtp.mailfrom="SRS0=CRYu=UP=paulmck-ThinkPad-P17-Gen-1.home=paulmck@kernel.org" ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1737664005; a=rsa-sha256; cv=none; b=AS7UoFifbKx0Zh5cWtKbuEevagWDnFbFaTBg8fR7mJ7pQwlEkPoTSnLf9nu5JhA5dM2+LT qtahoPds8Z7pWa9TjSr0jcR5/cG8CYMnzt35DtOD755KGe1BD+FiFy2lP5+EZlnHAMHyIk Cl2N4Vpe6Gj5VVNHWPbXLWrZ7t7gdQc= ARC-Authentication-Results: i=1; imf12.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=BM8Ylsvk; dmarc=pass (policy=quarantine) header.from=kernel.org; spf=pass (imf12.hostedemail.com: domain of "SRS0=CRYu=UP=paulmck-ThinkPad-P17-Gen-1.home=paulmck@kernel.org" designates 147.75.193.91 as permitted sender) smtp.mailfrom="SRS0=CRYu=UP=paulmck-ThinkPad-P17-Gen-1.home=paulmck@kernel.org" ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1737664005; h=from:from:sender:reply-to: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: in-reply-to:in-reply-to:references:references:dkim-signature; bh=sD8NO9YZA18ehYro5l5xx8skYaB7765qxvFq0PPHhvQ=; b=bzW+CQYyp7M/GyFCfTVaLT1jRl+KB+LVIwRolG58EXoEKQ40/4aFtIOgl/Es+ZP48A3f2b Mcy5zZdKWbSkNN2C0yDIdq9eoVnDweaM4+4W7nBQOLblKS/WFr8TFAQjk2eObs3FqfYdse NstwI6Bguq61/H4CZO/3nEKp2I7t9PM= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by nyc.source.kernel.org (Postfix) with ESMTP id E5FCAA4102E; Thu, 23 Jan 2025 20:24:56 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id E6D11C4CED3; Thu, 23 Jan 2025 20:26:43 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1737664003; bh=oL6NQEdTtjZ/hVogsbi/d3v+aVJuZPXEZ3JA2IGtK2Q=; h=Date:From:To:Cc:Subject:Reply-To:References:In-Reply-To:From; b=BM8YlsvkAFY8VL7voqRF0HNeVo9V69AEiIMAWUBLSsnhKFaurUaZZwm6zOxDAZfNI NKu0EVm2k72iaubF2R3OYCWlaBtx3yc6ErS5rPt5jgGYT6VcjUWJeNBPeQ4n7py1X2 0fDiY1RHdGLszuEZ3XdUzEuPQgd8EHSpzPkEMZGdov5qn7GTDshOXUsV6URd1dTiaG V3jVODaj8/5FneHqGYWtX/7qi4BxHokuQzQ3QtLCJuRE3FU/dF8XLHbB61Vm4TxpBB 4zYnE337xa0w1nO8REOJkMePQT3Rnx2evMKXTcVy44wU2yVRnymllXiH/Fc8Mnl6n0 sT9XgqAnOwZXg== Received: by paulmck-ThinkPad-P17-Gen-1.home (Postfix, from userid 1000) id 93DDBCE0DC7; Thu, 23 Jan 2025 12:26:43 -0800 (PST) Date: Thu, 23 Jan 2025 12:26:43 -0800 From: "Paul E. McKenney" To: Vlastimil Babka Cc: Christoph Lameter , David Rientjes , Joel Fernandes , Josh Triplett , Boqun Feng , Uladzislau Rezki , Andrew Morton , Roman Gushchin , Hyeonggon Yoo <42.hyeyoo@gmail.com>, linux-mm@kvack.org, Steven Rostedt , Mathieu Desnoyers , Lai Jiangshan , Zqiang , rcu@vger.kernel.org Subject: Re: [PATCH RFC 0/4] slab, rcu: move and consolidate TINY_RCU kvfree_rcu() to SLAB Message-ID: <647c4404-283c-4a98-aaf4-d3f0b44dee7d@paulmck-laptop> Reply-To: paulmck@kernel.org References: <20250123-slub-tiny-kfree_rcu-v1-0-0e386ef1541a@suse.cz> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20250123-slub-tiny-kfree_rcu-v1-0-0e386ef1541a@suse.cz> X-Rspam-User: X-Rspamd-Queue-Id: 548B440002 X-Rspamd-Server: rspam10 X-Stat-Signature: c3qjcanrcswmceergynnqeasgaxdk9hf X-HE-Tag: 1737664005-213627 X-HE-Meta: U2FsdGVkX19c6TzzBhCn++z+JiLxu40l1cNpRYkKKOoezwjh9s4KRya+kGQhih/6LHOwlOOGL+2MgY1t1Mq0PIyX69BFzAhVF9EQUTab8ibA30X1DUEJ9FEoCDVhQDAWKwfaLyWW7hPHroya3dMXwkoFPFtti73Gu0Zk0LuqAKV+vWXk8JVsYxtSie3hvdbFNpD59DQcIEA/gnMRu4zQU96zJ1X+K+uRMYB8g57Bg8ZbHLOs3q3UfgiqSDagerIM/v97NBx0Yvgv6r6CMIZhTdhd9+0YJyHysS7BKDypL/l7L+/ER9vWe6WvTT5iPWgHOUQFmy/g47HkMXz8nAYjCDnUvlqrwNJYD0qvik4+BA4ATaJIUHASAa0PDlzm1Qich09bkdDA8hOhR/mXR89CGTLfSVM5YyJ/aRjN/MjUj4zfOiEZI9mDn8esp2Pk6ASpbu2vnho/dK5tsYUmuW5kWLLFr/Xe2zr5728AbR9blUYCREZ+XkUV8eUKoTZU4W463/3iExwK40IzEl7mptBYR+w1sb841xyeE7cZvmoKwUXSrjlFA5B6u3R4h6IzeeOG92YdNSb/8xXYRJKx9lU72gFy/SOCD4vWvinVXfKJLP6Jpcu6n1opLy6izzkSl/66kRrncg5/E+a7MezCoqQ8AlR+yEO7XnehmIe0XSx5mVgBpgUMPn3IYMX+lIife/WwVnJfDRoA/Yyw/+SemrhLaklj6ThD3hM2wSMQXwcqBDWOdBn1gJC4EsFSc86oBoMsw9xbNsESKg7MgaySRZrvxKOfTVXDo+cJEEK+e0kcEGjmTgohPpmGZRhftKUf/MDIVEgHAXdrtypqbGoT8NzN6Tg3QhW47KcLOYZeJkb7vIcofiTuugXvUqD+8hkuPnNJIF1NuRXpGth/Fv1cIMti28XXY+1S37KI/UBIqnGPyBtfgUAtdkOZavH60Motm68elWtZg8VMLX+fKgnYmsM clnVoU0q 2Df2SqvL707v1AOtNU/kpTGAC5jWEc7Dlv52Lkc4QQU9nUUXy7L4FDgz7sPPViTlWt2GQMafVZ8fENtz3mOYUOsIJhV33CtLi/dNyUBKkOdxGdcMIF17E0a0rNKxZs0sWMJhK129mUehERPHGiG7rC1A9nWxpxLbIysdxwJKHoBQ1AOUzZB8rEhKyTSbcWeBQTOm7cvg2ratspb0Vcn9VYB8e1nrlhEYDE6Cls5AfWJNERw0F6Pew5o51HJJWIwzPzPOBMJdhPVT5jHntmWLO+g/aOkth0TT3J6rjgE+hSWz7lsGsfpDrPgs2nj5imu3cOT1iOItwsOspryWlcQJQgp00ONYBUj/MOUvpxwFGywsOHunt76AOTKfWQv+/SoS1m2vLKGSFeFGICTa3Gzp8U5R8B+bCVTpZId0As96uDd4BWPWrNPETgbjiy2ppeM3kvnQm+/WvEP0GR3FrD2r3MXK5PzsaWeffv7FI0rwpLy1vga0luHnr2HJOEllzBMtk2q/pTMUi0/uvH0hAD3uWbJCQKzJ5U4kwact9gQCOvV/HBSmwyW1X7ZU3/sM4mcJA4NmereARPOZX9kx/dBViCn7LLOYhZFbDbF52dEzr3mU14o7bLyOwpCsg1P60g15O5fmAKrDFbbQJ7hTSNccL8qJtZAndm7zBPDOYm92opfLqrvVj/5hzZIGt4dljhk2I4OiNWMJ6KADBHWpMS37avKGijKtjD+YK9efbZ4gpCnfrgUvyZ9XOj+OZb9sfMoeG0nFV/Ot+e4Zuis3SQCGJdp3PRXIEmRCAzF3x8i3ZuwABust25XCglt8zAmPXeqI4/TzMrNUVFb0nTc0PGnwd+WorAqdJO4YYeSkGMScEhcdIOq3gAPL+jI/RTBstWKPqOTz5+bXa+2g0qXEKAP+yy5G2E9nVVuJ6hlrItIgD1AOTEZ0fhWGw0UAA94OWVvUDyTZm/Wdu0ouwCNUeA5ESY6u4/IqP GJ9sqTXo 0C6oT4IhRITzwaEGT4BN0aT0D4JF7lWg8dE+L8SktBWYAAYqWgLf/FepabhT+39WksNgzCxopUasNINQNd+WVuAhhF2VEQhVcPzHC7Kgt1fqZYMaTmpBXGUePrF+NZ+EmViZFGD8UZcMkcagE4ukOLRDU7S1SPoghD7sfLGPm867Bba9S/+x+tghDREE6c8Dghhgif7zWJ+IXnATaHSglcYs571y9VZIW2lRkoQr+wWpYVx8vPQfyEoqOMhNK8i/FfLh61ltk+kYUDGRiEWrGw== 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, Jan 23, 2025 at 11:37:17AM +0100, Vlastimil Babka wrote: > Following the move of the TREE_RCU batching kvfree_rcu() implementation > to slab, we still have the simple non-batching implementation in tiny > RCU, and RCU implementation specific ifdefs in slab code. > > Finish the move and integration into slab. Allow using the simple > call_rcu() based implementation also with tree RCU when SLUB_TINY is > enabled, as its goal is also to limit memory footprint with less concern > for top performance. > > In order to avoid RCU having to recognize the fake callback function > pointers (__is_kvfree_rcu_offset()) when handling call_rcu(), implement > a callback that can calculate the object's address from the embedded > rcu_head pointer without knowing the specific offset (previously SLOB > would not have made it possible, but it's gone now). > > After this series, AFAIK only the following kvfree_rcu specific code > remains in RCU: > > - a call to kfree_rcu_scheduler_running() from rcu_set_runtime_mode() > > - probably necessary and a generic registration interface would be > unnecessary bloat? > > - declarations of kfree_rcu() API in include/linux/rcupdate.h > > - could be moved to slab.h after checking for/fixing up potential > missing includes > > git tree: > https://git.kernel.org/pub/scm/linux/kernel/git/vbabka/linux.git/log/?h=b4/slub-tiny-kfree_rcu > > To: Christoph Lameter > To: David Rientjes > Cc: Andrew Morton > Cc: Roman Gushchin > Cc: Hyeonggon Yoo <42.hyeyoo@gmail.com> > Cc: linux-mm@kvack.org > To: "Paul E. McKenney" > To: Joel Fernandes > To: Josh Triplett > To: Boqun Feng > To: Uladzislau Rezki > Cc: Steven Rostedt > Cc: Mathieu Desnoyers > Cc: Lai Jiangshan > Cc: Zqiang > Cc: rcu@vger.kernel.org > > Signed-off-by: Vlastimil Babka Tested-by: Paul E. McKenney > --- > Vlastimil Babka (4): > slab, rcu: move TINY_RCU variant of kvfree_rcu() to SLAB > rcu: remove trace_rcu_kvfree_callback > rcu, slab: use a regular callback function for kvfree_rcu > slab: don't batch kvfree_rcu() with SLUB_TINY > > include/linux/rcupdate.h | 29 ++++++++++++++--------------- > include/linux/rcutiny.h | 36 ------------------------------------ > include/linux/rcutree.h | 3 --- > include/linux/slab.h | 14 ++++++++++++++ > include/trace/events/rcu.h | 34 ---------------------------------- > kernel/rcu/tiny.c | 24 ------------------------ > kernel/rcu/tree.c | 9 ++------- > mm/Kconfig | 4 ++++ > mm/slab.h | 2 ++ > mm/slab_common.c | 32 +++++++++++++++++++++++++------- > mm/slub.c | 42 ++++++++++++++++++++++++++++++++++++++++++ > 11 files changed, 103 insertions(+), 126 deletions(-) > --- > base-commit: e492fac3657b60b8dd78a6e8ca26d1d14706c7b3 > change-id: 20250123-slub-tiny-kfree_rcu-bd65bfe222f2 > > Best regards, > -- > Vlastimil Babka >