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 82EF6C761A6 for ; Tue, 4 Apr 2023 17:14:02 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id C12B46B0071; Tue, 4 Apr 2023 13:14:01 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id B9B046B0074; Tue, 4 Apr 2023 13:14:01 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id A63076B0075; Tue, 4 Apr 2023 13:14:01 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id 91D306B0071 for ; Tue, 4 Apr 2023 13:14:01 -0400 (EDT) Received: from smtpin14.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id 615881401EF for ; Tue, 4 Apr 2023 17:14:01 +0000 (UTC) X-FDA: 80644356282.14.6AD7129 Received: from mail-yw1-f173.google.com (mail-yw1-f173.google.com [209.85.128.173]) by imf06.hostedemail.com (Postfix) with ESMTP id 7614518000E for ; Tue, 4 Apr 2023 17:13:59 +0000 (UTC) Authentication-Results: imf06.hostedemail.com; dkim=pass header.d=google.com header.s=20210112 header.b=RTE9uUoI; spf=pass (imf06.hostedemail.com: domain of shakeelb@google.com designates 209.85.128.173 as permitted sender) smtp.mailfrom=shakeelb@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=1680628439; 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=jB81HM7QxwklDvE39D9zGEd7EL3RK9tGsVExEctIF9g=; b=Fw2T9RB1TwQ8cOZteQxaBjLw5PKhRM+xV5TAjH7pbA6EfjL6aMrEISYS9MXxz3TgzvMa7d J3WGFXRiBODgvJgZAdNW0QmuMt26nH6FX1ILoAQ/mmyGoUIactMxscFdfkUsnyUnRVi8B2 YQjiGXBuWOX1NJjSCbiw4Gl5cZqgQRQ= ARC-Authentication-Results: i=1; imf06.hostedemail.com; dkim=pass header.d=google.com header.s=20210112 header.b=RTE9uUoI; spf=pass (imf06.hostedemail.com: domain of shakeelb@google.com designates 209.85.128.173 as permitted sender) smtp.mailfrom=shakeelb@google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1680628439; a=rsa-sha256; cv=none; b=N3gVpJxvt+WsWSY7S1oM5aFhZj6fUXe3wT8mrhOyM3x132ig5L6kJ3QAusqyExFD6tc+tj sdbM0e48vnnpbyxAgj2cwBpEignvCW50zMuy7jbb9mdUyc8pyLYFvocEmrFz1z2DlAiW4p /UibYgUeLU8f4PT/LJ+783LYCCM15es= Received: by mail-yw1-f173.google.com with SMTP id 00721157ae682-5463fa0c2bfso296543547b3.1 for ; Tue, 04 Apr 2023 10:13:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; t=1680628438; 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=jB81HM7QxwklDvE39D9zGEd7EL3RK9tGsVExEctIF9g=; b=RTE9uUoI7XQ8R2+nrWW7Yx58+ErEPGeeDfqbJ/xGvvaIQ77F/wmkQ1JiRiLzfMk3ds aGgu1IiS++nn+phVSuzWXmhmnnCR/c6rjOJll7kCeyjgPiFt1rAHATUDSo6RV05Qzvc2 xUkU5W+YitmDn4UuYTkJUwt6iLG7fqJ2JdKIaUoaN4I5bJucmRLBWHWQyYSLVRgj5Kb9 YYRNr9aHII9yl6U38B61zDPm53mjPR6kWofIAAjQ+MEUUeIyy/AFwTH+9VuLtJzwYqJj tf1x0gtzBFYsSXZzhLN/ugTsZ4z2Nt+9QfJqs8jO0/JRmH/lPnHVRTX2DCl54PANUWGW Ny3g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1680628438; 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=jB81HM7QxwklDvE39D9zGEd7EL3RK9tGsVExEctIF9g=; b=rA6MJkCpihQ/eYYRY7DTQ6n+6OqJLS+LGkE24vA4eXLJ08N4A1gPkU2PxsNo1Mx1Z4 WlQQmpy1UMRfLiDHaJOsbYS85HDei6kxso4DRzMT5kDsMNodBi74KtlAXF7r6hHrk2pF Y1YGHX2MKjXSWcfJwP/XhytajFiOEvsdlbzbUMdktsbpqGsVV9qfGsJBmqPbsJ1opBKe 2SDZjIDwIeyp5VYHkMx6GFyVp6zR3RL+F6dGVyHqIKgYSpZLM8lNsmRNiaPgLTIK7asd yu2CVdOtYrdcRRiSh6OiMVnpCboXvfehPC9czhSnAOLKUnaozYmjhHswkpn9Zig/cF6e LR1w== X-Gm-Message-State: AAQBX9flXP1GSQBupYnv7iCGEr7KfbmtRwN+Ae8WXj8hjw9AuQN7YT6t gDyiP8r8+uOi33qRiukhS9oZU45gsysPlEbTYrw26g== X-Google-Smtp-Source: AKy350YfkE1yBZsZo/vuErzxwl0ifJq9+FUSZScFb3AOn/d315UWmv+qL4nxuP4OOnhzt5F3cFDZLFK9czXb9I4PiPQ= X-Received: by 2002:a81:ac0d:0:b0:52b:fd10:4809 with SMTP id k13-20020a81ac0d000000b0052bfd104809mr1973994ywh.0.1680628438438; Tue, 04 Apr 2023 10:13:58 -0700 (PDT) MIME-Version: 1.0 References: <20230330191801.1967435-1-yosryahmed@google.com> <20230330191801.1967435-5-yosryahmed@google.com> <20230404165258.ie6ttxobbmgn62hs@blackpad> In-Reply-To: <20230404165258.ie6ttxobbmgn62hs@blackpad> From: Shakeel Butt Date: Tue, 4 Apr 2023 10:13:47 -0700 Message-ID: Subject: Re: [PATCH v3 4/8] memcg: replace stats_flush_lock with an atomic To: =?UTF-8?Q?Michal_Koutn=C3=BD?= Cc: Yosry Ahmed , Tejun Heo , Josef Bacik , Jens Axboe , Zefan Li , Johannes Weiner , Michal Hocko , Roman Gushchin , 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, Michal Hocko Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Stat-Signature: bn8mdrm1b6s4445xear4pkw6ji9uaard X-Rspam-User: X-Rspamd-Queue-Id: 7614518000E X-Rspamd-Server: rspam06 X-HE-Tag: 1680628439-729765 X-HE-Meta: U2FsdGVkX1+GjK3CMfqGkVMFiFIIS7r1IAnwRgfcSdtjYhPsN0gZmkAP07EuLacCeO7Zfc+3f9fW0ACenB+QKeDFHmyxVPENO0HwGmW7K2pIv0kkUr8AbNBXzSGPpvdOP5xcZgs/kpRMHwjjd5ioIep1fBxCzXoaLqKtBdC8Cn7tVpIw7FsgwwdPNWlq9L812nTZx4cnrjAbTVna1jfFh+UCHzrz49dhCEi9RLaON1p9Ff/vGDRM8dmZqILvfMRy5WtvD+Xrjc9nPClrXKxLeKuy1VyR7aIJ+4LckGnjFatXuz32T2YBPscqv8Vu2YkiK5W+crlahnW5mCo5uizSAYwr7vlWUZudSNaWxsU6QrwUlUmLysT0B2ZVNd1SC/JFnxcApZHwaiNPdawscIAogkUHXwPJsLe8wYXA3gHYMEjqvHqZCFYUgqhlJeL9usiqBRRRzONMDwE99pxSYa3d9FqUlRVeKZpXB4VoGiQdEXWyR1E30dqz7QwSogVp7mkQd8XzhvnrvaKJg/KenMuG+0oUqonS7rhnK5t+4wrZ3FVpfceRqb2rvYCEZ96rTv20CclDGusnhoht0LN+qNH4zvWuqjEKoRY7bwscECyBDnf0XBPwIwlTK52N6wTaOVMfRCxvdim78PNFmI8IvdmUTi0kaL1Gv+9yxj05b9/57eDMGqO4rKfIIy5G/bv7RotA7AHyenFmDmuaSXLjTGKRP3WBOcYLr9okIRj9QOp4i5YcFzfZFbo5OXGjbO4JcwkzlbciJ/0nAIfRfC4kK5SBznDi4YzqN+Eaeeg/2wj3a1nxxrVaIFn6I5lkQd3SD4v858RXPHD5V+p57L2GhBs3gqeDFfVjWWPx5s2GNue2SaA/2vFV3N65rMLhWTXlbjIA7cEAd29CcjDJLx1b+Y6BmmNPSspVayx3oOggfSeNa4ROfL230biYhKUQ59Kx8y+pH/uOkQ/PFqQ4KGwAz7S KdsITQd5 ZXSxe/mNfAS31jpGqePtOb7MXZLnfFwnEDXCsab0qAWg5V1278WyrC7qUdCS0goXyYJIqnrtxltvR0yiZrHD2APkelqBcxkP3E9Eel6vtjbd/JHW7d9tASBo8NPjLOUdvarZ2cfyLCn56O9oSsO6kwzszVzHw3qVvS6zLMXapIZZkxQ/0mOKpYLIVFISkdht05blkoLuGXGE9JnCZx19qVWzT2NHjRrV/Y/sBSAmTnMPsErofUntddUtaaMlQ1g4/0apWcqX0tsvNT1xpyEC1JPkgvTiT4p8nD7Ymcs4PyQuXxGaulpV230CFC1PKVbLU9QkO/+FwFuZ5On8d0rVYt3PGD0G98kIr4BiRpJZTVA5a2s/TpRtvrw3gOg== X-Bogosity: Ham, tests=bogofilter, spamicity=0.000196, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: On Tue, Apr 4, 2023 at 9:53=E2=80=AFAM Michal Koutn=C3=BD wrote: > > Hello. > > On Thu, Mar 30, 2023 at 07:17:57PM +0000, Yosry Ahmed wrote: > > static void __mem_cgroup_flush_stats(void) > > { > > - unsigned long flag; > > - > > - if (!spin_trylock_irqsave(&stats_flush_lock, flag)) > > + /* > > + * We always flush the entire tree, so concurrent flushers can ju= st > > + * skip. This avoids a thundering herd problem on the rstat globa= l lock > > + * from memcg flushers (e.g. reclaim, refault, etc). > > + */ > > + if (atomic_read(&stats_flush_ongoing) || > > + atomic_xchg(&stats_flush_ongoing, 1)) > > return; > > I'm curious about why this instead of > > if (atomic_xchg(&stats_flush_ongoing, 1)) > return; > > Is that some microarchitectural cleverness? > Yes indeed it is. Basically we want to avoid unconditional cache dirtying. This pattern is also used at other places in the kernel like qspinlock.