NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: kern/40419 (processor sets broken on 5.99.6)



> >Number:         40419
> >Category:       kern
> >Synopsis:       processor sets broken on 5.99.6
>
> ...
> 
> # cpuctl list     
> Num  HwId Unbound LWPs Interrupts     Last change
> ---- ---- ------------ -------------- ----------------------------
> 0    0    online       intr           Fri Jan 16 17:30:28 2009
> 1    1    online       intr           Fri Jan 16 17:30:28 2009
> # psrset
> system processor set 0: processor(s) 0
> user processor set 1: processor(s) 1
> # psrset -e 1 top | grep top
>   561 root      43    0   752K 1116K CPU/0      0:00  0.00%  0.00% top

What happens later?

I have committed one fix (please review), sched_takecpu() would keep the
thread on local CPU if it idles. Now function is strict. But even with
previous behaviour, after some load process should have been migrated to
the appropriate CPU (and then it should not be able to get out).

However, in your test case, application might still be on local CPU,
because curlwp (LSONRPOC) might not migrate that fast. We can do yield()
in sys__pset_bind(). Do you think it is worth?

Otherwise, it seems to be working for me.

-- 
Best regards,
Mindaugas


Home | Main Index | Thread Index | Old Index