Re: push kernel lock inside ifioctl_get()

2022-11-08 Thread Klemens Nanni
On Tue, Nov 08, 2022 at 08:31:16PM +0300, Vitaliy Makkoveev wrote: > No reason to keep kernel lock around if_clone_list() call. Yes, that is why I will remove it in the very next commit. This way there is one "move existing lock, make things clearer" and one "actually remove a lock for a specific

Re: push kernel lock inside ifioctl_get()

2022-11-08 Thread Vitaliy Makkoveev
No reason to keep kernel lock around if_clone_list() call. > On 8 Nov 2022, at 20:27, Klemens Nanni wrote: > > On Tue, Nov 08, 2022 at 08:04:16PM +0300, Vitaliy Makkoveev wrote: >> The `if_cloners’ list is immutable. You don't need kernel lock >> around if_clone_list() call. >> >>> case SIO

Re: push kernel lock inside ifioctl_get()

2022-11-08 Thread Klemens Nanni
On Tue, Nov 08, 2022 at 04:47:23PM +, Martin Pieuchot wrote: > On 08/11/22(Tue) 15:28, Klemens Nanni wrote: > > After this mechanical move, I can unlock the individual SIOCG* in there. > > I'd suggest grabbing the KERNEL_LOCK() after NET_LOCK_SHARED(). > Otherwise you might spin for the first

Re: push kernel lock inside ifioctl_get()

2022-11-08 Thread Klemens Nanni
On Tue, Nov 08, 2022 at 08:04:16PM +0300, Vitaliy Makkoveev wrote: > The `if_cloners’ list is immutable. You don't need kernel lock > around if_clone_list() call. > > > case SIOCIFGCLONERS: > > + KERNEL_LOCK(); > > error = if_clone_list((struct if_clonereq *)data); > > +

Re: push kernel lock inside ifioctl_get()

2022-11-08 Thread Vitaliy Makkoveev
The `if_cloners’ list is immutable. You don't need kernel lock around if_clone_list() call. > case SIOCIFGCLONERS: > + KERNEL_LOCK(); > error = if_clone_list((struct if_clonereq *)data); > + KERNEL_UNLOCK(); > return (error); With this fi

Re: push kernel lock inside ifioctl_get()

2022-11-08 Thread Martin Pieuchot
On 08/11/22(Tue) 15:28, Klemens Nanni wrote: > After this mechanical move, I can unlock the individual SIOCG* in there. I'd suggest grabbing the KERNEL_LOCK() after NET_LOCK_SHARED(). Otherwise you might spin for the first one then release it when going to sleep. > OK? > > Index: if.c >

push kernel lock inside ifioctl_get()

2022-11-08 Thread Klemens Nanni
After this mechanical move, I can unlock the individual SIOCG* in there. OK? Index: if.c === RCS file: /cvs/src/sys/net/if.c,v retrieving revision 1.667 diff -u -p -r1.667 if.c --- if.c8 Nov 2022 15:20:24 - 1.667 ++