lsmod,/proc/modules i slabinfo,/proc/meminfo nie daje, ile pamięci mój moduł jądra używaile pamięci używa mój moduł jądra?
czy jest jakiś sposób, aby się tego dowiedzieć?
btw, napisałem mały program testowy w zasadzie, sterownik urządzenia, który pobiera ioctl call, aby przydzielić 1 MB i wysyłam ten komunikat ioctl co sekundę z mojej aplikacji, więc mój dysk robi coallococ co sekundę. IAM nie mogli zobaczyć wzrost "cat/proc/meminfo | grep Slab"
- ciach ---
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;
}
przestrzeni aplikacji/użytkownika
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);
}
I nie widzę wzrostu pamięci w slabinfo. Wiem, że linux robi cache-> płyty-> strony-> obiekty, ale musi istnieć jakiś sposób w obszarze użytkownika, aby określić rozmiar pamięci określonego modułu jądra.
Dzięki