Re: [PATCH] #2 VIA Rhine stalls: TxAbort handling

'Roger Luethi' (rl@hellgate.ch)
Fri, 17 May 2002 21:56:03 +0200


> >>do {} while (BYTE_REG_BITS_IS_ON(CR0_TXON,&pMacRegs->byCR0));
> >
> >The driver "waits a little" in the interrupt handler? How long can that
> >take, worst case? I don't know of many places where the kernel stops to
> >wait for an external device to change some value.
>
> It's not that uncommon: Most network drivers busy-wait after stopping
> the tx process during netif_close().

Yeah, but they don't depend on the chip to behave. They will break out at
some point. That's the issue several people pointed out.

> Shing, I don't like the empty body of the while loop. It's not a bug,
> but doesn't that generate a large load on the pci bus?
>
> I've always added an udelay(1), i.e. wait one microsecond, into such loops.

Sounds reasonable. I will add that later. Currently I have no delay,
either, because I want to collect some numbers about how long we expect to
wait.

Roger
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/