Output from .MV appears in one of is of the following forms:
VPI=0000 pVP=ff1df000 Res Frame=0000 Flg=410 HobPg=0000 Hob=ff77 Ref=001 Own=000 VPI=0001 pVP=ff1df00c Res Block=0000 Flg=c00 HobPg=0000 Hob=ff6c Ref=042 Own=000 VPI=0d40 pVP=ff1e8f00 free FLink=ff1e9fec BLink=ff1e8cf0
Each of the fields has the following meaning:
VPI=
SOW
discardable
The following flags are defined:
┌────────────────┬──────────┬──────────────────────────────┐│name │bit mask │description │ ├────────────────┼──────────┼──────────────────────────────┤ │VP_BUSY │0x001 │page semaphore taken │ ├────────────────┼──────────┼──────────────────────────────┤ │VP_WANTED │0x002 │page semaphore requested │ ├────────────────┼──────────┼──────────────────────────────┤ │VP_CACHE │0x004 │search page cache for pf │ ├────────────────┼──────────┼──────────────────────────────┤ │VP_PFIDLE │0x008 │cross linked to idle pf │ ├────────────────┼──────────┼──────────────────────────────┤ │VP_PF │0x010 │cross linked to pf │ ├────────────────┼──────────┼──────────────────────────────┤ │VP_DF │0x020 │has swap file disk frame │ ├────────────────┼──────────┼──────────────────────────────┤ │VP_DIRTY │0x040 │contents written to - from pte│ ├────────────────┼──────────┼──────────────────────────────┤ │VP_SHDIRTY │0x080 │shadow dirty bit (for VDMs) │ ├────────────────┼──────────┼──────────────────────────────┤ │VP_SOW │0x100 │change to swappable on write │ ├────────────────┼──────────┼──────────────────────────────┤ │VP_PRIVATIZED │0x200 │vp privatized │ ├────────────────┼──────────┼──────────────────────────────┤ │VP_RESIDENT │0x400 │cannot be moved - value from │ │ │ │pte │ ├────────────────┼──────────┼──────────────────────────────┤ │VP_DISCARDABLE │0x800 │1 = discardable, 0 = swappable│ └────────────────┴──────────┴──────────────────────────────┘
Notes:
PF_BUSY signifies that access to the VP is being serialised by the page frame manager.
VP_WANTED signifies that a thread is waiting to mark the VP busy. The thread will wait on a Block Id of the VP address. Under the debug kernel the thread slot of the VP semaphore owner is saved in vp_semowner (VP+0x0a) see Own= field of the .MV display. See .PB command for information on thread slots waiting on Block Ids.
Note: Use
.MOC hob
to obtain the virtual address and owner information relating to this VP. See .MO command for more information. Ref=
The reference count is incremented and decremented according to usage. When the count becomes zero the VP is no longer in use and any committed physical storage or swapper storage my become eligible for freeing.
UVIRT storage is not represented by VPs thus reference accounting is not performed.