lsmod,/proc/modules und slabinfo,/proc/meminfo nicht geben, wie viel Speicher ist mein Kernel-ModulWie viel Speicher verwendet mein Kernelmodul?
verwendet, ist es eine Möglichkeit, dies herauszufinden?
btw, Ich schrieb ein kleines Testprogramm im Grunde, ein Gerätetreiber, der ioctl Aufruf zu 1MB zuzuweisen und ich sende diese ioctl Nachricht jede Sekunde von meiner Anwendung, so dass mein Laufwerk kmalloc jede Sekunde. Iam nicht in der Lage, die Erhöhung der "cat/proc/meminfo | grep Slab" zu sehen
- schnipp ---
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;
}
Anwendung/Benutzerraum
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 nicht das Wachstum der Erinnerung in Slabinfo sehen. Ich weiß, dass Linux Cache-> Brammen-> Seiten-> Objekte tut, aber es muss einen Weg geben, um die Speichergröße eines bestimmten Kernel-Moduls zu bestimmen.
Danke,