<> <> DIRECTORY VM USING [PageCount, VMPartition]; VMStatistics: DEFINITIONS = BEGIN <<>> <> <<>> <<>> <> <<>> VirtualAllocation: PROC [partition: VM.VMPartition] RETURNS [pagesAllocated, pagesFreed, pagesInPartition: VM.PageCount]; <> HistogramSizes: TYPE = LONG DESCRIPTOR FOR ARRAY OF INT; HistogramCounts: TYPE = LONG DESCRIPTOR FOR ARRAY OF INT; FreeSpaceHistogram: PROC [ partition: VM.VMPartition _ normalVM, sizes: HistogramSizes _ NIL, counts: HistogramCounts]; <> < 0>> <> < 0>> <> <> <> <> <> <> < sizes[sizes.LENGTH-1]>> readOnlyPages: INT; <> pinnedPages: INT; <> trappedPages: INT; <> <<>> checkoutConflicts: INT; <> <<>> <> rmAllocPasses: INT; <> rmReclamations: INT; <> rmFreeList: INT; <> rmOldClean: INT; <> rmNewClean: INT; <> rmDirty: INT; <> <> swapInCalls: INT; <> swapInVirtualRuns: INT; <> swapInPhysicalRuns: INT; <> swapInPages: INT; <> swapInAlreadyIn: INT; <> swapInNoRead: INT; <> swapInReads: INT; <> swapInDirtyVictims:INT; <> swapInFailedToCleanVictims: INT; <> <<>> <<>> <> cleanCalls: INT; <> cleanVirtualRuns: INT; <> cleanPhysicalRuns: INT; <> cleanPages: INT; <> cleanWrites: INT; <> cleanCantWrites: INT; <> cleanCheckOutCleans: INT; < into a single write operation.>> cleanUnneededCheckOutCleans: INT; <> <<>> <> rmCleanPasses: INT; <> laundryWakeups: INT; <> panicLaundryWakeups: INT; <> uselessLaundryWakeups: INT; <> pagesCleaned: INT; <> pagesCleanedPanic: INT; <> laundryCleanCalls: INT; <> <> getFramesCalls: INT; <> getFramesRetries: INT; <> <> pageFaults: INT; <> writeFaults: INT; <> frameFaults: INT; <> smallFramesAllocated: INT; <> frameHeapExtensions: INT; <> largeFramesAllocated: INT; <> largeFramesFreed: INT; <> <> <<>> lowCoreAllocations: INT; <> lowCoreWords: INT; <> lowCorePages: INT; <> <<>> <<>> END.