Re: [PATCH 1/4] virtio-blk: remove additional check in fast path

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

 



On Tue, Apr 19, 2022 at 09:10:50PM -0700, Chaitanya Kulkarni wrote:
> The function virtblk_setup_cmd() calls
> virtblk_setup_discard_write_zeroes() once we process the block layer
> request operation setup in the switch. Even though it saves duplicate
> call for REQ_OP_DISCARD and REQ_OP_WRITE_ZEROES it adds additional check
> in the fast path that is redundent since we already have a switch case
> for both REQ_OP_DISCARD and REQ_OP_WRITE_ZEROES.
> 
> Move the call virtblk_setup_discard_write_zeroes() into switch case
> label of REQ_OP_DISCARD and REQ_OP_WRITE_ZEROES and avoid duplicate
> branch in the fast path.
> 
> Signed-off-by: Chaitanya Kulkarni <kch@xxxxxxxxxx>
> ---
>  drivers/block/virtio_blk.c | 9 ++++-----
>  1 file changed, 4 insertions(+), 5 deletions(-)

Is there data that shows the performance effect of moving the code out
of the fast path?

> diff --git a/drivers/block/virtio_blk.c b/drivers/block/virtio_blk.c
> index 6ccf15253dee..b77711e73422 100644
> --- a/drivers/block/virtio_blk.c
> +++ b/drivers/block/virtio_blk.c
> @@ -223,10 +223,14 @@ static blk_status_t virtblk_setup_cmd(struct virtio_device *vdev,
>  		break;
>  	case REQ_OP_DISCARD:
>  		type = VIRTIO_BLK_T_DISCARD;
> +		if (virtblk_setup_discard_write_zeroes(req, unmap))

unmap is never true here. The variable obscures what is going on:

s/unmap/false/

Attachment: signature.asc
Description: PGP signature


[Index of Archives]     [Linux RAID]     [Linux SCSI]     [Linux ATA RAID]     [IDE]     [Linux Wireless]     [Linux Kernel]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Device Mapper]

  Powered by Linux