
 	M K S E T  I The MKSET utility is designed to control MK (SCSI) tape behavior when the # $QIO IO$_SKIPFILE function is used.   J In the past, OpenVMS has always skipped files on tape by using skip recordK commands to actually do the motion. This has essentially simulated skips by D filemark, and while it functions correctly, this sort of skipping isG sometimes quite slow compared with what a tape can achieve by using its  skip-filemarks commands.  C In V7.1, OpenVMS allows the tape driver to be set up to use skip by J filemarks where the user permits. Modern tape drives keep track of the endK of logical data, so MKdriver can use these facilities to position correctly I if these features exist on a tape drive. (If they do not, the old skip by  records skipping is used.)  F The skipping by filemarks, when used, will correctly sense end of tapeG provided the tape ends in double EOF. Utilities such as Backup and file K structured copy, which use ANSI formatted tape, need the end positioning to E be set correctly and work fine with the new skip method. They already B continue skip-file operations across null files if any such exist.  J Some third party utilities may, however, depend on the documented behaviorH of stopping a skip by files on double EOF marks on tape.  To accommodateG this, OpenVMS will by default assume the use of the old skip by records  form of tape motion.  H Because this form of positioning may be as much as 100 times slower thanA skip by files, however, OpenVMS provides two additional features.   J 1. The magtape ACP and Backup will use an added function modifier in theirH IO$_SKIPFILE commands to tape (IO$M_ALLOWFAST) which will permit them toI use the skip by filemarks command, which is usually faster. This modifier J will also be transmitted across TMSCP if all systems are at the 7.1 level.  H 2. A new utility, MKSET, is provided in SYS$ETC to control behavior.  ItJ works by issuing an IO$_SETCHAR function to the local SCSI magtape, with a5 null P1 argument and one of three function modifiers: K IO$M_ALLOWFAST_NEVER, ALLOWFAST_PER_IO, or IO$M_ALLOWFAST_ALWAYS. These are  selected by the MKSET commands   $ MKSET/PER_IO  MKcuuu:  $ MKSET/ALWAYS  MKcuuu:  $ MKSET/NEVER   MKcuuu:   G which set the controls. (MKcuuu: means MK unit with controller letter c F and unit number uuu:, such as MKB300: where controller letter is B and unit number is 300.)  ) The settings have the following meanings:   = PER_IO		This setting (the default) will allow an MK device to 7 		use the skip by filemarks where the drive supports it 7 		(it must be able to do read position and report blank 5 		check at end of data), and where the IO$M_ALLOWFAST < 		function modifier is supplied with IO$_SKIPFILE. Otherwise2 		the tape will skip files by skipping by records.  9 ALWAYS		This setting allows an MK device to skip files by ; 		filemarks (the new method) instead of by skipping records 8 		provided the tape supports it, and without needing any, 		modification to the IO$_SKIPFILE function.  5 NEVER		Never use skip by filemarks but always skip by 2 		skipping records, regardless of whether the tape4 		drive supports skip by filemarks and regardless of4 		whether the IO$_SKIPFILE function has the modifier8 		IO$M_ALLOWFAST or not. If using a utility that depends5 		on the old semantics of skipping with skip-records, ; 		you may need to use this, since it will also cause Backup ' 		or COPY to use the older positioning.   K This utility must be run on the system to which the locally direct attached = SCSI magtape is connected. The utility will modify a device's D characteristics even if the device is allocated to a different user.  I Note that if a tape does NOT support skip by filemarks, the older skip by J records method will be used. If errors occur during skip by filemarks, theH MKdriver support is turned off, so that the old algorithm is used when aK device appears to have difficulty with the SCSI commands needed to use skip H by filemarks positioning correctly. If the "skip by filemarks supported"G flag within MKdriver is cleared, it remains cleared until a reboot. The K MKSET settings only permit (or fail to permit) use of the skip by filemarks * algorithm where it is marked as supported.  I Whenever skip by filemarks is used for IO$_SKIPFILE, for whatever reason, I the MT$M_FASTSKIP_USED flag will be set to 1 in the DEVDEPEND longword in K the MK UCB and will be returned in the second longword in the IOSB for that J operation. Thus an application can use this information to determine whichF skip algorithm was used, which may permit it to adjust its positioning appropriately.  G The MKSET image requires PHY_IO privilege to be used, and should be set  up as a foreign command:   $ MKSET :== $SYS$ETC:MKSET  
 prior to use.       J As a bit of extra information, the command line definition for MKSET's DCL is the following:    ! Set up MK: skipfile behavior.  DEFINE VERB MKSET 9      Image sys$etc:MKSET	! Only if one were to call after  				! an EXTERNAL SET COMMAND G      parameter p1,prompt="MKn:",value(required,type=$device),label=UNIT          qualifier ALWAYS> ! Always means we always skip by filemarks if the drive allows         qualifier PER_IOC ! Per_io means we skip files by skip-record by default, but may use 4 !  skip by files if the function modifier is present         qualifier NEVER 6 ! Never means never use skip by filemarks, regardless.'   Disallow any2 (ALWAYS, PER_IO, NEVER) 