It has not been an easy task, but we made it ! I say "we" because
this could not have been possible without the help of bluhm@ and his
awesome automated regression test setup .
The first goal of the NET_LOCK() is to ensure no unwanted sleeping point
are introduced when sending network packets from the socket layer. But
during this hackathon I discussed it with dlg@, guenther@, claudio@ and
deraadt@, and we came up with a plan to un-KERNEL_LOCK() the socket layer. Of
course the NET_LOCK() is part of this plan.
Since I had many machines available, I decided to start fuzzing our USB
stack again. The first problem I found is that my USB cable was dead,
which explained why I didn't manage to make the fuzzer work last time I
tried. After the first day fuzzing common drivers (hub, hid, keyboard)
without finding any panic I decided to take a look at fuzzing uaudio(4).
It found so many panics in the horrible custom descriptor parser that I
ran away from USB for this hackathon.
Then I spent some time in librthread. I wrote an alternative mutex and
condition variable implementation based on CAS and futex(2). Once they
passed all our base regress I started porting more tests . Thanks to
these tests I found an unfixable flaw in my condition variable code, so
I started porting musl 's implementation.
At the same time I had a nice chat with tb@ about creating a tool to
generate a dynamic graph based on kdump(1)'s output. The would help
us a lot to analyze what processes are doing over a long period of
This led me back in the scheduler code where I found that for some
workload CPUs are playing ping-pong . I'm looking for test reports!
Finally I implemented Dynamic Profiling for i386, just like I did for
amd64  at g2k16. This combined to ISC-licensed CTF  tools 
should allow us to build a dynamic tracing framework. Stay tuned!
I'd like to thanks dlg@ and jmatthew@ for organising yet another great
spider hackathon! It was awesome.