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 179EFC001DC for ; Wed, 26 Jul 2023 15:15:17 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 8BA796B0083; Wed, 26 Jul 2023 11:15:16 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 869476B0085; Wed, 26 Jul 2023 11:15:16 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 730CD8D0001; Wed, 26 Jul 2023 11:15:16 -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 613266B0083 for ; Wed, 26 Jul 2023 11:15:16 -0400 (EDT) Received: from smtpin22.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id 14D7F802ED for ; Wed, 26 Jul 2023 15:15:16 +0000 (UTC) X-FDA: 81054111432.22.214FABD Received: from mail-lj1-f170.google.com (mail-lj1-f170.google.com [209.85.208.170]) by imf20.hostedemail.com (Postfix) with ESMTP id 123B91C0011 for ; Wed, 26 Jul 2023 15:15:13 +0000 (UTC) Authentication-Results: imf20.hostedemail.com; dkim=pass header.d=google.com header.s=20221208 header.b="Z0sm/6Yl"; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf20.hostedemail.com: domain of yosryahmed@google.com designates 209.85.208.170 as permitted sender) smtp.mailfrom=yosryahmed@google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1690384514; 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=EmHtEDaViE9w7v3YPcqZQ4Gg5qZi74veSidbXAx7Uuk=; b=JYWhSdtv7C4Ee1m/2AH5BHWMoB0prRFvxPONdsAgQMDK8sfz4ZZZzVPruk28AY6M4Tqpsb 1hbC/r6M4rXHHP7FKfSla2PsqnKPU1AAPBvUBiMobzqpLdpRhq3ASxDsxSOOBdvIhTRQce G1YhNMCvCBVr6+JaB34EeNhUlzWflmE= ARC-Authentication-Results: i=1; imf20.hostedemail.com; dkim=pass header.d=google.com header.s=20221208 header.b="Z0sm/6Yl"; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf20.hostedemail.com: domain of yosryahmed@google.com designates 209.85.208.170 as permitted sender) smtp.mailfrom=yosryahmed@google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1690384514; a=rsa-sha256; cv=none; b=v8Y++pfDu3v4mIthlSyrAJhGspzrWKhByeRD15TdBntNQ8NBkx2e4RVaE5ZHk+D1tCmKQu 6SWJ8EyjLqZdgTSV7M0uHmYErhEJbHDbG9BMP6cOJWf1VDIhMv3qOnkafcEjxLsCA3g+Pl 1vsSi5JoJxlr6v46GAM1WhJ+N2/owOU= Received: by mail-lj1-f170.google.com with SMTP id 38308e7fff4ca-2b9a828c920so29036721fa.1 for ; Wed, 26 Jul 2023 08:15:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20221208; t=1690384512; x=1690989312; 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=EmHtEDaViE9w7v3YPcqZQ4Gg5qZi74veSidbXAx7Uuk=; b=Z0sm/6YlFBVHxaxcjSwwX/bHyhr+EAoV9DMvYiCLh1gzjeElQo2oiosipQdXcgFCHC Dh4l2DPNInb8wFxoVcaMu053NsAepgd8juJJfi4f77Oq8z0fvgOLujl1esBDHY59v22f II4Ew7GK+kdxPpty5uTynOE0fZn80NMl/SqI9jM4NmWlTGldJ0png0oDQtxH5YQ2jU3C YHPELzG2W5BDzAJ1G9YhcsCe6V4xvHEGxMVEG09eNkGKoa5TFPuol693V9n79qX3GuTR 7S9RI4L/pBPsq54wiwxps6KS/O679itw93JRxiFCJQL9iOnmPpwTAZkp5AOvwgnOm/En ohrA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1690384512; x=1690989312; 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=EmHtEDaViE9w7v3YPcqZQ4Gg5qZi74veSidbXAx7Uuk=; b=AuvAZfqhlXp9hFLu6vFhBT4li53/AfhaJ6AnxN6362VCNxWLkjri/FjRrF1NLkCpUD qmgkHJXeysE+MwYTHU2EhDwNQ6hB2wrlGX3xfX/8QrBUthzSkEdIOnOd6sGweZG59yFu VKcT4tB0IwXKaC410I0xZ4DltmVEN/F3Ug7nM531hH2Pilc/Y92v746ZlJXrm8Cw2+Rb RXdPE8sqivMOnhRt8rqHsQ/RN8wbrU9lKG7+mhP+MYFO92eA9cOFftaKSW2S6EoryX7p ZpSh2VoJ8Fxdfs4VWJFUWuIQnifbRTvF3dAACK/k99V3nYAGNZcwsD6xdBoV7YrK+XKM xkAw== X-Gm-Message-State: ABy/qLZFlzXAo0pAweEMeR8UWnflajf9LknptfCJrQxDJ5eDniiE/feX AGwpmD/ZdQQYusPq5AjlWykwio6X+cfqzUpEI7Itbg== X-Google-Smtp-Source: APBJJlF4IaV8dMVHGk681fvmuBRGxHf3zOzetRpp5ir2UkpXog21NbZSidd658qxEK0FWvxvGZm3Ws8te1gUkTSCLjk= X-Received: by 2002:a2e:9d99:0:b0:2b6:e958:5700 with SMTP id c25-20020a2e9d99000000b002b6e9585700mr1811458ljj.4.1690384511813; Wed, 26 Jul 2023 08:15:11 -0700 (PDT) MIME-Version: 1.0 References: <20230726002904.655377-1-yosryahmed@google.com> <20230726002904.655377-2-yosryahmed@google.com> <20230726151315.GB1365610@cmpxchg.org> In-Reply-To: <20230726151315.GB1365610@cmpxchg.org> From: Yosry Ahmed Date: Wed, 26 Jul 2023 08:14:35 -0700 Message-ID: Subject: Re: [PATCH v2] mm: memcg: use rstat for non-hierarchical stats To: Johannes Weiner Cc: linux-kernel@vger.kernel.org, Michal Hocko , cgroups@vger.kernel.org, linux-mm@kvack.org, Muchun Song , Shakeel Butt , Roman Gushchin , Andrew Morton Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Server: rspam09 X-Rspamd-Queue-Id: 123B91C0011 X-Stat-Signature: emgsx85ifrd4q4955u7mapjhzw7qqsyt X-Rspam-User: X-HE-Tag: 1690384513-601242 X-HE-Meta: U2FsdGVkX197VpBOjk+KMcCps50Y6dnYAwfVRyWvIJc7vhQK6q8TVqwgBBkijkXIpsHxk+v+jX/H8LNFzVtcLLKVUkI/KvhWmQJow5rR7uIl9n3IJaSLgmGwOPX+RcAONGrNovBKu8tk+M7LEfagGZ//7ESc1YF5AULOj6OTBx9N6vUlwq5DraTfKgYmRKTBCxUGEdPyTWhoRadnHN3bUz53FVdiSCslRlqizsT/yLfTl5QN0OAlq2Hu1uCQyRBl4UHahI02Vil/OYLWvR/2451ScWdZprQfe1BAXwuzADCBTXfxi+BsHvbWkjZ0FwKhzQoa8Lh0xWiB0H3GO6zPUBRda1endTo8oG5dMoB1AvpQsejF7jSXxxNfO34QkxPA+qzxeZ9UDmHXqCGP+oTwJXK9EE8DFRvAaVFPp7NwWO8P+IlqwPP4ONn4nt2JZ13XQjs5IBeRGf3Cmx7zTpuXE/p0fqNWzkg0E2Wg0jJpvXK1I3CE58DvvjJIIQ02rsXSJaXTELl4+8To6aIVl6R7L8p4sWbER5HEcwHCOIkxYZLIIOtecSSkynWx313Ir5bKMEV4zQHOTXWsW3pYetTr+wfVXDTBKvXnSY2c9ebXj7cbnfAd/hzB5rFhN4NCVUtdzE76Ara0M62OZQJp/jxxU53SU3rVM/dCGhvlCKSUBXFPBkiuHlv5N2lbR+NeQNP8/r7HM+c3SdnWxwyl+AJs9MgK3yyiEfcJPVP0APVNWVO6tGjP6K06suXkY8OrOvlmAzyIgzJrVAsX82mw4+JFSBFcfF4bAtJKQPB82oME7VsEjK2gxuEJTQO1quzlsRW8CSAHq5fSRKjIyUNCis2DYF2XjnhGdJYGIMXyIU3i6LAKUkw3OuKfg+fPjLLcxbsYXRla+hybW2dUr7piUeE5LWPatlOOSYcFoQ1GOXp1Bc+wctYgVmKKomZ3OMaMb/e66I5BAmRMOnyXQ9yS4uk DZQYL0Tl +8cHVp5FQUfELxGya1lorv2D45ZMsLRr1w18f+PXulNEcWAn/X8nNB8IC/dn3A49+W+2VnPwWRRv0DFaRKJPM+1ZXUS3AL4fY6iyRAGri8mOgtqSKK875IRLKC4TIvB1hBlL/kdrI2Frgs/9zf9yV3Ke6AEZUP5uG+NMQuf4vkZvMV0GZVTNMq6FQQAS0LduLbnxaHGZ2NX300phYHHfkfo4HP8ldjvi/vLVZaW3xZVKybU5gdvjZ8keacLR4kLHZN9RYSQuaexy/fAzCKVOZ1HHTnExJep6VrTLl4mD9klQlyGKN7hQuhA6TYg== 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 Wed, Jul 26, 2023 at 8:13=E2=80=AFAM Johannes Weiner wrote: > > On Tue, Jul 25, 2023 at 05:36:45PM -0700, Yosry Ahmed wrote: > > On Tue, Jul 25, 2023 at 5:29=E2=80=AFPM Yosry Ahmed wrote: > > > - Fix a subtle bug where updating a local counter would be missed if = it > > > was cancelled out by a pending update from child memcgs. > > > > > > Johannes, I fixed a subtle bug here and I kept your Ack, I wasn't sure > > what the Ack retention policy should be here. A quick look at the fix > > would be great. > > Ah, I found it: > > > > @@ -5542,19 +5539,23 @@ static void mem_cgroup_css_rstat_flush(struct= cgroup_subsys_state *css, int cpu) > > > memcg->vmstats->state_pending[i] =3D 0; > > > > > > /* Add CPU changes on this level since the last flush= */ > > > + delta_cpu =3D 0; > > > v =3D READ_ONCE(statc->state[i]); > > > if (v !=3D statc->state_prev[i]) { > > > - delta +=3D v - statc->state_prev[i]; > > > + delta_cpu =3D v - statc->state_prev[i]; > > > + delta +=3D delta_cpu; > > > statc->state_prev[i] =3D v; > > > } > > > > > > - if (!delta) > > > - continue; > > > - > > > /* Aggregate counts on this level and propagate upwar= ds */ > > > - memcg->vmstats->state[i] +=3D delta; > > > - if (parent) > > > - parent->vmstats->state_pending[i] +=3D delta; > > > + if (delta_cpu) > > > + memcg->vmstats->state_local[i] +=3D delta_cpu= ; > > When delta nulls out, but delta_cpu is non-zero... subtle. Yup, led to a few missed updates, was not trivial to track down :) > > This fixed version looks good, please keep my ack :) Thanks!