Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 26 Sep 2013 11:23:04 +0100 (BST)
From:      Anton Shterenlikht <mexas@bris.ac.uk>
To:        davide@freebsd.org, mexas@bris.ac.uk
Cc:        freebsd-current@freebsd.org, freebsd-ia64@freebsd.org
Subject:   Re: panic: ia64 r255811: deadlkres: possible deadlock detected for 0xe000000012d07b00, blocked for 902743 ticks
Message-ID:  <201309261023.r8QAN45I013218@mech-cluster241.men.bris.ac.uk>
In-Reply-To: <CACYV=-EewOqmQDm4xoL2iTpLxaxVg-5e1uHGg4LHYxAphgVjow@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
>From davide.italiano@gmail.com Wed Sep 25 19:00:09 2013
>
>On Wed, Sep 25, 2013 at 5:30 PM, Anton Shterenlikht <mexas@bris.ac.uk> wrote:
>> >From davide.italiano@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




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