On 19/06/17(Mon) 11:15, Hrvoje Popovski wrote:
> On 19.6.2017. 10:25, Martin Pieuchot wrote:
> > On 15/06/17(Thu) 18:43, Hrvoje Popovski wrote:
> >> Hi all,
> >>
> >> test box is configured with kern.pool_debug=1 and option MP_LOCKDEBUG.
> >>
> >> while sending traffic (9000 byte) over ix interfaces and at the same
> >> time changing mtu on sink interface (ix1) from 9000 to 1500 drops me to
> >> ddb console.
> >>
> >> it seems that i can't trigger dropping to ddb console with
> >> kern.pool_debug=0.
> > But the machine do not freeze right?
> 
> Right.
> 
> > Do you still enter DDB with a bigger value of __mp_lock_spinout? 
> 
> Don't know what that means ...

That means that MP_LOCKDEBUG works the following way:

  - Each time you spin on the lock without taking it a counter is increased 
  - If this counter reaches the value of __mp_lock_spinout the machine enter DDB

So if this value is too small you will enter DDB everytime there's
contention.  If it's too big you'll have to wait minutes before entering
DDB.

I just suggested you increase the default value:

Index: kern/kern_lock.c
===================================================================
RCS file: /cvs/src/sys/kern/kern_lock.c,v
retrieving revision 1.49
diff -u -p -r1.49 kern_lock.c
--- kern/kern_lock.c    20 Apr 2017 15:06:47 -0000      1.49
+++ kern/kern_lock.c    19 Jun 2017 09:22:39 -0000
@@ -43,7 +43,7 @@
 
 #ifdef MP_LOCKDEBUG
 /* CPU-dependent timing, this needs to be settable from ddb. */
-int __mp_lock_spinout = 200000000;
+int __mp_lock_spinout = 2000000000;
 #endif
 
 #if defined(MULTIPROCESSOR)

Reply via email to