On 12/09/16(Mon) 12:12, Vincent Gross wrote: > On Mon, 12 Sep 2016 10:49:03 +0200 > Martin Pieuchot <m...@openbsd.org> wrote: > > > I'd like to use a write lock to serialize accesses to ip_output(). > > This will be used to guarantee that atomic code sections in the > > socket layer stay atomic when the input/forwarding path won't run > > under KERNEL_LOCK(). > > > > For such purpose I'll have to convert some tsleep(9) to an > > msleep(9)-like function operating on a write lock. That's why I'd > > like to introduce rwsleep(9). I did not bother exporting a read > > variant of this function since I don't need it for the moment. > > > > ok? > > MP noob here : > > tsleep() and msleep() check if they are called during autoconfiguration > or after a panic to let interrupts run. There is no such check here. I > get that rwsleep() during autoconf makes little sense, but to err on > the safe side maybe add some kind of assert (if it is not too much of > a pain) ? and what about panic, shouldn't this be handled ?
This is not a MP problem but an old BSD heritage. I don't mind adding it. But that's not a real solution to panic being broken with sleep or locks.