• Douglas Gilbert's avatar
    scsi: scsi_debug: Randomize command completion time · 0c4bc91d
    Douglas Gilbert authored
    Add a new command line option (e.g. random=1) and sysfs attribute that
    causes subsequent command completion times to be between the current
    command delay setting and 0. A uniformly distributed 32 bit, kernel
    provided integer is used for this purpose.
    
    Since the existing 'delay' whose units are jiffies (typically milliseconds)
    and 'ndelay' (units: nanoseconds) options (and sysfs attributes) span a
    range greater than 32 bits, some scaling is required.
    
    The purpose of this patch is to widen the range of testing cases that are
    visited in long running tests. Put simply: rarely struct race conditions
    are more likely to be found when this facility is used.
    
    The default is the previous case in which all command completions were
    roughly equal to (if not, slightly longer) than the value given by the
    'delay' or 'ndelay' settings (or their defaults).  This option's default is
    equivalent to setting 'random=0' .
    
    [mkp: use kstrtobool()]
    
    Link: https://lore.kernel.org/r/20200421151424.32668-2-dgilbert@interlog.comReviewed-by: default avatarHannes Reinecke <hare@suse.de>
    Signed-off-by: default avatarDouglas Gilbert <dgilbert@interlog.com>
    Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
    0c4bc91d
scsi_debug.c 173 KB