📄 dt-usersguide.t
字号:
Special Notes:.buIf you don't plan to ever read the data being written, perhaps forperformance reasons, specifying "\fIdisable=compare\fP" preventsthe data buffer from being initialized with a data pattern..buThis verify option has no affect when reading a device. You mustdisable data comparsions via "\fIdisable=compare\fP"..LP.nh 2 Program Delays.\fIdt\fP allows you to specify various delays to use at certain pointsof the test. These delays are useful to slow down I/O requests or toprevent race conditions when testing terminals devices with multipleprocesses, or are useful for low level driver debugging. All delayvalues are in seconds, unless you specify "\fIenable=microdelay\fP",to enable micro-second delays..nh 3 Close File \&"\fIcdelay=\fP\&" Delay.This delay, when enabled, is performed prior to closing a filedescriptor..EX Delay cdelay=value Delay before closing the file. (Def: 0).EE.nh 3 End of Test \&"\fIedelay=\fP\&" Delay.This delay, when enabled, is used to delay after closing a device,but prior to re-opening the device between multiple passes..EX Delay edelay=value Delay between multiple passes. (Def: 0).EE.nh 3 Read Record \&"\fIrdelay=\fP\&" Delay.This delay, when enabled, is used prior to issuing each read request(both synchronous read()'s and asynchronous aio_read()'s)..EX Delay rdelay=value Delay before reading each record. (Def: 0).EE.nh 3 Start Test \&"\fIsdelay=\fP\&" Delay.This delay, when enabled, is used prior to starting the test. Whentesting terminal devices, when not in self loopback mode, the writingprocess (the parent) automatically delays 1 second, to allow the readingprocess (the child) to startup and setup its' terminal characteristics.If this delay did not occur prior to the first write, the reader may nothave its' terminal characteristics (flow, parity, & speed) setup yet,and may inadvertantly flush the writers data or receive garbled data..EX Delay sdelay=value Delay before starting the test. (Def: 0).EE.nh 3 Child Terminate \&"\fItdelay=\fP\&" Delay.This delay is used by child processes before exiting, to give the parentprocess sufficient time to cleanup and wait for the child. This isnecessary since if the child exits first, a SIGCHLD signal may force theparent to it's termination signal handler before it's ready to. This isa very simplistic approach to prevent this parent/child race conditionand is only currently used by the child for terminal loopback testing..EX Delay tdelay=value Delay before child terminates. (Def: 1).EE.nh 3 Write Record \&"\fIwdelay=\fP\&" Delay.This delay, when enabled, is used prior to issuing each write request(both synchronous write()'s and asynchronous aio_write()'s)..EX Delay wdelay=value Delay before writing each record. (Def: 0).EE.nh 2 Numeric Input ParametersFor any options accepting numeric input, the string entered may contain anycombination of the following characters:.EX 4Special Characters: w = words (4 bytes) q = quadwords (8 bytes) b = blocks (512 bytes) k = kilobytes (1024 bytes) m = megabytes (1048576 bytes) p = page size (8192 bytes) g = gigabytes (1073741824 bytes) t = terabytes (1099511627776 bytes) inf or INF = infinity (18446744073709551615 bytes).HSArithmetic Characters: + = addition - = subtraction * or x = multiplcation / = division % = remainder.HSBitwise Characters: ~ = complement of value >> = shift bits right << = shift bits left & = bitwise 'and' operation | = bitwise 'or' operation ^ = bitwise exclusive 'or'.EEThe default base for numeric input is decimal, but you can overridethis default by specifying 0x or 0X for hexadecimal coversions, ora leading zero '0' for octal conversions..B1NOTE: Certain values will vary depending on the operating system and/ormachine you are running on. For example, the page size is system dependent,and the value for Infinity is the largest value that will fit into anunsigned long (value shown above is for 64-bit systems), or double forsystems which don't support "\fIlong long\fP".).B2.nh 2 Time Input Parameters.When specifying the run time "\fIruntime=\fP" option, the time stringentered may contain any combination of the following characters:.EX 4Time Input: d = days (86400 seconds), h = hours (3600 seconds) m = minutes (60 seconds), s = seconds (the default).EEArithmetic characters are permitted, and implicit addition is performedon strings of the form '1d5h10m30s'..HS.nh 1 Future Enhancements.Although many system dependent tests could be added to \fIdt\fP, my preferenceis to add tests for features standard on most systems. I have to admit though,recently I've added many Tru64 UNIX features, required for advanced testing..PPThere's alot of \fIdt\fP features and flags nowadays, so maybe I'll add aninitialization file (\fI.dtrc\fP) to control certain defaults. We'll see..PPA future release may permit \fIdt\fP to support multiple devices simlutaneously,and permit dynamic modification of test parameters and obtaining snap-shotstatistics. This will require an extensive re-write though, so this isn'tlikely to happen too soon. I'd like \fIdt\fP to be like the RSX-11M \fIiox\fPprogram, which was really nifty. But of course, an operating system whichsupports asynchronous I/O and event notification, makes this much easier..PPLots of people prefer window based applications nowadays. If I get aroundto this, it'll probably be a Tcl/Tk/Wish wrapper, or something that willrun with your favorite browser. I like this latter idea for implementingremote testing. A native Windows/NT version will most likely come aboutone day, unless Cygnus Solutions implements POSIX AIO and Alpha hardwarein a future release, or Microsoft releases better POSIX API support..PPThere's a fair amount of work necessary to do extensive tape testing, dueto the number of special tape commands (both standard and optional), anddifferences between tape vendors and operating system API's..PPI'm also considering writing a script processor, kinda like a maintenanceprogram generator, to help with this effort so customized tests can bewritten, but perhaps this is best done with existing tools available(I'm not into reinventing the wheel)..bp.nh 1 Final Comments.I'm happy to report that \fIdt\fP is getting wide spread use here at Compaq.The storage groups, terminal/lat groups, Q/A, developers, and other peripheralqualification groups are all using \fIdt\fP as part of their testing (justwhen I was about to give up on this place... maybe there's hope yet :-)..PPAnyways, I hope you find \fIdt\fP as useful as I have. This is usually oneof the first tools I port to a new operating system, since it's an excellentdiagnostic and performance tool (it gives me a warm and fuzzy feeling)..PPPlease send me mail on any problems or suggestions you may have, and I'lltry to help you out. The future development of \fIdt\fP depends alot on userinterest. Many of \fIdt\fP's features have come about from user requests..sp 3.TScenter, doublebox;c.If You Like My Work,You Can DoOne Of Two Things:.sp 0.3\s+2\fBTHROW MONEY\fP or \fBAPPLAUD*\fP\s-2.sp 0.3\fB*\fPI've Heard Enough Applause!.sp 0.2.TE.ah A \fIdt\fP Help Text.PPThe following help text is contained within the \fIdt\fP program. The newestfeatures are highlighted below, as well as previous features for reference byformer/existing \fIdt\fP users..HSThe following changes have been made to 'dt' Version 12.0:.buSupport for tape Extended Error Information (EEI) and SCSI busor device reset recovery has been added (to reposition the tape).The EEI support is enabled by default, but the reset support isdisabled by default (to avoid breaking existing test scripts).The reset option can also be used w/POSIX Asynchronous I/O (AIO).NOTE: EEI support is Digital UNIX specific (MTIOCGET extension).[ Use the "enable/disable={eei,resets}" option to control these. ].buThe logical block data feature, "enable=lbdata" option, has beenextended so it can be used with random I/O, "iotype=random" option..buTwo new options were added for better range control of random I/O..HSThe "ralign=value" option forces block alignment to a byte offset.For example, "ralign=32b" aligns each random request to 32 blocks..HSThe "rlimit=value" option contols the upper random I/O data limit.If rlimit isn't specified, it defaults to the data limit, or to theentire disk if no limits are specified..buChanges to cluster DLM code were merged from work by George Bittner.George also enhanced the random I/O code so the random number istaken as a block, rather than a byte offset, which provides betterrandomness for large disks or files. (Thanks George!).buOther changes and/or bug fixes:.EX 0- When specifying a runtime, ensure we break out of the passes loop if we exceed the error limit. Previously, we'd loop (possibly with error) for the duration of the runtime.- Fix incorrect record number displayed when Debug is enabled.- Don't exit read/write loops when processing partial records.- Fix problem in write function, where short write processing, caused us not to write sufficent data bytes (actually, the file loop in write_file() caused dtaio_write_data() to be called again, and we'd actually end up writing too much!- When random I/O and lbdata options are both enabled, use the file offset seeked to as the starting lbdata address.- Fix problem reporting total files processed count when we have not completed a pass (exiting prematurely due to error or signal)..EE.bu\fIdt\fP compiles and runs on MS Windows 95/98/NT using Cygnus SolutionGNU tools. Use Makefile.win32 for compiling on Windows.[ a.k.a. GNU-Win32, URL: http://sourceware.cygnus.com/cygwin/ ].buWhen directing output to a log file, "log=LogFile" option, thecommand line and version string are also emitted..buThe number of I/O per second are now reported in statistics..buFor Linux and Windows/NT, larger data/record limits and statisticsare now possible using either "long long" or "double" storage..buA new data pattern option was added "\fIpattern=iot\fP", whichencoded the logical block address throughout each word in thedata block. Thanks to DJ Brown for this logic from IOT..LP.HSThe following changes have been made to \fIdt\fP Version 9.0:.HS.buFixed a problem checking pad bytes when doing long reads ofshort records (this was discovered by someone testing tapes)..buFor systems which support higher serial line speeds, you can nowselect baud rates of 57600, 76800, and 115200. Platinum (ptos)now supports 57600 and 115200 (thank-you Dennis Paradis)..buAdded the ability to read/write blocks using logical block data(lbdata) option. While this new feature was added specificallyas a counterpart to the SCSI Write Same (disks) lbdata option,this option can be used with any device and/or data stream..HSWhat is Logical Block Data (lbdata) Format?.HSThis feature allows reading/writing of a 4-byte (32-bit) logicalblock address at the beginning of each data block tested. At thepresent time, the block number is stored using SCSI byte ordering(big-endian), which matchs what the SCSI Write Same command does..HSSeveral new 'dt' options have been added for this feature:.EX 0 lba=value Set starting block used w/lbdata option. lbs=value Set logical block size for lbdata option. [ ...as well as... ] enable=lbdata Logical block data. (Default: disabled).EEIf this feature is enabled without specifying other options, theblock size (lbs) defaults to 512, and the starting block address(lba) defaults to 0. Specifying "lba=" or "lbs=" options implicitlyenables the "lbdata" feature..HSNOTES: The logical block number is *always* inserted starting at thebeginning of each data block, not every "lbs" bytes (WRT to variablelength opts). Also, the block number overwrites what the previouspattern bytes would have been (again matching the SCSI Write Samemethod). Also, enabling this feature will cause a degradation inperformance statistics..HSIf people would like an option to have the logical block stored inlittle-endian format, I'll consider adding an option *if* requested..HSOf course, the data verification routines have been modified toverify the logical block number matches the expected, and reportsany mis-matches..buFor disk devices, the "min=" and "incr=" values now default to 512,when variable length transfers are requested (previously defaultedto 1 which was great for tapes, but not so good for block devices).[ A future version of 'dt' will obtain the device block size via the new DEVGETINFO ioctl() now available in Platinum (ptos). ].buRemoved "enable=ade" (Address Data Exception) test option.This was used to test kernel unaligned data exception fixups,but it's seldom (if ever) used, and it's time to cleanup code..buAdded "ttymin=" option for setting the VMIN value for serial linetesting. Also fixed problem where VMIN got set incorrectly if theblock size was greater than 255 (VMIN is a u_char on Tru64 Unix)..LP.HSNew Features in \fIdt\fP Version 8.0:.HS.buOn compare errors, data dumping now occurs by default. The"dlimit=value" option can be used to override the default dumplimit of 64 bytes (use "disable=dump"
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -