lsmod,/proc/modules и slabinfo,/proc/meminfo НЕ дает, сколько памяти использует мой модуль ядра
Есть ли способ узнать это?
btw, я написал небольшую тестовую программу в основном, драйвер устройства, который принимает вызов ioctl для распределения 1 МБ, и каждую секунду я отправляю это сообщение ioctl из моего приложения, так что мой диск делает kmalloc каждую секунду. Я не смог увидеть увеличение "cat/proc/meminfo | grep Slab"
- snip ---
int device_ioctl(
struct file *file,
unsigned int ioctl_num,
unsigned long ioctl_param)
{
/*
* Switch according to the ioctl called
*/
printk ( "<l> inside ioctl %d IOCTL_ALLOC_MSG = %d\n", ioctl_num,IOCTL_ALLOC_MSG );
switch (ioctl_num) {
case IOCTL_ALLOC_MSG:
allocfunc(); // kmalloc 1MB // printk in this function is OK
break;
case IOCTL_DEALLOC_MSG:
deallocfunc();
break;
}
return 0;
}
Приложение/пользовательское пространство
while ( !stop )
{
ret_val = ioctl(memfile, IOCTL_ALLOC_MSG);
if (ret_val < 0) {
printf("ioctl failed. Return code: %d, meaning: %s\n", ret_val, strerror(errno));
return -1;
}
sleep ( 10 );
}
Я не вижу роста памяти в slabinfo. Я знаю, что linux использует cache- > slabs- > pages- > объекты, но для определения размера памяти для конкретного модуля ядра должен быть какой-то способ на земле пользователя.
Спасибо,