linux-ide.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Sergei Shtylyov <sshtylyov@ru.mvista.com>
To: Robert Hancock <hancockr@shaw.ca>
Cc: Mark Lord <liml@rtr.ca>, Alan Cox <alan@redhat.com>,
	Tejun Heo <htejun@gmail.com>, Jeff Garzik <jgarzik@pobox.com>,
	Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>,
	ide <linux-ide@vger.kernel.org>
Subject: Re: PIO with SSDs: needs a long DRQ-after-command timeout for WRITEs
Date: Wed, 31 Dec 2008 21:03:52 +0300	[thread overview]
Message-ID: <495BB408.7000608@ru.mvista.com> (raw)
In-Reply-To: <495BACD2.6020500@shaw.ca>

Hello.

Robert Hancock wrote:

>>> No idea about IDE, but libata does not wait at all for DRQ assertion 
>>> specifically, after issuing the PIO command it waits for BSY to be 
>>> deasserted and then expects either DRQ, DF or ERR to be set, else 
>>> it's a host state machine violation and triggers error handling. 
>>> According to the ATA spec, the device is specifically not allowed to 
>>> set DRQ to one while BSY is not asserted.

>> ..

>> Okay, so how long does it wait for BSY=0 under that same circumstance?

> Just the overall command completion timeout, it would appear.. usually 
> 30 seconds I believe.

    I don't think it's as long as that with libata.

> IDE is really only waiting 50msec in this case? That seems rather 
> wrong.. I don't see anywhere in the current ATA specs that requires the 
> drive to respond within that time period.

    It's waiting the whole 50 ms where the maximum specified by the original 
ATA was 20 ms. What seems really wrong to me is making the host poll for BSY=0 
for an indeterminate time -- though it's always been a really stupid part of 
the ATA command protocol. Well, at least it never stroke anybody before those 
insane SSDs appeared on market. :-)

WBR, Sergei

  reply	other threads:[~2008-12-31 18:03 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-12-30 13:53 PIO with SSDs: needs a long DRQ-after-command timeout for WRITEs Mark Lord
2008-12-30 13:59 ` Alan Cox
2008-12-31 16:29   ` Mark Lord
2008-12-31 18:38     ` Bartlomiej Zolnierkiewicz
2008-12-31 20:30       ` Mark Lord
2008-12-30 18:14 ` Robert Hancock
     [not found]   ` <495B9D31.6080904@rtr.ca>
2008-12-31 17:33     ` Robert Hancock
2008-12-31 18:03       ` Sergei Shtylyov [this message]
2008-12-31 18:06       ` Sergei Shtylyov

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=495BB408.7000608@ru.mvista.com \
    --to=sshtylyov@ru.mvista.com \
    --cc=alan@redhat.com \
    --cc=bzolnier@gmail.com \
    --cc=hancockr@shaw.ca \
    --cc=htejun@gmail.com \
    --cc=jgarzik@pobox.com \
    --cc=liml@rtr.ca \
    --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).