Source-Changes archive

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

CVS commit: [uebayasi-xip] src/sys



Module Name:    src
Committed By:   uebayasi
Date:           Sun Nov 21 12:43:00 UTC 2010

Modified Files:
        src/sys/miscfs/genfs [uebayasi-xip]: genfs_io.c
        src/sys/uvm [uebayasi-xip]: uvm_bio.c uvm_fault.c uvm_pager.h

Log Message:
Resurrect PGO_ZERO support.

When vnode pager encounters hole pages in XIP'ed vnodes, it fills
page slots with PGO_ZERO and returns them back to the caller (fault
handler).  Fault handlers are responsible to check page slots and
redirect PGO_ZERO to the single "zero page" allocated by calling
uvm_page_zeropage_alloc(9).

The zero page is wired, read-only (PG_RDONLY) page.  It's shared
by multiple vnodes, it has no single owner.

XIP'ed vnodes are supposed to be "stable" during I/O (unlocked).
Because XIP'ed mounts are always read-only.  There's no chance to
change mappings of XIP'ed vnodes and their XIP'ed pages.  Thus the
cached uobj is reused after pgo_get() for PGO_ZERO.

(Do we need a new concept of "read-only UVM object"?)


To generate a diff of this commit:
cvs rdiff -u -r1.36.2.59 -r1.36.2.60 src/sys/miscfs/genfs/genfs_io.c
cvs rdiff -u -r1.68.2.12 -r1.68.2.13 src/sys/uvm/uvm_bio.c
cvs rdiff -u -r1.166.2.23 -r1.166.2.24 src/sys/uvm/uvm_fault.c
cvs rdiff -u -r1.38.14.1 -r1.38.14.2 src/sys/uvm/uvm_pager.h

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.



Home | Main Index | Thread Index | Old Index