tech-kern archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Object dirtyness



With the merge of yamt-pagecache we have solid tracking of page dirtyness. 
Dirtyness tracking of the containing uvm_object/vnode is not so solid by
comparison.  For example you can call uvm_pagemarkdirty() on a vnode page,
but letting ioflush know about that is a separate step.  When the page &
uvm_object state aren't consistent we get panics.

I'd like to change it so that:

- the vnode/uvm_object gets put on the syncer worklist as soon as it gains a
  first dirty page, by having uvm_pagemarkdirty() do it.

- VI_WRMAPDIRTY is eliminated.  I think it was really only to stop dirty
  metadata buffers muddying the waters by implying dirty uvm_object, but the
  radix tree can be checked cheaply & directly now.

http://www.netbsd.org/~ad/2020/dirty.diff

Comments?

Thanks,
Andrew


Home | Main Index | Thread Index | Old Index