Накладные расходы VMA на Linux - PullRequest
0 голосов
/ 01 мая 2011

Вопрос: Как я могу сказать, сколько памяти используется VMA моего процесса (либо в пользовательском пространстве, либо в ядре)?

Я коротко объясню, что я делаю, чтобы вы могли понять, почему я спрашиваю об этом. Я запускаю на своей машине Linux несколько процессов и один драйвер (модуль ядра). Память процессов заблокирована (не может быть заменена), поэтому я хочу убедиться, что память, используемая модулем вместе с процессами, не достигает 90% моей общей физической памяти. Для уменьшения издержек malloc я использую mmap. что мне действительно нужно знать, так это то, сколько памяти мои процессы действительно потребляют, а не сколько они запрашивали, и насколько я могу судить, я пропускаю только издержки VMA при любом выделении.

1 Ответ

1 голос
/ 02 мая 2011

После копания я нашел ответ:

Пока я в драйвере, я могу использовать current-> mm-> map_count, чтобы узнать текущее количество VMA для текущего процесса.Умножьте его на sizeof (struct vm_area_struct), что даст мне то, что я искал.Отсюда все довольно просто.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...