diff options
author | mav <mav@FreeBSD.org> | 2008-12-16 16:04:40 +0000 |
---|---|---|
committer | mav <mav@FreeBSD.org> | 2008-12-16 16:04:40 +0000 |
commit | 852a86e463c35b7c2249a10881c65659d73f9ecc (patch) | |
tree | d87c973375930c091a7c9d2897e8f106b7c02a94 /sys/dev/ata/ata-pci.h | |
parent | f77e2d29f5d4525d4d638f07c17d5a342dd2569b (diff) | |
download | FreeBSD-src-852a86e463c35b7c2249a10881c65659d73f9ecc.zip FreeBSD-src-852a86e463c35b7c2249a10881c65659d73f9ecc.tar.gz |
Call ata_legacy() only once on attach and save it's result. Scanning PCI
configuration registers (which are not going to change) on every interrupt
looks expensive, especially when interrupt is shared. Profiling shows me 3%
of time spent by atapci0 on pure network load due to IRQ sharing with em0.
Diffstat (limited to 'sys/dev/ata/ata-pci.h')
-rw-r--r-- | sys/dev/ata/ata-pci.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/sys/dev/ata/ata-pci.h b/sys/dev/ata/ata-pci.h index 0cbb0d5..e5edd87 100644 --- a/sys/dev/ata/ata-pci.h +++ b/sys/dev/ata/ata-pci.h @@ -48,6 +48,7 @@ struct ata_pci_controller { struct resource *r_irq; void *handle; struct ata_chip_id *chip; + int legacy; int channels; int (*chipinit)(device_t); int (*suspend)(device_t); |