Patch "brd: mark as nowait compatible" has been added to the 5.15-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    brd: mark as nowait compatible

to the 5.15-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     brd-mark-as-nowait-compatible.patch
and it can be found in the queue-5.15 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit 9211eff97ca45f2f76de6d2be74ca3a8ccc87c2c
Author: Jens Axboe <axboe@xxxxxxxxx>
Date:   Wed Feb 15 16:43:47 2023 -0700

    brd: mark as nowait compatible
    
    [ Upstream commit 67205f80be9910207481406c47f7d85e703fb2e9 ]
    
    By default, non-mq drivers do not support nowait. This causes io_uring
    to use a slower path as the driver cannot be trust not to block. brd
    can safely set the nowait flag, as worst case all it does is a NOIO
    allocation.
    
    For io_uring, this makes a substantial difference. Before:
    
    submitter=0, tid=453, file=/dev/ram0, node=-1
    polled=0, fixedbufs=1/0, register_files=1, buffered=0, QD=128
    Engine=io_uring, sq_ring=128, cq_ring=128
    IOPS=440.03K, BW=1718MiB/s, IOS/call=32/31
    IOPS=428.96K, BW=1675MiB/s, IOS/call=32/32
    IOPS=442.59K, BW=1728MiB/s, IOS/call=32/31
    IOPS=419.65K, BW=1639MiB/s, IOS/call=32/32
    IOPS=426.82K, BW=1667MiB/s, IOS/call=32/31
    
    and after:
    
    submitter=0, tid=354, file=/dev/ram0, node=-1
    polled=0, fixedbufs=1/0, register_files=1, buffered=0, QD=128
    Engine=io_uring, sq_ring=128, cq_ring=128
    IOPS=3.37M, BW=13.15GiB/s, IOS/call=32/31
    IOPS=3.45M, BW=13.46GiB/s, IOS/call=32/31
    IOPS=3.43M, BW=13.42GiB/s, IOS/call=32/32
    IOPS=3.43M, BW=13.39GiB/s, IOS/call=32/31
    IOPS=3.43M, BW=13.38GiB/s, IOS/call=32/31
    
    or about an 8x in difference. Now that brd is prepared to deal with
    REQ_NOWAIT reads/writes, mark it as supporting that.
    
    Cc: stable@xxxxxxxxxxxxxxx # 5.10+
    Link: https://lore.kernel.org/linux-block/20230203103005.31290-1-p.raghav@xxxxxxxxxxx/
    Signed-off-by: Jens Axboe <axboe@xxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/drivers/block/brd.c b/drivers/block/brd.c
index 63ac5cd523408..76ce6f766d55e 100644
--- a/drivers/block/brd.c
+++ b/drivers/block/brd.c
@@ -421,6 +421,7 @@ static int brd_alloc(int i)
 	/* Tell the block layer that this is not a rotational device */
 	blk_queue_flag_set(QUEUE_FLAG_NONROT, disk->queue);
 	blk_queue_flag_clear(QUEUE_FLAG_ADD_RANDOM, disk->queue);
+	blk_queue_flag_set(QUEUE_FLAG_NOWAIT, disk->queue);
 	err = add_disk(disk);
 	if (err)
 		goto out_cleanup_disk;



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux