Author: mav
Date: Sat Jul  9 23:22:44 2016
New Revision: 302508
URL: https://svnweb.freebsd.org/changeset/base/302508

Log:
  Disable SB01BASE_LOCKUP workaround when split BARs disabled.
  
  For some reason hack with sending MSI-X interrupts by writing to remote
  LAPIC memory works only for 32-bit BARs, that are available only if split
  BARs mode is enabled in BIOS.  If it is not, complain loudly and fall back
  to less efficient workaround.

Modified:
  head/sys/dev/ntb/ntb_hw/ntb_hw.c

Modified: head/sys/dev/ntb/ntb_hw/ntb_hw.c
==============================================================================
--- head/sys/dev/ntb/ntb_hw/ntb_hw.c    Sat Jul  9 22:41:21 2016        
(r302507)
+++ head/sys/dev/ntb/ntb_hw/ntb_hw.c    Sat Jul  9 23:22:44 2016        
(r302508)
@@ -450,7 +450,7 @@ ntb_vm_memattr_to_str(vm_memattr_t pat)
        }
 }
 
-static int g_ntb_msix_idx = 0;
+static int g_ntb_msix_idx = 1;
 SYSCTL_INT(_hw_ntb, OID_AUTO, msix_mw_idx, CTLFLAG_RDTUN, &g_ntb_msix_idx,
     0, "Use this memory window to access the peer MSIX message complex on "
     "certain Xeon-based NTB systems, as a workaround for a hardware errata.  "
@@ -1440,6 +1440,16 @@ ntb_detect_xeon(struct ntb_softc *ntb)
        if ((ppd & XEON_PPD_SPLIT_BAR) != 0)
                ntb->features |= NTB_SPLIT_BAR;
 
+       if (HAS_FEATURE(ntb, NTB_SB01BASE_LOCKUP) &&
+           !HAS_FEATURE(ntb, NTB_SPLIT_BAR)) {
+               device_printf(ntb->device,
+                   "Can not apply SB01BASE_LOCKUP workaround "
+                   "with split BARs disabled!\n");
+               device_printf(ntb->device,
+                   "Expect system hangs under heavy NTB traffic!\n");
+               ntb->features &= ~NTB_SB01BASE_LOCKUP;
+       }
+
        /*
         * SDOORBELL errata workaround gets in the way of SB01BASE_LOCKUP
         * errata workaround; only do one at a time.
_______________________________________________
[email protected] mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "[email protected]"

Reply via email to