/proc/meminfo では、VmallocUsed は 0 と言います。それでは、私のカーネルモジュールはどこに保存されていますか?

/proc/meminfo では、VmallocUsed は 0 と言います。それでは、私のカーネルモジュールはどこに保存されていますか?

カーネルモジュールのコードがvmalloc()割り当てに格納されていると思いますか? (事実私は確信しています。カーネルコードkvmalloc() ではなく vmalloc() を使用しています。それでは、なぜ/proc/meminfoゼロがないと言うのでしょうかVmallocUsed

$ grep Vmalloc /proc/meminfo
VmallocTotal:   34359738367 kB
VmallocUsed:           0 kB
VmallocChunk:          0 kB
$ lsmod|head
Module                  Size  Used by
vfio_mdev              16384  0
mdev                   20480  1 vfio_mdev
vfio_iommu_type1       28672  0
vfio                   32768  2 vfio_mdev,vfio_iommu_type1
kvm_intel             237568  0
kvm                   737280  1 kvm_intel
irqbypass              16384  1 kvm
dummy                  16384  0
binfmt_misc            20480  1

答え1

パフォーマンス上の理由から、これらのフィールドはLinux 4.4でクリアされました。 glibcに関連付けられたプログラムは起動時にこのファイルを読み込み、測定可能な影響を与える可能性があります。

https://github.com/torvalds/linux/commit/a5ad88ce8c7fae7ddc72ee49a11a75aa837788e0

関連情報