Received: by 10.223.176.5 with SMTP id f5csp117551wra; Mon, 5 Feb 2018 18:00:03 -0800 (PST) X-Google-Smtp-Source: AH8x225/rm4Y2ldPhPgKzs9G5n7u6ZqwMY7KCMRGFhAYe3C9Ibav6owthfT6il9wWRGtboYA+2di X-Received: by 2002:a17:902:12f:: with SMTP id 44-v6mr755142plb.403.1517882403746; Mon, 05 Feb 2018 18:00:03 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1517882403; cv=none; d=google.com; s=arc-20160816; b=EftlI3X5E0bdm2Na7hLGbyCHBrT1rLJllWvNmuubez5/Kh7rZQ3YbsYiJHmAAaAFLh /DeUVfdfO43n3dYQmL+DrDbcJHzYzc8JHOqAGuy/HiYTTyD8or+fWUONaY0W7YbFK6TF 0zIgnycsD+IeUK6dD9gC8HpLXro01xrfjmt4yHO8eppZ9RaWZjQlOvpga06oG7xa6EcE 1iBFcg/1jrpEFLa7p4uKqpFiuUiYW/ZebeTbatvGz64xajC2pP7Xp8jJqXOl6qQjbamx 179MD7kqrFY0lDF+V5bFY3bNg2a/a3hknx7Xa4U90xP1iH/Qh2e/Qiez80RhoVkTbZr1 J6Zg== 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 :arc-authentication-results; bh=dYbN+RB6hrJa/HxluNepFSSF5H6q2xNULjd/Uq/Vsk8=; b=jsKMKJqcRCf+a7cYRSRXneqeWR66ALYg7RHE4RCM2ffwNF9RI8V9lfOvdfZll75Br1 i1cpPtc2M/yW3MfckutjT+VAUj92PjsBAsSsts04X/kxqdAY8ijCl+/74Ir1dVPWdwVG MDLwU7TVI0MUGqYd2OVmZHPKMIczA2nI6SIAVOmaoVNZjLKQPWKXerPiOdxNqmV3QZAY LiFny5JQ7sB7Y32Jey8RDMZM5QFgGgIbIb9w/ej9Pu+F7grVUqcChkQLw1EAckm0LQoC d6u7aaJz4oRA3iIdwxBRO6uP0rg9uhnR5ex5iFEJlyic4zW5iY794wRDhJTVOQmEVewq gUnw== 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 Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id a91-v6si827092pld.125.2018.02.05.17.59.48; Mon, 05 Feb 2018 18:00:03 -0800 (PST) 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752470AbeBFB5v (ORCPT + 99 others); Mon, 5 Feb 2018 20:57:51 -0500 Received: from out1.zte.com.cn ([202.103.147.172]:55362 "EHLO mxct.zte.com.cn" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752154AbeBFB5p (ORCPT ); Mon, 5 Feb 2018 20:57:45 -0500 Received: from mse01.zte.com.cn (unknown [10.30.3.20]) by Forcepoint Email with ESMTPS id 05F7DDCE79F58EE9A49A; Tue, 6 Feb 2018 09:57:44 +0800 (CST) Received: from notes_smtp.zte.com.cn ([10.30.1.239]) by mse01.zte.com.cn with ESMTP id w161vbjo040602; Tue, 6 Feb 2018 09:57:37 +0800 (GMT-8) (envelope-from wen.yang99@zte.com.cn) Received: from localhost.localdomain ([10.75.10.200]) by szsmtp06.zte.com.cn (Lotus Domino Release 8.5.3FP6) with ESMTP id 2018020609574069-3775484 ; Tue, 6 Feb 2018 09:57:40 +0800 From: Wen Yang To: mingo@redhat.com, peterz@infradead.org Cc: linux-kernel@vger.kernel.org, jiang.biao2@zte.com.cn, zhong.weidong@zte.com.cn, wen.yang99@zte.com.cn Subject: [PATCH] sched/deadline: Make update_curr_dl() more accurate Date: Tue, 6 Feb 2018 09:55:48 +0800 Message-Id: <1517882148-44599-1-git-send-email-wen.yang99@zte.com.cn> X-Mailer: git-send-email 1.8.3.1 X-MIMETrack: Itemize by SMTP Server on SZSMTP06/server/zte_ltd(Release 8.5.3FP6|November 21, 2013) at 2018-02-06 09:57:40, Serialize by Router on notes_smtp/zte_ltd(Release 9.0.1FP7|August 17, 2016) at 2018-02-06 09:57:34, Serialize complete at 2018-02-06 09:57:34 X-MAIL: mse01.zte.com.cn w161vbjo040602 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org rq->clock_task may be updated between the two calls of rq_clock_task() in update_curr_dl(). Calling rq_clock_task() only once makes it more accurate and efficient, taking update_curr() as reference. Signed-off-by: Wen Yang Reviewed-by: Jiang Biao Suggested-by: Peter Zijlstra --- kernel/sched/deadline.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/kernel/sched/deadline.c b/kernel/sched/deadline.c index 2473736..a32209c 100644 --- a/kernel/sched/deadline.c +++ b/kernel/sched/deadline.c @@ -1115,6 +1115,7 @@ static void update_curr_dl(struct rq *rq) struct task_struct *curr = rq->curr; struct sched_dl_entity *dl_se = &curr->dl; u64 delta_exec; + u64 now; if (!dl_task(curr) || !on_dl_rq(dl_se)) return; @@ -1127,7 +1128,8 @@ static void update_curr_dl(struct rq *rq) * natural solution, but the full ramifications of this * approach need further study. */ - delta_exec = rq_clock_task(rq) - curr->se.exec_start; + now = rq_clock_task(rq); + delta_exec = now - curr->se.exec_start; if (unlikely((s64)delta_exec <= 0)) { if (unlikely(dl_se->dl_yielded)) goto throttle; @@ -1143,7 +1145,7 @@ static void update_curr_dl(struct rq *rq) curr->se.sum_exec_runtime += delta_exec; account_group_exec_runtime(curr, delta_exec); - curr->se.exec_start = rq_clock_task(rq); + curr->se.exec_start = now; cgroup_account_cputime(curr, delta_exec); sched_rt_avg_update(rq, delta_exec); -- 1.8.3.1