Subject: Re: Execution of NIC driver
To: =?iso-8859-1?Q?P=E5l_Halvorsen?= <paalh@unik.no>
From: Manuel Bouyer <bouyer@antioche.lip6.fr>
List: tech-net
Date: 06/29/2001 16:01:40
On Fri, Jun 29, 2001 at 03:18:12PM +0200, Pål Halvorsen wrote:
> Hi!
> 
> I have a question regarding the execution of the NIC (ti) driver.
>  
> The execution of the driver goes in an loop as long as there are elements
> in the queue. However, how is this scheduled on the CPU?
> 
> Is the execution preempted when the transmit ring on the card is full and
> when later reaching a certain "empty"-level restarted by a new interrupt, 
> or....?

I didn't read this driver especially, but usually this loop runs with interrupt
disabled. It loops until the the transmit ring is full or until the
queue is empty. Then interrupt are enabled, and the loop is run again at
the next interrupt (see the OACTIVE flag too).

Transmit interrupts are driver and/or adapter-dependant: some emit an
interrupt as soon as a packet has been transmitted, some emmit it once
the TX ring is empty ...

--
Manuel Bouyer, LIP6, Universite Paris VI.           Manuel.Bouyer@lip6.fr
--