Debugging this in the kernel seemed hard ... so I tried to construct a user level test using the same code from the kernel. See attached. But this fails so catastrophically with any number of threads greater than one, that I suspect I made some mistake cut & pasting the relevant bits of kernel infrastructure. The goal of the program is to have several child processes pounding on a lock while the parent looks in every 5 seconds to see if they are making progress. -Tony
