2014-10-14 02:22:55

by Wanpeng Li

[permalink] [raw]
Subject: [PATCH 1/2] sched/deadline: don't need to check SD_BALANCE_FORK

There is no need to do balance during fork since SCHED_DEADLINE
tasks can't fork. This patch avoid the SD_BALANCE_FORK check.

Signed-off-by: Wanpeng Li <[email protected]>
---
kernel/sched/deadline.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/kernel/sched/deadline.c b/kernel/sched/deadline.c
index abfaf3d..f46b7f1 100644
--- a/kernel/sched/deadline.c
+++ b/kernel/sched/deadline.c
@@ -914,7 +914,7 @@ select_task_rq_dl(struct task_struct *p, int cpu, int sd_flag, int flags)
struct task_struct *curr;
struct rq *rq;

- if (sd_flag != SD_BALANCE_WAKE && sd_flag != SD_BALANCE_FORK)
+ if (sd_flag != SD_BALANCE_WAKE)
goto out;

rq = cpu_rq(cpu);
--
1.9.1


2014-10-14 02:23:04

by Wanpeng Li

[permalink] [raw]
Subject: [PATCH 2/2] sched/deadline: don't need to balance during wakeup if wakee is pinned

Use nr_cpus_allowed to bail from select_task_rq() when only one cpu
can be used, and saves some cycles for pinned tasks.

Signed-off-by: Wanpeng Li <[email protected]>
---
kernel/sched/deadline.c | 3 +++
1 file changed, 3 insertions(+)

diff --git a/kernel/sched/deadline.c b/kernel/sched/deadline.c
index f46b7f1..5874bf8 100644
--- a/kernel/sched/deadline.c
+++ b/kernel/sched/deadline.c
@@ -914,6 +914,9 @@ select_task_rq_dl(struct task_struct *p, int cpu, int sd_flag, int flags)
struct task_struct *curr;
struct rq *rq;

+ if (p->nr_cpus_allowed == 1)
+ goto out;
+
if (sd_flag != SD_BALANCE_WAKE)
goto out;

--
1.9.1

2014-10-21 12:19:06

by Wanpeng Li

[permalink] [raw]
Subject: Re: [PATCH 1/2] sched/deadline: don't need to check SD_BALANCE_FORK

Cc Juri,

?? 10/14/14, 10:22 AM, Wanpeng Li д??:
> There is no need to do balance during fork since SCHED_DEADLINE
> tasks can't fork. This patch avoid the SD_BALANCE_FORK check.
>
> Signed-off-by: Wanpeng Li <[email protected]>
> ---
> kernel/sched/deadline.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/kernel/sched/deadline.c b/kernel/sched/deadline.c
> index abfaf3d..f46b7f1 100644
> --- a/kernel/sched/deadline.c
> +++ b/kernel/sched/deadline.c
> @@ -914,7 +914,7 @@ select_task_rq_dl(struct task_struct *p, int cpu, int sd_flag, int flags)
> struct task_struct *curr;
> struct rq *rq;
>
> - if (sd_flag != SD_BALANCE_WAKE && sd_flag != SD_BALANCE_FORK)
> + if (sd_flag != SD_BALANCE_WAKE)
> goto out;
>
> rq = cpu_rq(cpu);

2014-10-21 12:19:46

by Wanpeng Li

[permalink] [raw]
Subject: Re: [PATCH 2/2] sched/deadline: don't need to balance during wakeup if wakee is pinned

Cc Juri,

?? 10/14/14, 10:22 AM, Wanpeng Li д??:
> Use nr_cpus_allowed to bail from select_task_rq() when only one cpu
> can be used, and saves some cycles for pinned tasks.
>
> Signed-off-by: Wanpeng Li <[email protected]>
> ---
> kernel/sched/deadline.c | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/kernel/sched/deadline.c b/kernel/sched/deadline.c
> index f46b7f1..5874bf8 100644
> --- a/kernel/sched/deadline.c
> +++ b/kernel/sched/deadline.c
> @@ -914,6 +914,9 @@ select_task_rq_dl(struct task_struct *p, int cpu, int sd_flag, int flags)
> struct task_struct *curr;
> struct rq *rq;
>
> + if (p->nr_cpus_allowed == 1)
> + goto out;
> +
> if (sd_flag != SD_BALANCE_WAKE)
> goto out;
>

2014-10-21 13:29:29

by Juri Lelli

[permalink] [raw]
Subject: Re: [PATCH 2/2] sched/deadline: don't need to balance during wakeup if wakee is pinned

Hi,

