• Akinobu Mita's avatar
    null_blk: restart request processing on completion handler · 8b70f45e
    Akinobu Mita authored
    When irqmode=2 (IRQ completion handler is timer) and queue_mode=1
    (Block interface to use is rq), the completion handler should restart
    request handling for any pending requests on a queue because request
    processing stops when the number of commands are queued more than
    hw_queue_depth (null_rq_prep_fn returns BLKPREP_DEFER).
    
    Without this change, the following command cannot finish.
    
    	# modprobe null_blk irqmode=2 queue_mode=1 hw_queue_depth=1
    	# fio --name=t --rw=read --size=1g --direct=1 \
    	  --ioengine=libaio --iodepth=64 --filename=/dev/nullb0
    Signed-off-by: default avatarAkinobu Mita <akinobu.mita@gmail.com>
    Cc: Jens Axboe <axboe@fb.com>
    Signed-off-by: default avatarJens Axboe <axboe@fb.com>
    8b70f45e
null_blk.c 14.5 KB