Very Promising Linux Patch Optimizes TLB Flushes During Page Reclamation
Very Promising Linux Patch Optimizes TLB Flushes During Page Reclamation
Very Promising Linux Patch Optimizes TLB Flushes During Page Reclamation
(quick search)
A TLB flush is used when the virtual memory address mappings to physical memory addresses need to be updated.
This patch reduces the number of flushes needed to keep the memory current by a factor of 512, by using some fancy buffering.
Sounds good, wonder if I'll notice it once it's mainline
This probably won't make much difference unless your application is frequently adding and removing large numbers of page mappings (either because it's explicitly unmapping memory segments, or because pages are constantly being swapped in and out due to low system memory). I would suspect that the only things which would really benefit from this under "normal" circumstances are some particularly I/O intensive applications with lots of large memory mappings (e.g. some webservers, some BitTorrent clients), or applications which are frequently allocating and deallocating huge slabs of memory.
There might be some improvement during application startup as all the code+data pages are mapped in and the memory allocator's arenas fill up, but as far as I know anonymous mappings are typically filled in one page at a time on first write so I don't know how relevant this sort of batching might be.