Michal Mazurek wrote:
> There is what appears to be a sensless hash in kern_synch.c. It's an
> array of 128 TAILQs which are hashed according to the high bits of the
> wchan. It's possible to write a program that adds kern.maxthread entries
> to one of those TAILQs. Just running chrome with 11 tabs open adds 35
> entries to one TAILQ, while leaving others empty.
> 
> If it doesn't matter that a user program can make a TAILQ very long,
> then the hash is senseless (diff below).
> 
> If it does matter, then it's broken, and a different data structure
> needs to be used. Currently RB trees require all element values to be unique,
> but a version of RB trees with non-unique element values is possible.
> 
> Any thoughts?

I don't think this is a good change. it's going backwards. even if there's 100
things waiting on the same thing, there are other procs that aren't waiting on
it.

Reply via email to