From: Tejun Heo <tj@kernel.org>
To: Alan Cox <alan@lxorguk.ukuu.org.uk>
Cc: Jens Axboe <jens.axboe@oracle.com>,
jeff@garzik.org, linux-ide@vger.kernel.org,
Mark Lord <mlord@pobox.com>, Kay Sievers <kay.sievers@vrfy.org>,
Gwendal Grignou <gwendal@google.com>
Subject: Re: libata bridge limits
Date: Tue, 26 Aug 2008 13:23:36 +0200 [thread overview]
Message-ID: <48B3E7B8.5060307@kernel.org> (raw)
In-Reply-To: <20080826113800.4a212f53@lxorguk.ukuu.org.uk>
Alan Cox wrote:
>> * The current IO timeouts are too long. It's not like reducing this is
>> difficult. The only reason why we haven't reduced it yet is because we
>
> They are too short.
>
>> haven't been able to agree on what's the proper timeout value.
>> According to Mark, 8 secs should be fine (Windows uses it) for
>> read/writes but there seem to be some corner cases.
>
> The worst case I've seen on bad blocks is up over sixty seconds and as a
> result of our underlength timeouts we get continuous retries and mode
> changedowns in response to this not a proper error and raid failover. The
> worst case on cache flush is even longer!
We probably needs to extend timeout for flush or at least when retrying
flushes. As for reads and writes, I really think we should move more
towards shorter timeout as timeouts are not too rare in SATA at least
(and undistinguishible using BSY or other methods). Those long delays
are very rare and maybe having control knobs is the best way to deal
with them.
> We have the same problem with CD devices.
>
> Now we should probably have a shorter timeout where we then check the
> status bits for BUSY so we can quickly catch lost interrupts or commands
> but that is quite different.
Yeah, we need to check for lost interrupts and dead IRQ due to screaming
IRQ. Maybe we can do some of that in interrupt core.
>> * Some rare controllers fail miserably after a timeout but this is
>> pretty rare and getting rarer. I don't think we need to consider this
>> the main deciding factor.
>
> Several require resets, the driver should be doing this work. Again the
> poll on timeout to check if we just lost the IRQ would improve this also
> but is only done by old IDE right now.
The few I was talking about just freezes the whole machine after a
timeout. Dunno whether the lowlevel driver needs to do EH differently
or the controller is just built that way tho.
>> * Currently, the transfer speed setting reached by EH actions is not
>> persistent. On the next boot, the device would have to go through the
>> same thing all over again, which isn't too pleasant. It would be great
>> if we can make this setting persistent. Maybe this can be done libata
>> sysfs and udev?
>
> How ? you've no idea what device combination will appear next boot ?
udev and hal know a lot about the system configuration including
connection topology and many ways to id each device. Saving limit
configuration using combination of topology and device ID should be
pretty safe. I think more difficult problem is how to notify the user
that such persistent auto-configuration happened and provide a
convenient way to undo.
Thanks.
--
tejun
next prev parent reply other threads:[~2008-08-26 11:26 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-08-26 7:28 libata bridge limits Jens Axboe
2008-08-26 9:42 ` Alan Cox
2008-08-26 10:17 ` Jens Axboe
2008-08-26 10:43 ` Tejun Heo
2008-08-26 10:38 ` Alan Cox
2008-08-26 11:23 ` Tejun Heo [this message]
2008-08-26 12:25 ` Alan Cox
2008-08-26 12:45 ` Tejun Heo
2008-08-26 17:25 ` Gwendal Grignou
2008-08-26 17:45 ` James Bottomley
2008-08-26 19:25 ` Gwendal Grignou
2008-08-26 20:55 ` James Bottomley
2008-08-26 12:32 ` Brad Campbell
2008-08-26 12:48 ` Jens Axboe
2008-08-26 12:55 ` Tejun Heo
2008-08-26 13:06 ` Jens Axboe
2008-08-26 13:58 ` Jens Axboe
2008-08-26 14:20 ` Tejun Heo
2008-08-26 14:26 ` Jens Axboe
2008-08-26 14:25 ` Jens Axboe
2008-08-26 19:36 ` Jeff Garzik
2008-08-26 22:37 ` Mark Lord
2008-08-27 13:23 ` Jens Axboe
2008-10-31 5:45 ` Jeff Garzik
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=48B3E7B8.5060307@kernel.org \
--to=tj@kernel.org \
--cc=alan@lxorguk.ukuu.org.uk \
--cc=gwendal@google.com \
--cc=jeff@garzik.org \
--cc=jens.axboe@oracle.com \
--cc=kay.sievers@vrfy.org \
--cc=linux-ide@vger.kernel.org \
--cc=mlord@pobox.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).