Author: gallatin
Date: Tue May 15 23:55:38 2018
New Revision: 333655
URL: https://svnweb.freebsd.org/changeset/base/333655

Log:
  Unhook DEBUG_BUFRING from INVARIANTS
  
  Some of the DEBUG_BUFRING checks are racy, and can lead to
  spurious assertions when run under high load.  Unhook these
  from INVARIANTS until the author can fix or remove them.
  
  Reviewed by:  mmacy
  Sponsored by: Netflix

Modified:
  head/sys/sys/buf_ring.h

Modified: head/sys/sys/buf_ring.h
==============================================================================
--- head/sys/sys/buf_ring.h     Tue May 15 23:46:49 2018        (r333654)
+++ head/sys/sys/buf_ring.h     Tue May 15 23:55:38 2018        (r333655)
@@ -34,10 +34,6 @@
 
 #include <machine/cpu.h>
 
-#if defined(INVARIANTS) && !defined(DEBUG_BUFRING)
-#define DEBUG_BUFRING 1
-#endif
-
 #ifdef DEBUG_BUFRING
 #include <sys/lock.h>
 #include <sys/mutex.h>
@@ -69,6 +65,12 @@ buf_ring_enqueue(struct buf_ring *br, void *buf)
        uint32_t prod_head, prod_next, cons_tail;
 #ifdef DEBUG_BUFRING
        int i;
+
+       /*
+        * Note: It is possible to encounter an mbuf that was removed
+        * via drbr_peek(), and then re-added via drbr_putback() and
+        * trigger a spurious panic.
+        */
        for (i = br->br_cons_head; i != br->br_prod_head;
             i = ((i + 1) & br->br_cons_mask))
                if(br->br_ring[i] == buf)
_______________________________________________
[email protected] mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "[email protected]"

Reply via email to