On Fri, Feb 18, 2011 at 05:51:35PM -0500, Peter Shoults wrote:
> Hi,
> 
> I wrote a dtrace script that is tracking a couple of routines that
> decrement a reference count, trying to catch the thread that
> de-references the count down to -1.  The script works fine, except for
> some reason, I suspect it is not recording the last few decrements. 
> Probably best to show what I mean:
> 
> from msgbuf of corefile:
> 
> kernel memory allocator: buffer modified after being freed
> modification occurred at offset 0x0 (0xdeadbeefdeadbeef replaced by
> 0xdeadbeeedeadbeef)
> buffer=3004ec26af8  bufctl=3004ec65d20  cache: kmem_alloc_56
                             ^^^^^^^^^^^

Have you done:

        3004ec65d20::bufctl -v

and printed the "CONTENTS" field as a credgrp_t?

> Now, grepping for that bufaddr on my dtrace script output...
> 
> 
>   1  20287  crgrprele:entry cred_ptr is 3004ec26af8, cred ref = 5
>   1  20287  crgrprele:entry cred_ptr is 3004ec26af8, cred ref = 5
>   1  20287  crgrprele:entry cred_ptr is 3004ec26af8, cred ref = 5
>   1  20287  crgrprele:entry cred_ptr is 3004ec26af8, cred ref = 4
>   1  20287  crgrprele:entry cred_ptr is 3004ec26af8, cred ref = 3
> #
> 
> I have to believe we decremented down to zero and freed, then again,
> maybe we did not decrement down to zero and still freed, and then when
> buffer was on free list, we tried to decrement thinking we still had to
> and we were still active.  Either way - what can I do to catch what I
> believe must have been at least one more decrement - it is seems as if
> the decrement occurred, and we went belly up so quickly dtrace never had
> a chance to record the decrement.
> 
> Anyway - if there is a way to boost what dtrace can capture, or ensure
> it actually records when an event is triggered...that would be nice.

There are DCMDs in mdb to dump the in-kernel dtrace state:

        ::dtrace_state

lists the active dtrace consumers, and

        addr::dtrace

will process the in-kernel state for a particular consumer.

Cheers,
- jonathan
_______________________________________________
dtrace-discuss mailing list
dtrace-discuss@opensolaris.org

Reply via email to