• [^] # Re: Il manque

    Posté par . En réponse à la dépêche Sortie du noyau 2.6.11. Évalué à 1.

    > D'accord, c'est 2^36 (2^(9*4)) mais je ne sais pas où j'ai perdu un bit :-)

    Finalement j'ai compris. C'est 2^36*2^12 (2^48) pour tous l'asdressage mémoire mais il est divisé en deux :
    - mémoire virtuel : 2^47
    - mémoire noyau : 2^47

    > Là où Linux limite, c'est pour l'espace physique qui peut monter à 2^52 et Linux limite à 2^46 (pour des raisons que je n'ai pas compris).

    Non, Linux ne limite pas.
    Puisque page_size fait 2^12, il y a 2^47 pour le mode noyau (comme pour la mémoire virtuelle) et dans ce 2^47 on garde la moitier (2^46) pour la mappage vers les adresses physiques.


    Finalement, j'ai beaucoup appris :-)
    Ce qui limite l'espace adressable par Linux, c'est le choix fait par Linux d'utiliser page_size=4096 comme pour x86 afin de pouvoir exécuter aussi des applis x86 (qui ont page_size=4096) et éviter d'inutile problème de compatibilité.
    Mais augmenter page_size c'est aussi bouffer plus de mémoire.
    Rien de dramatique dans le "page_size=4096" car on est déjà bien au delà des limites du hardware disponible. Pour un espace mémoire maxi avec amd64 et selon ses specs (mémoire physique limité à 2^52) il faudrait page_size=2^18 soit 256 ko (!). On aurait :
    - mémoire virtuelle : 8192 To
    - mémoire physique : 4096 To
    Y a du gras.