• Douglas Gilbert's avatar
    scsi_debug: support scsi-mq, queues and locks · cbf67842
    Douglas Gilbert authored
     - add host_lock option whose default value is 0 which removes the
       host_lock around all queued commands
     - accept delay=-1 (_hi_) or -2 which use a tasklet to invoke
       the scsi_done callback into the mid-layer. The default
       is still delay=1 which uses a timer to delay 1 jiffy
     - wire .change_queue_depth and .change_queue_type
       functions to better simulate queueing in a modern LLD
     - add SCSI_DEBUG_OPT_Q_NOISE (0x200) mask to only produce
       debug output associated with queue full, plus from
       .change_queue_depth and .change_queue_type functions
     - add SCSI_DEBUG_OPT_ALL_TSF (0x400) mask which reports
       all queued_arr fulls at TASK_SET_FULL, otherwise
       SCSI_MLQUEUE_HOST_BUSY is returned
     - add SCSI_DEBUG_OPT_RARE_TSF (0x800) mask which works
       together with the every_nth option (> 0) to count
       occurrences of num_in_q==queue_depth. When every_nth
       is reached the victim (a command) yields TASK SET FULL
     - clean up many debug messages.
     - add ndelay=<nanosecs> option that uses high resolution
       timers; active if > 0 and then overrides delay= option
     - expand Unit Attention handling: POR, BUS_RESET and
       MODE PARAMETERS CHANGED
     - support .eh_target_reset_handler and drop .bios_param
     - add OPT_N_WCE mask so caching page yields WCE=0
     - add OPT_RESET_NOISE mask to log aborts and resets
     - add OPT_NO_CDB_NOISE mask to not log each cdb
     - MODE SELECT support for changing caching page's WCE
     - name common ioctls in log
     - when fake_rw=1, do not vmalloc fake store; make
       UNMAP and WRITE SAME obey fake_rw
     - more logging and code improvements including better
       sense buffer handling
    
    With fio and four (pseudo) devices I have observed 1.2 M IOPS
    on my equipment. Rob Elliott who has done much testing and made
    numerous suggestions, has better IOPS results than mine.
    Signed-off-by: default avatarDouglas Gilbert <dgilbert@interlog.com>
    Reviewed-by: default avatarRobert Elliott <elliott@hp.com>
    Tested-by: default avatarRobert Elliott <elliott@hp.com>
    Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
    cbf67842
scsi_debug.c 134 KB