Locked up processes after upgrade to ZFS v15
Andriy Gapon
avg at icyb.net.ua
Tue Oct 12 15:27:00 UTC 2010
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
More information about the freebsd-fs
mailing list