Go to main content

Managing SAN Devices and Multipathing in Oracle® Solaris 11.3

Exit Print View

Updated: March 2018
 
 

Bit-Masking Format to Tune Disk Drivers

You can tune parameters by using the bit-masking format, also known as the Version1 format. The bit-masking format includes the sd-config-list property, which contains entries for the property array.

Use the following syntax for an sd driver:

sd-config-list = duplet [, duplet ]*;
sd-ver1-conf-data = 1, mask, value-sequence;

Note -  Be sure to end the entry with a semicolon or the configuration will be invalid and the properties will retain their default values.

Use the following syntax for an ssd driver:

ssd-config-list = duplet [, duplet ]*;
sd-ver1-conf-data = 1, mask, value-sequence;

where duplet is "VIDPID", "sd-ver1-conf-data"

VID

Content of the vendor identification (VID) field of the device response to a SCSI INQUIRY command. The VID field must be eight characters in length. If the vendor identification field is less than eight characters, you must add whitespaces to make the length of the VID eight characters.

PID

Content of the product identification (PID) field of the device response to a SCSI INQUIRY command. The PID can contain a maximum of 16 left-adjusted characters. If you provide less than 16 characters, then the comparison is limited to the length of the PID that you have provided.

sd-ver1-conf-data

Property array consisting of a version number which is 1, a mask number, and tunable values to be set.

mask

Value between 0x01 to 0x7FFFF. The value of mask can sometimes be the OR result of multiple desired flags. Figure 3, Table 3, Supported Tunables and Their Flag Values on Different Platforms shows the bit value of each tunable parameter.

value-sequence

Sequence of valid property values and number of 0's corresponding to the value of mask. The length limit for value-sequence is 19 characters. See Tunable Parameters for Disk Drivers for the data type of tunable parameters.


Note -  The duplets with different VIDs and PIDs either share the same sd-ver1-conf-data property array or define their own property array. You can customize the property array name.

The PID value is considered a match when the prefix value returned by the SCSI INQUIRY command and the PID in the sd-config-list or ssd-config-list are same. For example, if CMS200 is the PID in the sd-config-list or ssd-config-list entry and if the PID returned by the SCSI INQUIRY command is CMS200-R, CMS200-T, or CMS200-UV10 would all be considered a match.


The definition of each bit's position depends on the platform. A tunable might correspond to a different flag value on a different platform. Both Oracle Solaris 11 and Oracle Solaris 10 support the same set of 19 tunable parameters in the bit-masking format.

The following table lists the tunable parameters and their flag values on different platforms.

Table 3  Supported Tunables and Their Flag Values on Different Platforms
Bit
Flag Value
sd Driver on SPARC
ssd Driver on SPARC
sd Driver on x86 or x64
1
0x00001
throttle-max
throttle-max
throttle-max
2
0x00002
controller-type
retries-notready
controller-type
3
0x00004
retries-notready
retries-busy
fab-devid
4
0x00008
fab-devid
fab-devid
disable_caching
5
0x00010
disable_caching
disable_caching
BCD-play
6
0x00020
retries-busy
controller-type
BCD-read-subchannel
7
0x00040
BCD-play
BCD-play
BCD-read-TOC-TRK
8
0x00080
BCD-read-subchannel
BCD-read-subchannel
BCD-read-TOC-ADDR
9
0x00100
BCD-read-TOC-TRK
BCD-read-TOC-TRK
no-READ-HDR
10
0x00200
BCD-read-TOC-ADDR
BCD-read-TOC-ADDR
CD-read-XD4
11
0x00400
no-READ-HDR
no-READ-HDR
retries-notready
12
0x00800
CD-read-XD4
CD-read-XD4
retries-busy
13
0x01000
retries-reset
retries-reset
retries-reset
14
0x02000
timeout-releasereservation
timeout-releasereservation
timeout-releasereservation
15
0x04000
tur-check
tur-check
tur-check
16
0x08000
throttle-min
throttle-min
throttle-min
17
0x10000
disksort
disksort
disksort
18
0x20000
reset-lun
reset-lun
reset-lun
19
0x40000
cache-nonvolatile
cache-nonvolatile
cache-nonvolatile
Example 14  Configuring the Tunable Parameters for an sd Driver on an x86 Platform

This example shows how to tune the parameters in an sd.conf file on an x86 platform.

sd-config-list = "SUM     ABC200_R","sd-ver1-x86-example";
sd-ver1-x86-example = 1,0x801,300,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0;

In this example, for the device SUM, the VID is SUM and the PID is ABC200_R.

The mask value 0x801 is the bitwise OR value of 0x00800 and 0x00001 flags. These values are retries-busy and throttle-max tunable parameters on an x86 platform.

Example 15  Configuring the Tunable Parameters for an ssd Driver on a SPARC Platform

This example shows how to tune the parameters in an ssd.conf file on a SPARC platform.

ssd-config-list = "SUM     XYZ200_R","sd-ver1-ssd-example";
sd-ver1-ssd-example = 1,0x5,300,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0;

In this example, for the device SUM, the VID is SUM and the PID is XYZ200_R.

The mask value 0x5 is the bitwise OR value of 0x00004 and 0x00001 flags. These values are retries-busy and throttle-max tunable parameters on a SPARC platform.

If a .conf file contains multiple sd-config-list or ssd-config-list entries tune the same target device, only the first entry takes effect. All subsequent entries with the same VID and PID are ignored. This behavior is the same for both the bit-masking format and the name:value pair format.

If an sd-config-list property contains more than one duplet with the same with the same VID and PID, the succeeding specifications in the order of entries take precedence and replace the values that appeared in earlier duplets. This behavior is the same for both the bit-masking format and the name:value pair format.

In the bit-masking format, if the length of the value-sequence parameter is more than 19 characters, values after the 19th character are ignored. If the length of the value-sequence is less than 19 characters, the configuration result depends on its preceding mask value. If the corresponding value position of the flagged bit in the mask value is empty, then it results in a random value is assigned for that property in the target driver.

The target driver does not provide a syntax check for the .conf file so no warning messages for errors like misspelling of tunable names and incorrect entries for value-sequence.