All books

Professional

Apps About Coach Log in Start reading

Quantitative Finance · Glossary

What is Page fault, pre-faulting?

Also known as: page fault · pre-faulting

Definition 6.3 Low-Latency Software · Chapter 6 — C++ for Latency I: Memory

A page fault is the processor’s trap into the kernel when a program touches a virtual page that is not yet backed by physical memory (a minor fault: the kernel allocates and zeroes a page) or whose contents are on disk (a major fault). Pre-faulting is touching every page of a buffer at start-up, so that no fault happens later on the hot path.

Left: destroying and creating one of 10 000 live 64-byte orders at random with the C++ heap, the build’s pool and the standard library’s pool resource (400 000 replacements). Right: the first write to each 4 KiB page of a fresh 64 MiB mapping, and to the same pages once written. Measured on a laptop (Intel Core Ultra 7 155H) under WSL2, no isolated cores, pinned to one CPU. Data: bench_alloc.py.
Figure 6.2. Left: destroying and creating one of 10 000 live 64-byte orders at random with the C++ heap, the build’s pool and the standard library’s pool resource (400 000 replacements). Right: the first write to each 4 KiB page of a fresh 64 MiB mapping, and to the same pages once written. Measured on a laptop (Intel Core Ultra 7 155H) under WSL2, no isolated cores, pinned to one CPU. Data: bench_alloc.py.
Read in context →