That basically means we must never call one of the pool get or put functions with kernel lock. This may be the case currently. But at this stage while we are pushing locks around the network code, I would like to keep it as it is.
Allowing net interrupts during route pool get mutex gains nearly nothing. It makes placing a kernel lock in our transition process harder. bluhm On Thu, Apr 27, 2023 at 02:18:11AM +0300, Vitaliy Makkoveev wrote: > Index: sys/net/route.c > =================================================================== > RCS file: /cvs/src/sys/net/route.c,v > retrieving revision 1.418 > diff -u -p -r1.418 route.c > --- sys/net/route.c 26 Apr 2023 16:09:44 -0000 1.418 > +++ sys/net/route.c 26 Apr 2023 23:00:02 -0000 > @@ -176,7 +176,7 @@ route_init(void) > { > rtcounters = counters_alloc(rts_ncounters); > > - pool_init(&rtentry_pool, sizeof(struct rtentry), 0, IPL_MPFLOOR, 0, > + pool_init(&rtentry_pool, sizeof(struct rtentry), 0, IPL_SOFTNET, 0, > "rtentry", NULL); > > while (rt_hashjitter == 0)