Received: by 2002:a05:7412:f690:b0:e2:908c:2ebd with SMTP id ej16csp480035rdb; Thu, 19 Oct 2023 09:37:11 -0700 (PDT) X-Google-Smtp-Source: AGHT+IE/WMmZ2A7WZJF4ZpVLGL8mY/KExqfK+f7wwxkMbs1OneFZxUTTbeUoVJ0j5IrF1wXSH3Fh X-Received: by 2002:a17:902:d58c:b0:1ca:2497:554 with SMTP id k12-20020a170902d58c00b001ca24970554mr3699537plh.8.1697733430941; Thu, 19 Oct 2023 09:37:10 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1697733430; cv=none; d=google.com; s=arc-20160816; b=w2ZS993AKVfp8mK2idRyQ9Gk/AXfg+SwlZeQ8ii9Wtqa8KNrEQxauxBeOxKVTv2yOz uCn7CzAWTnoMbwxZ14UDdOYWqIpYxm3Owi1yi2tyzUTcUGgbKIFrjK2o/43IVYIL+TOl 74un2Jb+aW5WOQ8oCxUN8vvjdlAQc0HUllPMdcOZS96I3LPg0lgelBjPOOwZA1mvzBeP N5EN7cauQfDlYKjmHcUe7ZWk8gX4MfKRXMW9qSNqe12vDizdvj6DTxS1B5H/z6tbU6je wnAOZkmsqdTRf41hHYtE6okWcRTLqrGjls5l0mF7AyG/7t49GMJMqg4eHZmHc9UtQITg cFpA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:cc:to:subject :message-id:date:from:in-reply-to:references:mime-version :dkim-signature; bh=GqqnclXhs4cCCpvokt/fb4m7AIKZQCSfSgxNcK5aM1A=; fh=BrolFFwCEMkj0aiMML67L/VRidk6nR7w42gFQfG6L0U=; b=sb0beTSN6aOGyJd3q8Laj8lb3Qzrxf+EM5FvshAou7wHlLdGF2FmepQcXKvlf084rw OM1LhG+Zs1SRSzyRT9Y2j1qoTTtPbEN1x46qvWdX9fxrRNrNLGbRaI4d4ZFof9C5i/Qf 0v4hvxKJ9KXZZxowVuy3it/8MVnc/aZvdL73/CLnmcKplxLT38ihfAP2CsBMdPJKKXEV 4350zIb9UNujk15fri3sFnBxca+4QNAMrWw7sGB/h0Ne2gFttoeiOldmVEXt06LFpOsk 8JbPiX1ihDfqanfi+7abTX/pcaOehFouyIi3RXD1b7iqMAWQ+p4wFE28VJPMp0rtjjxw UJBw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20230601 header.b=LHu0fzuk; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:2 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Return-Path: Received: from agentk.vger.email (agentk.vger.email. [2620:137:e000::3:2]) by mx.google.com with ESMTPS id e1-20020a170902d38100b001c9b258b318si2462280pld.651.2023.10.19.09.37.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 19 Oct 2023 09:37:10 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:2 as permitted sender) client-ip=2620:137:e000::3:2; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20230601 header.b=LHu0fzuk; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:2 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by agentk.vger.email (Postfix) with ESMTP id 6BB2B81B178B; Thu, 19 Oct 2023 09:37:08 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at agentk.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232946AbjJSQhB (ORCPT + 99 others); Thu, 19 Oct 2023 12:37:01 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:58992 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232935AbjJSQhA (ORCPT ); Thu, 19 Oct 2023 12:37:00 -0400 Received: from mail-pl1-x630.google.com (mail-pl1-x630.google.com [IPv6:2607:f8b0:4864:20::630]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B1459124 for ; Thu, 19 Oct 2023 09:36:56 -0700 (PDT) Received: by mail-pl1-x630.google.com with SMTP id d9443c01a7336-1c9c496c114so1245ad.0 for ; Thu, 19 Oct 2023 09:36:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1697733416; x=1698338216; darn=vger.kernel.org; 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=GqqnclXhs4cCCpvokt/fb4m7AIKZQCSfSgxNcK5aM1A=; b=LHu0fzukgKPo24/oc0yX2NCiExJAPYBy6/lFDfsEEsjpIStwwqa04pe05GWXwXx8/H cWpGo3+DMI4uwG77/biwTDw/JujFNihdv3BRgE/NulE5fL/xfAL9UYCWQBdklCxWmliF W2cqOp2Eu6kjZc5fG/VEsS5jk4ghZlScE1u+j+pE56eYR7bvpOWXUaDjRllmWUyTG4+r jpBQXRINEN/uCSxN/qNmqZ71WHx1UcaWviHJbucof3TbmY7mnweXkpGQ+TcbMYF5H1tz eslpulBHVDPL802dtaQgdXpmvqgBBbPct1484nNZyI3PdcUJZJqjWl99VzSqTinmzqFZ Q10Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1697733416; x=1698338216; 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=GqqnclXhs4cCCpvokt/fb4m7AIKZQCSfSgxNcK5aM1A=; b=BEhr6MQDGc3v9CygaUgyC96LL5wHMiXahENlUY9T/4SJW1bvooZaGfgCLFFRFJv8FM Oky8jHd5RWM02BFK+ELe/RHdgnVIV5cfTaw5GobTuO/itIa0mFfHQ20Aj2ESXw26rtlQ qGTw/NLBZb7GSH+zFHQCNn1JROWW0AJf6SN+6SaV3Eu77Of3kT6oah3x/Nes1RfJXNoc RCm5IvGtNTrGnJAtIR+eCvvwaccljrZNZ5NMh0loUoSJveMYvjdjcpzkcRUnZBpjWI+2 aylqHR1t7gJn4vI2OgcEsW/RqMhDBBL4Hum3s+/0FtiOgLj59UMM2pLm/B2q5RDzqK8x aQrQ== X-Gm-Message-State: AOJu0Yzn2eG04V+vRAcy4NoCj08s/3ivq7xk9VXYqgFZuLHyNY6IL5Ch iRVFnHcf/KuhdLKQN6YVtpoDP0c/3noUaLIFMSFnmrTlolAQIuedka4= X-Received: by 2002:a17:903:2410:b0:1c1:efe5:cce5 with SMTP id e16-20020a170903241000b001c1efe5cce5mr222146plo.3.1697733415932; Thu, 19 Oct 2023 09:36:55 -0700 (PDT) MIME-Version: 1.0 References: <20231016221900.4031141-1-roman.gushchin@linux.dev> <20231016221900.4031141-3-roman.gushchin@linux.dev> In-Reply-To: From: Shakeel Butt Date: Thu, 19 Oct 2023 09:36:44 -0700 Message-ID: Subject: Re: [PATCH v3 2/5] mm: kmem: add direct objcg pointer to task_struct To: Roman Gushchin Cc: Vlastimil Babka , Andrew Morton , linux-kernel@vger.kernel.org, cgroups@vger.kernel.org, Johannes Weiner , Michal Hocko , Muchun Song , Dennis Zhou , David Rientjes , Naresh Kamboju Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Spam-Status: No, score=-8.4 required=5.0 tests=DKIMWL_WL_MED,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_IN_DEF_DKIM_WL autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on agentk.vger.email Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (agentk.vger.email [0.0.0.0]); Thu, 19 Oct 2023 09:37:08 -0700 (PDT) On Wed, Oct 18, 2023 at 3:38=E2=80=AFPM Roman Gushchin wrote: > > On Wed, Oct 18, 2023 at 11:26:59AM -0700, Shakeel Butt wrote: > > On Wed, Oct 18, 2023 at 10:22=E2=80=AFAM Roman Gushchin > > wrote: > > > > > [...] > > > > > struct mem_cgroup *memcg; > > > > > @@ -3008,19 +3054,26 @@ __always_inline struct obj_cgroup *get_ob= j_cgroup_from_current(void) > > > > > > > > > > if (in_task()) { > > > > > memcg =3D current->active_memcg; > > > > > + if (unlikely(memcg)) > > > > > + goto from_memcg; > > > > > > > > > > - /* Memcg to charge can't be determined. */ > > > > > - if (likely(!memcg) && (!current->mm || (current->flag= s & PF_KTHREAD))) > > > > > > > > The checks for current->mm and PF_KTHREAD seem to be gone completel= y after > > > > the patch, was that intended and why? > > > > > > There is no need for those anymore because it's as cheap or cheaper > > > to check task->objcg for being NULL. Those were primarily used to rul= e out > > > kernel threads allocations early. > > > > > > > I have the same understanding but please correct my suspicions here. > > We can echo the kernel thread's pid to cgroup.procs which have > > PF_NO_SETAFFINITY and thus this will cause the lower bit of the kernel > > thread's task->objcg to be set. Please correct me if I am missing > > something. > > Yes, you seem to be right. It's a gray zone because moving kernel threads= out of > the root cgroup doesn't sound like a good idea, but I agree it's better t= o keep > the old behavior in place. > > Does this fixlet look good to you? > This looks fine. Another option is not to set the bit for such task_structs in fork/attach. > Thanks! > > -- > > diff --git a/mm/memcontrol.c b/mm/memcontrol.c > index 1a2835448028..0b0d2dc7a7d4 100644 > --- a/mm/memcontrol.c > +++ b/mm/memcontrol.c > @@ -3021,6 +3021,10 @@ static struct obj_cgroup *current_objcg_update(voi= d) > old =3D NULL; > } > > + /* If new objcg is NULL, no reason for the second atomic = update. */ > + if (!current->mm || (current->flags & PF_KTHREAD)) > + return NULL; > + > /* > * Release the objcg pointer from the previous iteration, > * if try_cmpxcg() below fails.