From: Matt Fleming <matt@codeblueprint.co.uk>
To: Yuyang Du <yuyang.du@intel.com>
Cc: peterz@infradead.org, mingo@kernel.org,
linux-kernel@vger.kernel.org, umgwanakikbuti@gmail.com,
bsegall@google.com, pjt@google.com, morten.rasmussen@arm.com,
vincent.guittot@linaro.org, dietmar.eggemann@arm.com
Subject: Re: [RFC PATCH 08/11] sched: Remove SD_WAKE_AFFINE flag and replace it with SD_BALANCE_WAKE
Date: Thu, 23 Jun 2016 14:04:33 +0100 [thread overview]
Message-ID: <20160623130433.GF8415@codeblueprint.co.uk> (raw)
In-Reply-To: <1466041775-4528-9-git-send-email-yuyang.du@intel.com>
On Thu, 16 Jun, at 09:49:32AM, Yuyang Du wrote:
> SD_BALANCE_{FORK|EXEC|WAKE} flags are for select_task_rq() to select a
> CPU to run a new task or a waking task. SD_WAKE_AFFINE is a flag to
> try selecting the waker CPU to run the waking task.
>
> SD_BALANCE_WAKE is not a sched_domain flag, but SD_WAKE_AFFINE is.
> Conceptually, SD_BALANCE_WAKE should be a sched_domain flag just like
> the other two, so we first make SD_BALANCE_WAKE a sched_domain flag.
>
> Moreover, the semantic of SD_WAKE_AFFINE is included in the semantic
> of SD_BALANCE_WAKE. When in wakeup balancing, it is natual to try
> the waker CPU if the waker CPU is allowed, in that sense, we don't
> need a separate flag to specify it, not mentioning that SD_WAKE_AFFINE
> is almost enabled in every sched_domains.
>
> With the above combined, there is no need to have SD_WAKE_AFFINE, so
> we remove and replace it with SD_BALANCE_WAKE. This can be accomplished
> without any functionality change.
>
> Signed-off-by: Yuyang Du <yuyang.du@intel.com>
> ---
> include/linux/sched.h | 1 -
> kernel/sched/core.c | 7 +++----
> kernel/sched/deadline.c | 2 +-
> kernel/sched/fair.c | 9 ++++-----
> kernel/sched/rt.c | 2 +-
> 5 files changed, 9 insertions(+), 12 deletions(-)
>
> diff --git a/include/linux/sched.h b/include/linux/sched.h
> index d74e757..0803abd 100644
> --- a/include/linux/sched.h
> +++ b/include/linux/sched.h
> @@ -1014,7 +1014,6 @@ extern void wake_up_q(struct wake_q_head *head);
> #define SD_BALANCE_EXEC 0x0004 /* Balance on exec */
> #define SD_BALANCE_FORK 0x0008 /* Balance on fork, clone */
> #define SD_BALANCE_WAKE 0x0010 /* Balance on wakeup */
> -#define SD_WAKE_AFFINE 0x0020 /* Wake task to waking CPU */
> #define SD_SHARE_CPUCAPACITY 0x0080 /* Domain members share cpu power */
> #define SD_SHARE_POWERDOMAIN 0x0100 /* Domain members share power domain */
> #define SD_SHARE_PKG_RESOURCES 0x0200 /* Domain members share cpu pkg resources */
I'm curious - doesn't this break userspace ABI? These flags are
exported via procfs, so I would have assumed removing or changing the
value of any of these constants would be forbidden.
next prev parent reply other threads:[~2016-06-23 13:04 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-06-16 1:49 [RFC PATCH 00/11] Refactor select_task_rq_fair() Yuyang Du
2016-06-16 1:49 ` [RFC PATCH 01/11] sched: Remove unused @cpu argument from destroy_sched_domain*() Yuyang Du
2016-06-16 1:49 ` [RFC PATCH 02/11] sched: Restructure destroy_sched_domain() Yuyang Du
2016-06-16 1:49 ` [RFC PATCH 03/11] sched: Introduce struct sched_domain_shared Yuyang Du
2016-06-16 1:49 ` [RFC PATCH 04/11] sched: Replace sd_busy/nr_busy_cpus with sched_domain_shared Yuyang Du
2016-06-16 1:49 ` [RFC PATCH 05/11] sched: Rewrite select_idle_siblings() Yuyang Du
2016-06-16 1:49 ` [RFC PATCH 06/11] sched: Optimize SCHED_SMT Yuyang Du
2016-06-16 1:49 ` [RFC PATCH 07/11] sched: Clean up SD_BALANCE_WAKE flags in sched domain build-up Yuyang Du
2016-06-16 1:49 ` [RFC PATCH 08/11] sched: Remove SD_WAKE_AFFINE flag and replace it with SD_BALANCE_WAKE Yuyang Du
2016-06-23 13:04 ` Matt Fleming [this message]
2016-06-23 13:54 ` Peter Zijlstra
2016-06-23 14:06 ` Mike Galbraith
2016-06-16 1:49 ` [RFC PATCH 09/11] sched: Add per CPU variable sd_socket_id to specify the CPU's socket Yuyang Du
2016-06-16 1:49 ` [RFC PATCH 10/11] sched: Add sched_llc_complete static key to specify whether the LLC covers all CPUs Yuyang Du
2016-06-16 1:49 ` [RFC PATCH 11/11] sched/fair: Refactor select_task_rq_fair() Yuyang Du
2016-06-16 1:57 ` Yuyang Du
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20160623130433.GF8415@codeblueprint.co.uk \
--to=matt@codeblueprint.co.uk \
--cc=bsegall@google.com \
--cc=dietmar.eggemann@arm.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@kernel.org \
--cc=morten.rasmussen@arm.com \
--cc=peterz@infradead.org \
--cc=pjt@google.com \
--cc=umgwanakikbuti@gmail.com \
--cc=vincent.guittot@linaro.org \
--cc=yuyang.du@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.