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 3073FC04A94 for ; Mon, 7 Aug 2023 14:14:59 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 4B5516B0072; Mon, 7 Aug 2023 10:14:59 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 48C516B0074; Mon, 7 Aug 2023 10:14:59 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 353F98D0002; Mon, 7 Aug 2023 10:14:59 -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 248926B0072 for ; Mon, 7 Aug 2023 10:14:59 -0400 (EDT) Received: from smtpin14.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id BB0D0C0AD8 for ; Mon, 7 Aug 2023 14:14:58 +0000 (UTC) X-FDA: 81097505076.14.C845D99 Received: from mail-lj1-f181.google.com (mail-lj1-f181.google.com [209.85.208.181]) by imf28.hostedemail.com (Postfix) with ESMTP id B4CD8C0026 for ; Mon, 7 Aug 2023 14:14:55 +0000 (UTC) Authentication-Results: imf28.hostedemail.com; dkim=pass header.d=joelfernandes.org header.s=google header.b=rUbGf+JZ; dmarc=none; spf=pass (imf28.hostedemail.com: domain of joel@joelfernandes.org designates 209.85.208.181 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=1691417695; 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=miXhKIkPE3lmozcU/B+jO2gbohIQfxtvXQrL6JQrLaA=; b=2/X/90o8YmwS9gStXN/50PFp1JPdmMQQZnZiJoALYyRBwlZBol47zgyPyDs8lmWGpDq1oT gHs6dFrDMlZ1jg08dGQzNuyhdF2SOTzCXCM3Ar/sKvs+6PZxlllcCSE3EqL3pTLl69bK0K Iu6S9g7+SnFi6MMQGhV8e6pUH/ZbTio= ARC-Authentication-Results: i=1; imf28.hostedemail.com; dkim=pass header.d=joelfernandes.org header.s=google header.b=rUbGf+JZ; dmarc=none; spf=pass (imf28.hostedemail.com: domain of joel@joelfernandes.org designates 209.85.208.181 as permitted sender) smtp.mailfrom=joel@joelfernandes.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1691417695; a=rsa-sha256; cv=none; b=s1GSFircJNw1HfT1UokmOa0CHyOvR+9hsWLH1oa1M788x1VCCl3CpXVnu1cbWfRjn2ZtEV dwHv4WD6DS/hwAPmkasC2H9Fh7zrS2KvjfKqaSpWPFbTCmxlDz+ogELCehx1qKK0avugz0 tphMWnQuJ3x78M2BEIP0vLn8NgShC2M= Received: by mail-lj1-f181.google.com with SMTP id 38308e7fff4ca-2b9f0b7af65so70124651fa.1 for ; Mon, 07 Aug 2023 07:14:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=joelfernandes.org; s=google; t=1691417694; x=1692022494; 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=miXhKIkPE3lmozcU/B+jO2gbohIQfxtvXQrL6JQrLaA=; b=rUbGf+JZcp35dmq7w8slw0nHgKluYcuW30g35dHvkRNE8GAplx/bmohiweQc5R1m+t n8zrOL6x18GLNviLyBdF1SBbwknD+YT0R92Z3r7ozf/LbxR/ZX+oGNC6AweYXTnFy1Td qjM3KL4IzdURsMRiax7oRl3ig1sdRDyJ5+2Ck= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1691417694; x=1692022494; 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=miXhKIkPE3lmozcU/B+jO2gbohIQfxtvXQrL6JQrLaA=; b=UpCyE/noW0CcUdwcdVm+rw92dzwN7kN1PL4s8c5G6Jg8Evs7RDdgTeIfLrPP2+y42v DJra7a/rPSWRSE0w5abuXz09Ru33xrK9AbWbmJYRcUs6KG1hiUoCZYxICPKfd2YRTyY4 yr4R7mxwCJ36FpW+PUTwrYvnbh1VcisP6eN3EdyM1EHP5C7LVzR0iuUBty3v2lk7K2A3 /EB0h7KCmQ8yd4+IuM8vFGkNLJwVZldnSTuo3J/lPeez3eelXtJbw+e/lI+1Iei+DcJA 3Yh6V6u2UCSvWvo2rBeBdaxJeEzJddgWSBtr7b1OTLC7qus9+0oR7cdkAxCIajfJp4PI 1Xqg== X-Gm-Message-State: AOJu0YzpOqIyODCBny2+D/3hxBv5BaQ5KhPZdAhrHRHzPAggGzt6zzqt 5Tg6E8ZRHFE6gZWKSmb808k625PBBJt2oTnemu8Kfw== X-Google-Smtp-Source: AGHT+IEUzxQ8uhfef4Gwj5w4R2S1a/fG2YmFdaAnrERcAODuTjnUg5MW8ffcyCI3WwFTK01hsv/WyE2OTkrmMwFZBOU= X-Received: by 2002:a2e:9254:0:b0:2b6:dfef:d526 with SMTP id v20-20020a2e9254000000b002b6dfefd526mr6547671ljg.11.1691417693488; Mon, 07 Aug 2023 07:14:53 -0700 (PDT) MIME-Version: 1.0 References: <20230807110936.21819-1-zhengqi.arch@bytedance.com> <20230807110936.21819-20-zhengqi.arch@bytedance.com> In-Reply-To: <20230807110936.21819-20-zhengqi.arch@bytedance.com> From: Joel Fernandes Date: Mon, 7 Aug 2023 10:14:48 -0400 Message-ID: Subject: Re: [PATCH v4 19/48] rcu: dynamically allocate the rcu-kfree shrinker To: Qi Zheng Cc: akpm@linux-foundation.org, david@fromorbit.com, tkhai@ya.ru, vbabka@suse.cz, roman.gushchin@linux.dev, djwong@kernel.org, brauner@kernel.org, paulmck@kernel.org, tytso@mit.edu, steven.price@arm.com, cel@kernel.org, senozhatsky@chromium.org, yujie.liu@intel.com, gregkh@linuxfoundation.org, muchun.song@linux.dev, simon.horman@corigine.com, dlemoal@kernel.org, linux-kernel@vger.kernel.org, linux-mm@kvack.org, x86@kernel.org, kvm@vger.kernel.org, xen-devel@lists.xenproject.org, linux-erofs@lists.ozlabs.org, linux-f2fs-devel@lists.sourceforge.net, cluster-devel@redhat.com, linux-nfs@vger.kernel.org, linux-mtd@lists.infradead.org, rcu@vger.kernel.org, netdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-arm-msm@vger.kernel.org, dm-devel@redhat.com, linux-raid@vger.kernel.org, linux-bcache@vger.kernel.org, virtualization@lists.linux-foundation.org, linux-fsdevel@vger.kernel.org, linux-ext4@vger.kernel.org, linux-xfs@vger.kernel.org, linux-btrfs@vger.kernel.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Queue-Id: B4CD8C0026 X-Rspam-User: X-Rspamd-Server: rspam02 X-Stat-Signature: ym9dzyosb3sh99zmkofbyqwfcbw6gi78 X-HE-Tag: 1691417695-775862 X-HE-Meta: U2FsdGVkX18JBBXpfMDdF61vAo//FCtv9Dh4GdtIPX7YvES8g/M+S66L/m/0GYf8rwW66dgz/Ey1UcY1urGrHrK/YNMRgNwCG5YhJzJgRLyclIEmx6Ce9dJOHHvrmlmDqDjXo2V+U85WTfDsTMn0HHmdpeb6XtsBSyY4FIHjYx6ipdpKrIXXskjaweSQQBgFuvMMumD9ESosA2BGcpVTqC5iau1tiwQ/t9aKmVTmJP7MNeqwMl2v+J+GFXZHKVWZYk6A6aDLl6SrkgviJVqNA9oZGFwO4eLgUguoRkJl9cS9fF0WsKJLBt5LJuCrzJENzatBx0IkHxa1uFM6j99fhaJp27rrn36FuL6FVdQdStyqFZxNV1fOkkRDjTqg0n6c3139WpUM75+qh1RwzUU7D2j+e4NqUDtuuQDHoTj9fzE+cqIQrCi6pjKS0vTIVpru3Efe15auQQO35qGdzaR67jh5NJRTMdwGb2aYTWDypwWNHcKp2DBBkocJDTfkAyVbuuqrZ7cgcZtjkd0DRGe0Qpsr0cd7pqkEaXhqeQ1ki20z+3WsQ1+Mw9v6aKocEPN31nt8FERgNgwKNdAPWeRzklod08iiPcS5Oe9+QjFEKqVEwfBeWBsN40vX/BezGQnasPdiMvRE7pUcmcDbVYe2//oGTyjr5L5tyD/cAKAMrYVQ3WLYMFgNPTxq1Fc9HOvS8Dqrr9O6uJPXeySF4xbVlCW6eWZMdg6awVRtyaElDVxHjcDeaFJ1Ro36ksL88Rql3EqrFcvHCgn56vaEN9jDB7zC7qhIfSvdHFXzBqGcxTtqSnoBrVNlILajLBUVXnOBf7gq5aOvfK9YRde0F6ZWfZ3TYgd0EKlkK+UgdX2S9ZtTv1RTX8kSyzO8LOrZdRAhcxQfPM67ACepszexchy4+2ZuGGCPW+51K9Nu9EoiEYSnh+o0RmW9wZwNIdeN4tPaTMBCW16xhbr3AUm+NNg zROumTj0 0fR6f8QajBHYtSQAo6O0x71nGPMr+yysvTlw/gq04W4BDjFo4aDEGBJbZuWZ3OUfb1N2ytuI37QgXvGc6ljI0t1pDioZnrb/3+ErLVQ984u7ec9cYG62XP3iFHRoGuQlZE4BTPA/Zs4kS6G1bUFSYreeCpLkDAOFzP/jYj+Hom7ctNv/IuYFdH/GXupjogUTRK9MgVcWMcqxOCIAREOmjBHiDr0vnioQEvAtYPH6qHrH3HwkWugebPiChw5ZqQ4Ui/08vhfRac+hMyWZ9zQoSCriiLlcrtcPhpmHI2TXl8OwnO3ifgLXLkZi9hXMFRUvs+QmyW8SOG7TqtQMqit7dZdA+6wXWYXA4mXod 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 Mon, Aug 7, 2023 at 7:17=E2=80=AFAM Qi Zheng wrote: > > Use new APIs to dynamically allocate the rcu-kfree shrinker. > > Signed-off-by: Qi Zheng For RCU: Reviewed-by: Joel Fernandes (Google) thanks, - Joel > --- > kernel/rcu/tree.c | 22 +++++++++++++--------- > 1 file changed, 13 insertions(+), 9 deletions(-) > > diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c > index 7c79480bfaa0..3b20fc46c514 100644 > --- a/kernel/rcu/tree.c > +++ b/kernel/rcu/tree.c > @@ -3449,13 +3449,6 @@ kfree_rcu_shrink_scan(struct shrinker *shrink, str= uct shrink_control *sc) > return freed =3D=3D 0 ? SHRINK_STOP : freed; > } > > -static struct shrinker kfree_rcu_shrinker =3D { > - .count_objects =3D kfree_rcu_shrink_count, > - .scan_objects =3D kfree_rcu_shrink_scan, > - .batch =3D 0, > - .seeks =3D DEFAULT_SEEKS, > -}; > - > void __init kfree_rcu_scheduler_running(void) > { > int cpu; > @@ -4931,6 +4924,7 @@ static void __init kfree_rcu_batch_init(void) > { > int cpu; > int i, j; > + struct shrinker *kfree_rcu_shrinker; > > /* Clamp it to [0:100] seconds interval. */ > if (rcu_delay_page_cache_fill_msec < 0 || > @@ -4962,8 +4956,18 @@ static void __init kfree_rcu_batch_init(void) > INIT_DELAYED_WORK(&krcp->page_cache_work, fill_page_cache= _func); > krcp->initialized =3D true; > } > - if (register_shrinker(&kfree_rcu_shrinker, "rcu-kfree")) > - pr_err("Failed to register kfree_rcu() shrinker!\n"); > + > + kfree_rcu_shrinker =3D shrinker_alloc(0, "rcu-kfree"); > + if (!kfree_rcu_shrinker) { > + pr_err("Failed to allocate kfree_rcu() shrinker!\n"); > + return; > + } > + > + kfree_rcu_shrinker->count_objects =3D kfree_rcu_shrink_count; > + kfree_rcu_shrinker->scan_objects =3D kfree_rcu_shrink_scan; > + kfree_rcu_shrinker->seeks =3D DEFAULT_SEEKS; > + > + shrinker_register(kfree_rcu_shrinker); > } > > void __init rcu_init(void) > -- > 2.30.2 >