Received: by 2002:a25:8b12:0:0:0:0:0 with SMTP id i18csp1119398ybl; Wed, 14 Aug 2019 11:02:22 -0700 (PDT) X-Google-Smtp-Source: APXvYqwYZjUM1ks1X+3oeqLELW5ZkMsGCIMuZwjexiR6cuf2y8XRjyj14b/gDcI7xZ45vCDiMHkt X-Received: by 2002:a65:6216:: with SMTP id d22mr334565pgv.404.1565805742230; Wed, 14 Aug 2019 11:02:22 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1565805742; cv=none; d=google.com; s=arc-20160816; b=MjSOt7ZcH8qOCwHeCxlpDkOPf23U2LNM96ODux+/SxVKo99iXc4hL4Q3AcTbYYWi+q Nn/lA13vok5N88vDjIqdU31KvXZ7vd1SdgmMnEAAAqi4sxxYOdH2qs8BP0E+YUC2QZmE FaG6+rPVGLmutvP2dxVBxZ9hiQ1XM4IJRx41Cwz1TmHNSHEkcDP5XzaOKCLVpJ/BFrgo sF4944QQwQtrKhij34Mp+9ORPEbBEsCJ32DEYghJkV9FPOX+8cX7rM88cFdRc4QuZKau s119eLR1NrBIelg3LNcqlwJV656y4630Lltk/YJlo7mofCVRJ+59ub1kxVaVRkt9f1Pc GkGg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:message-id:date:subject:cc:to:from; bh=2an5HIJzuzkblxd2qf/Q/sGCQPhTDxNmcrjFS32gAsU=; b=vysdy6nnuvF3gpfe+193kGHuqZ3nw2i0TUEuts0zgARs6xfG68pQzWbtYysK4FLLX7 JG2Iwxk54zdG0BqJ65vwtgUx/CpbQbZ5flIpJte1ZtOxQn21tGsj3HWVhDPo+fJJmSQA iDhuK+vciIrN4H6jifZIFZJXZuADCPp1aPckocXVrD/Fdrq+fxxQuR4Zv0bP2Gs42ow9 7p9Uln7Gr6MlQ9qPh8luFB+y1kkNjPqwZahrPVjoxBbiLfnyBKF45au4vvPUF/MwzJaG K9N3wfhbYb9nRD/JdvdkbGzAQotSeSO5B7ywIbtMpF4GL6pwvkN4pjrUl7x/TVGiiGHc VuUA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=alibaba.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id 188si249124pgd.404.2019.08.14.11.02.05; Wed, 14 Aug 2019 11:02:22 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=alibaba.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729017AbfHNSA5 (ORCPT + 99 others); Wed, 14 Aug 2019 14:00:57 -0400 Received: from out30-42.freemail.mail.aliyun.com ([115.124.30.42]:52928 "EHLO out30-42.freemail.mail.aliyun.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726166AbfHNSA5 (ORCPT ); Wed, 14 Aug 2019 14:00:57 -0400 X-Alimail-AntiSpam: AC=PASS;BC=-1|-1;BR=01201311R281e4;CH=green;DM=||false|;FP=0|-1|-1|-1|0|-1|-1|-1;HT=e01e04420;MF=liangyan.peng@linux.alibaba.com;NM=1;PH=DS;RN=5;SR=0;TI=SMTPD_---0TZUYsGz_1565805622; Received: from localhost(mailfrom:liangyan.peng@linux.alibaba.com fp:SMTPD_---0TZUYsGz_1565805622) by smtp.aliyun-inc.com(127.0.0.1); Thu, 15 Aug 2019 02:00:54 +0800 From: Liangyan To: Ingo Molnar , Peter Zijlstra , linux-kernel@vger.kernel.org Cc: shanpeic@linux.alibaba.com, xlpang@linux.alibaba.com Subject: [PATCH] sched/fair: don't assign runtime for throttled cfs_rq Date: Thu, 15 Aug 2019 02:00:21 +0800 Message-Id: <20190814180021.165389-1-liangyan.peng@linux.alibaba.com> X-Mailer: git-send-email 2.14.4.44.g2045bb6 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org do_sched_cfs_period_timer() will refill cfs_b runtime and call distribute_cfs_runtime() to unthrottle cfs_rq, sometimes cfs_b->runtime will allocate all quota to one cfs_rq incorrectly. This will cause other cfs_rq can't get runtime and will be throttled. We find that one throttled cfs_rq has non-negative cfs_rq->runtime_remaining and cause an unexpetced cast from s64 to u64 in snippet: distribute_cfs_runtime() { runtime = -cfs_rq->runtime_remaining + 1; }. This cast will cause that runtime will be a large number and cfs_b->runtime will be subtracted to be zero at last. This commit prevents cfs_rq to be assgined new runtime if it has been throttled to avoid the above incorrect type cast. Signed-off-by: Liangyan --- kernel/sched/fair.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c index 81fd8a2a605b..b14d67d28138 100644 --- a/kernel/sched/fair.c +++ b/kernel/sched/fair.c @@ -4068,6 +4068,8 @@ static void __account_cfs_rq_runtime(struct cfs_rq *cfs_rq, u64 delta_exec) if (likely(cfs_rq->runtime_remaining > 0)) return; + if (cfs_rq->throttled) + return; /* * if we're unable to extend our runtime we resched so that the active * hierarchy can be throttled -- 2.14.4.44.g2045bb6