[vortex] Why so many IRQ/sec with 3c905c (Tornado) card?
Donald Becker
becker@scyld.com
Mon Jun 24 15:58:02 2002
On Sat, 22 Jun 2002, Richard Ellis wrote:
> > If you are sharing the IRQ line with other device the interrupt rate
> > is unpredictable, but should be less than the sum of the individual
> > interrupt rates due to coincidental sharing.
> >
> > You can reduce the interrupt rate, at the cost of increased latency.
>
> I ran a test this morning to determine what the IRQ/packet rate was.
>
> The results came out close enough to 1 IRQ per packet TX/RX to basically
> be one IRQ per packet. The number of IRQ's was actually about 23,000
> lower than the number of packets transmitted and received, so for some
> situations, one IRQ handled more than one packet.
>
> For curiosity's sake, what settings would be adjusted to reduce the
> interrupt rate?
Compile with -Dtx_interrupt_mitigation=1
The Tx mitigation could be improved by changing the code to reduce the
chance of draining the Tx queue with
#if defined(tx_interrupt_mitigation)
- prev_entry->status &= cpu_to_le32(~TxIntrUploaded);
+ if (vp->cur_tx - vp->dirty_tx != MIN(8, TX_QUEUE_LEN-2))
+ prev_entry->status &= cpu_to_le32(~TxIntrUploaded);
#endif
You could also add the following change at line 1813
- if (status & DownComplete) {
+ if ((status & DownComplete) ||
+ (vp->capabilities & CapNoTxLength)) {
I don't suggest any Rx interrupt mitigation, as it will increase Rx
latency.
--
Donald Becker becker@scyld.com
Scyld Computing Corporation http://www.scyld.com
410 Severn Ave. Suite 210 Second Generation Beowulf Clusters
Annapolis MD 21403 410-990-9993