lsmod的,的/ proc /模塊和slabinfo,的/ proc/meminfo中 不給我的內核模塊使用多少內存我的內核模塊使用多少內存?
有沒有辦法找到這一點?
順便說一句,我基本上寫了一個小測試程序,一個採用ioctl調用來分配1MB的設備驅動程序,並且每隔一秒從我的應用程序發送這個ioctl消息,所以我的驅動器每秒都會發送kmalloc。蔭沒能看到 「貓的/ proc/meminfo中| grep的板」 增加
- 喀嚓 -
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->對象,但是用戶登陸時必須有某種方法來確定特定內核模塊的內存大小。
感謝,