Received: by 10.213.65.68 with SMTP id h4csp1707447imn; Thu, 5 Apr 2018 02:19:25 -0700 (PDT) X-Google-Smtp-Source: AIpwx4/2TgxmwX+vJKfYuudQkkJWqTAcTO/8rpa+X2VEEY++o0mH7sYUz79sE6u1gMCGSDCmLFxb X-Received: by 10.101.100.4 with SMTP id a4mr8719880pgv.316.1522919965501; Thu, 05 Apr 2018 02:19:25 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1522919965; cv=none; d=google.com; s=arc-20160816; b=Pqaeh4HLp7Fvr7ygKN08/24reTZf8VnebXxbg8UoMVDrIYC4rOxNjjlcLgWTrcGozR nS1h/R/8SWuNiZWOwu7La0zJYL6rbXyasC0p5x82vusBewbL1rcnf91CM7GfPwUHLkaP QDWk6nLPK0pJbc4jhvKdwAIs0MfhvDrTTUvZ0xRDQU3ZGXkMZVp0rL+wyN5sl5U2ofnl WFCMIVfIo5Uo6RjqvapYK7KZzDfSbmYVtrXlUZZ7ll+rQaSDLXUeEVSfSCOy53vy7G+z o7apR5YwDPDILfuSjP1AsbcmOrBOJ5C/6OMoYM1XiB1eVgdfSR+eHM6JacTjrgCORNTL qLBA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-disposition :content-transfer-encoding:mime-version:robot-unsubscribe:robot-id :git-commit-id:subject:to:references:in-reply-to:reply-to:cc :message-id:from:date:arc-authentication-results; bh=Hpt1dC40yMDe/jRLpRCpNPpUjceo1JHGwaVouIdZfNo=; b=o+bNunH6BNxWkyEOPn5oyKDYilSlnwc1/XSKsXexR0OMTL6BYUyGeJMe0Dd7d6+1ss M/A3J367nQgmfZIWPpYbRv9Of010PQqqy0neY1TLx8B0MNpYpGwRpncnrP1SBUYn1GIb PjNevwNQMXt8jN1yItcXwPQyOkPYplHh82xeabMzIy/MsYMU8ljle4HVy+Ln/Oq6HEpn 4gj3PFQrvUOSjiRbRB4ZyYE6aHkwz+P6+g8HtXXwd5n4linZB93GJxnW5qcN+Rdk7Ywq XD733xKDZph4cxaB3LXMHa2ZYT/neBmYT69Iu97+lEdR1FjRL/mgIVLfuX3blQ7G0M88 b26Q== 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 n4si5795287pfk.48.2018.04.05.02.19.11; Thu, 05 Apr 2018 02:19:25 -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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751772AbeDEJR5 (ORCPT + 99 others); Thu, 5 Apr 2018 05:17:57 -0400 Received: from terminus.zytor.com ([198.137.202.136]:56143 "EHLO terminus.zytor.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751406AbeDEJR4 (ORCPT ); Thu, 5 Apr 2018 05:17:56 -0400 Received: from terminus.zytor.com (localhost [127.0.0.1]) by terminus.zytor.com (8.15.2/8.15.2) with ESMTP id w359HTwL117920; Thu, 5 Apr 2018 02:17:29 -0700 Received: (from tipbot@localhost) by terminus.zytor.com (8.15.2/8.15.2/Submit) id w359HTfO117917; Thu, 5 Apr 2018 02:17:29 -0700 Date: Thu, 5 Apr 2018 02:17:29 -0700 X-Authentication-Warning: terminus.zytor.com: tipbot set sender to tipbot@zytor.com using -f From: tip-bot for Davidlohr Bueso Message-ID: Cc: dave@stgolabs.net, dbueso@suse.de, torvalds@linux-foundation.org, hpa@zytor.com, linux-kernel@vger.kernel.org, peterz@infradead.org, efault@gmx.de, mingo@kernel.org, tglx@linutronix.de Reply-To: peterz@infradead.org, linux-kernel@vger.kernel.org, mingo@kernel.org, efault@gmx.de, tglx@linutronix.de, dave@stgolabs.net, dbueso@suse.de, torvalds@linux-foundation.org, hpa@zytor.com In-Reply-To: <20180404161539.nhadkff2aats74jh@linux-n805> References: <20180404161539.nhadkff2aats74jh@linux-n805> To: linux-tip-commits@vger.kernel.org Subject: [tip:sched/urgent] sched/core: Simplify helpers for rq clock update skip requests Git-Commit-ID: adcc8da8859bee9548bb6d323b1e8de8a7252acd X-Mailer: tip-git-log-daemon Robot-ID: Robot-Unsubscribe: Contact to get blacklisted from these emails MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain; charset=UTF-8 Content-Disposition: inline X-Spam-Status: No, score=-2.9 required=5.0 tests=ALL_TRUSTED,BAYES_00 autolearn=ham autolearn_force=no version=3.4.1 X-Spam-Checker-Version: SpamAssassin 3.4.1 (2015-04-28) on terminus.zytor.com Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Commit-ID: adcc8da8859bee9548bb6d323b1e8de8a7252acd Gitweb: https://git.kernel.org/tip/adcc8da8859bee9548bb6d323b1e8de8a7252acd Author: Davidlohr Bueso AuthorDate: Wed, 4 Apr 2018 09:15:39 -0700 Committer: Ingo Molnar CommitDate: Thu, 5 Apr 2018 09:20:46 +0200 sched/core: Simplify helpers for rq clock update skip requests By renaming the functions we can get rid of the skip parameter and have better code redability. It makes zero sense to have things such as: rq_clock_skip_update(rq, false) When the skip request is in fact not going to happen. Ever. Rename things such that we end up with: rq_clock_skip_update(rq) rq_clock_cancel_skipupdate(rq) Signed-off-by: Davidlohr Bueso Acked-by: Peter Zijlstra (Intel) Cc: Linus Torvalds Cc: Mike Galbraith Cc: Thomas Gleixner Cc: linux-kernel@vger.kernel.org Cc: matt@codeblueprint.co.uk Cc: rostedt@goodmis.org Link: http://lkml.kernel.org/r/20180404161539.nhadkff2aats74jh@linux-n805 Signed-off-by: Ingo Molnar --- kernel/sched/core.c | 2 +- kernel/sched/deadline.c | 2 +- kernel/sched/fair.c | 2 +- kernel/sched/rt.c | 2 +- kernel/sched/sched.h | 17 ++++++++++++----- 5 files changed, 16 insertions(+), 9 deletions(-) diff --git a/kernel/sched/core.c b/kernel/sched/core.c index 28b68995a417..550a07f648b6 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -874,7 +874,7 @@ void check_preempt_curr(struct rq *rq, struct task_struct *p, int flags) * this case, we can save a useless back to back clock update. */ if (task_on_rq_queued(rq->curr) && test_tsk_need_resched(rq->curr)) - rq_clock_skip_update(rq, true); + rq_clock_skip_update(rq); } #ifdef CONFIG_SMP diff --git a/kernel/sched/deadline.c b/kernel/sched/deadline.c index d1c7bf7c7e5b..e7b3008b85bb 100644 --- a/kernel/sched/deadline.c +++ b/kernel/sched/deadline.c @@ -1560,7 +1560,7 @@ static void yield_task_dl(struct rq *rq) * so we don't do microscopic update in schedule() * and double the fastpath cost. */ - rq_clock_skip_update(rq, true); + rq_clock_skip_update(rq); } #ifdef CONFIG_SMP diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c index 0951d1c58d2f..54dc31e7ab9b 100644 --- a/kernel/sched/fair.c +++ b/kernel/sched/fair.c @@ -7089,7 +7089,7 @@ static void yield_task_fair(struct rq *rq) * so we don't do microscopic update in schedule() * and double the fastpath cost. */ - rq_clock_skip_update(rq, true); + rq_clock_skip_update(rq); } set_skip_buddy(se); diff --git a/kernel/sched/rt.c b/kernel/sched/rt.c index ad13e6242481..7aef6b4e885a 100644 --- a/kernel/sched/rt.c +++ b/kernel/sched/rt.c @@ -861,7 +861,7 @@ static int do_sched_rt_period_timer(struct rt_bandwidth *rt_b, int overrun) * 'runtime'. */ if (rt_rq->rt_nr_running && rq->curr == rq->idle) - rq_clock_skip_update(rq, false); + rq_clock_cancel_skipupdate(rq); } if (rt_rq->rt_time || rt_rq->rt_nr_running) idle = 0; diff --git a/kernel/sched/sched.h b/kernel/sched/sched.h index c3deaee7a7a2..15750c222ca2 100644 --- a/kernel/sched/sched.h +++ b/kernel/sched/sched.h @@ -976,13 +976,20 @@ static inline u64 rq_clock_task(struct rq *rq) return rq->clock_task; } -static inline void rq_clock_skip_update(struct rq *rq, bool skip) +static inline void rq_clock_skip_update(struct rq *rq) { lockdep_assert_held(&rq->lock); - if (skip) - rq->clock_update_flags |= RQCF_REQ_SKIP; - else - rq->clock_update_flags &= ~RQCF_REQ_SKIP; + rq->clock_update_flags |= RQCF_REQ_SKIP; +} + +/* + * See rt task throttoling, which is the only time a skip + * request is cancelled. + */ +static inline void rq_clock_cancel_skipupdate(struct rq *rq) +{ + lockdep_assert_held(&rq->lock); + rq->clock_update_flags &= ~RQCF_REQ_SKIP; } struct rq_flags {