[hermon] Limit link poll frequency in DOWN state

Some older versions of the hardware (and/or firmware) do not report an
event when an Infiniband link reaches the INIT state.  The driver
works around this missing event by calling ib_smc_update() on each
event queue poll while the link is in the DOWN state.

Commit 6cb12ee ("[hermon] Increase polling rate for command
completions") addressed this by speeding up the time taken to issue
each command invoked by ib_smc_update().  Experimentation shows that
the impact is still significant: for example, in a situation where an
unplugged port is opened, the throughput on the other port can be
reduced by over 99%.

Fix by throttling the rate at which link polling is attempted.

Debugged-by: Christian Iversen <ci@iversenit.dk>
Signed-off-by: Michael Brown <mcb30@ipxe.org>
2 files changed
tree: 4957930e4abe8c053559ce3d2955b607d862dd3f
  1. contrib/
  2. src/
  3. .travis.yml
  4. COPYING
  5. COPYING.GPLv2
  6. COPYING.UBDL
  7. README