Received: by 2002:a05:6a10:8c0a:0:0:0:0 with SMTP id go10csp4837446pxb; Mon, 15 Feb 2021 02:33:40 -0800 (PST) X-Google-Smtp-Source: ABdhPJwVa7pz5lCIM1b+u6qOi0fMATthoqVk7LP0mVoUP1g1s7aYRIZtq3EH0W0ocVSP1CWLmqzd X-Received: by 2002:a17:906:5292:: with SMTP id c18mr12104459ejm.450.1613385220669; Mon, 15 Feb 2021 02:33:40 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1613385220; cv=none; d=google.com; s=arc-20160816; b=iC6hFhDBUAussjq1ar48fng5WXDbNDMxX0W54fHD7QX79vtQh1kdcRyXz2QmrFm2Ro eVS42men8uyflgq63jJd5V7O1SixZM+GvhhyQXZvdGx7x1F8MvD0cUZpf+fpl9CU8BJQ pf0w9PicOfa03cqYmBOG1AsY1qSaP9Nf13iDatvYwILWHb1onAIGrmxAnm2QaKU7vGKQ gmImjBZmcYxHCPMHRdTafEPz33KP5AZvgPqJ67Trlaa6IMhBUVSBhH+VqDtTQEe4xeYX WTtR4qc3lzfew3ATBuJyQ+2TaMP96c4bxdfgelytGRH6P25q8Q57cdExTi8DrjoL5BV0 0R6Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:in-reply-to:content-disposition:mime-version :references:message-id:subject:cc:to:from:date:dkim-signature; bh=73NkWy0SYucsJms5v/JqP31gNuHokmiIPgdC8knJweg=; b=q4XQKZtHJDcTYhVqG+ml61aevNxWpl3SPRCsnoBvpOa/QjSGVpdLiNZ9x1B5xvG8uI j4J5wT7gyhoJCB8BsQzObR1Tqo3hrI043uPNurqZXSVbuo5imEQfefNNuXtOsp4xZUkO UPMUdvPhhJJ1ad+32w8dC7+AMv7ZV6NbAjJwA2ZNNEssK7zHBF2m2IDAPOaavnJve1zy tbpi1lZF7d29fXm5e0kWObr8HG+DruVsy9I7fp7aa88OuJ3TL+zcj8GDnp4o12n8Qnan 7J8T9BxX37AWmlbuP9UWoA0+CvQ+UHv11jeP2Z/whi9MQ/AwWRe9E938HC7X8XjPHuKK pVLw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.com header.s=susede1 header.b=Tmnax6sJ; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=NONE dis=NONE) header.from=suse.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id a7si2925604edt.403.2021.02.15.02.33.18; Mon, 15 Feb 2021 02:33:40 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.com header.s=susede1 header.b=Tmnax6sJ; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=NONE dis=NONE) header.from=suse.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230219AbhBOK3v (ORCPT + 99 others); Mon, 15 Feb 2021 05:29:51 -0500 Received: from mx2.suse.de ([195.135.220.15]:36324 "EHLO mx2.suse.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230171AbhBOK2f (ORCPT ); Mon, 15 Feb 2021 05:28:35 -0500 X-Virus-Scanned: by amavisd-new at test-mx.suse.de DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1; t=1613384868; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=73NkWy0SYucsJms5v/JqP31gNuHokmiIPgdC8knJweg=; b=Tmnax6sJaIBzZXp3R9sNYEAdnpn1Ugf0Kem4uhGfk88hDPKs3PUvyOkp27ScBspmABWtSQ x1mqyWFbV/M8ApNz3GFqshMqfOREiaOw22s46pasXI8stgyvG/yWdbk5dqb+Zpje2rMnM/ 1s+WpacNOOfge1Mf709dhpF/q0ixbAE= Received: from relay2.suse.de (unknown [195.135.221.27]) by mx2.suse.de (Postfix) with ESMTP id C5CFFAC32; Mon, 15 Feb 2021 10:27:48 +0000 (UTC) Date: Mon, 15 Feb 2021 11:27:47 +0100 From: Michal Hocko To: Muchun Song Cc: Johannes Weiner , Vladimir Davydov , Andrew Morton , Cgroups , Linux Memory Management List , LKML Subject: Re: [External] Re: [PATCH 3/4] mm: memcontrol: bail out early when id is zero Message-ID: References: <20210212170159.32153-1-songmuchun@bytedance.com> <20210212170159.32153-3-songmuchun@bytedance.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Mon 15-02-21 18:09:44, Muchun Song wrote: > On Mon, Feb 15, 2021 at 5:39 PM Michal Hocko wrote: > > > > On Sat 13-02-21 01:01:58, Muchun Song wrote: > > > The memcg ID cannot be zero, but we can pass zero to mem_cgroup_from_id, > > > so idr_find() is pointless and wastes CPU cycles. > > > > Is this possible at all to happen? If not why should we add a test for > > _all_ invocations? > > Yeah, this indeed can happen. If we allocate a new swap cache page > and charge it via mem_cgroup_charge, then the page will uncharge > the swap counter via mem_cgroup_uncharge_swap. When the swap > entry is indeed freed, we will call mem_cgroup_uncharge_swap again, > In this routine, we can pass zero to mem_cgroup_from_id. Right? If the above claim is correct, which I would need to double check then it should have been part of the changelog! Please think of your poor reviewers and the time they have to invest into the review. I would also like to see your waste of CPU cycles argument to be backed by something. Are we talking about cycles due to an additional function call? Is this really something we should even care about? > > > > > > Signed-off-by: Muchun Song > > > --- > > > mm/memcontrol.c | 3 +++ > > > 1 file changed, 3 insertions(+) > > > > > > diff --git a/mm/memcontrol.c b/mm/memcontrol.c > > > index a3f26522765a..68ed4b297c13 100644 > > > --- a/mm/memcontrol.c > > > +++ b/mm/memcontrol.c > > > @@ -5173,6 +5173,9 @@ static inline void mem_cgroup_id_put(struct mem_cgroup *memcg) > > > struct mem_cgroup *mem_cgroup_from_id(unsigned short id) > > > { > > > WARN_ON_ONCE(!rcu_read_lock_held()); > > > + /* The memcg ID cannot be zero. */ > > > + if (id == 0) > > > + return NULL; > > > return idr_find(&mem_cgroup_idr, id); > > > } > > > > > > -- > > > 2.11.0 > > > > -- > > Michal Hocko > > SUSE Labs -- Michal Hocko SUSE Labs