From mboxrd@z Thu Jan 1 00:00:00 1970 From: Pat LaVarre Subject: Re: [PATCH] libata atapi work #2.1 Date: 16 May 2004 09:39:52 -0600 Sender: linux-ide-owner@vger.kernel.org Message-ID: <1084721991.3085.6.camel@patibmrh9> Mime-Version: 1.0 Content-Type: text/plain Content-Transfer-Encoding: 7bit Return-path: Received: from email-out2.iomega.com ([147.178.1.83]:32147 "EHLO email.iomega.com") by vger.kernel.org with ESMTP id S263640AbUEPPkK (ORCPT ); Sun, 16 May 2004 11:40:10 -0400 List-Id: linux-ide@vger.kernel.org To: Jeff Garzik Cc: linux-ide@vger.kernel.org Jeff G: > Subject: Re: SATA ATAPI work in progress > Date: 2004-05-15 16:32:56 > ... > Seems like we are pretty close. Once I add > the code to issue a REQUEST SENSE, I bet > things start working. I agree! I'm delighted to report, I now see SATA stream up past 1.5 GB/min via ioctl SG_IO read & write of the disc blocks, after I apply together all four of the patches you first posted as: > Subject: [PATCH] libata update 20040515-1 > Subject: [PATCH] libata atapi work #2.1 > Subject: [PATCH] libata DMADIR support > Subject: [PATCH] Re: SATA ATAPI work in progress Heads up, I was myself slow to appreciate: Yes still in -bk3 after patch.2.1 we need to apply that fourth patch i.e. what I had termed patch.7 i.e. ata_host_intr += ATA_PROT_ATAPI_DMA. > Once I add the code to issue a REQUEST SENSE, ... Also, of course, to avoid dying for the lack of auto sense, I have to duck all errors. Once I died by mistyping an LBA, off by one nybble. Repeatedly I die except when I remember to clear the x 6 29 Reset and x 6 28 GoneReady unit attentions, via an abuse which works here i.e. repeatedly unsolicited "REQUEST SENSE". I notice in particular that, with this device, modprobe seemingly provokes x 6 29 Reset. Pat LaVarre $ # demo of 1.5 GB/min, in or out $ $ plscsi /dev/sg0 -i x12 -x "03 00:00:00 12 00" $ plscsi /dev/sg0 -i x12 -x "03 00:00:00 12 00" $ $ time pldd of if=/dev/sg0 bs=64k sbs=2k skip=0 count=1600 real 0m4.134s user 0m0.002s sys 0m0.155s $ $ dc -e '64 1024 * 1600 * 4.134 / p 60 * p' 25364683 1521880980 $ $ time pldd of=/dev/sg0 if bs=64k sbs=2k seek=0 count=1600 real 0m4.125s user 0m0.001s sys 0m0.150s $ $ dc -e '64 1024 * 1600 * 4.125 / p 60 * p' 25420024 1525201440 $ $ # demo of reset implicit in modprobe $ $ plscsi /dev/sg0 -i x12 -x "03 00:00:00 12 00" -v x 00000000 03 00:00:00 12 00 .. .. .. .. .. .. .. .. .. .. "C@@@R@" x 00000000 70:00:00:00 00:00:00:18 00:00:00:00 00:00:00:00 "p@@@@@@X@@@@@@@@" x 00000010 00:00 .. .. .. .. .. .. .. .. .. .. .. .. .. .. "@@" // 0 = plscsi.main exit int $ $ sudo modprobe -r ata-piix $ sudo modprobe ata-piix $ $ plscsi /dev/sg0 -i x12 -x "03 00:00:00 12 00" -v x 00000000 03 00:00:00 12 00 .. .. .. .. .. .. .. .. .. .. "C@@@R@" x 00000000 70:00:06:00 00:00:00:18 00:00:00:00 29:00:00:00 "p@F@@@@X@@@@)@@@" x 00000010 00:00 .. .. .. .. .. .. .. .. .. .. .. .. .. .. "@@" // 0 = plscsi.main exit int $