Skip to content
  • Weiping Zhang's avatar
    fe35ec58
    block: update hctx map when use multiple maps · fe35ec58
    Weiping Zhang authored
    
    
    There is an issue when tune the number for read and write queues,
    if the total queue count was not changed. The hctx->type cannot
    be updated, since __blk_mq_update_nr_hw_queues will return directly
    if the total queue count has not been changed.
    
    Reproduce:
    
    dmesg | grep "default/read/poll"
    [    2.607459] nvme nvme0: 48/0/0 default/read/poll queues
    cat /sys/kernel/debug/block/nvme0n1/hctx*/type | sort | uniq -c
         48 default
    
    tune the write queues to 24:
    echo 24 > /sys/module/nvme/parameters/write_queues
    echo 1 > /sys/block/nvme0n1/device/reset_controller
    
    dmesg | grep "default/read/poll"
    [  433.547235] nvme nvme0: 24/24/0 default/read/poll queues
    
    cat /sys/kernel/debug/block/nvme0n1/hctx*/type | sort | uniq -c
         48 default
    
    The driver's hardware queue mapping is not same as block layer.
    
    Signed-off-by: default avatarWeiping Zhang <zhangweiping@didiglobal.com>
    Reviewed-by: default avatarMing Lei <ming.lei@redhat.com>
    Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
    fe35ec58
    block: update hctx map when use multiple maps
    Weiping Zhang authored
    
    
    There is an issue when tune the number for read and write queues,
    if the total queue count was not changed. The hctx->type cannot
    be updated, since __blk_mq_update_nr_hw_queues will return directly
    if the total queue count has not been changed.
    
    Reproduce:
    
    dmesg | grep "default/read/poll"
    [    2.607459] nvme nvme0: 48/0/0 default/read/poll queues
    cat /sys/kernel/debug/block/nvme0n1/hctx*/type | sort | uniq -c
         48 default
    
    tune the write queues to 24:
    echo 24 > /sys/module/nvme/parameters/write_queues
    echo 1 > /sys/block/nvme0n1/device/reset_controller
    
    dmesg | grep "default/read/poll"
    [  433.547235] nvme nvme0: 24/24/0 default/read/poll queues
    
    cat /sys/kernel/debug/block/nvme0n1/hctx*/type | sort | uniq -c
         48 default
    
    The driver's hardware queue mapping is not same as block layer.
    
    Signed-off-by: default avatarWeiping Zhang <zhangweiping@didiglobal.com>
    Reviewed-by: default avatarMing Lei <ming.lei@redhat.com>
    Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
Loading