Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 12 Oct 2010 18:26:55 +0300
From:      Andriy Gapon <avg@icyb.net.ua>
To:        Jeremy Chadwick <freebsd@jdc.parodius.com>
Cc:        freebsd-fs@freebsd.org
Subject:   Re: Locked up processes after upgrade to ZFS v15
Message-ID:  <4CB47E3F.3050002@icyb.net.ua>
In-Reply-To: <20101012151852.GA35014@icarus.home.lan>
References:  <20101011151508.GA10917@icarus.home.lan> <4CB32C75.2060000@icyb.net.ua> <20101011183707.GA13925@icarus.home.lan> <4CB3870F.7070107@icyb.net.ua> <20101012100709.GA29861@icarus.home.lan> <4CB4429C.9040109@icyb.net.ua> <20101012130245.GA32584@icarus.home.lan> <4CB46CE9.20905@icyb.net.ua> <20101012143559.GA34396@icarus.home.lan> <4CB47355.1050109@icyb.net.ua> <20101012151852.GA35014@icarus.home.lan>

next in thread | previous in thread | raw e-mail | index | archive | help
on 12/10/2010 18:18 Jeremy Chadwick said the following:
> Got it -- just finished and is currently running/working.  I also
> installed ports/sysutils/DTraceToolkit and shells/ksh93 "just in case".
> 
> testbox# dtrace -l | head
>    ID   PROVIDER            MODULE                          FUNCTION NAME
>     1     dtrace                                                     BEGIN
>     2     dtrace                                                     END
>     3     dtrace                                                     ERROR
>     4   dtmalloc                                                 fbt malloc
>     5   dtmalloc                                                 fbt free
>     6   dtmalloc                                              cyclic malloc
>     7   dtmalloc                                              cyclic free
>     8   dtmalloc                                          zones_data malloc
>     9   dtmalloc                                          zones_data free
> 
> I can provide you root-level access to the box as well as serial console
> if you'd prefer to do the debugging yourself, otherwise step me through
> what's needed and I'll be happy to act as remote hands.

Great!  Let's start now :)
I would like you to run the following script with "dtrace -s <script name>" in one
terminal while running sendfile patched regression test (with TEST_EXTRA=100) in
another.  After sendfile program finishes, please ^C the DTrace script.
Please show me complete output that you'll get from the DTrace script.
Thanks!

fbt::vm_fault:entry
/execname == "sendfile"/
{
        self->vm_fault = 1;
}

fbt::vm_fault:return
/execname == "sendfile"/
{
        self->vm_fault = 0;
}

fbt::zfs_freebsd_read:entry
/self->vm_fault/
{
        self->zfs_read = 1;
}

fbt::zfs_freebsd_read:return
/self->vm_fault/
{
        self->zfs_read = 0;
}

fbt::vm_page_lookup:return
/self->zfs_read && arg1 != 0/
{
        @stacks[stack()] = count();
        printf("\n");
        printf("valid = 0x%02x\n", ((vm_page_t)arg1)->valid);
        printf("flags = 0x%04x\n", ((vm_page_t)arg1)->flags);
        printf("oflags = 0x%04x\n", ((vm_page_t)arg1)->oflags);
        printf("pindex = %u\n", ((vm_page_t)arg1)->pindex);
        printf("object = %p\n", ((vm_page_t)arg1)->object);
}

> This should prove educational in another way, as I use Solaris regularly
> at work but have never sat down to tinker with DTrace (just basic mdb
> and adb).  Fun fun fun.

Life has curious ways :)

-- 
Andriy Gapon



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