Re: [PATCH] [SCSI] st: expand ability to write immediate filemarks

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, 15 Feb 2012, Lee Duncan wrote:

> The st tape driver recently added the MTWEOFI ioctl, which writes
> a tape filemark (EOF), like the MTWEOF ioctl, except that MTWEOFI
> returns immediately. This makes certain applications, like backup
> software, run much more quickly on buffered tape drives.
> 
> Since legacy applications do not know about this new MTWEOFI ioctl,
> this patch adds a new flag that tells the st driver to return
> immediately when writing an EOF (i.e. a filemark). This new flag
> is much like the existing flag that tells the st driver to perform
> writes (and certain other IOs) immediately, but this new flag only
> applies to writing EOFs.
> 
> This new feature can be enabled via a new module flag: st_nowait_eof.
> It can also be set or cleared via the MTSETDRVBUFFER ioctl, using
> the newly-defined MT_ST_NOWAIT_EOF flag.
> 
> Lastly, this new feature is displayed via the sysfs tape "options"
> attribute.
> 
> Signed-off-by: Lee Duncan <lduncan@xxxxxxxx>
> ---
>  Documentation/scsi/st.txt |    2 ++
>  drivers/scsi/st.c         |   24 +++++++++++++++++++++---
>  drivers/scsi/st.h         |    1 +
>  include/linux/mtio.h      |    1 +
>  4 files changed, 25 insertions(+), 3 deletions(-)
> 
> diff --git a/Documentation/scsi/st.txt b/Documentation/scsi/st.txt
> index 691ca29..85c1b1a 100644
> --- a/Documentation/scsi/st.txt
> +++ b/Documentation/scsi/st.txt
> @@ -390,6 +390,8 @@ MTSETDRVBUFFER
>  	     MT_ST_SYSV sets the SYSV semantics (mode)
>  	     MT_ST_NOWAIT enables immediate mode (i.e., don't wait for
>  	        the command to finish) for some commands (e.g., rewind)
> +	     MT_ST_NOWAIT_EOF enables immediate filemark mode (i.e. when
> +	        writing a filemark, don't wait for it to complete)

You could add a note that errors before EOF may not be noticed.

>  	     MT_ST_SILI enables setting the SILI bit in SCSI commands when
>  		reading in variable block mode to enhance performance when
>  		reading blocks shorter than the byte count; set this only
> diff --git a/drivers/scsi/st.c b/drivers/scsi/st.c
> index 9b28f39..f18d10b 100644
> --- a/drivers/scsi/st.c
> +++ b/drivers/scsi/st.c
> @@ -81,6 +81,7 @@ static int max_sg_segs;
>  static int try_direct_io = TRY_DIRECT_IO;
>  static int try_rdio = 1;
>  static int try_wdio = 1;
> +static int st_nowait_eof;
>  
>  static int st_dev_max;
>  static int st_nr_dev;
> @@ -103,6 +104,8 @@ module_param_named(max_sg_segs, max_sg_segs, int, 0);
>  MODULE_PARM_DESC(max_sg_segs, "Maximum number of scatter/gather segments to use (256)");
>  module_param_named(try_direct_io, try_direct_io, int, 0);
>  MODULE_PARM_DESC(try_direct_io, "Try direct I/O between user buffer and tape drive (1)");
> +module_param_named(st_nowait_eof, st_nowait_eof, int, 0);
> +MODULE_PARM_DESC(st_nowait_eof, "Do not wait when writing EOF (filemark) (0)");
>  

I think this should not be a module option. The property should be 
settable only as a mode option like other options of this kind.
(I may have not written this clearly in my previous reply).

Otherwise the patch looks good.

Kai
--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [SCSI Target Devel]     [Linux SCSI Target Infrastructure]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Linux IIO]     [Samba]     [Device Mapper]
  Powered by Linux