From: Eduardo Casino <casino_e@terra.es>
To: linux-kernel@vger.kernel.org
Subject: Re: SII SATA request size limit
Date: 12 Sep 2003 22:48:04 +0200 [thread overview]
Message-ID: <1063399684.1184.7.camel@centinela> (raw)
Hi All,
I had a look at the NetBSD pciide.c driver and found this interesting
bit of code:
/*
* Rev. <= 0x01 of the 3112 have a bug that can cause data
* corruption if DMA transfers cross an 8K boundary. This is
* apparently hard to tickle, but we'll go ahead and play it
* safe.
*/
if (PCI_REVISION(pa->pa_class) <= 0x01) {
sc->sc_dma_maxsegsz = 8192;
sc->sc_dma_boundary = 8192;
}
This is basically the same as setting hwif->rqsize to 15, but the NetBSD
folks apply the restriction only if the SiI3112 chipset revision is 1 or
lower. As I have a rev. 2 chip, I raised the rqsize to 128 and made some
disk intensive tests: kernel compilation while recursively copying some
huge (~400MB) files. A couple of hours later, my system remained stable
and getting transfers over 55MB/s with my 120GB Seagate. I'm running
2.4.22-ac1.
This silly patch makes the siimage driver to set rqsize to 15 only for
older, supposedly buggy chips, and leaves the default for the rest.
Regards,
Eduardo.
--- siimage.c.orig 2003-09-12 11:52:26.000000000 +0200
+++ siimage.c 2003-09-12 15:42:20.000000000 +0200
@@ -1065,7 +1065,12 @@ static void __init init_iops_siimage (id
hwif->hwif_data = 0;
hwif->rqsize = 128;
- if (is_sata(hwif))
+ /*
+ * From the NetBSD driver:
+ * "Rev. <= 0x01 of the 3112 have a bug that can cause data
+ * corruption if DMA transfers cross an 8K boundary."
+ */
+ if (dev->device == PCI_DEVICE_ID_SII_3112 && class_rev < 0x02)
hwif->rqsize = 15;
if (pci_get_drvdata(dev) == NULL)
next reply other threads:[~2003-09-12 20:45 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-09-12 20:48 Eduardo Casino [this message]
2003-09-15 8:47 ` SII SATA request size limit Jens Axboe
-- strict thread matches above, loose matches on Subject: below --
2003-09-18 17:43 Allen Martin
2003-09-15 16:33 CASINO_E
2003-09-15 15:24 CASINO_E
2003-09-15 15:32 ` Jens Axboe
2003-09-15 16:00 ` Justin Cormack
2003-09-15 16:07 ` Jens Axboe
2003-09-15 22:19 ` Alan Cox
2003-09-14 0:57 Eduardo Casino
2003-09-13 16:43 Marcelo Penna Guerra
2003-09-12 23:07 Marcelo Penna Guerra
2003-09-12 23:16 ` Alan Cox
2003-09-12 21:00 Marcelo Penna Guerra
2003-09-12 22:28 ` Alan Cox
2003-09-12 20:55 Marcelo Penna Guerra
2003-09-13 10:56 ` Witold Krecicki
2003-09-12 2:57 Marcelo Penna Guerra
2003-09-12 10:41 ` Alan Cox
2003-09-12 17:46 ` Witold Krecicki
2003-09-15 10:12 ` Adam Jones
2003-09-18 11:44 ` Witold Krecicki
2003-09-15 5:57 ` Catalin BOIE
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1063399684.1184.7.camel@centinela \
--to=casino_e@terra.es \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox