lsmod,/proc/modules e slabinfo,/proc/meminfo non dà quanta memoria il mio modulo del kernel sta usandola quantità di memoria utilizzata dal modulo del mio kernel?
c'è un modo per scoprirlo?
btw, ho scritto un piccolo programma di test in sostanza, un driver di periferica che prende chiamata ioctl per alloc 1MB e mando questo messaggio ioctl ogni secondo dalla mia applicazione così la mia auto fa kmalloc ogni secondo. Iam non in grado di vedere l'aumento di "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;
}
spazio di applicazione/utente
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 non vedere la crescita della memoria in slabinfo. So che linux fa cache-> slabs-> pages-> objects ma ci deve essere un modo in terra utente per determinare la dimensione della memoria di un particolare modulo del kernel.
Grazie,