Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 30 Sep 2012 13:50:03 GMT
From:      Andriy Gapon <avg@FreeBSD.org>
To:        freebsd-bugs@FreeBSD.org
Subject:   Re: kern/172166: Deadlock in the networking code, possible due to a bug in the SCHED_ULE
Message-ID:  <201209301350.q8UDo357044566@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help
The following reply was made to PR kern/172166; it has been noted by GNATS.

From: Andriy Gapon <avg@FreeBSD.org>
To: bug-followup@FreeBSD.org, eugen@eg.sd.rdtc.ru
Cc:  
Subject: Re: kern/172166: Deadlock in the networking code, possible due to
 a bug in the SCHED_ULE
Date: Sun, 30 Sep 2012 16:42:53 +0300

 on 30/09/2012 14:54 Andriy Gapon said the following:
 > 
 > It looks like CPUs 0 - 4 are idle, but CPU 5 has load of three.
 > One of those threads is the syslogd thread that holds the lock, but the
 > currently running thread is 'ipmi0: kcs' thread with tid 100118.
 > It would interesting to examine what it is doing.
 > 
 
 Looks like the kcs busy loops in here: kcs_loop -> kcs_read_byte ->
 kcs_wait_for_obf.
 Since this is a 6-CPU machine, steal threshold is set to 3 so other CPUs don't
 try to take any work from CPU5. Not sure if this is smart actually.  Maybe it
 would make sense to have a lower threshold or to allow stealing of real-time
 threads at a lower threshold.
 
 Since the kcs thread is a kernel thread with real-time priority (68) it doesn't
 allow any other lower priority thread to run while it's not sleeping.
 
 Also, it looks like rwlock does not take care to propagate waiters' priorities
 in all cases.  Maybe priority propagation could have helped here, but not sure...
 
 -- 
 Andriy Gapon



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201209301350.q8UDo357044566>