On 28/03/22(Mon) 13:35, Alexander Bluhm wrote:
> Hi,
> 
> There was a discussion about file system bugs with macppc.  My dual
> core macppc never completed a make release.  I get various panics.
> One of them is below.
> 
> bluhm
> 
> panic: vref used where vget required
> Stopped at      db_enter+0x24:  lwz r11,12(r1)
>     TID    PID    UID     PRFLAGS     PFLAGS  CPU  COMMAND
>  192060  78628     21         0x2          0    0  c++
> *132472  74971      0     0x14000      0x200    1K pagedaemon
> db_enter() at db_enter+0x20
> panic(91373c) at panic+0x158
> vref(23b8fa20) at vref+0xac
> uvm_vnp_uncache(e7eb7c50) at uvm_vnp_uncache+0x88
> ffs_write(7ed2e423) at ffs_write+0x3b0
> VOP_WRITE(23b8fa20,e7eb7c50,40,1ff3f60) at VOP_WRITE+0x48
> uvn_io(7ed2e423,a93d0c,a93814,ffffffff,e4010000) at uvn_io+0x264
> uvn_put(414b673a,e7eb7dd4,24f00070,5326e90) at uvn_put+0x64
> uvm_pager_put(0,0,e7eb7d70,6ee0b8,2000000,80000000,0) at uvm_pager_put+0x15c
> uvmpd_scan_inactive(0) at uvmpd_scan_inactive+0x224
> uvmpd_scan() at uvmpd_scan+0x158
> uvm_pageout(7e932633) at uvm_pageout+0x398

The page daemon is trying to write a page on the inactive list back to
the disk.  Sadly it seems the vnode has already been recycled, which
indicate the page should already be on the disk.  

That suggests uvm_pagefree() hasn't been called for this page. 

So how can this page be on the list if the vnode has been closed?  A
race between mmap/fault handler/close?  A page leak?  Something else?

Reply via email to