From: Christer Weinigel <christer@weinigel.se>
To: Pierre Ossman <drzeus-list@drzeus.cx>
Cc: linux-kernel@vger.kernel.org
Subject: Re: [patch 0/3] RFC: Low-latency SDIO
Date: Thu, 02 Oct 2008 11:19:58 +0200 [thread overview]
Message-ID: <48E4923E.7000006@weinigel.se> (raw)
In-Reply-To: <20081002103257.3b2f7c5d@mjolnir.drzeus.cx>
Pierre Ossman wrote:
> On Tue, 30 Sep 2008 12:23:13 +0200
> Christer Weinigel <christer@weinigel.se> wrote:
>> Here is a cleaned up patch that implements the low-latency SDIO stuff
>> I mailed about a couple of weeks ago. Basically the patches adds
>> asynchronous SDIO operations and makes it possible to register a
>> "hard" SDIO interrupt handler which will be called directly from
>> interrupt context (mmc_signal_sdio_irq).
>
> Did you see the response I sent to the previous thread?
Yes, i think so. My previous post was mostly handwaving and some claims
of a performance improvement, I wanted to clean up my low latency
patches first and show a concrete implementation of what I was thinking
about before asking for more feedback.
This patch mostly adds things, the asynchronous API is available for for
those that need it, but old drivers will still work as before. There is
a difference for host drivers, drivers that sleep in their request
function will not work, but I believe request shouldn't do that anyway.
Anyway, is this the response you're thinking of:
September 5, Pierre Ossman wrote:
> The latency improvement is indeed impressive, but I am not convinced it
> is worth it. An asynchronous API is much more complex and difficult to
> work with (not to mention reading and trying to make sense of existing
> code), and SDIO is not even an asynchronous bus to begin with.
> I do like the idea of reducing latencies (and generally improving the
> performance of the MMC stack). The primary reason I haven't done
> anything myself is lack of stuff to test and proper instrumentation.
>
> There are really two issues here, which aren't necessarily related;
> actual interrupt latency and command completion latency.
>
> The main culprit in your case is the command completion one. Perhaps
> there is some other way of solving that inside the MMC core? E.g. we
> could spin instead of sleeping while we wait for the request to
> complete. Most drivers never use process context to handle a request
> anyway. We would need to determine when the request is small enough
> (all non-busy, non-data commands?) and that the CPU is slow enough. I
> also saw something about a new trigger interface that could make this
> efficient.
There are actually three issues I think, interrupt latency, command
completion latency, and CPU load.
Using a busy-wait for command completion would both reduce the load and
latency (because there will be no interrupt or wakeup overhead). But it
only helps for quick commands, for any commands that transfer data,
we'll have to use an interrupt and get the wakeup latencies. And for me
any latency, initial interrupt latency or latency after the data
transfer, are killers, so that's what I'm trying to solve.
I did google a bit for a Linux trigger interface and for some reason (I
can't remember exactly why now), I did not think that it would be
suitable for what I want to do.
So I still would like to get something like this low-latency thing into
the kernel.
/Christer
prev parent reply other threads:[~2008-10-02 9:20 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-09-30 10:23 Christer Weinigel
2008-09-30 10:23 ` [patch 1/3] RFC: Low-latency SDIO, add asynchronous SDIO operations Christer Weinigel
2008-09-30 10:23 ` [patch 2/3] RFC: Low-latency SDIO, convert sdio_irq_thread to workqueue Christer Weinigel
2008-09-30 10:23 ` [patch 3/3] RFC: Low-latency SDIO, add hard interrupt handlers Christer Weinigel
2008-10-02 8:32 ` [patch 0/3] RFC: Low-latency SDIO Pierre Ossman
2008-10-02 9:19 ` Christer Weinigel [this message]
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=48E4923E.7000006@weinigel.se \
--to=christer@weinigel.se \
--cc=drzeus-list@drzeus.cx \
--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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
Powered by JetHome