On 21/10/14 13:19, Wanpeng Li wrote:
> Cc Juri,
>
> 于 10/14/14, 10:22 AM, Wanpeng Li 写道:
>> Use nr_cpus_allowed to bail from select_task_rq() when only one cpu
>> can be used, and saves some cycles for pinned tasks.
>>
>> Signed-off-by: Wanpeng Li <[email protected]>
>> ---
>> kernel/sched/deadline.c | 3 +++
>> 1 file changed, 3 insertions(+)
>>
>> diff --git a/kernel/sched/deadline.c b/kernel/sched/deadline.c
>> index f46b7f1..5874bf8 100644
>> --- a/kernel/sched/deadline.c
>> +++ b/kernel/sched/deadline.c
>> @@ -914,6 +914,9 @@ select_task_rq_dl(struct task_struct *p, int cpu, int sd_flag, int flags)
>> struct task_struct *curr;
>> struct rq *rq;
>>
>> + if (p->nr_cpus_allowed == 1)
>> + goto out;
>> +
>> if (sd_flag != SD_BALANCE_WAKE)
>> goto out;
>>

Apart from the encoding of the resend, it looks good, thanks!

Best,

- Juri

2014-10-21 13:38:09

by Juri Lelli

[permalink] [raw]
Subject: Re: [PATCH 1/2] sched/deadline: don't need to check SD_BALANCE_FORK

Hi,

On 21/10/14 13:18, Wanpeng Li wrote:
> Cc Juri,
>
> 于 10/14/14, 10:22 AM, Wanpeng Li 写道:
>> There is no need to do balance during fork since SCHED_DEADLINE
>> tasks can't fork. This patch avoid the SD_BALANCE_FORK check.
>>
>> Signed-off-by: Wanpeng Li <[email protected]>
>> ---
>> kernel/sched/deadline.c | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/kernel/sched/deadline.c b/kernel/sched/deadline.c
>> index abfaf3d..f46b7f1 100644
>> --- a/kernel/sched/deadline.c
>> +++ b/kernel/sched/deadline.c
>> @@ -914,7 +914,7 @@ select_task_rq_dl(struct task_struct *p, int cpu, int sd_flag, int flags)
>> struct task_struct *curr;
>> struct rq *rq;
>>
>> - if (sd_flag != SD_BALANCE_WAKE && sd_flag != SD_BALANCE_FORK)
>> + if (sd_flag != SD_BALANCE_WAKE)
>> goto out;
>>
>> rq = cpu_rq(cpu);

Yes, makes sense.

Thanks,

- Juri

2014-10-21 13:39:36

by Wanpeng Li

[permalink] [raw]
Subject: Re: [PATCH 2/2] sched/deadline: don't need to balance during wakeup if wakee is pinned

Hi Juri,

于 10/21/14, 9:29 PM, Juri Lelli 写道:
> Hi,
>
> On 21/10/14 13:19, Wanpeng Li wrote:
>> Cc Juri,
>>
>> 于 10/14/14, 10:22 AM, Wanpeng Li 写道:
>>> Use nr_cpus_allowed to bail from select_task_rq() when only one cpu
>>> can be used, and saves some cycles for pinned tasks.
>>>
>>> Signed-off-by: Wanpeng Li <[email protected]>
>>> ---
>>> kernel/sched/deadline.c | 3 +++
>>> 1 file changed, 3 insertions(+)
>>>
>>> diff --git a/kernel/sched/deadline.c b/kernel/sched/deadline.c
>>> index f46b7f1..5874bf8 100644
>>> --- a/kernel/sched/deadline.c
>>> +++ b/kernel/sched/deadline.c
>>> @@ -914,6 +914,9 @@ select_task_rq_dl(struct task_struct *p, int cpu, int sd_flag, int flags)
>>> struct task_struct *curr;
>>> struct rq *rq;
>>>
>>> + if (p->nr_cpus_allowed == 1)
>>> + goto out;
>>> +
>>> if (sd_flag != SD_BALANCE_WAKE)
>>> goto out;
>>>
> Apart from the encoding of the resend, it looks good, thanks!

What's your meaning of resend? Do you mean this one?

https://lkml.org/lkml/2014/10/10/425

I'm afraid they are different patches.

Regards,
Wanpeng Li

>
> Best,
>
> - Juri
>

2014-10-21 13:42:42

by Juri Lelli

[permalink] [raw]
Subject: Re: [PATCH 2/2] sched/deadline: don't need to balance during wakeup if wakee is pinned

