Skip to contentSkip to conversation

libata: MODE SELECT

PATCH Applied Douglas Gilbert 2 participants 2 messages Oct 23, 2005 – Oct 28, 2005

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

cover libata: MODE SELECT

Jeff,
Here is another shot at adding MODE SELECT to libata. I have used sat-r06, sbc-3 and spc-4 as
a guide. Compliance on the ATA side has some issues:
- no mechanism to issue 2 or more ATA commands when translating a single SCSI command [in the upstream branch, there have been patches ...]
- relies on the dev->id array (IDENTIFY DEVICE response) always being up to date. Despite assurances I cannot see how that is the case when multiple hosts (initiators) can access a SATA disk.

This patch is broken into two parts and is against libata-dev's upstream branch:
1) strengthen MODE SENSE processing and make default mode pages visible within libata-scsi.c
2) add MODE SELECT SCSI command support.

Two attributes can be changed with these patches:
- WCE: write cache enable [cache mode page]
- DRA: disable read ahead [cache mode page]

Testing: upstream branch seems to be broken wrt SG_IO as the largest amount of data that can be sent per command is 4 KB. A 50 MB write (segmented to 4 KB per command) slowed down from 14 seconds with WCE=1 to 107 seconds with WCE=0. sg_dd was used for the transfer and sdparm to change WCE. ST380013AS disk and sata_sil LLD.

The attachments are mime text because I wasn't able to do otherwise.

Doug Gilbert

#1 lore raw
Quoted 12 lines · Douglas Gilbert

Jeff,
Here is another shot at adding MODE SELECT to libata. I have used sat-r06, sbc-3 and spc-4 as
a guide. Compliance on the ATA side has some issues:
- no mechanism to issue 2 or more ATA commands when translating a single SCSI command [in the upstream branch, there have been patches ...]
- relies on the dev->id array (IDENTIFY DEVICE response) always being up to date. Despite assurances I cannot see how that is the case when multiple hosts (initiators) can access a SATA disk.

Quoted 5 lines

This patch is broken into two parts and is against libata-dev's upstream branch:
1) strengthen MODE SENSE processing and make default mode pages visible within libata-scsi.c
2) add MODE SELECT SCSI command support.

Thanks for splitting it up. I'm going to mess around with the best way to issue multiple commands, and hold on to your patch #2 until that happens.

Jeff