summaryrefslogtreecommitdiffstats
path: root/sys/pci/if_sisreg.h
diff options
context:
space:
mode:
authorphk <phk@FreeBSD.org>2003-12-25 22:14:25 +0000
committerphk <phk@FreeBSD.org>2003-12-25 22:14:25 +0000
commit373c3cc2673a9f0b5b1736e5d3659488232b7794 (patch)
tree8869b71a698b8793086e480969cd6c830023c502 /sys/pci/if_sisreg.h
parent0c849a91f98fd719022adbdb4618575ccb9fcfbe (diff)
downloadFreeBSD-src-373c3cc2673a9f0b5b1736e5d3659488232b7794.zip
FreeBSD-src-373c3cc2673a9f0b5b1736e5d3659488232b7794.tar.gz
Vastly improve performance of IRQ handling on stopped interfaces with
this driver by introducing a flag saying we already stopped the device. On my Soekris net4801, this took a ping -i 0.001 from spending 80% of time in interrupt handling to 10% (approx numbers). This was a particular problem for the net4801 because the tree interfaces share the same interrupt, but it would be a problem for any configuration where an unused if_sis interface shares an interrupt with a busy device. Other drivers may have similar problems. Thanks to: Luigi
Diffstat (limited to 'sys/pci/if_sisreg.h')
-rw-r--r--sys/pci/if_sisreg.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/sys/pci/if_sisreg.h b/sys/pci/if_sisreg.h
index e39bd08..aebc2af 100644
--- a/sys/pci/if_sisreg.h
+++ b/sys/pci/if_sisreg.h
@@ -470,6 +470,7 @@ struct sis_softc {
bus_dma_tag_t sis_tag;
struct sis_ring_data sis_cdata;
struct callout sis_stat_ch;
+ int sis_stopped;
#ifdef DEVICE_POLLING
int rxcycles;
#endif
OpenPOWER on IntegriCloud