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

관련 정보