2014年11月6日木曜日

/proc/vmallocinfoから実際の物理メモリ領域を求める

# cat /proc/vmallocinfo | grep -v "iormap" | awk '{print $2}'|
paste -s -d "+" | bc
148279296


grep のvオプション:指定した行を省いて出力
# cat /proc/vmallocinfo | grep -v "iormap"
http://itpro.nikkeibp.co.jp/article/COLUMN/20060227/230786/
0xffffc90000000000-0xffffc90000002000    8192 hpet_enable+0x34/0x2a9 phys=fed00000 ioremap
0xffffc90000002000-0xffffc90000203000 2101248 alloc_large_system_hash+0x16a/0x22f pages=512 vmalloc N0=512
0xffffc90000203000-0xffffc90000304000 1052672 alloc_large_system_hash+0x16a/0x22f pages=256 vmalloc N0=256
0xffffc90000304000-0xffffc90000307000   12288 mem_cgroup_create+0x274/0x480 pages=2 vmalloc N0=2
0xffffc90000308000-0xffffc9000030a000    8192 acpi_os_map_memory+0x11d/0x197 phys=7feff000 ioremap
0xffffc9000030a000-0xffffc9000030c000    8192 acpi_os_map_memory+0x11d/0x197 phys=fe807000 ioremap
0xffffc9000030c000-0xffffc9000030e000    8192 init_vdso_vars+0xe1/0x208
0xffffc9000030e000-0xffffc90000310000    8192 acpi_os_map_memory+0x11d/0x197 phys=fe800000 ioremap
0xffffc90000310000-0xffffc9000031f000   61440 acpi_os_map_memory+0x11d/0x197 phys=7fef1000 ioremap
0xffffc9000031f000-0xffffc90000322000   12288 alloc_large_system_hash+0x16a/0x22f pages=2 vmalloc N0=2
0xffffc90000322000-0xffffc90000327000   20480 alloc_large_system_hash+0x16a/0x22f pages=4 vmalloc N0=4
0xffffc90000327000-0xffffc90000333000   49152 zisofs_init+0x11/0x23 pages=11 vmalloc N0=11
0xffffc90000333000-0xffffc90000338000   20480 agp_add_bridge+0x2ba/0x480 pages=4 vmalloc N0=4
0xffffc90000380000-0xffffc90008381000 134221824 pci_mmcfg_arch_init+0xad/0x145 phys=f0000000 ioremap
0xffffc90008381000-0xffffc90008402000  528384 alloc_large_system_hash+0x16a/0x22f pages=128 vmalloc N0=128
0xffffc90008402000-0xffffc90008803000 4198400 alloc_large_system_hash+0x16a/0x22f pages=1024 vmalloc vpages N0=1024
0xffffc90008803000-0xffffc90008904000 1052672 alloc_large_system_hash+0x16a/0x22f pages=256 vmalloc N0=256
0xffffc9000897d000-0xffffc9000897f000    8192 dm_vcalloc+0x31/0x40 [dm_mod] pages=1 vmalloc N0=1
0xffffc90008980000-0xffffc900089a1000  135168 mpt_mapresources+0x181/0x320 [mptbase] phys=feba0000 ioremap
0xffffc900089c8000-0xffffc900089ca000    8192 dm_vcalloc+0x31/0x40 [dm_mod] pages=1 vmalloc N0=1
0xffffc90008ade000-0xffffc90008ae0000    8192 vmxnet3_probe_device+0x613/0xa50 [vmxnet3] phys=fd5fb000 ioremap
0xffffc90008ae0000-0xffffc90008ae2000    8192 vmxnet3_probe_device+0x646/0xa50 [vmxnet3] phys=fd5fc000 ioremap
0xffffc90008ae2000-0xffffc90008ae4000    8192 pci_enable_msix+0x19c/0x3f0 phys=fd5fe000 ioremap
0xffffc90008b38000-0xffffc90008ba0000  425984 sys_swapon+0x5e2/0xc80 pages=103 vmalloc N0=103
0xffffc90008ba0000-0xffffc90008ba2000    8192 swap_cgroup_swapon+0x50/0x170 pages=1 vmalloc N0=1
0xffffe8ffffc00000-0xffffe8ffffe00000 2097152 pcpu_get_vm_areas+0x0/0x6b0 vmalloc
0xffffffffa0000000-0xffffffffa0019000  102400 module_alloc+0x5e/0x60 pages=24 vmalloc N0=24
0xffffffffa0023000-0xffffffffa0027000   16384 module_alloc+0x5e/0x60 pages=3 vmalloc N0=3
0xffffffffa0027000-0xffffffffa0029000    8192 module_alloc+0x5e/0x60 pages=1 vmalloc N0=1
0xffffffffa002a000-0xffffffffa002e000   16384 module_alloc+0x5e/0x60 pages=3 vmalloc N0=3
0xffffffffa0031000-0xffffffffa0036000   20480 module_alloc+0x5e/0x60 pages=4 vmalloc N0=4
0xffffffffa0036000-0xffffffffa0038000    8192 module_alloc+0x5e/0x60 pages=1 vmalloc N0=1
0xffffffffa0039000-0xffffffffa0041000   32768 module_alloc+0x5e/0x60 pages=7 vmalloc N0=7
0xffffffffa0045000-0xffffffffa005d000   98304 module_alloc+0x5e/0x60 pages=23 vmalloc N0=23
0xffffffffa005d000-0xffffffffa0063000   24576 module_alloc+0x5e/0x60 pages=5 vmalloc N0=5
0xffffffffa0063000-0xffffffffa006d000   40960 module_alloc+0x5e/0x60 pages=9 vmalloc N0=9
0xffffffffa006d000-0xffffffffa0071000   16384 module_alloc+0x5e/0x60 pages=3 vmalloc N0=3
0xffffffffa0071000-0xffffffffa0077000   24576 module_alloc+0x5e/0x60 pages=5 vmalloc N0=5
0xffffffffa007a000-0xffffffffa0081000   28672 module_alloc+0x5e/0x60 pages=6 vmalloc N0=6
0xffffffffa0085000-0xffffffffa0087000    8192 module_alloc+0x5e/0x60 pages=1 vmalloc N0=1
0xffffffffa0089000-0xffffffffa008b000    8192 module_alloc+0x5e/0x60 pages=1 vmalloc N0=1
0xffffffffa008d000-0xffffffffa008f000    8192 module_alloc+0x5e/0x60 pages=1 vmalloc N0=1
0xffffffffa0091000-0xffffffffa009c000   45056 module_alloc+0x5e/0x60 pages=10 vmalloc N0=10
0xffffffffa00a0000-0xffffffffa00ab000   45056 module_alloc+0x5e/0x60 pages=10 vmalloc N0=10
0xffffffffa00af000-0xffffffffa00b4000   20480 module_alloc+0x5e/0x60 pages=4 vmalloc N0=4
0xffffffffa00bb000-0xffffffffa00bf000   16384 module_alloc+0x5e/0x60 pages=3 vmalloc N0=3
0xffffffffa00c2000-0xffffffffa00da000   98304 module_alloc+0x5e/0x60 pages=23 vmalloc N0=23
0xffffffffa00e4000-0xffffffffa0142000  385024 module_alloc+0x5e/0x60 pages=93 vmalloc N0=93
0xffffffffa0142000-0xffffffffa0157000   86016 module_alloc+0x5e/0x60 pages=20 vmalloc N0=20
0xffffffffa015b000-0xffffffffa0164000   36864 module_alloc+0x5e/0x60 pages=8 vmalloc N0=8
0xffffffffa0168000-0xffffffffa0171000   36864 module_alloc+0x5e/0x60 pages=8 vmalloc N0=8
0xffffffffa0176000-0xffffffffa017a000   16384 module_alloc+0x5e/0x60 pages=3 vmalloc N0=3
0xffffffffa017c000-0xffffffffa0188000   49152 module_alloc+0x5e/0x60 pages=11 vmalloc N0=11
0xffffffffa018c000-0xffffffffa0195000   36864 module_alloc+0x5e/0x60 pages=8 vmalloc N0=8
0xffffffffa0199000-0xffffffffa01a3000   40960 module_alloc+0x5e/0x60 pages=9 vmalloc N0=9
0xffffffffa01a8000-0xffffffffa01af000   28672 module_alloc+0x5e/0x60 pages=6 vmalloc N0=6
0xffffffffa01b3000-0xffffffffa01b6000   12288 module_alloc+0x5e/0x60 pages=2 vmalloc N0=2
0xffffffffa01b8000-0xffffffffa01bc000   16384 module_alloc+0x5e/0x60 pages=3 vmalloc N0=3
0xffffffffa01be000-0xffffffffa01db000  118784 module_alloc+0x5e/0x60 pages=28 vmalloc N0=28
0xffffffffa01e2000-0xffffffffa01e5000   12288 module_alloc+0x5e/0x60 pages=2 vmalloc N0=2
0xffffffffa01eb000-0xffffffffa023e000  339968 module_alloc+0x5e/0x60 pages=82 vmalloc N0=82
0xffffffffa0251000-0xffffffffa0257000   24576 module_alloc+0x5e/0x60 pages=5 vmalloc N0=5
0xffffffffa025a000-0xffffffffa025c000    8192 module_alloc+0x5e/0x60 pages=1 vmalloc N0=1
0xffffffffa025e000-0xffffffffa0273000   86016 module_alloc+0x5e/0x60 pages=20 vmalloc N0=20
0xffffffffa027d000-0xffffffffa027f000    8192 module_alloc+0x5e/0x60 pages=1 vmalloc N0=1
0xffffffffa0281000-0xffffffffa0289000   32768 module_alloc+0x5e/0x60 pages=7 vmalloc N0=7
0xffffffffa028c000-0xffffffffa0290000   16384 module_alloc+0x5e/0x60 pages=3 vmalloc N0=3
0xffffffffa0293000-0xffffffffa0296000   12288 module_alloc+0x5e/0x60 pages=2 vmalloc N0=2
0xffffffffa02b0000-0xffffffffa02b2000    8192 module_alloc+0x5e/0x60 pages=1 vmalloc N0=1
0xffffffffa02db000-0xffffffffa02de000   12288 module_alloc+0x5e/0x60 pages=2 vmalloc N0=2
0xffffffffa02e1000-0xffffffffa02e3000    8192 module_alloc+0x5e/0x60 pages=1 vmalloc N0=1
0xffffffffa02e5000-0xffffffffa02e8000   12288 module_alloc+0x5e/0x60 pages=2 vmalloc N0=2
0xffffffffa02eb000-0xffffffffa02f3000   32768 module_alloc+0x5e/0x60 pages=7 vmalloc N0=7
0xffffffffa02f7000-0xffffffffa02ff000   32768 module_alloc+0x5e/0x60 pages=7 vmalloc N0=7
#


