Hardware Shared Memory Cache Miss Local 11/12 Cache Miss Remote 38/38 Cache Miss 2-party 42/43 Cache Miss 3-party 63/66 Remote Software 425/707 Software Virtual Memory Distributed Array Translation 16 Pointer Translation 23 Software Shared Memory TLB Fill 2302/3590 Page Fault
11772/21956 Upgrade Fault 12441 Page Fault
, Single-Writer 29353/35293 Single-Writer Transition 9992 Release (2 writers) 33424 Release (3 writers) 33516
The figure 7 shows the number of page faults
in function of the memory size.
times are highly dependent on the cost of mprotect calls, 15 [micro]secs.
The first critical path to be tuned was the Page Fault
path, with a goal of 8,000 optimized instructions.
When the sorting phase starts, all threads suffer many page faults
on the same region, causing serialization on the various spinlocks and semaphores used to protect virtual memory data structures.
Traps are permitted during interrupt and trap handling but result in an unrecoverable fault; page fault
traps must be avoided during fault handling.
There are page traces where if the size of M is n pages, then halving the page size and doubling the number of pages can result in the number of page faults
increasing by a factor of n+1.
Sometimes can cause more page faults
when memory size is increased.