Re: [PATCH] net: core: fix msleep() is not accurate

From: Yejune Deng
Date: Thu Dec 10 2020 - 21:45:42 EST


Does anyone else have a different opinion? If not,I will adopt it and resubmit.

On Thu, Dec 10, 2020 at 6:19 PM Eric Dumazet <edumazet@xxxxxxxxxx> wrote:
>
> On Thu, Dec 10, 2020 at 10:35 AM Yejune Deng <yejune.deng@xxxxxxxxx> wrote:
> >
> > See Documentation/timers/timers-howto.rst, msleep() is not
> > for (1ms - 20ms), There is a more advanced API is used.
> >
> > Signed-off-by: Yejune Deng <yejune.deng@xxxxxxxxx>
> > ---
> > net/core/dev.c | 4 ++--
> > 1 file changed, 2 insertions(+), 2 deletions(-)
> >
> > diff --git a/net/core/dev.c b/net/core/dev.c
> > index d33099f..6e83ee03 100644
> > --- a/net/core/dev.c
> > +++ b/net/core/dev.c
> > @@ -6726,9 +6726,9 @@ void napi_disable(struct napi_struct *n)
> > set_bit(NAPI_STATE_DISABLE, &n->state);
> >
> > while (test_and_set_bit(NAPI_STATE_SCHED, &n->state))
> > - msleep(1);
> > + fsleep(1000);
> > while (test_and_set_bit(NAPI_STATE_NPSVC, &n->state))
> > - msleep(1);
> > + fsleep(1000);
> >
>
> I would prefer explicit usleep_range().
>
> fsleep() is not common in the kernel, I had to go to its definition.
>
> I would argue that we should use usleep_range(10, 200) to have an
> opportunity to spend less time in napi_disable() in some cases.