• J
    [SCSI] lpfc 8.1.1 : Add polled-mode support · 875fbdfe
    James.Smart@Emulex.Com 提交于
    - Add functionality to run in polled mode only. Includes run time
      attribute to enable mode.
    - Enable runtime writable hba settings for coallescing and delay parameters
    
    Customers have requested a mode in the driver to run strictly polled.
    This is generally to support an environment where the server is extremely
    loaded and is looking to reclaim some cpu cycles from adapter interrupt
    handling.
    
    This patch adds a new "poll" attribute, and the following behavior:
    
    if value is 0 (default):
      The driver uses the normal method for i/o completion. It uses the
      firmware feature of interrupt coalesing. The firmware allows a
      minimum number of i/o completions before an interrupt, or a maximum
      time delay between interrupts.  By default, the driver sets these
      to no delay (disabled) or 1 i/o - meaning coalescing is disabled.
    
      Attributes were provided to change the coalescing values, but it was
      a module-load time only and global across all adapters.
      This patch allows them to be writable on a per-adapter basis.
    
    if value is 1 :
      Interrupts are left enabled, expecting that the user has tuned the
      interrupt coalescing values. When this setting is enabled, the driver
      will attempt to service completed i/o whenever new i/o is submitted
      to the adapter. If the coalescing values are large, and the i/o
      generation rate steady, an interrupt will be avoided by servicing
      completed i/o prior to the coalescing thresholds kicking in. However,
      if the i/o completion load is high enough or i/o generation slow, the
      coalescion values will ensure that completed i/o is serviced in a timely
      fashion.
    
    if value is 3 :
      Turns off FCP i/o interrupts altogether. The coalescing values now have
      no effect. A new attribute "poll_tmo" (default 10ms) exists to set
      the polling interval for i/o completion. When this setting is enabled,
      the driver will attempt to service completed i/o and restart the
      interval timer whenever new i/o is submitted. This behavior allows for
      servicing of completed i/o sooner than the interval timer, but ensures
      that if no i/o is being issued, then the interval timer will kick in
      to service the outstanding i/o.
    Signed-off-by: NJames Smart <James.Smart@emulex.com>
    Signed-off-by: NJames Bottomley <James.Bottomley@SteelEye.com>
    875fbdfe
lpfc_scsi.c 35.1 KB