lsmod,/proc/modules và slabinfo,/proc/meminfo KHÔNG cung cấp số lượng bộ nhớ mà mô-đun hạt nhân của tôi đang sử dụngMô-đun hạt nhân của tôi sử dụng bao nhiêu bộ nhớ?
có cách nào để tìm ra điều này không?
btw, tôi đã viết một chương trình thử nghiệm nhỏ về cơ bản, một trình điều khiển thiết bị nhận cuộc gọi ioctl để phân bổ 1MB và tôi gửi thông điệp ioctl này mỗi giây từ ứng dụng của tôi để ổ đĩa của tôi thực hiện mỗi giây. Iam không thể nhìn thấy sự gia tăng "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;
}
không gian ứng dụng/user
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);
}
tôi không thấy sự tăng trưởng của bộ nhớ trong slabinfo. Tôi biết linux không cache-> slabs-> trang-> đối tượng nhưng phải có một số cách trong đất người dùng để xác định kích thước bộ nhớ của một mô-đun hạt nhân cụ thể.
Cảm ơn,