On 21/10/14 14:39, Wanpeng Li wrote:
> Hi Juri,
>
> 于 10/21/14, 9:29 PM, Juri Lelli 写道:
>> Hi,
>>
>> On 21/10/14 13:19, Wanpeng Li wrote:
>>> Cc Juri,
>>>
>>> 于 10/14/14, 10:22 AM, Wanpeng Li 写道:
>>>> Use nr_cpus_allowed to bail from select_task_rq() when only one cpu
>>>> can be used, and saves some cycles for pinned tasks.
>>>>
>>>> Signed-off-by: Wanpeng Li <[email protected]>
>>>> ---
>>>> kernel/sched/deadline.c | 3 +++
>>>> 1 file changed, 3 insertions(+)
>>>>
>>>> diff --git a/kernel/sched/deadline.c b/kernel/sched/deadline.c
>>>> index f46b7f1..5874bf8 100644
>>>> --- a/kernel/sched/deadline.c
>>>> +++ b/kernel/sched/deadline.c
>>>> @@ -914,6 +914,9 @@ select_task_rq_dl(struct task_struct *p, int cpu, int sd_flag, int flags)
>>>> struct task_struct *curr;
>>>> struct rq *rq;
>>>>
>>>> + if (p->nr_cpus_allowed == 1)
>>>> + goto out;
>>>> +
>>>> if (sd_flag != SD_BALANCE_WAKE)
>>>> goto out;
>>>>
>> Apart from the encoding of the resend, it looks good, thanks!
>
> What's your meaning of resend? Do you mean this one?

Nope. I just meant that I received your "Cc Juri" encoded as Chinese
Simplified. But, I guess the original lkml patch looks good. Sorry for
the confusion :).

Best,

- Juri

>
> https://lkml.org/lkml/2014/10/10/425
>
> I'm afraid they are different patches.
>
> Regards,
> Wanpeng Li
>
>>
>> Best,
>>
>> - Juri
>>
>
>

Subject: [tip:sched/core] sched/deadline: Don't check SD_BALANCE_FORK

Commit-ID: 1d7e974cbf2fce2683f34ff33c173fd7ef5478c7
Gitweb: http://git.kernel.org/tip/1d7e974cbf2fce2683f34ff33c173fd7ef5478c7
Author: Wanpeng Li <[email protected]>
AuthorDate: Tue, 14 Oct 2014 10:22:39 +0800
Committer: Ingo Molnar <[email protected]>
CommitDate: Tue, 28 Oct 2014 10:48:01 +0100

sched/deadline: Don't check SD_BALANCE_FORK

There is no need to do balance during fork since SCHED_DEADLINE
tasks can't fork. This patch avoid the SD_BALANCE_FORK check.

Signed-off-by: Wanpeng Li <[email protected]>
Signed-off-by: Peter Zijlstra (Intel) <[email protected]>
Link: http://lkml.kernel.org/r/[email protected]
Cc: Linus Torvalds <[email protected]>
Signed-off-by: Ingo Molnar <[email protected]>
---
kernel/sched/deadline.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/kernel/sched/deadline.c b/kernel/sched/deadline.c
index 8aaa971..fab3bf8 100644
--- a/kernel/sched/deadline.c
+++ b/kernel/sched/deadline.c
@@ -933,7 +933,7 @@ select_task_rq_dl(struct task_struct *p, int cpu, int sd_flag, int flags)
struct task_struct *curr;
struct rq *rq;

- if (sd_flag != SD_BALANCE_WAKE && sd_flag != SD_BALANCE_FORK)
+ if (sd_flag != SD_BALANCE_WAKE)
goto out;

rq = cpu_rq(cpu);

Subject: [tip:sched/core] sched/deadline: Don' t balance during wakeup if wakee is pinned

Commit-ID: f4e9d94a5bf60193d45f92b136e3d166be3ec8d5
Gitweb: http://git.kernel.org/tip/f4e9d94a5bf60193d45f92b136e3d166be3ec8d5
Author: Wanpeng Li <[email protected]>
AuthorDate: Tue, 14 Oct 2014 10:22:40 +0800
Committer: Ingo Molnar <[email protected]>
CommitDate: Tue, 28 Oct 2014 10:48:02 +0100

sched/deadline: Don't balance during wakeup if wakee is pinned

Use nr_cpus_allowed to bail from select_task_rq() when only one cpu
can be used, and saves some cycles for pinned tasks.

Signed-off-by: Wanpeng Li <[email protected]>
Signed-off-by: Peter Zijlstra (Intel) <[email protected]>
Cc: Linus Torvalds <[email protected]>
Link: http://lkml.kernel.org/r/[email protected]
Signed-off-by: Ingo Molnar <[email protected]>
---
kernel/sched/deadline.c | 3 +++
1 file changed, 3 insertions(+)

diff --git a/kernel/sched/deadline.c b/kernel/sched/deadline.c
index fab3bf8..2e31a30 100644
--- a/kernel/sched/deadline.c
+++ b/kernel/sched/deadline.c
@@ -933,6 +933,9 @@ select_task_rq_dl(struct task_struct *p, int cpu, int sd_flag, int flags)
struct task_struct *curr;
struct rq *rq;

+ if (p->nr_cpus_allowed == 1)
+ goto out;
+
if (sd_flag != SD_BALANCE_WAKE)
goto out;