On Thu, Mar 21, 2024 at 03:46:05PM -0700, Bart Van Assche wrote: > There is an algorithm in the block layer for maintaining fairness > across queues that share a tag set. The sbitmap implementation has > improved so much that we don't need the block layer fairness algorithm > anymore and that we can rely on the sbitmap implementation to guarantee > fairness. > > This patch removes the following code and structure members: > - The function hctx_may_queue(). > - blk_mq_hw_ctx.nr_active and request_queue.nr_active_requests_shared_tags > and also all the code that modifies these two member variables. > > On my test setup (x86 VM with 72 CPU cores) this patch results in 2.9% more > IOPS. IOPS have been measured as follows: > > $ modprobe null_blk nr_devices=1 completion_nsec=0 > $ fio --bs=4096 --disable_clat=1 --disable_slat=1 --group_reporting=1 \ > --gtod_reduce=1 --invalidate=1 --ioengine=psync --ioscheduler=none \ > --norandommap --runtime=60 --rw=randread --thread --time_based=1 \ > --buffered=0 --numjobs=64 --name=/dev/nullb0 --filename=/dev/nullb0 The above test just covers single LUN test. But the code you removed is actually for providing fairness over multi-LUN, do you have multi-LUN test result for supporting the change? Thanks, Ming