On Fri, 11 Dec 2015 06:42:14 -0500
Dan Ritter <[email protected]> wrote:

> Normally your system keeps track of memory in 4KB pages. They're
> analogous to filesystem blocks. Performance is improved when you
> can satisfy memory allocation requests with less overhead, so
> hugepages were created. A hugepage is a 2MB page.

On x86_64 (aka amd64) systems, hugepage can also be 1GB. But barring large 
databases and playback of large media files, there isn't any benefit from using 
1GB pages (it will actually harm performance for most other applications).

The reason large page sizes are useful is that one 2MB page only uses a single 
TLB entry in the processor whereas the same 2MB space will need 512 entries if 
mapped as 4KB pages. So depending on TLB sizes in the processor, you could have 
lots of TLB misses if you use smaller pages, and each TLB miss takes a large 
number of processor cycles to do a "table walk" and fetch the translation. TLB 
pressure is even higher if virtualization is being used as both guest and host 
translations have to share the TLB.

-Shankar
_______________________________________________
Discuss mailing list
[email protected]
http://lists.blu.org/mailman/listinfo/discuss

Reply via email to