- 02 12月, 2006 16 次提交
-
-
由 Jesse Brandeburg 提交于
Add a new dynamic itr algorithm, with 2 modes, and make it the default operation mode. This greatly reduces latency and increases small packet performance, at the "cost" of some CPU utilization. Bulk traffic throughput is unaffected. The driver can limit the amount of interrupts per second that the adapter will generate for incoming packets. It does this by writing a value to the adapter that is based on the maximum amount of interrupts that the adapter will generate per second. Setting InterruptThrottleRate to a value greater or equal to 100 will program the adapter to send out a maximum of that many interrupts per second, even if more packets have come in. This reduces interrupt load on the system and can lower CPU utilization under heavy load, but will increase latency as packets are not processed as quickly. The default behaviour of the driver previously assumed a static InterruptThrottleRate value of 8000, providing a good fallback value for all traffic types,but lacking in small packet performance and latency. The hardware can handle many more small packets per second however, and for this reason an adaptive interrupt moderation algorithm was implemented. Since 7.3.x, the driver has two adaptive modes (setting 1 or 3) in which it dynamically adjusts the InterruptThrottleRate value based on the traffic that it receives. After determining the type of incoming traffic in the last timeframe, it will adjust the InterruptThrottleRate to an appropriate value for that traffic. The algorithm classifies the incoming traffic every interval into classes. Once the class is determined, the InterruptThrottleRate value is adjusted to suit that traffic type the best. There are three classes defined: "Bulk traffic", for large amounts of packets of normal size; "Low latency", for small amounts of traffic and/or a significant percentage of small packets; and "Lowest latency", for almost completely small packets or minimal traffic. In dynamic conservative mode, the InterruptThrottleRate value is set to 4000 for traffic that falls in class "Bulk traffic". If traffic falls in the "Low latency" or "Lowest latency" class, the InterruptThrottleRate is increased stepwise to 20000. This default mode is suitable for most applications. For situations where low latency is vital such as cluster or grid computing, the algorithm can reduce latency even more when InterruptThrottleRate is set to mode 1. In this mode, which operates the same as mode 3, the InterruptThrottleRate will be increased stepwise to 70000 for traffic in class "Lowest latency". Setting InterruptThrottleRate to 0 turns off any interrupt moderation and may improve small packet latency, but is generally not suitable for bulk throughput traffic. Signed-off-by: NJesse Brandeburg <jesse.brandeburg@intel.com> Cc: Rick Jones <rick.jones2@hp.com> Signed-off-by: NAuke Kok <auke-jan.h.kok@intel.com>
-
由 Jesse Brandeburg 提交于
Add a generic MSI interrupt routine that is IO read-free, speeding up MSI interrupt handling. Signed-off-by: NJesse Brandeburg <jesse.brandeburg@intel.com> Signed-off-by: NAuke Kok <auke-jan.h.kok@intel.com>
-
由 Auke Kok 提交于
This file needs some cleanups and reordering - logically order it so that relevant defines and code are together with properly quoted defaults. Signed-off-by: NAuke Kok <auke-jan.h.kok@intel.com>
-
由 Jesse Brandeburg 提交于
Spec fix: don't set IDE unless we are actually setting the tx int delay time. Signed-off-by: NAuke Kok <auke-jan.h.kok@intel.com> Signed-off-by: NJesse Brandeburg <jesse.brandeburg@intel.com>
-
由 Jeff Kirsher 提交于
ICH8 will soon be followed by newer chipsets bearing the same acronym, thus we remove the '8' and make it independent of the version number in the platform name. Signed-off-by: NJeff Kirsher <jeffrey.t.kirsher@intel.com> Signed-off-by: NAuke Kok <auke-jan.h.kok@intel.com>
-
由 Jesse Brandeburg 提交于
Add a netif_wake/start_queue counter to the ethtool statistics to indicated to the user that their transmit ring could be too small for their workload. Signed-off-by: NJesse brandeburg <jesse.brandeburg@intel.com> Cc: Jamal Hadi <hadi@cyberus.ca> Signed-off-by: NAuke Kok <auke-jan.h.kok@intel.com>
-
由 Auke Kok 提交于
Add support for a Low Profile quad-port PCI-E adapter and 2 variants of the ICH8 systems' onboard NIC's. Signed-off-by: NAuke Kok <auke-jan.h.kok@intel.com>
-
由 Jesse Brandeburg 提交于
This memsetting was added in a paranoid rage debugging TX hangs, but are no longer of importance. We can beef up the performance quite a bit removing them. Make sure to fill in next_to_watch to allow this. Signed-off-by: NAuke Kok <auke-jan.h.kok@intel.com> Signed-off-by: NJesse Brandeburg <jesse.brandeburg@intel.com>
-
由 Auke Kok 提交于
Simplify two calls to skb_put by removing one call to it. Signed-off-by: NAuke Kok <auke-jan.h.kok@intel.com>
-
由 Jeff Kirsher 提交于
Order pci-e capability struct according to bus/pci bus width ordering preserving the hard pci spec numbers. Signed-off-by: NAuke Kok <auke-jan.h.kok@intel.com> Signed-off-by: NJeff Kirsher <jeffrey.t.kirsher@intel.com>
-
由 Jeff Kirsher 提交于
On ich systems during PHY power down to D3, the voltage regulators were left on. Signed-off-by: NAuke Kok <auke-jan.h.kok@intel.com> Signed-off-by: NJeff Kirsher <jeffrey.t.kirsher@intel.com>
-
由 Jesse Brandeburg 提交于
IA64 SMP systems were seeing TX issues with multiple cpu's attempting to write tail registers unordered. This mmiowb() fixes the issue. Signed-off-by: NAuke Kok <auke-jan.h.kok@intel.com> Signed-off-by: NJesse Brandeburg <jesse.brandeburg@intel.com>
-
由 Auke Kok 提交于
Enable early receives on 82573 for jumbo frame performance. Jumbo's are only supported on 82573L with ASPM disabled. Signed-off-by: NAuke Kok <auke-jan.h.kok@intel.com>
-
由 Auke Kok 提交于
Enable TSO for IPV6. All e1000 hardware supports it. This reduces CPU utilizations by 50% when transmitting IPv6 frames. Fix symbol naming enabling ipv6 TSO. Turn off TSO6 for 10/100. Signed-off-by: NAuke Kok <auke-jan.h.kok@intel.com>
-
由 Auke Kok 提交于
Remove debugging code disabling MULR (multiple reads). It's not usable for a wide audience and there are no known problems with MULR right now. Signed-off-by: NAuke Kok <auke-jan.h.kok@intel.com>
-
由 Auke Kok 提交于
Small whitespace changes, comment changes, typo fixes. Signed-off-by: NAuke Kok <auke-jan.h.kok@intel.com>
-
- 30 11月, 2006 1 次提交
-
-
由 Matt LaPlante 提交于
Fix various .c/.h typos in comments (no code changes). Signed-off-by: NMatt LaPlante <kernel1@cyberdogtech.com> Signed-off-by: NAdrian Bunk <bunk@stusta.de>
-
- 07 11月, 2006 1 次提交
-
-
由 Auke Kok 提交于
e1000: Fix suspend/resume powerup and irq allocation From: Auke Kok <auke-jan.h.kok@intel.com> After 7.0.33/2.6.16, e1000 suspend/resume left the user with an enabled device showing garbled statistics and undetermined irq allocation state, where `ifconfig eth0 down` would display `trying to free already freed irq`. Explicitly free and allocate irq as well as powerup the PHY during resume fixes when needed. Signed-off-by: NAuke Kok <auke-jan.h.kok@intel.com> Signed-off-by: NJeff Garzik <jeff@garzik.org>
-
- 25 10月, 2006 7 次提交
-
-
由 Auke Kok 提交于
Significant fixes -> increment driver version. Signed-off-by: NAuke Kok <auke-jan.h.kok@intel.com>
-
由 Jesse Brandeburg 提交于
Move the length (rx_bytes counter) adjustment of 4 bytes down to after the TBI_ACCEPT workaround. Signed-off-by: NJesse Brandeburg <jesse.brandeburg@intel.com> Signed-off-by: NAuke Kok <auke-jan.h.kok@intel.com>
-
由 Jesse Brandeburg 提交于
82571 and newer chispets don't need to limit desc. length to 4kb and can handle 8kb sizes. Signed-off-by: NJesse Brandeburg <jesse.brandeburg@intel.com> Signed-off-by: NAuke Kok <auke-jan.h.kok@intel.com>
-
由 Jesse Brandeburg 提交于
Allocations using alloc_page are taking too long for normal MTU, so use LPE only for jumbo frames. Signed-off-bu: Jesse Brandeburg <jesse.brandeburg@intel.com> Signed-off-by: NAuke Kok <auke-jan.h.kok@intel.com>
-
由 Bruce Allan 提交于
Threshold bitmasks for prefetch, host and writeback were clearing bits that they were not supposed to. The leftmost 2 bits in the byte for each threshold are reserved. Signed-off-by: NBruce Allan <bruce.w.allan@intel.com> Signed-off-by: NAuke Kok <auke-jan.h.kok@intel.com>
-
由 Auke Kok 提交于
Exclude 82542 when setting up WoL. This card does not do WoL at all. Signed-off-by: NAuke Kok <auke-jan.h.kok@intel.com>
-
由 Jesse Brandeburg 提交于
The MANC register should not be read for PCI-E adapters at all, as well as 82543 and older where 82543 would master abort when this register was accessed. Signed-off-by: NAuke Kok <auke-jan.h.kok@intel.com>
-
- 22 10月, 2006 1 次提交
-
-
由 Linas Vepstas 提交于
During the handling of the PCI error recovery sequence, the current e1000 driver erroneously blocks a device reset for any but the first PCI function. It shouldn't -- this is a cut-n-paste error from a different driver (which tolerated only one hardware reset per hardware card). Signed-off-by: NLinas Vepstas <linas@austin.ibm.com> Cc: Jesse Brandeburg <jesse.brandeburg@intel.com> Acked-by: NAuke Kok <auke-jan.h.kok@intel.com> Signed-off-by: NAndrew Morton <akpm@osdl.org> Signed-off-by: NJeff Garzik <jeff@garzik.org>
-
- 05 10月, 2006 1 次提交
-
-
由 David Howells 提交于
Maintain a per-CPU global "struct pt_regs *" variable which can be used instead of passing regs around manually through all ~1800 interrupt handlers in the Linux kernel. The regs pointer is used in few places, but it potentially costs both stack space and code to pass it around. On the FRV arch, removing the regs parameter from all the genirq function results in a 20% speed up of the IRQ exit path (ie: from leaving timer_interrupt() to leaving do_IRQ()). Where appropriate, an arch may override the generic storage facility and do something different with the variable. On FRV, for instance, the address is maintained in GR28 at all times inside the kernel as part of general exception handling. Having looked over the code, it appears that the parameter may be handed down through up to twenty or so layers of functions. Consider a USB character device attached to a USB hub, attached to a USB controller that posts its interrupts through a cascaded auxiliary interrupt controller. A character device driver may want to pass regs to the sysrq handler through the input layer which adds another few layers of parameter passing. I've build this code with allyesconfig for x86_64 and i386. I've runtested the main part of the code on FRV and i386, though I can't test most of the drivers. I've also done partial conversion for powerpc and MIPS - these at least compile with minimal configurations. This will affect all archs. Mostly the changes should be relatively easy. Take do_IRQ(), store the regs pointer at the beginning, saving the old one: struct pt_regs *old_regs = set_irq_regs(regs); And put the old one back at the end: set_irq_regs(old_regs); Don't pass regs through to generic_handle_irq() or __do_IRQ(). In timer_interrupt(), this sort of change will be necessary: - update_process_times(user_mode(regs)); - profile_tick(CPU_PROFILING, regs); + update_process_times(user_mode(get_irq_regs())); + profile_tick(CPU_PROFILING); I'd like to move update_process_times()'s use of get_irq_regs() into itself, except that i386, alone of the archs, uses something other than user_mode(). Some notes on the interrupt handling in the drivers: (*) input_dev() is now gone entirely. The regs pointer is no longer stored in the input_dev struct. (*) finish_unlinks() in drivers/usb/host/ohci-q.c needs checking. It does something different depending on whether it's been supplied with a regs pointer or not. (*) Various IRQ handler function pointers have been moved to type irq_handler_t. Signed-Off-By: NDavid Howells <dhowells@redhat.com> (cherry picked from 1b16e7ac850969f38b375e511e3fa2f474a33867 commit)
-
- 28 9月, 2006 13 次提交
-
-
由 Auke Kok 提交于
e100-3.5.17-k2 e1000-7.2.9-k2 ixgb-1.0.117-k2 Signed-off-by: NAuke Kok <auke-jan.h.kok@intel.com>
-
由 Vasily Averin 提交于
Memory allocated for new tx_ring and rx_ring leaks if e1000_setup_XX_resources() fails.c Also this patch reduces stack usage (removed tx_new and rx_new) and uses kzalloc instead kmalloc+memset(0) Signed-off-by: NVasily Averin <vvs@sw.ru> Signed-off-by: NAndrew Morton <akpm@osdl.org> Signed-off-by: NAuke Kok <auke-jan.h.kok@intel.com>
-
由 Linas Vepstas 提交于
Minor janitorial patch: use #defines for literal values. Signed-off-by: NLinas Vepstas <linas@austin.ibm.com> Signed-off-by: NAuke Kok <auke-jan.h.kok@intel.com>
-
由 Bruce Allan 提交于
Signed-off-by: NBruce Allan <bruce.w.allan@intel.com> Signed-off-by: NAuke Kok <auke-jan.h.kok@intel.com>
-
由 Jeff Kirsher 提交于
Several minor issues exist in the low-level device handling code of e1000. The NVM and EEPROM writing/reading code was updated which fixes unneeded delays, adds proper eeprom aqcuiring steps and handle shadow ram and flash access. Minor cosmetic adjustments to the polarity code adding symbols. PHY reset code mistakenly distinguished between MAC types instead of PHY types, and was fixes. Signed-off-by: NJeff Kirsher <jeffrey.t.kirsher@intel.com> Signed-off-by: NAuke Kok <auke-jan.h.kok@intel.com>
-
由 Auke Kok 提交于
We were plagued by our interrupt handler posting a watchdog event which could occur when our adapter was going down in case a late packet arrived just before e1000_down() finished. This caused the watchdog timer to start after the NIC was down and keep rescheduling it every N seconds. Once the driver unloaded it would panic. Signed-off-by: NAuke Kok <auke-jan.h.kok@intel.com>
-
由 Jeff Kirsher 提交于
Manageability is using one more RAR entry than we anticipated earlier for ICH8. Signed-off-by: NJeff Kirsher <jeffrey.t.kirsher@intel.com> Signed-off-by: NAuke Kok <auke-jan.h.kok@intel.com>
-
由 Jeff Kirsher 提交于
Add code to display the detected PCI-E bus width. Signed-off-by: NJeff Kirsher <jeffrey.t.kirsher@intel.com> Signed-off-by: NAuke Kok <auke-jan.h.kok@intel.com>
-
由 Bruce Allan 提交于
When powering down the PHY (if WoL is disabled) we should only check copper PHY's and handle PCI-E adapters differently. Signed-off-by: NBruce Allan <bruce.w.allan@intel.com> Signed-off-by: NAuke Kok <auke-jan.h.kok@intel.com>
-
由 Jeff Kirsher 提交于
Several hardware bits were set all over the driver and have been consolidated into a single function. Signed-off-by: NJeff Kirsher <jeffrey.t.kirsher@intel.com> Signed-off-by: NAuke Kok <auke-jan.h.kok@intel.com>
-
由 Jesse Brandeburg 提交于
Cc: Herbert Xu <herbert@gondor.apana.org.au> Signed-off-by: NJesse Brandeburg <jesse.brandeburg@intel.com> Signed-off-by: NAuke Kok <auke-jan.h.kok@intel.com>
-
由 Bruce Allan 提交于
Disable jumbo frames for 82573L alltogether and when ASPM is enabled since the hardware has problems with it. For the NICs that do support this in the 82573 series we set ERT_2048 to attempt to receive as much traffic as early as we can. Signed-off-by: NBruce Allan <bruce.w.allan@intel.com> Signed-off-by: NAuke Kok <auke-jan.h.kok@intel.com>
-
由 Jeff Kirsher 提交于
Several manageability capability detection parts hinted towards our code being incomplete for PCI-E. According to spec, we do not want to poke any MANC bits at all. Signed-off-by: NJeff Kirsher <jeffrey.t.kirsher@intel.com> Signed-off-by: NAuke Kok <auke-jan.h.kok@intel.com>
-