Re: [RFC PATCH] net:Add basic DWC Ethernet QoS Driver

Arnd Bergmann
2014-05-08T14:26:00Z

On Thursday 08 May 2014 16:18:04 Andreas Irestål wrote:
>
> > > +
> > > + /* Set poll wait timeout to 2 seconds */
> > > + dwc_wait = 200;
> > > +
> > > + while (lp->tx_descs[i].tdes3.wr.own) {
> > > + mdelay(10);
> > > + if (!dwc_wait--)
> > > + break;
> > > + }
> >
> > This is really evil: you are blocking the CPU for up to two seconds!
> > You already mentioned that this is work-in-progress, but I guess it has
> > to be a little better than this and do something that doesn't block
> > out the CPU during TX.
> >
>
> It really is, but a 2s lockout is only happening upon TX failure. Anyway, this
> won't be an issue in the final version, since it won't use polling for TX.

Actually I'd expect a 10ms delay for most packets, which is also too much.

Just for scale: at gigabit speed, a 10 *microsecond* delay would be more
appropriate than a 10 milisecond delay. Anyway, it's not important here as
long as you find a proper solution.

Arnd