1. 02 12月, 2006 2 次提交
    • J
      e1000: add dynamic itr modes · 835bb129
      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>
      835bb129
    • A
      e1000: reorder e1000_param.c · 04fedbfb
      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>
      04fedbfb
  2. 28 9月, 2006 2 次提交
  3. 29 8月, 2006 1 次提交
  4. 28 6月, 2006 3 次提交
  5. 15 4月, 2006 1 次提交
  6. 03 3月, 2006 1 次提交
  7. 19 1月, 2006 1 次提交
  8. 17 1月, 2006 4 次提交
  9. 09 1月, 2006 1 次提交
  10. 04 10月, 2005 1 次提交
  11. 13 5月, 2005 1 次提交
  12. 17 4月, 2005 1 次提交
    • L
      Linux-2.6.12-rc2 · 1da177e4
      Linus Torvalds 提交于
      Initial git repository build. I'm not bothering with the full history,
      even though we have it. We can create a separate "historical" git
      archive of that later if we want to, and in the meantime it's about
      3.2GB when imported into git - space that would just make the early
      git days unnecessarily complicated, when we don't have a lot of good
      infrastructure for it.
      
      Let it rip!
      1da177e4