lvmのpid / lockを取得する - dmsetup情報のopencountソースコード

lvmのpid / lockを取得する - dmsetup情報のopencountソースコード
# dmsetup info 

Name:        ubuntu--vg-root
State:             ACTIVE
Read Ahead:        256 <----  cat /sys/dev/block/253:0/bdi/read_ahead_kb gives 128 not 256 
Tables present:    LIVE
Open count:        1 <--- # how / from where are we getting this value 
Event number:      0
Major, minor:      253, 0
Number of targets: 1
UUID: LVM-cNOV7zcldgzsAuxUbXbSdk2WhT012Pjay1B0JmoKCcTFOQDa9u19bDkqkdceVY0a


# strace for dmsetup info 

open("/sys/dev/block/253:0/bdi/read_ahead_kb", O_RDONLY) = 4
read(4, "128\n", 23) = 4
close(4)= 0
write(1, "Read Ahead:256\n", 23Read Ahead:256) = 23
write(1, "Tables present:    LIVE\n", 24Tables present:    LIVE) = 24
write(1, "Open count:1\n", 21Open count:1)  = 21
write(1, "Event number:0\n", 21Event number:0)  = 21
write(1, "Major, minor:253, 0\n", 26Major, minor:253, 0) = 26
write(1, "Number of targets: 1\n", 21Number of targets: 1)  = 21
write(1, "UUID: LVM-cNOV7zcldgzsAuxUbXbSdk"..., 75UUID: LVM-cNOV7zcldgzsAuxUbXbSdk2WhT012Pjay1B0JmoKCcTFOQDa9u19bDkqkdceVY0a) = 75
write(1, "\n", 1)= 1
  • dmsetup info が公開回数を取得する方法を把握しようとしています。本当に知りたかったのですが、straceを実行しましたが、わかりません。

  • また、/sys/dev/block/253:0/bdi/read_ahead_kb では、先読み値が 128 と表示されますが、
    dmsetup 情報には 256 が表示されます。
    これは矛盾ではありませんか?ここで何か抜けましたか?

ベストアンサー1

開いた回数は ioctl によって返され、DM_DEV_STATUSstrace で見ることができます。

ioctl(3, DM_DEV_STATUS, {version=4.0.0, data_size=16384, name="fedora-swap", flags=DM_EXISTS_FLAG} => {version=4.42.0, data_size=305, dev=makedev(0xfd, 0x2), name="fedora-swap", uuid="LVM-T3AyeS3A7de018NxTFWF0VlGG9nvww0aKeYyylJXyg92FDUfj7qe0NkAoVFgYYf1", target_count=1, open_count=2, event_nr=0, flags=DM_EXISTS_FLAG|DM_ACTIVE_PRESENT_FLAG}) = 0

dmsetup出力の先読み値は512bセクタにありますが、sysfsではKiB単位です - 256 * 512 = 128 KiB

おすすめ記事