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 C0B62C02182 for ; Thu, 23 Jan 2025 19:37:37 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 3100E280012; Thu, 23 Jan 2025 14:37:37 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 2BEEA28000C; Thu, 23 Jan 2025 14:37:37 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 18838280012; Thu, 23 Jan 2025 14:37:37 -0500 (EST) 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 E8C2E28000C for ; Thu, 23 Jan 2025 14:37:36 -0500 (EST) Received: from smtpin20.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id 7A2431A04F9 for ; Thu, 23 Jan 2025 19:37:36 +0000 (UTC) X-FDA: 83039726112.20.5BFA36F Received: from mail-qt1-f174.google.com (mail-qt1-f174.google.com [209.85.160.174]) by imf03.hostedemail.com (Postfix) with ESMTP id 7EE742000D for ; Thu, 23 Jan 2025 19:37:34 +0000 (UTC) Authentication-Results: imf03.hostedemail.com; dkim=pass header.d=joelfernandes.org header.s=google header.b=p3lhgBsI; dmarc=none; spf=pass (imf03.hostedemail.com: domain of joel@joelfernandes.org designates 209.85.160.174 as permitted sender) smtp.mailfrom=joel@joelfernandes.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1737661054; a=rsa-sha256; cv=none; b=v/dKHSWP3ipe4K84nlgg6zCUHxFiGz2Fh1QFGxkdE5j7O+1VvmJj8onXM0Tr0f2TzIuVhS GczSDDJlozUOOEI9VW7jvO5g8XQ6QMT4mdl4iHFU3h02goH0x9pJhZBkXhTb7aw9/WdXdc Pb6CVJ1DZjy61wSSJIThpn5cxGLmyRI= ARC-Authentication-Results: i=1; imf03.hostedemail.com; dkim=pass header.d=joelfernandes.org header.s=google header.b=p3lhgBsI; dmarc=none; spf=pass (imf03.hostedemail.com: domain of joel@joelfernandes.org designates 209.85.160.174 as permitted sender) smtp.mailfrom=joel@joelfernandes.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1737661054; 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: in-reply-to:in-reply-to:references:references:dkim-signature; bh=HgVwUL8cM02YfaCeU1/XMmjj0tdkjn2bwYjtAYAHIcA=; b=5zuDPlvpVJxfRHs1DcCT3inR7IEnFhGF8/RneV8nr0MstyTlvgk50UPb/1wl4ozY4nowAd YmWhYuuIyCndOxj5SEegMWek2ZjxYsk+1HeHhP0RTX/B2H/g2Gf7Neuhz/rLSJqLIL5tVe D4i7HnMA1iQ8i5K1AIgVTjSWov/v3jA= Received: by mail-qt1-f174.google.com with SMTP id d75a77b69052e-467a3c85e11so9280321cf.2 for ; Thu, 23 Jan 2025 11:37:34 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=joelfernandes.org; s=google; t=1737661053; x=1738265853; darn=kvack.org; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:from:to:cc:subject:date:message-id:reply-to; bh=HgVwUL8cM02YfaCeU1/XMmjj0tdkjn2bwYjtAYAHIcA=; b=p3lhgBsIxcTo2ANYKnJdgWo9/XPFK3jCXjYpiZnDmBc2bwIxuz9xgxe9gNMlNxLVnd GA42B9Mw6zU50Dcxfd4PRCjqCqva3JgCUsbqRzHj+Ok0iBpNAQzXsJv9bov4ka6sAVH4 9AJX5otgfGqQVkydtpON6RIjYQeCdS+e1mwEY= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1737661053; x=1738265853; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=HgVwUL8cM02YfaCeU1/XMmjj0tdkjn2bwYjtAYAHIcA=; b=nAIPu3E8pKn7txbQwlWNUeKfHPIE9oGNnfTHi5T8IJph838tRj8T59loWvq/1Haiyl +UAxmxfDhbe6+hPEmOcWum1tRYV33KF5gsmKLTGtaEttEfhynQnx5HsNlM0g9kXjB1Gu CYFPSlrdw0phJzyRtAST5dxKFk+lgFgyClYrks0HxIZbfuS0ka3JypuBLk2PKpiU6L0J py9Da7hedRBfmQ4WSWJ6yFhX5fpjDDEfFFOqNV/bJ5infqEqqqo8dDIrHNrs9/OXdqUq jHfYc1i5gyYz/JOQWiYj4rec3re8Mopwvhen465BD3xcK3I1dHBZAD67sa00pQvH8F1v lAgw== X-Forwarded-Encrypted: i=1; AJvYcCUpdvUWWWjr8JX4d0EOtK3mB6c4C8DOKkzIZ9T7fF0of3p5TY8fhK4j9JtZ8kdHv/9PA7fJfqJidA==@kvack.org X-Gm-Message-State: AOJu0YyCBEvMrkyW8UDWJI78TqmVILYsFYHBc1nozPN4CVrw+nkQQE6x 7YGJ6w6laCZILDna2DSmRTPvmFrs3v2S6kMm1FeWbMyS3Jl2ErQuowCyA6zxP9s= X-Gm-Gg: ASbGncsUqccxZyhuNzX2WKFfg+qrVVRKqrGrbO7sjMsZPUZnOywh37U0X3lyh5fc0Ff xcM2rwE5Ty/yGjyU48gfr7Owis7O7+QC/PQJKxjSvAUcg5lLkyTW1KPmZNgi4lizV11WxqAGlTs a3og5Jd41rhKBKHWFVksIN+oCcbAwSp5cwhJyCcDb8klANk1nAgBLYvP3J9y5rrUbFy3IGTmSKj 9sC+qXgaqXa4lshhJBwJQ0NzrvqJi8EVLSRwYg4DU9ji8WJRIM7pU2/8nEx6Ye/RZsI8gHXLRdy /7b5UHaYa0lUTqXq+GwooxTzqMHgvaQTQybUBS0If0FnAw== X-Google-Smtp-Source: AGHT+IG+8Lpc66A360D0SQ3mvU1EMoh0gkzCqIG6zTOyY5gaBn2ttLdchg/B/aWaqNgFeIHj6DJmrQ== X-Received: by 2002:ac8:5f06:0:b0:467:53c8:7572 with SMTP id d75a77b69052e-46e12a55504mr485247851cf.13.1737661053455; Thu, 23 Jan 2025 11:37:33 -0800 (PST) Received: from localhost (c-73-251-172-144.hsd1.va.comcast.net. [73.251.172.144]) by smtp.gmail.com with ESMTPSA id d75a77b69052e-46e66b8700dsm2016261cf.76.2025.01.23.11.37.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 23 Jan 2025 11:37:32 -0800 (PST) Date: Thu, 23 Jan 2025 14:37:31 -0500 From: Joel Fernandes To: Vlastimil Babka Cc: Christoph Lameter , David Rientjes , "Paul E. McKenney" , 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: <20250123193731.GA682588@joelbox2> 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: 7EE742000D X-Rspamd-Server: rspam10 X-Stat-Signature: 19fkixkcsm73o4tryaqpug6gz64mi518 X-HE-Tag: 1737661054-592020 X-HE-Meta: U2FsdGVkX1/oAA99+No0cFtcdJYPuDB6OlPNyXj6nzoOwZDxkxPSaTGJ3Kq/UGNbunLR6/5hMDk2H6ISlgiMTmi4YYN3Fel/9Vup3dFxlfZlzUnpdhRuuxCQkj8EIL5hk8PBtBDSf8irmXMpvIxmNmd+Gu5g5kTpnmaylsEKB/fFA3B+esOPZ5o+m043T980CRGXqFg/Wm9AVSD0wzqo5sADSvbM4MeNI7pLeXbyvtoopbdiYiVljMHYeDbLoBYc8hqjeIJbVRt0U1YqBqTgIITnJMVLm/Vx2sjh7Douf79U1WpZSF1DH94atss8YGvQejMfHNTclbgOya5WUO2x7G9VCbuXDyrb4IjSBRiL/0d73gp/YJEm0h5mWURFWG5ZNujrreY0GUWQ6Ve+sxrVU6EYgvKKfr0bSwLiTUPExZ9meu6e0+bJSvA5GTDNetD7jcYHFpq24dls8rdp0Vr/+NDY0eCT5Fuj/Cgjeqw5UCpuk4/HybWdPBuPF5geALAnoa1tOO1wihfCI55kHOSqTITOGQq4eJr3fHbo6oRCPSh6jTIJ3b4mL/sba2ha04L2nVdKIWpRaXC3nClurRWqgWIpV4Mhe96UZPUZ2dvf9gZt5Xov1LYgcOe28cosRKZuXEjf3Mv7Dd53Thkq7yasiEsziOX8ZFHmnNp6zlOzOsTeufG7wCXueWL+l7P0RyPCMjtY2OOi/EH2woOLUkWccoveIA0LWWHIxiRQ207NUGqEGJ/zZevZhOFjPjuEO/NHhYCWgCzhmEKoc1yyJfBdOSVfb2VRsxRMu3JTn1N6j2vE8N5dpydCljW1vUCSJU9KFBnX2ELW/fhRSu+FuZCwsyGx3dmhWw4hSUiX8tXxiFMvcCINtHbBBkJ2GZOuBJIky8S09zlXgyxF8kWSFzrYVXKLrGXKH2BjmZ221puMITeVzmdprBd8JFC7hLzNC2ZVMiAx74LrMWYKN5LKGUf QSVcP1s4 RFhq03iBLhMVcNGD/QiXkEfHhKWljd0Oh3IeXlAI7RL4Q5kuJrGcMvcQ4T7Ur/zf5+DCNXYvwC6Rr1fj3H8R7QY1I/lQODyeNXFIKyghqZm8nVEA4pkubg3qqsZ4EEupUviSW6BO42D8tnNhSgfyRHwb1N/Rs7LVzNhJvZWlwU4N9tm+6ynlbDalzYffdUjdpBUdwLg/pJTk7BLU0nNhWe3/jgXEOk0IIISwJp3ZXVLJtMsqXInQ6hotO87JNKZicXOdUfzacWA3g0ZDc7K50veXjicCMt95UOTb8pq98uWGC3fDcdbTBTJ3+4kIxj5OUpou2Zqb5zwVl3326K1bVjJu2c2qnrxLs0EgbO16fEfWSz5wrc00PQ2WzgImGDIN6OyHIronlfRAgwk5Mzdqcu14+b667bh9TzZlgEl1xqj97/sEflEpkSrojJK5SnG/X8+quLhRTMa6IZki46A33He6R4XW6L4lCZZITc2OjrCsUto3ZjJNJfr05ySTWUTOS+Y15m5ctJ1IC7Q0xVkC6A4E4keiYOUqpa7O8V8C4f7iG6YFEoiLghQ9SRsGtFFlcBM0DAd6KEPRsL4bqryHPqXY8y7Z877fQGXy2b0pbNIrrEsqYAnkbPBxrfGI5gE2ZsazMyFknlErEBXbUCfLaKJbDCmGiXZHSszbvy2ibxADJvMRBdIC52ZVaZHYrk4foN7XjWDdVAKbGzKSj2QDxVzdDYcL4Mw7/uA8TZiGOSsiioEY0iLdJ+sprf7oBIxkOxeDHj7p59EP+Ade4V21JgCRrTz1sSauGTTnGv2aSoZvkgLhgT6iNri62nb1ICb7RjgHWpIUnAjDYJ5feqQ8Q/UtQ5ngAiYe+BZt2N6yX8A5vQDmenOGgNZWVxd7akN+47cMxyhl7Q+M+mec1oBhNXXKUzeA+Fyse+GWazeU1I4yP7f0k8dJ9iO6hPBP6rIEQQyR5nk9d9X6LSddtuda1X55Y3g== 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 Looks good to me, except typo in third patch 'kmalloc of vmalloc allocation' should be 'kmalloc or vmalloc allocation'. Maybe also add some comments on top of 'kvfree_rcu_cb()'. Like: /* * Given an rcu_head embedded within an object at an offset < 4k, * free the object in question. */ I like the touch with the config option in the last patch! Reviewed-by: Joel Fernandes (Google) thanks, - Joel > 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 > --- > 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 >