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 EF95EEB64DD for ; Thu, 3 Aug 2023 17:19:40 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 12AFE28027E; Thu, 3 Aug 2023 13:19:40 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 0DB7628022C; Thu, 3 Aug 2023 13:19:40 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id EE67128027E; Thu, 3 Aug 2023 13:19:39 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id DFC3028022C for ; Thu, 3 Aug 2023 13:19:39 -0400 (EDT) Received: from smtpin07.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id 9E228A0FC5 for ; Thu, 3 Aug 2023 17:19:39 +0000 (UTC) X-FDA: 81083455278.07.2601AD5 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by imf25.hostedemail.com (Postfix) with ESMTP id 6034FA001F for ; Thu, 3 Aug 2023 17:19:37 +0000 (UTC) Authentication-Results: imf25.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=MsBEdHdx; dmarc=pass (policy=none) header.from=kernel.org; spf=pass (imf25.hostedemail.com: domain of "SRS0=6Pe8=DU=paulmck-ThinkPad-P17-Gen-1.home=paulmck@kernel.org" designates 139.178.84.217 as permitted sender) smtp.mailfrom="SRS0=6Pe8=DU=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=1691083177; 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=uYbzj0g/4Qgf0B5sJ0nbhq9xa2DQZbXiKOB4SB+YMcU=; b=f8gfAu7FMfQxkvxkyXRSsBzU+DOnnoM9fm6+KZLoxMx4hXNKEAjrps38M9wV4HQVV1d3tn 3RTbXiX3sG4HW1Iluu1g0A1wQTXSlV82d5E6nxISVf5yICtd1ndD2WUrXKAAWgH9dmdH19 S0lA2+sx6dIpzEJselcnbx37aTCXF6Y= ARC-Authentication-Results: i=1; imf25.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=MsBEdHdx; dmarc=pass (policy=none) header.from=kernel.org; spf=pass (imf25.hostedemail.com: domain of "SRS0=6Pe8=DU=paulmck-ThinkPad-P17-Gen-1.home=paulmck@kernel.org" designates 139.178.84.217 as permitted sender) smtp.mailfrom="SRS0=6Pe8=DU=paulmck-ThinkPad-P17-Gen-1.home=paulmck@kernel.org" ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1691083177; a=rsa-sha256; cv=none; b=wyR6MO5Oakn1QxTv99uof6BKaXu4KB6MQRT95GRvo9kYfECVrgKUT4jYDjk7dUh+0UnH71 zy6XnY+5lCaqEo59ooMww/iPNn6VzsvKxgfay7KZej7ebt4L6HfwrCXCKsU+CnlC/LuSDq P0YfAvYTN67cWuiLuUgDAeVieGxc1TA= Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 2246A61E4B; Thu, 3 Aug 2023 17:19:36 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 78F83C433C8; Thu, 3 Aug 2023 17:19:35 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1691083175; bh=rGBR/A6wmiGr7kQr72xa+WcmnICxmO1tIDp2ngWhxZk=; h=Date:From:To:Cc:Subject:Reply-To:References:In-Reply-To:From; b=MsBEdHdxEHN4vLWoAOVU+s9ykjbclLv+OIzSCl0C49tgmsjHVJQ5ygWIYZDE/EIPs qjnLWeIeQ4xYSqhpqyj2qe7RMhzZBvtpBKf3PZdpt2AUe35AjEiiSYpSu/Z8FXEm8v sUS+N1kCbVWGfKLR4dFlsI+gbROM2nLPrC3iwviqvfTB1a8GmhD8ICzfUa3X7pxuUN B5z4LVC5/Fsm4WLBLm5liBnKMFa4CEio/QvQuHKNznGf9bB6OIH7j698jBReX4XMYe DMn38IrJOroMIVUB3bDKwIOYsmInDp751Y/jtYXs6WWDrgtTCNLbvvn4WNnyAtsPrt 1Fmz7qE6uWYxg== Received: by paulmck-ThinkPad-P17-Gen-1.home (Postfix, from userid 1000) id 11523CE0C8E; Thu, 3 Aug 2023 10:19:35 -0700 (PDT) Date: Thu, 3 Aug 2023 10:19:35 -0700 From: "Paul E. McKenney" To: Lucas Karpinski Cc: Johannes Weiner , Andrew Morton , Roman Gushchin , Michal Hocko , linux-kselftest@vger.kernel.org, linux-mm@kvack.org, cgroups@vger.kernel.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH] selftests: cgroup: fix test_kmem_basic false positives Message-ID: <0a2b5245-0c81-4492-a846-b35fb85b227e@paulmck-laptop> Reply-To: paulmck@kernel.org References: <20230801135632.1768830-1-hannes@cmpxchg.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-Rspamd-Queue-Id: 6034FA001F X-Rspam-User: X-Rspamd-Server: rspam05 X-Stat-Signature: 4f4qamwgh36q5fotguiqe4359xi55iyx X-HE-Tag: 1691083177-319834 X-HE-Meta: U2FsdGVkX18C7hYzRdTi3VUcBxT6ALRUaNXbsUDOuTLVSC/ahS9VqtqU49Eddvhj3BCPp6piTiUAgRw1HJJgst6W2uS5bxdBV0XodBq9HhRvVVP0DTr15Y2SjmAW0Xg/zX9P7bmhy89OlwFHhH1z2nBH9VovU8yxJyx+m+4Sa79aHcnUq1TsLnJkKyqs+ox+ynkgLA1o1qicHXQn7FyHJslFSePBISv0tYplLS6nl3c7hWYN5dPktazxKJsmBpIanBNI8lkVaJy7qXosvKEdl1PQffLxkY4ZZyRYS7/uSPYkhyISbq7THHuZE7TEk8CaAhn8lIgrQYmjJLUTI2wsHL2zE/NE8EhLl9Fk5AV4qgka0G9qfh0FgN1S40bk2kLiEmhhcsSsrwO9FSaFK1iW89u7TnIdhGWVxFtzdeo2qntfAICfJx6XwcxQ7n8ULNmIOr2VKbfzEoisBCcqHdoeHATREB4J84PIWc8C+J7EHRk061MCocyUBtmeLdL4Ez4AFYtjMc39RZbcudRNMiYv1wrv9cyflHdm5ToRNAf8998BxI63GHwnTqL53NG27onQM1/LdT4/MyLvxjys8O2gIL0JB4o53goeAQwhbwruA4SL6G3prxzVEJcZLQMa4l3sX3h2Be8VVKKR4gb4xpev/L5Xl0APo6qxIjNO8/i8xZgXEKwjwQAKNS3l2po9oaqtJw7ZH+/0hQvQCOgqbrO/Q5EjkOBU0YPNN2esetT68JgcmrUVMXHoaJ1D9XWOsxSqexNwEkKBKKQasm8c7MarLnesDNouaoQLiJ7yx9bJ6AKlv6BqIrQmr5zFVXh2s/1LyGW+B2VIZW939n6sWEJ+I6xTPEgwlQZzqL0IB2rliMn8zaUH+5xU0NDyWyzK9QanVJZhZjYSJTIHyCuUBvtnxcvFN31YTkI7MiGZTN87nE43mgPAxcOTZH/Pe/pgOC+7IXnPUIWnd0+VFI6E5qG 6U2xUcpG 2twUirn0lhYfOXffVZ7WY9+PidsiYOAX59Xey8vFqJVC5dE/XVaFTRfAMMv9v5cy2AHbNQdw6mvZyXqC58A9mHTZgEehIy0waGXGs64RZRJIWeU+FjVw9bWZq3fAFlNPQD6PteMYr7/BozxohOMdQpuiD2lofthkGYffj+8VVB8Je5PRb2lBE5DXFerFUa2q6jFK0c56ioQE+FYAcql/T/vHJ5ykaXC+qCdxCactWSQriOJ39wj3PBVZ+SK5ozmZJuBiZFGJCg6oAR8BhoXeacTe96fbzybr42nrMJc7k+/MVdlMo7+Ue6tT8HXOqKw91oa5bPX7g19XTSP88HT56YBB62NAf5J9qi30fXz3rZr/a9AigtlhkURZB5yTwX58lAjg8OXxro04yc7zJLaS+LL5hertTUv+XApqbxL4Dp29TjP+liR24R8a8jmBl3ZUsRSAXtAVRiy06D7/DAlcdlCXgy5wDnLuRGZcu+H6smKFlHxSarZ961R26z8S/rrdDIMqIW6gj6LYR+/cUzEa13MQdCnkYgW0j0bTokgOQHcg/FfwRwJv8SNOPEox7K3tPIDdzBB+Y1eZPr1Z9TEQRFro94/99lqtxVZX9trptoHFNVNTgFRlO0KGVeH6K9AipCHOI2qZOkcAwP9qOsP2eUPH+Z/T4fafecWZYRtJ3CONykVZuFH1MMaU7P/RuzOtKYVPx+6DzkcwuqjvRO2KSKoySeUBKfdPVrqKQs7ilZcGjOdne07r32ZZU//wz5drAfRFft8oAlNm9dEELDxXojP2KkxgXE0gHq7FUldQgcbSn4+4= 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 Thu, Aug 03, 2023 at 12:13:26PM -0400, Lucas Karpinski wrote: > On Tue, Aug 01, 2023 at 09:39:28AM -0700, Paul E. McKenney wrote: > > On Tue, Aug 01, 2023 at 09:56:32AM -0400, Johannes Weiner wrote: > > > This test fails routinely in our prod testing environment, and I can > > > reproduce it locally as well. > > > > > > The test allocates dcache inside a cgroup, then drops the memory limit > > > and checks that usage drops correspondingly. The reason it fails is > > > because dentries are freed with an RCU delay - a debugging sleep shows > > > that usage drops as expected shortly after. > > > > > > Insert a 1s sleep after dropping the limit. This should be good > > > enough, assuming that machines running those tests are otherwise not > > > very busy. > > > > > > Signed-off-by: Johannes Weiner > > > > I am putting together something more formal, but this will certainly > > improve things, as Johannes says, assuming the system goes mostly > > idle during that one-second wait. So: > > > > Acked-by: Paul E. McKenney > > > > Yes, there are corner cases, such as the system having millions of > > RCU callbacks queued and being unable to invoke them all during that > > one-second interval. But that is a corner case, and that is exactly > > why I will be putting together something more formal. ;-) > > > > Thanx, Paul > > > > > --- > > > tools/testing/selftests/cgroup/test_kmem.c | 4 ++++ > > > 1 file changed, 4 insertions(+) > > > > > > diff --git a/tools/testing/selftests/cgroup/test_kmem.c b/tools/testing/selftests/cgroup/test_kmem.c > > > index 258ddc565deb..1b2cec9d18a4 100644 > > > --- a/tools/testing/selftests/cgroup/test_kmem.c > > > +++ b/tools/testing/selftests/cgroup/test_kmem.c > > > @@ -70,6 +70,10 @@ static int test_kmem_basic(const char *root) > > > goto cleanup; > > > > > > cg_write(cg, "memory.high", "1M"); > > > + > > > + /* wait for RCU freeing */ > > > + sleep(1); > > > + > > > slab1 = cg_read_key_long(cg, "memory.stat", "slab "); > > > if (slab1 <= 0) > > > goto cleanup; > > > -- > > > 2.41.0 > > > > > The same issue exists in the test case test_kmem_memcg_deletion. I > wouldn't mind posting the patch, but it seems you want to propose > something more formal. Let me know your opinion. I am proposing a /sys/module/rcutree/parameters/do_rcu_barrier file. Writing a "1" into this file results in an rcu_barrier() in the kernel, but set up so that there is no more than a single rcu_barrier() call per second. So you could do the following: run-a-test echo 1 > /sys/module/rcutree/parameters/do_rcu_barrier # As root # All RCU callbacks from run-a-test have now been invoked run-another-test Please note that this handles only RCU, as in call_rcu(), and not SRCU, Tasks RCU, and so on. Thanx, Paul