Quali CPU supportano pagine da 1 GB?


19

Alcune CPU Intel supportano pagine da 1 GB. Questo viene identificato guardando CPUID 0x80000001, EDX bit 26 . Il kernel di Linux lo espone /proc/cpuinfocome pdpe1gbflag .

Dove scopriamo quali CPU supportano questo e quali no? O quale linea di prodotti supporta questa funzione? Non c'è nulla su queste pagine Intel ARK che indicano il supporto per questa funzionalità.

CPU che fanno di supporto pagine 1GB:

Altre CPU che non supportano pagine da 1 GB:


Risposte:


4

Secondo questa pagina :

oltre alle loro pagine standard da 4 KB, i più recenti processori x86-64, come i più recenti processori AMD64 AMD e i processori Intel Westmere e successivi, possono utilizzare pagine da 1 GB in modalità lunga

Sembra essere vero in quanto era una nuova funzionalità delle CPU Westmere .


5
Sì, ho sicuramente guardato tutte quelle pagine di Wikipedia! Tuttavia, questa risposta non è corretta. Sandy Bridge è più recente di Westmere e ora ho due CPU Sandy Bridge che non lo supportano.
Jonathon Reinhart,

2
@JonathonReinhart: l' enorme lato negativo di Hugepages per uso generale, esp. Pagine 1G, è che l'intero hugepage sta legando molta RAM fisica. Se un processo alloca 1GiB normalmente, solo le parti che viene mai toccato occupano effettivamente la memoria virtuale. (l'overcommit consente anche allocazioni che il kernel non ha abbastanza spazio di swap da gestire). Linux non è in grado di eseguire la paginazione di hugepage su disco anche quando un processo viene interrotto, quindi un'allocazione di hugepage blocca / blocca in modo efficace tutta quella memoria fisica.
Peter Cordes,

1
Hugepages 2M hanno senso quando non saranno lasciati mezzo vuoto (ad esempio, quando si sa per certo che si sta andando a scrivere ogni 4k del 2M comunque), ma la mancanza di paging è un grosso problema. Progettare software per scopi generici per funzionare in modo orribile su desktop con problemi di memoria non è una buona idea. Non penso che tu possa persino mmap un file su disco con hugepage 2M, ma sarebbe una cattiva idea per gli eseguibili perché ci saranno alcune pagine 4k all'interno di un blocco 2M che non vengono toccate. Questi possono essere sfrattati dalla pagecache (supponendo che fossero stati precaricati), liberando RAM.
Peter Cordes,

1
Con le attuali CPU dotate di TLB multilivello, il tempo totale impiegato per perdere TLB probabilmente non è poi così male, vero? Non ho profilato grandi cose come Firefox. Sarei interessato a vedere un riepilogo leggibile di quanto tempo impiega a perdere TLB, (in particolare pagine che camminano), e cose come le missioni I-cache L1. So che potrei semplicemente indicarlo perf... Anche se volessi usare 2M hugepages per firefox, immagino che molti dei suoi dati interni siano allocati in blocchi più piccoli di quello. Ci sarebbe un sovraccarico per assicurarsi di minimizzare la frammentazione esterna delle allocazioni all'interno di un buffer di hugepage.
Peter Cordes,

1
I mancati TLB sono costosi per operazioni ad alta memoria, ad accesso casuale, come molte applicazioni di database. Le pagine enormi fanno una differenza significativa, ma anche lì parlano di pagine da 2 MB, non di 1 GB. Il sistema operativo è l'utente più probabile delle pagine da 1 GB tramite la mappatura diretta dell'intero spazio degli indirizzi fisici.
GreenReaper,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.