[Bug 213257] Crash in IGB driver with ALTQ

bugzilla-noreply at freebsd.org bugzilla-noreply at freebsd.org
Sat Feb 25 20:22:35 UTC 2017


--- Comment #26 from commit-hook at freebsd.org ---
A commit references this bug:

Author: loos
Date: Sat Feb 25 20:21:39 UTC 2017
New revision: 314281
URL: https://svnweb.freebsd.org/changeset/base/314281

  Disable the driver managed queue for igb(4) when the legacy transmit
  interface is used.

  The legacy API (IGB_LEGACY_TX) is enabled when ALTQ is built into kernel.

  As noted in altq(9), it is responsibility of the caller to protect this
  queue against concurrent access and, in the igb case, the interface send
  queue is protected by tx queue mutex.  This obviously cannot protect the
  driver managed queue against concurrent access from different tx queues
  and leads to numerous and quite strange panic traces (usually shown as
  packets disappearing into thin air).

  Improving the locking to cope with this means serialize all access to this
  (single) queue and produces no gain, it actually affects the performance
  quite noticeabily.

  The driver managed queue is already disabled when an ALTQ queue discipline
  is set on interface (in altq_enable()), because the driver managed queue
  can interfere with ALTQ timing (whence the reports that setting an ALTQ
  queue discipline on interface also fixes the issue).

  Disabling this additional queue keeps the ability to use if_start() to
  send packets to individual NIC queues while it simply eliminate the race.

  This is a direct commit to stable/11 as -head driver does not support ALTQ

  PR:           213257
  PR:           212413
  Discussed with:       sbruno
  Tested by:    Konstantin Kormashev <konstantin at netgate.com>
  Obtained from:        pfSense
  Sponsored by: Rubicon Communications, LLC (Netgate)


You are receiving this mail because:
You are the assignee for the bug.

More information about the freebsd-net mailing list