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 C4BF1C6FD1C for ; Thu, 23 Mar 2023 16:01:54 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 53C896B0072; Thu, 23 Mar 2023 12:01:54 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 4ECD96B0074; Thu, 23 Mar 2023 12:01:54 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 38E016B0075; Thu, 23 Mar 2023 12:01:54 -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 27A326B0072 for ; Thu, 23 Mar 2023 12:01:54 -0400 (EDT) Received: from smtpin18.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id EA9F2A060B for ; Thu, 23 Mar 2023 16:01:53 +0000 (UTC) X-FDA: 80600628906.18.A0C8D26 Received: from mail-ed1-f46.google.com (mail-ed1-f46.google.com [209.85.208.46]) by imf12.hostedemail.com (Postfix) with ESMTP id 1878D40039 for ; Thu, 23 Mar 2023 16:01:50 +0000 (UTC) Authentication-Results: imf12.hostedemail.com; dkim=pass header.d=google.com header.s=20210112 header.b=MOKQDwxr; spf=pass (imf12.hostedemail.com: domain of yosryahmed@google.com designates 209.85.208.46 as permitted sender) smtp.mailfrom=yosryahmed@google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1679587311; 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=aTWMwAKhcBWTOZZjhXh8n/JlmrY7tCK7IC8lep3UpDs=; b=JMmA1E18tbeYYA++OODo03lhuDSHjPiNIgs3Gsn+NF2K96KtlLVQJXXyVuYABdm9nreLGl WfH5WYfVeCpzYX+n2w0CuacQROw/gDlZIF+oVQG3EmfyvZDYCoU7O/4DEFF3NUhH8Bg8dP W5kKBDJ9Xb6/lmHzo/d4WnABCMd0T1c= ARC-Authentication-Results: i=1; imf12.hostedemail.com; dkim=pass header.d=google.com header.s=20210112 header.b=MOKQDwxr; spf=pass (imf12.hostedemail.com: domain of yosryahmed@google.com designates 209.85.208.46 as permitted sender) smtp.mailfrom=yosryahmed@google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1679587311; a=rsa-sha256; cv=none; b=eP7hrdZVvQ6qNwmIc5uwL6/ZnqHODHJTnwEFt2Glu/2XOonUBnpNxCu0KHoX+rTENiLxDx joqnv2awXITQs82gIbDUfdqVQaphsvAfFd5gfLrErKaD+nw0/owtSA53siqvV+UUz8PPrj OXQiGOx6Qe2A8UccmuuG7fWRr2E6pjo= Received: by mail-ed1-f46.google.com with SMTP id b20so55871783edd.1 for ; Thu, 23 Mar 2023 09:01:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; t=1679587309; 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=aTWMwAKhcBWTOZZjhXh8n/JlmrY7tCK7IC8lep3UpDs=; b=MOKQDwxr/deUL4llWSGhblhVEo9WcWB8efRLUE2dc0/j/VRqv9bfW7mrppwQxxgW5/ tkBhmPc2q+ri9+Bv9s4HE1ypBchPI41TQJZklkyPM5Q6PZGpWEfKqozM+UTPGQQJE0dM hJxqGnb+d2+KlRMAUvMO8LiGIBEeAtLWMEoXFNt8F4/jnSiPtWtQD6m19Wr8h/VOWnzd 8/xfKDTgIMwacD63eX1ewPzVWyQaygjPDTysXqZ5QUBHWAg+Pc4Q/l1gT3Kja+vh6XdT ZKyu/0YKEgAds7xfT+9+aomHkoK1r0md0ZyzBUSwzUwg/Ha4/tOPzpEAi28hh7nmSQNC hOsQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1679587309; 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=aTWMwAKhcBWTOZZjhXh8n/JlmrY7tCK7IC8lep3UpDs=; b=Y8YiPjB+e7P70zDBly3acJlDuqG3yqORsWQAlIVqeeQOey2dl+z9LkwjFas49GffSK b4J6hODfZK8htbTDu3uhHEiQPXglvb6fBXKOF1SfXdhleJB798ADgcEfe86jjOrfkYPj O2fPF8QkVoIgQYYil2aOgQnRsGJIKbA7IdQRH3d2CthJ+1TId/yKsnR9fnlJJdXb1nLr +7Kadaw2Yb3Ys2psIhMcRImx+Z3lgrA1gWD/nBhNmtJFoaakPBNLQpQXpUWZ0g1XVHc/ F3Kmo6JrVKaxdIB1UWOWvDtlm7Oh+m253ZAalcA2CAJc5S+8/V/t97MAaA6r36T5F8rU r/zA== X-Gm-Message-State: AO0yUKXlGnqSuetSwE8AhRWHAneIcHtobvK+Kx9cfs2y3hDFIEKtFJFa RQ/G+GmjxBhi0tK+c3Qy+/rrQ5sc161BZCRpMuBItg== X-Google-Smtp-Source: AK7set9zkfda4o4m4oylMF4e69t1Blxy/92fEEEYypkDAo8tfXPW4fXGirHEAt4hm6OeEPl00/UwlGGonUDdlBqlsU0= X-Received: by 2002:a50:cd91:0:b0:4fa:60b6:ab98 with SMTP id p17-20020a50cd91000000b004fa60b6ab98mr5421036edi.8.1679587309028; Thu, 23 Mar 2023 09:01:49 -0700 (PDT) MIME-Version: 1.0 References: <20230323040037.2389095-1-yosryahmed@google.com> <20230323040037.2389095-5-yosryahmed@google.com> <20230323155613.GC739026@cmpxchg.org> In-Reply-To: <20230323155613.GC739026@cmpxchg.org> From: Yosry Ahmed Date: Thu, 23 Mar 2023 09:01:12 -0700 Message-ID: Subject: Re: [RFC PATCH 4/7] memcg: sleep during flushing stats in safe contexts To: Johannes Weiner Cc: Tejun Heo , Josef Bacik , Jens Axboe , Zefan Li , Michal Hocko , Roman Gushchin , Shakeel Butt , Muchun Song , Andrew Morton , Vasily Averin , cgroups@vger.kernel.org, linux-block@vger.kernel.org, linux-kernel@vger.kernel.org, linux-mm@kvack.org, bpf@vger.kernel.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Server: rspam07 X-Rspamd-Queue-Id: 1878D40039 X-Rspam-User: X-Stat-Signature: jshgn58pxtuazgak6h8ninmpunh111fu X-HE-Tag: 1679587310-435762 X-HE-Meta: U2FsdGVkX18ZzO60JfHY5d5EY23BusQqBz2mmoHDB0x5NfarNKM0M1ApRQSkuMV+oPJpMFnxbkACNFk0HyqOAfqzQD8R/FgimAjwecASQ/jneuXvvpau2XqsYL96KXMri3W0CDruCbPeBHgodCxHu2kg+dDQ7XWGOPbE5Cbt7Z3RjOTKGXWDSav0+1ExRFbCX9wAk5Axwv5+hOTRmk2YGCycodeprc7dbfUjMKNXcpZgelzPuXFFyJHPyPME33191HyKQoATHqh2c3eLcEgI8coxz5d4PMVe9Ud7NskvLakW//nXUHoRfCzJkRvpdMdBK6ALdJsasXf++6Q/jSI9PLTBwlb7mQLSouG01w6natr6Fvvnb/rS8mrffzKomI/2O9GQny4l8UkRSYMSS9Vw5k4iEzK8xm/rZqHJiFFcgekgwMmT1Vdi3E3arMKY7UGG6pOT/0vXcskn5tIMoOg5Ii2ihlG1NgWoqv8X1rPW2x6ls1XPQmR+6Jg0eISREyO7wp+3mRRWbNgQomeI3BhuuqPys1l0ZLjTss/Z1t26LBB4VqS5EwsAWirPSLSI0V2sZr74C0zrcwHG0yc0VZ+YzY/pbOsem6lu7vg48yc/h5wsbGatgC4PfRckeOz3fMT7h9omxSWie9nPHDB2rnWXHBA3MCmHMVaooW/zfSsGn2eNqCttco75eB9CPYxbeU9jn1dO0uPA8ob/8Asb0uPMHvFu2qcQBVUwlGsyA3+MloKrorx33uyIN1ol/dMAEOBXgg+jgbuCEUMXWOG1E9ml/r0/UwkrrRnbj7WStaVmCa4sBPgXRwRZ3XIJcY6ZvBepQz9kpYBt6Vb8FpqxvAfCdZU2B1/gUxQ7/NcEjfZzuzXPdToSmxq96IYMQ6vhBQgWiePl+mirQnwclI+l3RxHUblL6Ly+iGTPVM4Ok6Ah0NLlMLJbjc6UpG025Es5wNpiW+23+We0/+TI1K6BWZe Kg859MIi fbSRT9k7aFTVmNKa7chu9Mngwa9wRAmxwZS4vUyA4LM3MnJG/n26CNbUQLa8yP3mPtzBH1dR3011NbOUdMbXHxqjc+J208cJ3KgsT9VebTET7fjeV11Tm3hbdtgVZvyn8LFsMTuSNUgxZPYgvUcJtt2MHl/M7W5p6OPHjKl88S0h2XOrd5vXcnCiBPWOx0auSDxoLPlENhWxJhiX+5wo82BzsZuZr+f7SWGsHfoepPa+UZJftnBhGmKhPec85nmo4zhJU2zlFP4+AIzo7oY7BL5agn4lR2LOgcygu7iOrjwN6c5M= 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, Mar 23, 2023 at 8:56=E2=80=AFAM Johannes Weiner wrote: > > On Thu, Mar 23, 2023 at 04:00:34AM +0000, Yosry Ahmed wrote: > > @@ -644,26 +644,26 @@ static void __mem_cgroup_flush_stats(void) > > return; > > > > flush_next_time =3D jiffies_64 + 2*FLUSH_TIME; > > - cgroup_rstat_flush(root_mem_cgroup->css.cgroup, false); > > + cgroup_rstat_flush(root_mem_cgroup->css.cgroup, may_sleep); > > How is it safe to call this with may_sleep=3Dtrue when it's holding the > stats_flush_lock? stats_flush_lock is always called with trylock, it is only used today so that we can skip flushing if another cpu is already doing a flush (which is not 100% correct as they may have not finished flushing yet, but that's orthogonal here). So I think it should be safe to sleep as no one can be blocked waiting for this spinlock. Perhaps it would be better semantically to replace the spinlock with an atomic test and set, instead of having a lock that can only be used with trylock? > > > atomic_set(&stats_flush_threshold, 0); > > spin_unlock(&stats_flush_lock); > > }