All of lore.kernel.org
 help / color / mirror / Atom feed
From: Alan Cox <alan@lxorguk.ukuu.org.uk>
To: Krzysztof Halasa <khc@pm.waw.pl>
Cc: Arjan van de Ven <arjan@infradead.org>,
	"Lennart Baruschka" <FunFlyer@gmx.net>,
	linux-kernel@vger.kernel.org
Subject: Re: Disabling DMA with ICH10?
Date: Tue, 29 Sep 2009 23:35:05 +0100	[thread overview]
Message-ID: <20090929233505.7ff11cad@lxorguk.ukuu.org.uk> (raw)
In-Reply-To: <m3k4zh32vp.fsf@intrepid.localdomain>

On Tue, 29 Sep 2009 22:35:54 +0200
Krzysztof Halasa <khc@pm.waw.pl> wrote:

> Alan Cox <alan@lxorguk.ukuu.org.uk> writes:
> 
> >> Not that long, there is no emulation there (except for port #80 (hex?)
> >> and similar). Normal 33 MHz access.
> >
> > ATA accesses go across the cable and while some of them are snooped,
> > cached and other magic is done there are cases it turns into a
> > transaction back and forth with the drive - that *is* slow. PIO 0 in fact
> > is ISA speed
> 
> Sure, PATA inserts wait states, the 4 bus cycles per access (or
> something like that) is the minimum for PIO on PCI. But it's still
> normal 33 MHz access (with as many wait states as the PATA mode needs),
> not ISA 8 MHz emulation (fastest PIO would be faster than ISA)

You are missing the point. The sequence is


INB foo

	CPU -> PCI device		read this register
	PCI device -> Disk
			trundle whirr whirrr
			clunk clunk thud
	Disk -> PCI device
	PCI device -> CPU... "5"

INB completes

The INB is not interruptible mid instruction and stalls the CPU for the
full period of the message passing back and forth across the bus. So PIO
0 on PCI stalls the bus for the equivalent of an ISA access, and PIO4
while a good deal faster is still a very long stall in hard real time
terms.


  reply	other threads:[~2009-09-29 22:36 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-09-28 21:31 Disabling DMA with ICH10? Lennart Baruschka
2009-09-28 20:37 ` Alejandro Riveira Fernández
2009-09-28 22:40 ` Alan Cox
2009-09-29  7:54   ` Lennart Baruschka
2009-09-29  8:11     ` Arjan van de Ven
2009-09-29 12:29       ` Krzysztof Halasa
2009-09-29 17:05         ` Alan Cox
2009-09-29 20:35           ` Krzysztof Halasa
2009-09-29 22:35             ` Alan Cox [this message]
2009-09-30 12:21               ` Krzysztof Halasa
2009-09-29 10:46     ` Alan Cox

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=20090929233505.7ff11cad@lxorguk.ukuu.org.uk \
    --to=alan@lxorguk.ukuu.org.uk \
    --cc=FunFlyer@gmx.net \
    --cc=arjan@infradead.org \
    --cc=khc@pm.waw.pl \
    --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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.