panic: ia64 r255811: deadlkres: possible deadlock detected for 0xe000000012d07b00, blocked for 902743 ticks
Anton Shterenlikht
mexas at bris.ac.uk
Thu Sep 26 10:45:47 UTC 2013
>From davide.italiano at gmail.com Wed Sep 25 19:00:09 2013
>
>On Wed, Sep 25, 2013 at 5:30 PM, Anton Shterenlikht <mexas at bris.ac.uk> wrote:
>> >From davide.italiano at gmail.com Wed Sep 25 16:12:47 2013
>>>
>>>Can you please paste the output of 'show locks', 'show alllocks',
>>>'show lockedvnods' at least?
>>>Ideally you should provide all the informations listed here.
>>>http://www.freebsd.org/doc/en/books/developers-handbook/kerneldebug-deadlocks.html
>>
>> ok, I'll need to study this.
>>
>> I've in the kernel:
>>
>> # Debugging support. Always need this:
>> options KDB # Enable kernel debugger support.
>> options KDB_TRACE # Print a stack trace for a panic.
>> # For full debugger support use (turn off in stable branch):
>> options DDB # Support DDB
>> options GDB # Support remote GDB
>> options DEADLKRES # Enable the deadlock resolver
>> options INVARIANTS # Enable calls of extra sanity checking
>> options INVARIANT_SUPPORT # required by INVARIANTS
>> options WITNESS # Enable checks to detect deadlocks and cycles
>> options WITNESS_SKIPSPIN # Don't run witness on spinlocks for speed
>> options MALLOC_DEBUG_MAXZONES=8 # Separate malloc(9) zones
>>
>> so I'm missing DEBUG_LOCKS, DEBUG_VFS_LOCKS and DIAGNOSTIC
>> from the handbook list.
>>
>> What about all debug options in GENERIC which are
>> not mentioned in your link? Specifically, do I need
>> to have DEADLKRES?
>>
>
>Yes, you need that option because it's DEADLKRES that triggers the panic.
>
>> I've never used trace.
>> Also, I'm getting a panic, so cannot run ps, I think.
>>
>
>You can run 'ps' from ddb prompt.
>As an advice I suggest you to setup textdump(4) on your machine and
>set up a script to gather the required informations, so that you can
>get those informations pretty easily for report. The manpage has
>detailed description about how to do this.
Regarding textdump(4), I'm not clear where the following
"scripts" should be located and used:
*quote*
EXAMPLES
In the following example, the script kdb.enter.panic will run when the
kernel debugger is entered as a result of a panic, enable output capture,
dump several useful pieces of debugging information, and then invoke
panic in order to force a kernel dump to be written out followed by a
reboot:
script kdb.enter.panic=textdump set; capture on; show allpcpu; bt;
ps; alltrace; show alllocks; call doadump; reset
In the following example, the script kdb.enter.witness will run when the
kernel debugger is entered as a result of a witness violation, printing
lock-related information for the user:
script kdb.enter.witness=show locks
These scripts may also be configured using the ddb(8) utility.
*end quote*
Are these ddb(8) commands? Or do I set these in /etc/rc.conf?
Please advise
Thanks
Anton
More information about the freebsd-current
mailing list