awk 特定の列を抜き出すためのコマンド
以下は 2列目を抜き出している。
http://www.e.ics.nara-wu.ac.jp/~nogu/tips/unix_command.html
# cat /proc/vmallocinfo | awk '{print $2}'
8192
2101248
1052672
12288
8192
8192
8192
8192
61440
12288
20480
49152
20480
134221824
528384
4198400
1052672
8192
135168
8192
8192
8192
8192
425984
8192
2097152
102400
16384
8192
16384
20480
8192
32768
98304
24576
40960
16384
24576
28672
8192
8192
8192
45056
45056
20480
16384
98304
385024
86016
36864
36864
16384
49152
36864
40960
28672
12288
16384
118784
12288
339968
24576
8192
86016
8192
32768
16384
12288
8192
12288
8192
12288
32768
32768
#
pasteコマンド 複数のファイルを行単位で連結
-s ファイル単位で1行にまとめる
-d 区切り文字を指定
http://www.linuxmaster.jp/linux_skill/2006/08/080paste.html


# cat /proc/vmallocinfo | paste -s -d "+"
0xffffc90000000000-0xffffc90000002000    8192 hpet_enable+0x34/0x2a9 phys=fed00000 ioremap+0xffffc90000002000-0xffffc90000203000 2101248 alloc_large_system_hash+0x16a/0x22f pages=512 vmalloc N0=512+0xffffc90000203000-0xffffc90000304000 1052672 alloc_large_system_hash+0x16a/0x22f pages=256 vmalloc N0=256+0xffffc90000304000-0xffffc90000307000   12288 mem_cgroup_create+0x274/0x480 pages=2 vmalloc N0=2+0xffffc90000308000-0xffffc9000030a000    8192 acpi_os_map_memory+0x11d/0x197 phys=7feff000 ioremap+0xffffc9000030a000-0xffffc9000030c000    8192 acpi_os_map_memory+0x11d/0x197 phys=fe807000 ioremap+0xffffc9000030c000-0xffffc9000030e000    8192 init_vdso_vars+0xe1/0x208+0xffffc9000030e000-0xffffc90000310000    8192 acpi_os_map_memory+0x11d/0x197 phys=fe800000 ioremap+0xffffc90000310000-0xffffc9000031f000   61440 acpi_os_map_memory+0x11d/0x197 phys=7fef1000 ioremap+0xffffc9000031f000-0xffffc90000322000   12288 alloc_large_system_hash+0x16a/0x22f pages=2 vmalloc N0=2+0xffffc90000322000-0xffffc90000327000   20480 alloc_large_system_hash+0x16a/0x22f pages=4 vmalloc N0=4+0xffffc90000327000-0xffffc90000333000   49152 zisofs_init+0x11/0x23 pages=11 vmalloc N0=11+0xffffc90000333000-0xffffc90000338000   20480 agp_add_bridge+0x2ba/0x480 pages=4 vmalloc N0=4+0xffffc90000380000-0xffffc90008381000 134221824 pci_mmcfg_arch_init+0xad/0x145 phys=f0000000 ioremap+0xffffc90008381000-0xffffc90008402000  528384 alloc_large_system_hash+0x16a/0x22f pages=128 vmalloc N0=128+0xffffc90008402000-0xffffc90008803000 4198400 alloc_large_system_hash+0x16a/0x22f pages=1024 vmalloc vpages N0=1024+0xffffc90008803000-0xffffc90008904000 1052672 alloc_large_system_hash+0x16a/0x22f pages=256 vmalloc N0=256+0xffffc9000897d000-0xffffc9000897f000    8192 dm_vcalloc+0x31/0x40 [dm_mod] pages=1 vmalloc N0=1+0xffffc90008980000-0xffffc900089a1000  135168 mpt_mapresources+0x181/0x320 [mptbase] phys=feba0000 ioremap+0xffffc900089c8000-0xffffc900089ca000    8192 dm_vcalloc+0x31/0x40 [dm_mod] pages=1 vmalloc N0=1+0xffffc90008ade000-0xffffc90008ae0000    8192 vmxnet3_probe_device+0x613/0xa50 [vmxnet3] phys=fd5fb000 ioremap+0xffffc90008ae0000-0xffffc90008ae2000    8192 vmxnet3_probe_device+0x646/0xa50 [vmxnet3] phys=fd5fc000 ioremap+0xffffc90008ae2000-0xffffc90008ae4000    8192 pci_enable_msix+0x19c/0x3f0 phys=fd5fe000 ioremap+0xffffc90008b38000-0xffffc90008ba0000  425984 sys_swapon+0x5e2/0xc80 pages=103 vmalloc N0=103+0xffffc90008ba0000-0xffffc90008ba2000    8192 swap_cgroup_swapon+0x50/0x170 pages=1 vmalloc N0=1+0xffffe8ffffc00000-0xffffe8ffffe00000 2097152 pcpu_get_vm_areas+0x0/0x6b0 vmalloc+0xffffffffa0000000-0xffffffffa0019000  102400 module_alloc+0x5e/0x60 pages=24 vmalloc N0=24+0xffffffffa0023000-0xffffffffa0027000   16384 module_alloc+0x5e/0x60 pages=3 vmalloc N0=3+0xffffffffa0027000-0xffffffffa0029000    8192 module_alloc+0x5e/0x60 pages=1 vmalloc N0=1+0xffffffffa002a000-0xffffffffa002e000   16384 module_alloc+0x5e/0x60 pages=3 vmalloc N0=3+0xffffffffa0031000-0xffffffffa0036000   20480 module_alloc+0x5e/0x60 pages=4 vmalloc N0=4+0xffffffffa0036000-0xffffffffa0038000    8192 module_alloc+0x5e/0x60 pages=1 vmalloc N0=1+0xffffffffa0039000-0xffffffffa0041000   32768 module_alloc+0x5e/0x60 pages=7 vmalloc N0=7+0xffffffffa0045000-0xffffffffa005d000   98304 module_alloc+0x5e/0x60 pages=23 vmalloc N0=23+0xffffffffa005d000-0xffffffffa0063000   24576 module_alloc+0x5e/0x60 pages=5 vmalloc N0=5+0xffffffffa0063000-0xffffffffa006d000   40960 module_alloc+0x5e/0x60 pages=9 vmalloc N0=9+0xffffffffa006d000-0xffffffffa0071000   16384 module_alloc+0x5e/0x60 pages=3 vmalloc N0=3+0xffffffffa0071000-0xffffffffa0077000   24576 module_alloc+0x5e/0x60 pages=5 vmalloc N0=5+0xffffffffa007a000-0xffffffffa0081000   28672 module_alloc+0x5e/0x60 pages=6 vmalloc N0=6+0xffffffffa0085000-0xffffffffa0087000    8192 module_alloc+0x5e/0x60 pages=1 vmalloc N0=1+0xffffffffa0089000-0xffffffffa008b000    8192 module_alloc+0x5e/0x60 pages=1 vmalloc N0=1+0xffffffffa008d000-0xffffffffa008f000    8192 module_alloc+0x5e/0x60 pages=1 vmalloc N0=1+0xffffffffa0091000-0xffffffffa009c000   45056 module_alloc+0x5e/0x60 pages=10 vmalloc N0=10+0xffffffffa00a0000-0xffffffffa00ab000   45056 module_alloc+0x5e/0x60 pages=10 vmalloc N0=10+0xffffffffa00af000-0xffffffffa00b4000   20480 module_alloc+0x5e/0x60 pages=4 vmalloc N0=4+0xffffffffa00bb000-0xffffffffa00bf000   16384 module_alloc+0x5e/0x60 pages=3 vmalloc N0=3+0xffffffffa00c2000-0xffffffffa00da000   98304 module_alloc+0x5e/0x60 pages=23 vmalloc N0=23+0xffffffffa00e4000-0xffffffffa0142000  385024 module_alloc+0x5e/0x60 pages=93 vmalloc N0=93+0xffffffffa0142000-0xffffffffa0157000   86016 module_alloc+0x5e/0x60 pages=20 vmalloc N0=20+0xffffffffa015b000-0xffffffffa0164000   36864 module_alloc+0x5e/0x60 pages=8 vmalloc N0=8+0xffffffffa0168000-0xffffffffa0171000   36864 module_alloc+0x5e/0x60 pages=8 vmalloc N0=8+0xffffffffa0176000-0xffffffffa017a000   16384 module_alloc+0x5e/0x60 pages=3 vmalloc N0=3+0xffffffffa017c000-0xffffffffa0188000   49152 module_alloc+0x5e/0x60 pages=11 vmalloc N0=11+0xffffffffa018c000-0xffffffffa0195000   36864 module_alloc+0x5e/0x60 pages=8 vmalloc N0=8+0xffffffffa0199000-0xffffffffa01a3000   40960 module_alloc+0x5e/0x60 pages=9 vmalloc N0=9+0xffffffffa01a8000-0xffffffffa01af000   28672 module_alloc+0x5e/0x60 pages=6 vmalloc N0=6+0xffffffffa01b3000-0xffffffffa01b6000   12288 module_alloc+0x5e/0x60 pages=2 vmalloc N0=2+0xffffffffa01b8000-0xffffffffa01bc000   16384 module_alloc+0x5e/0x60 pages=3 vmalloc N0=3+0xffffffffa01be000-0xffffffffa01db000  118784 module_alloc+0x5e/0x60 pages=28 vmalloc N0=28+0xffffffffa01e2000-0xffffffffa01e5000   12288 module_alloc+0x5e/0x60 pages=2 vmalloc N0=2+0xffffffffa01eb000-0xffffffffa023e000  339968 module_alloc+0x5e/0x60 pages=82 vmalloc N0=82+0xffffffffa0251000-0xffffffffa0257000   24576 module_alloc+0x5e/0x60 pages=5 vmalloc N0=5+0xffffffffa025a000-0xffffffffa025c000    8192 module_alloc+0x5e/0x60 pages=1 vmalloc N0=1+0xffffffffa025e000-0xffffffffa0273000   86016 module_alloc+0x5e/0x60 pages=20 vmalloc N0=20+0xffffffffa027d000-0xffffffffa027f000    8192 module_alloc+0x5e/0x60 pages=1 vmalloc N0=1+0xffffffffa0281000-0xffffffffa0289000   32768 module_alloc+0x5e/0x60 pages=7 vmalloc N0=7+0xffffffffa028c000-0xffffffffa0290000   16384 module_alloc+0x5e/0x60 pages=3 vmalloc N0=3+0xffffffffa0293000-0xffffffffa0296000   12288 module_alloc+0x5e/0x60 pages=2 vmalloc N0=2+0xffffffffa02b0000-0xffffffffa02b2000    8192 module_alloc+0x5e/0x60 pages=1 vmalloc N0=1+0xffffffffa02db000-0xffffffffa02de000   12288 module_alloc+0x5e/0x60 pages=2 vmalloc N0=2+0xffffffffa02e1000-0xffffffffa02e3000    8192 module_alloc+0x5e/0x60 pages=1 vmalloc N0=1+0xffffffffa02e5000-0xffffffffa02e8000   12288 module_alloc+0x5e/0x60 pages=2 vmalloc N0=2+0xffffffffa02eb000-0xffffffffa02f3000   32768 module_alloc+0x5e/0x60 pages=7 vmalloc N0=7+0xffffffffa02f7000-0xffffffffa02ff000   32768 module_alloc+0x5e/0x60 pages=7 vmalloc N0=7
#


bcコマンド
計算を行うコマンド
http://itpro.nikkeibp.co.jp/article/COLUMN/20060227/230717/


参考書籍
プロのための Linuxシステム・10年効く技術
P55


計算の目的
VmallocUsed全体からioremapを除いた物理メモリ領域を求めるため。
ioremap:外部デバイスで使用するメモリ領域


# cat /proc/meminfo | grep VmallocUsed
VmallocUsed:      142656 kB




他参考ページ
http://d.hatena.ne.jp/enakai00/20110906/1315315488

0 件のコメント:

コメントを投稿