On 20/05/2021 20:03, Will Deacon wrote: > Hi Dietmar, > > On Thu, May 20, 2021 at 07:55:27PM +0200, Dietmar Eggemann wrote: >> On 20/05/2021 18:00, Daniel Bristot de Oliveira wrote: >>> On 5/20/21 5:06 PM, Dietmar Eggemann wrote: >>>> (1) # chrt -d -T 5000000 -P 16666666 0 ./32bit_app >>>> >>>> (2) # ./32bit_app & >>>> >>>> # chrt -d -T 5000000 -P 16666666 -p 0 pid_of(32bit_app) >>>> >>>> >>>> Wouldn't the behaviour of (1) and (2) be different w/o this patch? >>>> >>>> In (1) __sched_setscheduler() happens before execve so it operates on >>>> p->cpus_ptr equal span. >>>> >>>> In (2) span != p->cpus_ptr so DL AC will fail. >>>> >>> >>> As far as I got, the case (1) would be spitted in two steps: >>> >>> - __sched_setscheduler() will work, then >>> - execv() would fail because (span != p->cpus_ptr) >>> >>> So... at the end, both (1) and (2) would result in a failure... >>> >>> am I missing something? >> >> Not sure. Reading this thread I was under the assumption that the only >> change would be the drop of this patch. But I assume there is also this >> 'if DL AC is on then let sched_setattr() fail for this 32bit task'. >> >> IMHO, the current patch-stack w/o this patch should let (1) succeed with >> DL AC. > > That's what I'm proposing, yes, but others (including Daniel) prefer to > fail the execve(). See my other reply just now for a summary [1]. [...] Thanks, Will ... Now I understand. Or at least I think I do ;-) > [1] https://lore.kernel.org/lkml/20210520180138.GA10523@willie-the-truck/T/#u