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
| ||
|
Message-ID: <237bc4c4-101a-4124-b7db-8c461825e22c@linux.ibm.com> Date: Fri, 6 Sep 2024 21:07:37 +0530 From: Madadi Vineeth Reddy <vineethr@...ux.ibm.com> To: Josh Don <joshdon@...gle.com> Cc: Dietmar Eggemann <dietmar.eggemann@....com>, Steven Rostedt <rostedt@...dmis.org>, Ben Segall <bsegall@...gle.com>, Mel Gorman <mgorman@...e.de>, Valentin Schneider <vschneid@...hat.com>, linux-kernel@...r.kernel.org, Waiman Long <longman@...hat.com>, Ingo Molnar <mingo@...hat.com>, Peter Zijlstra <peterz@...radead.org>, Juri Lelli <juri.lelli@...hat.com>, Vincent Guittot <vincent.guittot@...aro.org>, Madadi Vineeth Reddy <vineethr@...ux.ibm.com> Subject: Re: [PATCH] sched: fix warning in sched_setaffinity Hi Josh Don, On 04/09/24 03:03, Josh Don wrote: > Hi Madadi, > > On Sun, Sep 1, 2024 at 7:25 AM Madadi Vineeth Reddy > <vineethr@...ux.ibm.com> wrote: >> >> Hi Josh Don, >> >> On 30/08/24 03:34, Josh Don wrote: >>> Commit 8f9ea86fdf99b added some logic to sched_setaffinity that included >>> a WARN when a per-task affinity assignment races with a cpuset update. >>> >>> Specifically, we can have a race where a cpuset update results in the >>> task affinity no longer being a subset of the cpuset. That's fine; we >>> have a fallback to instead use the cpuset mask. However, we have a WARN >>> set up that will trigger if the cpuset mask has no overlap at all with >>> the requested task affinity. This shouldn't be a warning condition; its >>> trivial to create this condition. >>> >>> Reproduced the warning by the following setup: >>> >>> - $PID inside a cpuset cgroup >>> - another thread repeatedly switching the cpuset cpus from 1-2 to just 1 >>> - another thread repeatedly setting the $PID affinity (via taskset) to 2 >>> >> >> I was testing the patch using the following two scripts run concurrently: >> >> Script 1: >> while true; do >> echo 1 > /sys/fs/cgroup/test_group/cpuset.cpus; >> echo 1-2 > /sys/fs/cgroup/test_group/cpuset.cpus; >> done >> >> Script 2: >> while true; do >> sudo taskset -p 0x2 $$; >> done >> >> However, I am unable to trigger the warning in dmesg on the unpatched kernel. >> I was expecting to see the warning as described, but it doesn't seem to appear. >> >> Additionally, I also tried the following script to increase the chances of >> triggering the race condition: >> >> while true; do >> echo 1 > /sys/fs/cgroup/test_group/cpuset.cpus; >> sudo taskset -p 0x2 $$; >> sleep 0.1; >> echo 1-2 > /sys/fs/cgroup/test_group/cpuset.cpus; >> done >> >> Despite this, the warning still does not appear in dmesg. >> >> Am I missing something in my testing approach, or is there a different setup >> required to reproduce the issue? > > taskset -p 0x2 $$ will affine to cpu 1 :) > > I'd recommend using the '-c' arg to specify the mask as a cpulist, as > it is easier to validate. > > taskset -c -p 2 $$ > Thanks for the clarification. Tested-by: Madadi Vineeth Reddy <vineethr@...ux.ibm.com> Thanks and Regards Madadi Vineeth Reddy >> >> Thanks and Regards >> Madadi Vineeth Reddy >> >>> Fixes: 8f9ea86fdf99b ("sched: Always preserve the user requested cpumask") >>> Signed-off-by: Josh Don <joshdon@...gle.com> >> > > Best, > Josh
Powered by blists - more mailing lists