d2k17 hackathon report: Martin Pieuchot on moving the network stack out of the big lock
Hackathons are generally good to start or finish something, at StarnbergI managed to do both.
I came to unlock the forwarding path and thanks to the multiple reviewsfrom bluhm@, sashan@ and claudio@ it happened! It started as a boringhackathon because I had to review and fix all the abuses of splnet() inpseudo drivers but then it went very smoothly. I still haven't seena bug report about the unlock and Hrvoje Popovski even reported a 20%forwarding performance increase.Then I started discussing and planning the next big step with claudio@and bluhm@. How to unlock the socket layer? Well it's happening!During the hackathon Claudio sent some diffs to start unlocking pfkeyand routing sockets and since then I started working on TCP receiveside.
In the meantime I had to commit my futex(2) based mutex andcondition variableimplementations for our libpthread. This improves theperformance of threaded applications a lot, which means most of ports.
I also did some cleanups to help towards having MI mutex and kernellock implementations. This should allow all our archs to benefitfrom the lock instrumentations visa@ and jmatthew@ are working on.
Finally I committed some ddb(4) cleanups, mostly CTF related.
Thanks to mpf@ and genua for organizing this hackathon!
Thanks for the report, Martin!
It is worth noting that most, if not all, of the code mentioned here is already doing good work in recent snapshots.