From: "Max T. Woodbury" <max.teneyck.woodbury@verizon.net>
To: Jens Axboe <axboe@suse.de>
Cc: "Eric D. Mudama" <edmudama@bounceswoosh.org>, linux-ide@vger.kernel.org
Subject: Re: ide-io.c, ide_do_request -- race condition?
Date: Fri, 16 Jul 2004 17:33:49 +0100 [thread overview]
Message-ID: <40F7BD1D.ACC6EC93@verizon.net> (raw)
In-Reply-To: 20040716070209.GC1336@suse.de
Jens Axboe wrote:
>
> On Fri, Jul 16 2004, Max T. Woodbury wrote:
> > "Eric D. Mudama" wrote:
> > >
> > > On Mon, Jul 12 at 13:52, Max T. Woodbury wrote:
> > > >Still, why would PIO mode be unsafe? (I can see slower, but I don't
> > > >expect speed from this beast. Oh well. Thanks for the pointer.)
> > >
> > > PIO has no data integrity check, so bogus cables that glitch the data
> > > will not be detected. Not sure if that is what he was talking about,
> > > but is definitely a problem for PIO.
> >
> > Huh? Unless something major has changed since the last time I looked at
> > DMA hardware (and it has been a few years), DMA uses the same transfer
> > sequence from the devices point of view as PIO. The fact that the
> > transfer is under the control of another device rather than a program
> > should be transparent to the target device. Impedance mismatches,
> > reflections and constructive and destructive interference caused by
> > cable problems don't care about who's in control of the busses.
> >
> > I can see a possible problem with cache consistency causing problems
> > with PIO, but there are similar (abet in some sense inverted or
> > reversed) problems with DMA.
>
> Yes that's very clever of you. But read what Eric writes - PIO has no
> data integrity check. DMA transfers are crc'ed so you know if something
> goes bad between device and host in the data phase, with PIO you do not.
Sorry, NO. From the device point of view, DMA and PIO are indistinguishable.
Both have CRCs on some busses and neither have CRCs on others. There are
ALWAYS CRCs on transfers across the drive interface cables. This is controlled
by the IDE/CPU interface chip and not by the DMA hardware. The transfer of
the CRC is triggered by the termination of data transfer which happens with
both DMA and PIO. These are design issues that go back at least thirty
years and are generally well understood.
Bartlomiej was talking about timing register setup problems. They can be
messed up for either mode. They are separate for DMA and PIO. His point
was that the default driver left PIO timing setup to the hardware and BIOS
while the special drivers sometimes included more specific initialization.
These are fairly new problems arising from multi-tiered bus technologies
like PCI.
max
next prev parent reply other threads:[~2004-07-16 16:33 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-07-12 17:52 ide-io.c, ide_do_request -- race condition? Max T. Woodbury
2004-07-12 18:35 ` Eric D. Mudama
2004-07-16 6:12 ` Max T. Woodbury
2004-07-16 7:02 ` Jens Axboe
2004-07-16 16:33 ` Max T. Woodbury [this message]
2004-07-16 17:57 ` Jens Axboe
2004-07-16 7:06 ` Jeff Garzik
2004-07-16 17:45 ` Benjamin Herrenschmidt
-- strict thread matches above, loose matches on Subject: below --
2004-07-11 14:38 Max T. Woodbury
2004-07-05 22:51 Max T. Woodbury
2004-07-07 19:43 ` Bartlomiej Zolnierkiewicz
2004-07-10 19:25 ` Max T. Woodbury
2004-07-10 20:07 ` Bartlomiej Zolnierkiewicz
2004-07-11 15:02 ` Max T. Woodbury
2004-07-12 15:15 ` Max T. Woodbury
2004-07-12 15:47 ` Bartlomiej Zolnierkiewicz
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=40F7BD1D.ACC6EC93@verizon.net \
--to=max.teneyck.woodbury@verizon.net \
--cc=axboe@suse.de \
--cc=edmudama@bounceswoosh.org \
--cc=linux-ide@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;
as well as URLs for NNTP newsgroup(s).