Bug in calcru in he 6.2 and 6.3 kernels
kris at FreeBSD.org
Mon Jul 7 21:04:12 UTC 2008
Xin LI wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
> Kris Kennaway wrote:
> | Murty, Ravi wrote:
> |> Hello everyone,
> |> Finally found what my last problem was. We were running top in a loop
> |> and running some workloads that called sched_bind() to bind threads to
> |> specific CPUs. The problem was that (and I am using ULE) sched_bind
> |> calls a function to notify another CPU of a thread and then mi_switches
> |> out of it. Since mi_switch sets the "oncpu" field of the thread to NOCPU
> |> and given the thread is still running, calcru would come in and assert
> |> the fact that "If I am running I better no be on NOCPU".. It appears
> |> that in other parts of the kernel (e.g. forward_signal) this is
> |> acceptable (i.e. it is okay to be running and oncpu is NOCPU).
> |> Thanks
> |> Ravi
> | Don't use ULE in 6.x, it's broken and will not be fixed.
> Perhaps we should mark it as broken using #error? After all the ULE
> changes in 7.x is amazing and we do not want to have users to obtain bad
> impressions from the 6.x versions...
> I am not sure but some explicit warning message saying "ULE has been
> revamped in FreeBSD 7.x+ and will not be MFC'ed back to 6.x, please use
> SCHED_4BSD or upgrade to 7.x." seems to be better than having them to
> pursue the mailing list archive...
I would agree with this; if you're happy running unstable and broken
scheduler code, you're surely able to update to 7.0 and run stable and
working scheduler code :)
We should run it past re@ first since it's a change to a stable branch,
but it's experimental code so I don't see an issue.
More information about the freebsd-hackers