1#!/bin/sh 2 3. ./support.sh 4 5# The following commented-out examples of how to run blocktest for certain 6# driver and device pairs. The syntax of the calls is: 7# 8# block_test <device> <parameters> 9# 10# <device> is the path to a device to run blocktest on. This may be a full 11# disk, a partition, or a subpartition. If possible, give blocktest the whole 12# disk; otherwise preferably the first partition with a size of slightly over 13# 8GB (for ATA) (better yet: slightly over 128GB); even fewer tests can be done 14# if you give it only a subpartition. 15# 16# <parameters> is a comma-separated list of parameters for blocktest. The 17# following parameters are supported and in fact expected: 18# 19# rw (or) ro Specifying "rw" will let blocktest write to the target 20# partition. This allows for a lot more tests, but keep in mind 21# that any data on the partition (and, if the driver misbehaves, 22# on other partitions and possibly other disks) WILL BE DESTROYED. 23# Use "ro" for read-only mediums, such as CD-ROMs. 24# sector Sector size, in bytes. This should be 512 for ATA devices, and 25# 2048 for ATAPI devices. The default is 512. 26# min_read Minimum size of a read request. This must be at least 1 and at 27# most the sector size, and the sector size must be divisible by 28# it. A value other than the sector size allows blocktest to test 29# sub-sector reads. 30# min_write Minimum size of a write request. This must be at least 1 and at 31# most the sector size. Sub-sector write support is not common in 32# drivers, and therefore not yet well tested by blocktest. This 33# parameter is optional; if omitted, the sector size is used. 34# element Minimum size of a vector element within a larger I/O request. 35# This must be at least 1 and at most min_read, and min_read must 36# be divisible by this value. The idea is that several small 37# elements may add up to the minimum read size. 38# max Maximum size of any request. This should be a multiple of the 39# sector size. Blocktest will not test what happens when this 40# value is exceeded, but it will generate large requests up to 41# this value. For drivers that do not have a maximum request size, 42# simply use some large value (typically several megabytes). 43# 44# Before commenting out any entry, you MUST edit the device name for that 45# entry, or you WILL risk losing arbitrary data. You may run multiple tests in 46# parallel, on different devices. Note that at_wini has no maximum request 47# size, so an arbitray size is used. Finally, a disclaimer: a buggy device 48# driver may destroy any data it has access to, so use at your own risk. 49 50# AT_WINI ATA TEST (for IDE disk devices) 51 52#block_test /dev/c0d1 "rw,sector=512,min_read=512,element=2,max=16777216" 53 54# AT_WINI ATAPI TEST (for IDE CD-ROM devices) 55 56#block_test /dev/c0d2 "ro,sector=2048,min_read=2,element=2,max=16777216" 57 58# AHCI ATA TEST (for SATA disk devices) 59 60#block_test /dev/c2d0 "rw,sector=512,min_read=2,element=2,max=4194304" 61 62# AHCI ATAPI TEST (for SATA CD-ROM devices) 63 64#block_test /dev/c2d1 "ro,sector=2048,min_read=2,element=2,max=4194304" 65 66# VND TEST (for configured vnode disk devices) 67 68#block_test /dev/vnd0 "rw,min_read=1,min_write=1,element=1,max=16777216" 69