[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20090906152537.15303d69@mjolnir.ossman.eu>
Date: Sun, 6 Sep 2009 15:25:37 +0200
From: Pierre Ossman <pierre@...man.eu>
To: Matthieu CASTET <matthieu.castet@...rot.com>
Cc: sdhci-devel@...ts.ossman.eu,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>
Subject: Re: sdhci can turn off irq up to 200 ms
On Thu, 9 Jul 2009 12:28:01 +0200
Matthieu CASTET <matthieu.castet@...rot.com> wrote:
> Matthieu CASTET a écrit :
> > Hi,
> >
> > sdhci code got tasklets (sdhci_tasklet_card and sdhci_tasklet_finish),
> > that does :
> > {
> > spin_lock_irqsave
> >
> > if (cond) {
> > sdhci_reset
> > sdhci_reset
> > }
> >
> > spin_unlock_irqrestore
> > }
> >
> > The problem is that sdhci_reset [1] does busy pooling on a register up
> > to a timeout of 100 ms.
> > That's not low latency friendly.
> >
> > On our system, we saw that sdhci_reset take 1 ms. That should be because
> > we enter in mdelay, even if the hardware clears the bit faster.
> > I wonder why there is an mdelay(1). Using cpu_relax and
> > time_is_after_jiffies should make sdhci_reset faster.
> >
> In case somebody cares, here a patch that reduce on our hardware
> sdhci_reset from 1 ms to 30 us.
>
I seem to recall having problems with jiffies not updating with those
locks held (or perhaps it was when inside the isr).
What arch have you been testing this on?
Rgds
--
-- Pierre Ossman
WARNING: This correspondence is being monitored by the
Swedish government. Make sure your server uses encryption
for SMTP traffic and consider using PGP for end-to-end
encryption.
Download attachment "signature.asc" of type "application/pgp-signature" (199 bytes)
Powered by blists - more mailing lists