Hello, I manage to have more information about the issue by the use of strace, the blocking call is an ioctl on /dev/mapper/control: write(1, "# dm versions [ opencount flus"..., 51# dm versions [ opencount flush ] [16384] (*1)) = 51 ioctl(3, DM_LIST_VERSIONS, {version=4.1.0, data_size=16384, data_start=312, flags=DM_EXISTS_FLAG} => {version=4.39.0, data_size=431, data_start=312, flags=DM_EXISTS_FLAG, ...}) = 0 write(1, "# dm remove luksDeviceTest [ op"..., 75# dm remove luksDeviceTest [ opencount flush retryremove ] [16384] (*1)) = 75 ioctl(3, DM_DEV_REMOVE, {version=4.0.0, data_size=16384, name="luksDeviceTest", event_nr=4194304, flags=DM_EXISTS_FLAGS} to be compare to the same call without 7fcfa8b616d360ab9ea1da94c2200f0708e0188b commit: ioctl(3, DM_LIST_VERSIONS, {version=4.1.0, data_size=16384, data_start=312, flags=DM_EXISTS_FLAG} => {version=4.39.0, data_size=431, data_start=312, flags=DM_EXISTS_FLAG, ...}) = 0 write(1, "# dm remove luksDeviceTest [ op"..., 75# dm remove luksDeviceTest [ opencount flush retryremove ] [16384] (*1)) = 75 ioctl(3, DM_DEV_REMOVE, {version=4.0.0, data_size=16384, name="luksDeviceTest", event_nr=4194304, flags=DM_EXISTS_FLAG} => {version=4.39.0, data_size=305, name="luksDeviceTest", uuid="CRYPT-LUKS1-25edf7523ab4454590a7e2ac83050582-luksDeviceTest", flags=DM_EXISTS_FLAG|DM_UEVENT_GENERATED_FLAG}) = 0 write(1, "# luksDeviceTest: Stacking NODE_"..., 36# luksDeviceTest: Stacking NODE_DEL) = 36 write(1, "# luksDeviceTest: Processing NOD"..., 38# luksDeviceTest: Processing NODE_DEL) = 38 The matching code line which block is https://github.com/lvmteam/lvm2/blob/v2_03_06/libdm/ioctl/libdm-iface.c#L1890 I don't know how to go deeper to understand why preempt-rt is blocking of this, any ideas ? Another question is about the impact of reverting commit https://git.kernel.org/pub/scm/linux/kernel/git/rt/linux-stable-rt.git/commit/?h=v4.19-rt&id=7fcfa8b616d360ab9ea1da94c2200f0708e0188b , what are the risk of doing that ?