Page MenuHomeFreeBSD

zfs: use VOP_NEED_INACTIVE
Needs ReviewPublic

Authored by mjg on Oct 23 2019, 5:59 PM.

Details

Reviewers
mmacy
avg
mav
Summary

See r351584 for reasoning.

Sample results from make -j 40 bzImage:

beforeafter
96630750 (lockmgr:zfs)17400445 (rw:vm object)
19971882 (rw:vm object)9008902 (sleep mutex:zio_write_issue)
10328270 (spin mutex:sleepq chain)8802655 (spin mutex:sleepq chain)
6159891 (sleep mutex:vnode interlock)4737875 (sx:zp->z_acl_lock)
5128765 (spin mutex:sched lock 33)4459105 (rw:pmap pv list)
4995571 (spin mutex:sched lock 11)4343860 (sx:rrl->rr_lock)
4942302 (rw:pmap pv list)2906398 (lockmgr:zfs)

Diff Detail

Lint
Lint Skipped
Unit
Unit Tests Skipped
Build Status
Buildable 27173

Event Timeline

mjg created this revision.Oct 23 2019, 5:59 PM

I've been testing this patch for a while and it seems like…

it causes files written by LLD >= 9.0 (which uses ftruncate→mmap→rename→close)…

to become all zeroes after reboot.

(and possibly hangs on poweroff/reboot after the bufspacethings are done)

mjg added a comment.EditedSun, Dec 29, 3:50 PM

I see why, it misses one check. I'm probably going to fix this in a very different manner though. Thanks for the report!

mjg updated this revision to Diff 66167.Mon, Dec 30, 10:42 PM
  • perform a locked check for all conditions
mjg added a comment.Mon, Dec 30, 10:42 PM

@greg_unrelenting.technology does the updated patch work for you?

mjg updated this revision to Diff 66169.Mon, Dec 30, 11:37 PM
  • trylock since the routine is called with the interlock held

Same issues on the latest version.