2011-05-01 3 views
0

La question: Comment puis-je connaître la quantité de mémoire utilisée par les VMA de mon processus (que ce soit dans l'espace utilisateur ou dans le noyau)? Je vais donner une courte explication sur ce que je fais, afin que vous puissiez comprendre pourquoi je pose cette question. Je cours sur ma machine Linux quelques processus et un pilote (module kernel). La mémoire des processus est verrouillée (non permutable), donc je veux m'assurer que la mémoire consommée par le module avec les processus n'accède pas à 90% de ma mémoire physique totale. Afin de réduire les frais généraux de malloc, j'utilise mmap. Ce que j'ai vraiment besoin de savoir, c'est la quantité de mémoire que mes processus consomment réellement plutôt que ce qu'ils demandent, et autant que je sache, je ne manque que les frais généraux de l'allocation de VMA.Frais généraux de VMA sous Linux

Répondre

1

Après avoir creusé que j'ai trouvé la réponse:

Pendant que je suis dans le pilote que je peux utiliser current-> mm-> map_count Pour connaître le nombre actuel de VMA de la procédure en cours. Multipliez-le par sizeof (struct vm_area_struct), cela me donnera ce que je cherchais. D'ici la comptabilité est assez simple.

Questions connexes