Found a race in an audit of one of the pagemap_lru_lock
breakups that appears to be common to all of them, but it's
unclear whether it's the only one left. After the
pagemap_lru_lock was broken up the pte_chain_freelist, which
is global, was left naked. Apparently after I survived that
one then one of the init_idle() races came out and I ran out
of time on the machine.
Discovered in some additional testing that the incomplete
gamma function for the chi^2 CDF had convergence problems
when either a or x > 7, so it appears that will need the
continued fraction expansion for that domain. The
Kolmogorov-Smirnov CDF code is spewing complete garbage, and
the other CDF's are on the back burner.
The queue is propagating things upward and downward and
finding the right levels to put things at, but the
stratified trees that are supposed to be what gets bubbled
around still need to get plugged in. There appear to be some
bugs with respect to using the right chain field at the
right time with them. Basically when it's time to bubble the
things down from one level to another, or when things need
to be chained off each other by insertion in a tree of a
deeper nesting level, something is getting the nesting level
of the tree node wrong.
Found two more classes of bugs in another audit of the
waitqueue code. One is that the leader against which other
waiters on an object are chained is not actually considered
an element of the list by the list_head routines, but rather
only a sentinel, which caused the reference to it to be
lost, and the other is that some of the code assuming it had
a unique reference to the queue wasn't actually removing it
from the comb list.
Some more people I've never heard of chimed in on the
hashing thread and put in a few words to perpetuate the
confusion between "random" and "uniformly distributed". This
is never going to end. I didn't actually bother answering
the post because I'm going to hold out until I have some
hashtable analysis code others can use to reproduce my
results and speak in numbers. As long as it's rooted in
terminology and anecdotes no one will ever admit what's
going on.