My Oracle Support Banner

Unable to Override Physical Block Size Specification for Some Devices in Solaris (Doc ID 1666907.1)

Last updated on MAY 24, 2018

Applies to:

Solaris Operating System - Version 10 3/05 to 11.1 [Release 10.0 to 11.0]
Flash Accelerator F80 PCIe Card - Version All Versions and later
F40 Flash Accelerator Card - Version All Versions and later
Information in this document applies to any platform.

Symptoms

Unable to override the physical block size specification in [s]sd.conf for some devices, for example the Sun Flash Accelerator F80 PCIe Card.

For Solaris 11, create /etc/driver/drv/sd.conf file with following entry and reboot in order for settings to be applied at device attach:

sd-config-list="ATA     2E256","disksort:false, cache-nonvolatile:true, physical-block-size:8192";

After reboot, the physical block size specification remains at 512 bytes.

% for d in `echo "*sd_state::walk softstate | ::print struct sd_lun un_sd" | sudo mdb -k | awk '{ print $3; }'` ; do print "un_sd = $d " ; echo "$d::print struct scsi_device sd_inq | ::print struct scsi_inquiry inq_vid inq_pid inq_revision inq_serial" | sudo mdb -k ; done
un_sd = 0x100183af4680
inq_vid = [ "ATA     " ]
inq_pid = [ "2E256-TU2-510B00" ]
inq_revision = [ "UI5P" ]
inq_serial = [ "11000148600 " ]
un_sd = 0x100184c37580
inq_vid = [ "ATA     " ]
inq_pid = [ "2E256-TU2-510B00" ]
inq_revision = [ "UI5P" ]
inq_serial = [ "11000148670 " ]
un_sd = 0x100184b73c80
inq_vid = [ "ATA     " ]
inq_pid = [ "2E256-TU2-510B00" ]
inq_revision = [ "UI5P" ]
inq_serial = [ "11000148510 " ]
un_sd = 0x100185059580
inq_vid = [ "ATA     " ]
inq_pid = [ "2E256-TU2-510B00" ]
inq_revision = [ "UI5P" ]
inq_serial = [ "11000148563 " ]
...

% echo "*sd_state::walk softstate | ::print -d struct sd_lun un_sd un_f_disksort_disabled un_f_suppress_cache_flush un_phy_blocksize" | sudo mdb -k
un_sd = 0x100183af4680
un_f_disksort_disabled = 1
un_f_suppress_cache_flush = 1
un_phy_blocksize = 0t512
un_sd = 0x100184c37580
un_f_disksort_disabled = 1
un_f_suppress_cache_flush = 1
un_phy_blocksize = 0t512
un_sd = 0x100184b73c80
un_f_disksort_disabled = 1
un_f_suppress_cache_flush = 1
un_phy_blocksize = 0t512
un_sd = 0x100185059580
un_f_disksort_disabled = 1
un_f_suppress_cache_flush = 1
un_phy_blocksize = 0t512
...

 

Changes

This issue occurs on devices where the inquiry response for the version/device_type parameters changed from 5/0 (SPC-3/SBC-2) to 6/0 (SPC4/SBC-3).

As a result of the upgraded conformance to SBC-3, the response parameters to READ CAPACITY(16) are defined to include LOGICAL BLOCKS PER PHYSICAL BLOCK EXPONENT in byte 13, which some devices, for example the Sun Flash Accelerator F80 PCIe Card, report as zero.

Cause

To view full details, sign in with your My Oracle Support account.

Don't have a My Oracle Support account? Click to get started!


In this Document
Symptoms
Changes
Cause
Solution
References


My Oracle Support provides customers with access to over a million knowledge articles and a vibrant support community of peers and Oracle experts.