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
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
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);
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;
>
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
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
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
>
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
>>
>
>
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);
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;