linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
To: Ross Biro <rossb@google.com>
Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>, Alan Cox <alan@redhat.com>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>
Subject: Re: Linux 2.4.21-pre3-ac4
Date: 13 Jan 2003 20:03:29 +0100	[thread overview]
Message-ID: <1042484609.30837.31.camel@zion.wanadoo.fr> (raw)
In-Reply-To: <3E230A4D.6020706@google.com>

On Mon, 2003-01-13 at 19:49, Ross Biro wrote:

> The reason we need to enforce the 400nS delay is because of what is 
> going on on the other processor.  If the other processor is in ide_intr 
> trying to grab the spinlock and we do not give the drive time to assert 
> the busy bit and the other processor makes it to the call to 
> drive_is_ready, then the drive could still return not busy and we could 
> think the command is done.  This code path is probably less than 50 
> instructions, so I don't think it's taken anywhere near 400ns for a long 
> time.
> 
> DMA is slightly different.  We don't actually have to delay the 400ns if 
> we call ide_dma_begin from inside the spinlock.

Exactly. My problem right now is with enforcing that 400ns delay on
non-DMA path as with PCI write posting on one side, and other fancy bus
store queues etc... you are really not sure when your outb for the
command byte will really reach the disk.

So the problem turns down to: is it safe for commands with no data
transfer and commands with a PIO data transfer to read back from
some other task file register right after issuing the command byte
(the select register looks like a good choice, better than status
for sure) and before doing the delay of 400ns ? On any sane bus
architecture, that read will make sure the previous write will
have reached the device or your IO accessors are broken...

Ben.






  reply	other threads:[~2003-01-13 18:51 UTC|newest]

Thread overview: 41+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-01-12 18:07 Linux 2.4.21-pre3-ac4 Alan Cox
2003-01-12 19:29 ` Benjamin Herrenschmidt
     [not found]   ` <1042403235.16288.14.camel@irongate.swansea.linux.org.uk>
2003-01-12 19:51     ` Benjamin Herrenschmidt
2003-01-12 19:57       ` Benjamin Herrenschmidt
2003-01-12 20:51         ` Alan Cox
2003-01-13 16:56           ` Benjamin Herrenschmidt
2003-01-12 20:40       ` Alan Cox
2003-01-12 20:02         ` Benjamin Herrenschmidt
2003-01-13 18:49       ` Ross Biro
2003-01-13 19:03         ` Benjamin Herrenschmidt [this message]
2003-01-13 19:19           ` Ross Biro
2003-01-13 19:32             ` Ross Biro
2003-01-13 21:05               ` Alan Cox
2003-01-13 20:36                 ` Ross Biro
2003-01-13 19:46             ` Alan Cox
2003-01-14 17:38               ` Benjamin Herrenschmidt
2003-01-14 17:49                 ` Ross Biro
2003-01-14 17:52                   ` Benjamin Herrenschmidt
2003-01-14 21:17                     ` Andre Hedrick
2003-01-15  0:23                       ` Benjamin Herrenschmidt
2003-01-15  5:07                         ` Andre Hedrick
     [not found]                 ` <1043105473.12609.5.camel@dhcp22.swansea.linux.org.uk>
2003-01-21 17:07                   ` Benjamin Herrenschmidt
2003-01-13 20:56             ` Benjamin Herrenschmidt
2003-01-13 21:36               ` Ross Biro
2003-01-14  1:35                 ` Ross Biro
2003-01-14  1:44                   ` Andre Hedrick
2003-01-14  9:18                   ` Benjamin Herrenschmidt
2003-01-20  6:13                   ` Alan Cox
2003-01-13 19:34           ` John Alvord
2003-01-13 19:48             ` Ross Biro
2003-01-13 21:24           ` Jeff Garzik
2003-01-13 21:40             ` Richard B. Johnson
2003-01-13 22:02               ` Benjamin Herrenschmidt
2003-01-13 22:07               ` Benjamin Herrenschmidt
2003-01-14  1:20                 ` Richard B. Johnson
2003-01-14  9:06                   ` Benjamin Herrenschmidt
2003-01-14 14:04                     ` Richard B. Johnson
2003-01-14 14:35                       ` Benjamin Herrenschmidt
2003-01-21 11:15 ` Linux 2.4.21-pre3-ac4 [PATCH] Paul Gortmaker
2003-01-21 13:21   ` Hugh Dickins
2003-01-21 11:46 ` small patch for Via Pro 266T agp-support Jurriaan

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=1042484609.30837.31.camel@zion.wanadoo.fr \
    --to=benh@kernel.crashing.org \
    --cc=alan@lxorguk.ukuu.org.uk \
    --cc=alan@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=rossb@google.com \
    /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).