Obtenir la taille de la page

Cette page répertorie les différentes manières d'obtenir la taille de page du noyau utilisée dans le périphérique. Pour vous connecter à l'appareil, vous pouvez utiliser adb .

$ adb shell

Utilisez la commande getconf

Utilisez la commande getconf pour obtenir la taille de la page, affichée comme suit :

$ getconf PAGE_SIZE
4096

Utilisez le pseudo-fichier /proc/<pid>/smaps

Le champ KernelPageSize dans le pseudo-fichier /proc/<pid>/smaps affiche la taille de la page, comme suit :

$ grep KernelPageSize /proc/1/smaps
KernelPageSize:        4 kB

Utilisez l'indicateur de l'éditeur de liens LD_SHOW_AUXV=1

Utilisez l'indicateur LD_SHOW_AUXV pour imprimer le vecteur auxiliaire du programme qui est sur le point d'être exécuté. Le champ AT_PAGESZ contient la taille de la page, affichée comme suit :

$ LD_SHOW_AUXV=1 ls
AT_SYSINFO_EHDR      0x7250460000
AT_MINSIGSTKSZ       4720
AT_HWCAP             0b11111111111111111111111111111111
AT_PAGESZ            4096
AT_CLKTCK            100
AT_PHDR              0x5fda1e0040
AT_PHENT             56
AT_PHNUM             12
AT_BASE              0x72502f8000
AT_FLAGS             0
AT_ENTRY             0x5fda210000
AT_UID               0
AT_EUID              0
AT_GID               0
AT_EGID              0
AT_SECURE            0
AT_RANDOM            0x7fc59d66f8
AT_HWCAP2            0b100011001111111111
AT_EXECFN            "/system/bin/ls"
AT_PLATFORM          "aarch64"
data            dev.        init    vendor

Utilisez le pseudo-fichier /proc/config.gz

Vérifiez la configuration du noyau pour la taille de la page dans le pseudo-fichier /proc/config.gz . Les configurations possibles pour la taille de la page sont :

  • CONFIG_ARM64_4K_PAGES=y : le noyau utilise des pages de 4096 octets.
  • CONFIG_ARM64_16K_PAGES=y : le noyau utilise des pages de 16384 octets.
  • CONFIG_ARM64_64K_PAGES=y : le noyau utilise des pages de 65536 octets.
$ zcat /proc/config.gz | grep "CONFIG_ARM64_[164K]*_PAGES=y"
CONFIG_ARM64_16K_PAGES=y

Utilisez le vecteur auxiliaire

Lorsqu'un programme est exécuté, le noyau alloue et initialise le vecteur auxiliaire avec des informations, telles que la taille de la page, qui sont utilisées par l'éditeur de liens dynamique. Le vecteur auxiliaire peut être lu à partir du pseudo-fichier /proc/<pid>/auxv . La taille de page du vecteur auxiliaire du processus 1 peut être affichée comme suit :

$ od -N8 -j56 -td8 -An /proc/1/auxv
4096

Où:

  • od sauvegarde les fichiers au format hexadécimal, décimal ou autre.
  • -N8 -j56 vide les 8 octets commençant au décalage 56 dans le fichier, correspondant à AT_PAGESZ .
  • -td8 formate la valeur sous forme d'entier décimal de 8 octets.
  • -An provoque l'affichage uniquement de la valeur, pas de son adresse.