ata driver timeouts might occur during system boot on Intel multiprocessor systems. These timeouts occur when the root device is on a drive with the HBA controller bound to the legacy ata driver. These timeouts lead to a momentary hang, hard hang, or a panic during system boot with console messages similar to the following:
scsi: [ID 107833 kern.warning] WARNING: /pci@0,0/pci-ide@1f,2/ide@0 (ata0): timeout: reset bus, target=0 lun=0 scsi: [ID 107833 kern.warning] WARNING: /pci@0,0/pci-ide@1f,2/ide@0 (ata0): timeout: early timeout, target=0 lun=0 gda: [ID 107833 kern.warning] WARNING: /pci@0,0/pci-ide@1f,2/ide@0/cmdk@0,0 (Disk0): Error for command 'read sector' Error Level: Informational gda: [ID 107833 kern.notice] Sense Key: aborted command gda: [ID 107833 kern.notice] Vendor 'Gen-ATA ' error code: 0x3 gda: [ID 107833 kern.warning] WARNING: /pci@0,0/pci-ide@1f,2/ide@0/cmdk@0,0 (Disk0): Error for command 'read sector' Error Level: Informational gda: [ID 107833 kern.notice] Sense Key: aborted command gda: [ID 107833 kern.notice] Vendor 'Gen-ATA ' error code: 0x3 scsi: [ID 107833 kern.warning] WARNING: /pci@0,0/pci-ide@1f,2/ide@0 (ata0): timeout: abort request, target=0 lun=0 scsi: [ID 107833 kern.warning] WARNING: /pci@0,0/pci-ide@1f,2/ide@0 (ata0): timeout: abort device, target=0 lun=0 scsi: [ID 107833 kern.warning] WARNING: /pci@0,0/pci-ide@1f,2/ide@0 (ata0): timeout: reset target, target=0 lun=0 scsi: [ID 107833 kern.warning] WARNING: /pci@0,0/pci-ide@1f,2/ide@0 (ata0): timeout: reset bus, target=0 lun=0 scsi: [ID 107833 kern.warning] WARNING: /pci@0,0/pci-ide@1f,2/ide@0 (ata0): timeout: early timeout, target=0 lun=0 gda: [ID 107833 kern.warning] WARNING: /pci@0,0/pci-ide@1f,2/ide@0/cmdk@0,0 (Disk0): Error for command 'read sector' Error Level: Informational gda: [ID 107833 kern.notice] Sense Key: aborted command gda: [ID 107833 kern.notice] Vendor 'Gen-ATA ' error code: 0x3 gda: [ID 107833 kern.warning] WARNING: /pci@0,0/pci-ide@1f,2/ide@0/cmdk@0,0 (Disk0): |
Workaround: Choose one of the following workarounds:
To avoid performance degradation, workaround 3 or workaround 4 should only be used temporarily until workaround 5 can be used .
Workaround 1: Enable AHCI in BIOS if available on the system. Enabling this setting requires a reinstall of the Solaris OS.
Workaround 2: Install Solaris on a disk on a controller which does not use the ata driver.
Workaround 3: Disable MP in the BIOS setup so that a single processor is active.
Workaround 4: Disable MP in Solaris so that a single processor is active. Perform the following steps from the Grand Unified Bootloader (GRUB) menu:
Type e to edit your selected Solaris entry.
Navigate to the line that begins with kernel.
Type e to switch to the GRUB edit mode.
Append -kd to the line.
Press Enter to accept the change.
Type b to boot the selected Solaris entry.
At the kbmd prompt, type the following command:
use_mp/W 0 :c |
If you are performing a system boot, proceed to Step 10, otherwise install the Solaris 10 10/09 software.
At the end of the installation, reboot the system. Repeat steps 1 through 7.
To make this change permanent so that the above steps do not need to be repeated for subsequent boots, do the following:
Become the super user, when the system boot is completed.
Open the /etc/system file.
Add the following line:
set use_mp = 0 |
Workaround 5: Disable microcode update. Type the following command:
# mv /platform/i86pc/ucode /platform/i86pc/ucode.disabled |
Microcode update can be invoked manually after the system is up:
# ucodeadm -u /platform/i86pc/ucode.disabled/intel-ucode.txt |