Locked up processes after upgrade to ZFS v15

Andriy Gapon avg at icyb.net.ua
Tue Oct 12 16:10:41 UTC 2010


on 12/10/2010 18:45 Jeremy Chadwick said the following:
> Okay, I realised what I did wrong with the original incarnation of
> your modified sendfile stuff -- the code defaults to using /tmp, which
> idiotically I forgot to change to a ZFS filesystem (/tmp isn't ZFS
> on the testbox).  Now that I changed it to /home, I can reproduce the
> problem.  Excellent!

OK, that explains your original results.
Thanks for pinpointing the issue.

> Secondly: the testbox is running kernel/world source from October 8th.
> I *have not* applied your kernel patch at this point.  Just a FYI.

OK, can you now retest with the patch?
I plan on committing it in the next couple of hours.

> So here's what I get.  Note that the sendfile process appears locked up
> in zfsmrb state.
> 
> 
> Terminal #1 (sendfile)
> ------------------------
> testbox# ./sendfile
> 1..11
> ok 1
> ok 2
> ok 3
> ok 4
> ok 5
> ok 6
> ok 7
> ok 8
> ok 9
> ok 10
> ok 11
> mmap test
> ^C
> 
> 
> Terminal #2 (DTrace script + ps output)
> -----------------------------------------
> testbox# ./zfs_sendfile.d
> dtrace: script './zfs_sendfile.d' matched 5 probes
> CPU     ID                    FUNCTION:NAME
>   1  22458            vm_page_lookup:return
> valid = 0x01
> flags = 0x0000
> oflags = 0x0001
> pindex = 4
> object = c614e550
> 
> ^C
> 
> 
>               0xc457b43d
>               kernel`VOP_READ_APV+0x7a
>               kernel`vnode_pager_generic_getpages+0x329
>               kernel`vop_stdgetpages+0x29
>               kernel`VOP_GETPAGES_APV+0x83
>               kernel`vnode_pager_getpages+0x19a
>               kernel`vm_fault+0x1139
>               kernel`trap_pfault+0x173
>               kernel`trap+0x2cb
>               kernel`0xc07d29bc
>                 1

Excellent!  Behold the power of DTrace :-)

> testbox# ps -axl | grep sendfile
>     0  1318  1132   0  52  0  3324  1024 zfsmrb DL+   u0    0:00.01 ./sendfile
>     0  1333  1170   0  44  0  3444  1200 -      R+     0    0:00.00 grep sendfile
> testbox# procstat -k -k 1318
>   PID    TID COMM             TDNAME           KSTACK
>  1318 100126 sendfile         -                mi_switch+0x11b sleepq_switch+0xc1 sleepq_wait+0x39 _sleep+0x282 vm_page_sleep+0xd5 zfs_freebsd_read+0x2f3 VOP_READ_APV+0x7a vnode_pager_generic_getpages+0x329 vop_stdgetpages+0x29 VOP_GETPAGES_APV+0x83 vnode_pager_getpages+0x19a vm_fault+0x1139 trap_pfault+0x173 trap+0x2cb calltrap+0x6
> 


-- 
Andriy Gapon


More information about the freebsd-fs mailing list