• Jens Axboe's avatar
    nvme: don't memset() the normal read/write command · a9a7e30f
    Jens Axboe authored
    This memset in the fast path costs a lot of cycles on my setup. Here's a
    top-of-profile of doing ~6.7M IOPS:
    
    +    5.90%  io_uring  [nvme]            [k] nvme_queue_rq
    +    5.32%  io_uring  [nvme_core]       [k] nvme_setup_cmd
    +    5.17%  io_uring  [kernel.vmlinux]  [k] io_submit_sqes
    +    4.97%  io_uring  [kernel.vmlinux]  [k] blkdev_direct_IO
    
    and a perf diff with this patch:
    
         0.92%     +4.40%  [nvme_core]       [k] nvme_setup_cmd
    
    reducing it from 5.3% to only 0.9%. This takes it from the 2nd most
    cycle consumer to something that's mostly irrelevant.
    Reviewed-by: default avatarChaitanya Kulkarni <kch@nvidia.com>
    Reviewed-by: default avatarKeith Busch <kbusch@kernel.org>
    Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
    a9a7e30f
core.c 122 KB