lsmod/proc/मॉड्यूल और slabinfo,/proc/meminfo नहीं देता कितनी स्मृति मेरी कर्नेल मॉड्यूलमेरा कर्नेल मॉड्यूल कितना मेमोरी उपयोग कर रहा है?
इस पता लगाने के लिए एक तरीका है उपयोग कर रहा है?
बीटीडब्ल्यू, मैंने मूल रूप से एक छोटा परीक्षण कार्यक्रम लिखा, एक डिवाइस चालक जो 1 एमबी आवंटित करने के लिए ioctl कॉल लेता है और मैं अपने आवेदन से प्रति सेकंड इस ioctl संदेश भेजता हूं, इसलिए मेरा ड्राइव हर सेकेंड किमीलोक करता है। --- कटाव
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);
}
मैं -
| iam में "grep स्लैब बिल्ली/proc/meminfo" वृद्धि देखने में सक्षम नहीं slabinfo में स्मृति की वृद्धि को न देखें। मैं जानता हूँ कि linux cache-> slabs-> पृष्ठों> वस्तुओं करता है लेकिन उपयोगकर्ता देश में किसी तरह एक विशेष कर्नेल मॉड्यूल की स्मृति आकार निर्धारित करने होनी चाहिए।
धन्यवाद,