On Mon, 11 Jul 2022 10:58:28 -1000
Tejun Heo <tj@xxxxxxxxxx> wrote:
I don't think lockdep would be able to track CPU1 -> CPU2 dependency hereShould there be some annotation here that tells lockdep that CPU1 is now
unfortunately.
AFAIU:
CPU0 CPU1 CPU2
// attach task to a different
// cpuset cgroup via sysfs
__acquire(cgroup_threadgroup_rwsem)
// pring up CPU2 online
__acquire(cpu_hotplug_lock)
// wait for CPU2 to come online
blocked on CPU2?
Then this case would be caught by lockdep.
-- Steve
// bringup cpu online
// call cpufreq_online() which tries to create sugov kthread
__acquire(cpu_hotplug_lock) copy_process()
cgroup_can_fork()
cgroup_css_set_fork()
__acquire(cgroup_threadgroup_rwsem)
// blocks forever // blocks forever // blocks forever