lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:   Mon, 11 Jul 2022 21:02:07 +0800
From:   Chengming Zhou <zhouchengming@...edance.com>
To:     Peter Zijlstra <peterz@...radead.org>
Cc:     mingo@...hat.com, vincent.guittot@...aro.org,
        dietmar.eggemann@....com, rostedt@...dmis.org, bsegall@...gle.com,
        vschneid@...hat.com, linux-kernel@...r.kernel.org
Subject: Re: [External] Re: [PATCH 3/8] sched/fair: remove redundant
 cpu_cgrp_subsys->fork()

On 2022/7/11 15:35, Peter Zijlstra wrote:
> On Sat, Jul 09, 2022 at 11:13:48PM +0800, Chengming Zhou wrote:
>> We use cpu_cgrp_subsys->fork() to set task group for the new fair task
>> in cgroup_post_fork().
>>
>> Since commit b1e8206582f9 ("sched: Fix yet more sched_fork() races")
>> has already set task group for the new fair task in sched_cgroup_fork(),
>> so cpu_cgrp_subsys->fork() can be removed.
>>
>>   cgroup_can_fork()	--> pin parent's sched_task_group
>>   sched_cgroup_fork()
>>     __set_task_cpu	--> set task group
>>   cgroup_post_fork()
>>     ss->fork() := cpu_cgroup_fork()	--> set again
>>
>> After this patch's change, task_change_group_fair() only need to
>> care about task cgroup migration, make the code much simplier.
> 
> This:
> 
>> This patch also move the task se depth setting to set_task_rq(), which
>> will set correct depth for the new task se in sched_cgroup_fork().
>>
>> The se depth setting in attach_entity_cfs_rq() is removed since
>> set_task_rq() is a better place to do this when task moves across
>> CPUs/groups.
> 
> really should have been it's own patch. And this actually scares me. Did
> you test with priority inheritance bumping the task to FIFO while things
> change?
> 
> This has nothing to do with fork().

Ok, will put this in another patch, so this patch still need this line:

  p->se.depth = tg->se[cpu] ? tg->se[cpu]->depth + 1 : 0;

in set_task_rq() to set depth for new forked task.


I didn't test with "priority inheritance bumping the task to FIFO" case,
do you mean the rt_mutex_setprio() bump a fair task to FIFO?

Sorry, I don't get how removing depth setting in attach_entity_cfs_rq()
affect that. Could you explain more so I can test it?

Thanks.

Powered by blists - more mailing lists