On 19 June 2017 at 15:53, Martin Pieuchot <[email protected]> wrote: > > On 09/06/17(Fri) 15:54, Martin Pieuchot wrote: > > On 09/06/17(Fri) 00:32, Alexander Bluhm wrote: > > > On Tue, Jun 06, 2017 at 05:15:40PM +0200, Martin Pieuchot wrote: > > > > TCP/UDP are almost ready to run without KERNEL_LOCK() because accesses > > > > to their sockets are serialized via the NET_LOCK(). On the other hand > > > > pfkey and routing sockets accesses still rely on the KERNEL_LOCK(). > > > > > > > > Since we're going to work at the socket layer, first to remove the > > > > KERNEL_LOCK() from routing/pfkey sockets then to split the NET_LOCK(), > > > > we need some tooling to move faster and avoid mistakes. > > > > > > > > Currently all operations on socket buffers are protected by these > > > > locks. I'd like to assert that, at least for all functions used in > > > > TCP/UDP layers. > > > > > > > > The idea is to later change the lock asserted in soassertlocked(). > > > > > > > > Comments, ok? > > > > > > Good idea, mostly OK. > > > > Updated diff: > > > > - use a clever trick in sorflush() to make the new assert happy. > > - convert sbappendrecord() and sbappend() for coherency > > - fix other nits bluhm@ spotted > > - add a missing solock()/sounlock() in filt_sowrite(). Note that > > this doesn't make the whole function mp-safe. > > New version including a fix for kqueue filters.
Looks good to me. OK mikeb
