On Sat, Aug 15, 2020 at 01:20:48AM +0900, Ryo ONODERA wrote: > Hi, > > "Chuck Silvers" <c...@netbsd.org> writes: > > > Module Name: src > > Committed By: chs > > Date: Fri Aug 14 09:06:15 UTC 2020 > > > > Modified Files: > > src/sys/miscfs/genfs: genfs_io.c > > src/sys/uvm: uvm_extern.h uvm_object.c uvm_object.h uvm_page.c > > uvm_page_status.c uvm_pager.c uvm_vnode.c > > > > Log Message: > > centralize calls from UVM to radixtree into a few functions. > > in those functions, assert that the object lock is held in > > the correct mode. > > > > > > To generate a diff of this commit: > > cvs rdiff -u -r1.99 -r1.100 src/sys/miscfs/genfs/genfs_io.c > > cvs rdiff -u -r1.230 -r1.231 src/sys/uvm/uvm_extern.h > > cvs rdiff -u -r1.23 -r1.24 src/sys/uvm/uvm_object.c > > cvs rdiff -u -r1.38 -r1.39 src/sys/uvm/uvm_object.h > > cvs rdiff -u -r1.244 -r1.245 src/sys/uvm/uvm_page.c > > cvs rdiff -u -r1.5 -r1.6 src/sys/uvm/uvm_page_status.c > > cvs rdiff -u -r1.128 -r1.129 src/sys/uvm/uvm_pager.c > > cvs rdiff -u -r1.115 -r1.116 src/sys/uvm/uvm_vnode.c > > This change assets after every shutdown or sync command > invocation on my two amd64 laptops at least. > Both laptop uses mount -o log (WAPBL). > > The backtrace is as follows. > This is result of LOCKDEBUG enabled kernel. > I can get same result from DIAGNOSTICS kernel too. > Could you take a look at my problem? > > $ crash -N netbsd.33 -M netbsd.33.core > Crash version 9.99.70, image version 9.99.70. > System panicked: kernel diagnostic assertion "uvm_pagelookup(uobj, offset) == > NULL || ((a->ar_flags & UVM_PAGE_ARRAY_FILL_DIRTY) != 0 && > !uvm_obj_page_dirty_p(pg))" failed: file "/usr/src/sys/uvm/uvm_vnode.c", line > 321 > Backtrace from time of crash is available. > crash> bt > _KERNEL_OPT_NARCNET() at 0 > ?() at ffff87814aa72cb0 > sys_reboot() at sys_reboot > vpanic() at vpanic+0x15b > __x86_indirect_thunk_rax() at __x86_indirect_thunk_rax > uvn_findpage() at uvn_findpage+0xf9 > uvn_findpages() at uvn_findpages+0xcd > genfs_do_putpages() at genfs_do_putpages+0xc17 > VOP_PUTPAGES() at VOP_PUTPAGES+0x43 > ffs_full_fsync() at ffs_full_fsync+0x1b4 > ffs_fsync() at ffs_fsync+0xef > VOP_FSYNC() at VOP_FSYNC+0x47 > sched_sync() at sched_sync+0x168 > crash> > > Thank you. > > -- > Ryo ONODERA // r...@tetera.org > PGP fingerprint = 82A2 DC91 76E0 A10A 8ABB FD1B F404 27FA C7D1 15F3
Hi Ryo, yea, quite a few people are seeing this problem. I can't reproduce it on amd64 or arm32, but I tried i386 just now and it does happen for me there. now that I have a way to reproduce, hopefully I can fix it quickly. -Chuck