BACKPORT: FROMGIT: dm-verity: support block number limits for different ioprio classes
Calling verity_verify_io in bh for IO of all sizes is not suitable for embedded devices. From our tests, it can improve the performance of 4K synchronise random reads. For example: ./fio --name=rand_read --ioengine=psync --rw=randread --bs=4K \ --direct=1 --numjobs=8 --runtime=60 --time_based --group_reporting \ --filename=/dev/block/mapper/xx-verity But it will degrade the performance of 512K synchronise sequential reads on our devices. For example: ./fio --name=read --ioengine=psync --rw=read --bs=512K --direct=1 \ --numjobs=8 --runtime=60 --time_based --group_reporting \ --filename=/dev/block/mapper/xx-verity A parameter array is introduced by this change. And users can modify the default config by /sys/module/dm_verity/parameters/use_bh_bytes. The default limits for NONE/RT/BE is set to 8192. The default limits for IDLE is set to 0. Call verity_verify_io directly when verity_end_io is not in hardirq. Bug: 401036538 Link: https://lore.kernel.org/dm-devel/20250325104942.1170388-1-weilongping@oppo.com/T/#u (cherry picked from commit 5c5d0d70 https://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm.git dm-6.15) As BH workqueue doesn't exist on this branch, we just enable verity-inline when verity_end_io is not in hardirq. Change-Id: I3bf213947910cd1d8670ac7818fa8bafd5cdc0a8 Signed-off-by:LongPing Wei <weilongping@oppo.com> Signed-off-by:
Mikulas Patocka <mpatocka@redhat.com>
Loading
Please sign in to comment