Re: soreceive() with shared netlock for raw sockets

2022-09-12 Thread Alexander Bluhm
On Sat, Sep 10, 2022 at 10:49:40PM +0300, Vitaliy Makkoveev wrote: > As it was done for udp and divert sockets. I have no stess test for parallel receive yet. Diff looks reasonable. OK bluhm@ > Index: sys/netinet/ip_var.h > === > RC

soreceive() with shared netlock for raw sockets

2022-09-10 Thread Vitaliy Makkoveev
As it was done for udp and divert sockets. Index: sys/netinet/ip_var.h === RCS file: /cvs/src/sys/netinet/ip_var.h,v retrieving revision 1.104 diff -u -p -r1.104 ip_var.h --- sys/netinet/ip_var.h3 Sep 2022 22:43:38 -

Re: soreceive with shared netlock

2022-09-03 Thread Vitaliy Makkoveev
> On 3 Sep 2022, at 23:47, Alexander Bluhm wrote: > > Hi, > > The next small step towards parallel network stack is to use shared > netlock in soreceive(). The UDP and IP divert layer provide locking > of the PCB. If that is possible, use shared instead of exclusive > netlock in soreceive().

Re: soreceive with shared netlock

2022-09-03 Thread Vitaliy Makkoveev
> On 4 Sep 2022, at 00:56, Alexander Bluhm wrote: > > On Sat, Sep 03, 2022 at 11:20:17PM +0200, Hrvoje Popovski wrote: >> with this diff while booting I'm getting this witness trace > > It is not related to soreceive() diff, but TCP diff I commited > before. I forgot a mutex initalization which

Re: soreceive with shared netlock

2022-09-03 Thread Alexander Bluhm
On Sat, Sep 03, 2022 at 11:20:17PM +0200, Hrvoje Popovski wrote: > with this diff while booting I'm getting this witness trace It is not related to soreceive() diff, but TCP diff I commited before. I forgot a mutex initalization which is fatal with witness. Fix below. bluhm Index: netinet/tcp_s

Re: soreceive with shared netlock

2022-09-03 Thread Hrvoje Popovski
On 3.9.2022. 22:47, Alexander Bluhm wrote: > Hi, > > The next small step towards parallel network stack is to use shared > netlock in soreceive(). The UDP and IP divert layer provide locking > of the PCB. If that is possible, use shared instead of exclusive > netlock in soreceive(). The PCB mut

soreceive with shared netlock

2022-09-03 Thread Alexander Bluhm
Hi, The next small step towards parallel network stack is to use shared netlock in soreceive(). The UDP and IP divert layer provide locking of the PCB. If that is possible, use shared instead of exclusive netlock in soreceive(). The PCB mutex provides a per socket lock against multiple soreceiv