Received: by 2002:a05:6a10:a0d1:0:0:0:0 with SMTP id j17csp806287pxa; Wed, 5 Aug 2020 13:14:35 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwNPqUbnvNXw4zCZWuxmFp0GpozxkIJxZR8eOOyWsRWICBogPI1mbtDJCVivlu5FoS7sBB0 X-Received: by 2002:a17:906:82d5:: with SMTP id a21mr983494ejy.213.1596658475206; Wed, 05 Aug 2020 13:14:35 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1596658475; cv=none; d=google.com; s=arc-20160816; b=Zjfs3xQEtZeXVohEKpD37CmChzvVTbc+zZrm2mzEOiIbfh597V/6E1RIj92mLDwJZ8 2nCJLfKv+awaKUYSfVYuB5XfkveGXmZbdFdxWfrU+cz/5B4rqd4N0laraedV8kr2iV+O eBXGE6JsKmBl9XUwcFibspRkMRjKmIr7c5NiwyYUj7IvwjTBMpbNV1NIP1EAZWK0W5FG SNVImrrFeVy9rnjdiy71FbSBJC0dAZXnfleUq1/Hx8oxAhL/gKVC5jw5IDcUn1CJhC/2 hrTYXREMKhCon7qIXDlgg0q2GdAemqfMRhKhiW8bGaPxXkYS6rQNMiWgrm/FUGiFrkKZ MXPg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding :content-language:in-reply-to:mime-version:user-agent:date :message-id:from:references:cc:to:subject; bh=JbMsakGj3nthMsKOJCcso5V7pSEqec+/eg1ZPlkYZsM=; b=XWO5ChDd5omG6aviHUwT0N3jypeWTd+aUv/Wq8QFCS69t3HAAXRdCbHGc/FjAf88qW EvhB46ys7lTtNI1OF2nvRUo99WRULtKR48rholNOoRhj1/i+qvL89TvmQGDabUkuFYjN iciucVIyc3O+XV56/hExekRmz0xTerD5zroud1clUJn5X92FU9PgM2Rgupf877SzOCTl K+2admhIYV91Gtg3S7wFo/wJhoDfMmqp9opqxjC3WiwXgpmAcZddSjS0deyqWRoaYNkc HZAHFjZ2avDOq5hXUfcyjzzi5zM9xBrFVKv89divi+0OCr6BcELeqGHZXxY0rJEH5QKC QK8g== ARC-Authentication-Results: i=1; mx.google.com; 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 Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id ec6si2033672ejb.54.2020.08.05.13.14.12; Wed, 05 Aug 2020 13:14:35 -0700 (PDT) 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; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729589AbgHEUMD (ORCPT + 99 others); Wed, 5 Aug 2020 16:12:03 -0400 Received: from foss.arm.com ([217.140.110.172]:33112 "EHLO foss.arm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726175AbgHEQ1l (ORCPT ); Wed, 5 Aug 2020 12:27:41 -0400 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id B31C11424; Wed, 5 Aug 2020 09:21:24 -0700 (PDT) Received: from [192.168.178.2] (unknown [172.31.20.19]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 863283F7D7; Wed, 5 Aug 2020 09:21:16 -0700 (PDT) Subject: Re: [PATCH RFC] sched/fair: simplfy the work when reweighting entity To: Jiang Biao , mingo@redhat.com, peterz@infradead.org, juri.lelli@redhat.com, vincent.guittot@linaro.org Cc: rostedt@goodmis.org, bsegall@google.com, mgorman@suse.de, linux-kernel@vger.kernel.org, Jiang Biao References: <20200804071222.31675-1-benbjiang@tencent.com> From: Dietmar Eggemann Message-ID: Date: Wed, 5 Aug 2020 18:21:15 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.10.0 MIME-Version: 1.0 In-Reply-To: <20200804071222.31675-1-benbjiang@tencent.com> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 04/08/2020 09:12, Jiang Biao wrote: > If a se is on_rq when reweighting entity, all we need should be > updating the load of cfs_rq, other dequeue/enqueue works could be > redundant, such as, > * account_numa_dequeue/account_numa_enqueue > * list_del/list_add from/into cfs_tasks > * nr_running--/nr_running++ I think this could make sense. Have you spotted a code path where this gives you a change? I guess only for a task on the rq, so: entity_is_task(se) && se->on_rq > Just simplfy the work. Could be helpful for the hot path. IMHO hotpath is update_cfs_group() -> reweight_entity() but this is only called for '!entity_is_task(se)'. See 3290 if (!gcfs_rq) 3291 return; in update_cfs_group(). The 'entity_is_task(se)' case is set_load_weight(struct task_struct *p, ...) -> reweight_task(p, ...) -> reweight_entity(..., &p->se, ...) but here !se->on_rq. > Signed-off-by: Jiang Biao > --- > kernel/sched/fair.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c > index 04fa8dbcfa4d..18a8fc7bd0de 100644 > --- a/kernel/sched/fair.c > +++ b/kernel/sched/fair.c > @@ -3086,7 +3086,7 @@ static void reweight_entity(struct cfs_rq *cfs_rq, struct sched_entity *se, > /* commit outstanding execution time */ > if (cfs_rq->curr == se) > update_curr(cfs_rq); > - account_entity_dequeue(cfs_rq, se); > + update_load_sub(&cfs_rq->load, se->load.weight); > } > dequeue_load_avg(cfs_rq, se); > > @@ -3102,7 +3102,7 @@ static void reweight_entity(struct cfs_rq *cfs_rq, struct sched_entity *se, > > enqueue_load_avg(cfs_rq, se); > if (se->on_rq) > - account_entity_enqueue(cfs_rq, se); > + update_load_add(&cfs_rq->load, se->load.weight); > > }