From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Moore, Eric" Subject: RE: end to end error recovery musings Date: Wed, 28 Feb 2007 08:19:17 -0700 Message-ID: <664A4EBB07F29743873A87CF62C26D705D7112@NAMAIL4.ad.lsil.com> References: Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 8BIT Return-path: Content-class: urn:content-classes:message In-Reply-To: Sender: linux-scsi-owner@vger.kernel.org To: "Martin K. Petersen" , Alan Cc: ric@emc.com, Theodore Tso , Neil Brown , "H. Peter Anvin" , Linux-ide , linux-scsi , linux-raid@vger.kernel.org, Tejun Heo , James Bottomley , Mark Lord , Jens Axboe , "Clark, Nathan" , "Singh, Arvinder" , "De Smet, Jochen" , "Farmer, Matt" , linux-fsdevel@vger.kernel.org, "Mizar, Sunita" List-Id: linux-raid.ids On Tuesday, February 27, 2007 12:07 PM, Martin K. Petersen wrote: > > Not sure you're up-to-date on the T10 data integrity feature. > Essentially it's an extension of the 520 byte sectors common in disk > arrays. For each 512 byte sector (or 4KB ditto) you get 8 bytes of > protection data. There's a 2 byte CRC (GUARD tag), a 2 byte > user-defined tag (APP) and a 4-byte reference tag (REF). Depending on > how the drive is formatted, the REF tag usually needs to match the > lower 32-bits of the target sector #. > I from the scsi lld perspective, all we need 32 byte cdbs, and a mechinism to pass the tags down from above. It appears our driver to firmware insterface is only providing the reference and application tags. It seems the guard tag is not present, so I guess mpt fusion controller firmware is setting it(I will have to check with others). I assume that for transfers greater than a sector, that the controller firmware updates the tags for all the other sectors within the boundary. I'm sure the flags probably tell whether EEDP is enabled or not. I will have to check if there are some manufacturing pages that say whether the controller is capable of EEDP(as not all our controllers support it). Here are the EEDP associated fields we provide in our scsi passthru, as well as target assist. u32 SecondaryReferenceTag u16 SecondaryApplicationTag u16 EEDPFlags u16 ApplicationTagTranslationMask u32 EEDPBlockSize From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Moore, Eric" Subject: RE: end to end error recovery musings Date: Wed, 28 Feb 2007 08:19:17 -0700 Message-ID: <664A4EBB07F29743873A87CF62C26D705D7112@NAMAIL4.ad.lsil.com> References: Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 8BIT Cc: , "Theodore Tso" , "Neil Brown" , "H. Peter Anvin" , "Linux-ide" , "linux-scsi" , , "Tejun Heo" , "James Bottomley" , "Mark Lord" , "Jens Axboe" , "Clark, Nathan" , "Singh, Arvinder" , "De Smet, Jochen" , "Farmer, Matt" , , "Mizar, Sunita" To: "Martin K. Petersen" , "Alan" Return-path: Content-class: urn:content-classes:message In-Reply-To: Sender: linux-scsi-owner@vger.kernel.org List-Id: linux-fsdevel.vger.kernel.org On Tuesday, February 27, 2007 12:07 PM, Martin K. Petersen wrote: > > Not sure you're up-to-date on the T10 data integrity feature. > Essentially it's an extension of the 520 byte sectors common in disk > arrays. For each 512 byte sector (or 4KB ditto) you get 8 bytes of > protection data. There's a 2 byte CRC (GUARD tag), a 2 byte > user-defined tag (APP) and a 4-byte reference tag (REF). Depending on > how the drive is formatted, the REF tag usually needs to match the > lower 32-bits of the target sector #. > I from the scsi lld perspective, all we need 32 byte cdbs, and a mechinism to pass the tags down from above. It appears our driver to firmware insterface is only providing the reference and application tags. It seems the guard tag is not present, so I guess mpt fusion controller firmware is setting it(I will have to check with others). I assume that for transfers greater than a sector, that the controller firmware updates the tags for all the other sectors within the boundary. I'm sure the flags probably tell whether EEDP is enabled or not. I will have to check if there are some manufacturing pages that say whether the controller is capable of EEDP(as not all our controllers support it). Here are the EEDP associated fields we provide in our scsi passthru, as well as target assist. u32 SecondaryReferenceTag u16 SecondaryApplicationTag u16 EEDPFlags u16 ApplicationTagTranslationMask u32 EEDPBlockSize