All of lore.kernel.org
 help / color / mirror / Atom feed
* [Fwd: Re: sdhci can turn off irq up to 200 ms]
@ 2009-08-13 16:02 Matthieu CASTET
  2009-08-13 17:01 ` New to list, rt-kernel question re Ubuntu 9.04 Henry W. Peters
  0 siblings, 1 reply; 3+ messages in thread
From: Matthieu CASTET @ 2009-08-13 16:02 UTC (permalink / raw)
  To: linux-rt-users

[-- Attachment #1: Type: text/plain, Size: 1359 bytes --]

Hi,

I foward this here because it could interest some people caring about
low latency. I have got no reply from upstream.
It may or not affect preempt-rt kernel.

For info the issue was found with ltt.


Matthieu

PS :
the sdhci driver contains others mdelay that should be killed.

-------- Message original --------
Sujet : Re: sdhci can turn off irq up to 200 ms
Date : Thu, 09 Jul 2009 12:28:01 +0200
De : Matthieu CASTET <matthieu.castet@parrot.com>
Pour : pierre@ossman.eu
Copie à : sdhci-devel@lists.ossman.eu,  "linux-kernel@vger.kernel.org"
<linux-kernel@vger.kernel.org>
Références : <4A4B6184.7000903@parrot.com>

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.


Matthieu

[-- Attachment #2: sdhci.diff --]
[-- Type: text/x-diff, Size: 764 bytes --]

diff --git a/drivers/mmc/host/sdhci.c b/drivers/mmc/host/sdhci.c
index 6779b4e..3e199b6 100644
--- a/drivers/mmc/host/sdhci.c
+++ b/drivers/mmc/host/sdhci.c
@@ -156,18 +156,17 @@ static void sdhci_reset(struct sdhci_host *host, u8 mask)
 		host->clock = 0;
 
 	/* Wait max 100 ms */
-	timeout = 100;
+	timeout = jiffies + msecs_to_jiffies(100);
 
 	/* hw clears the bit when it's done */
 	while (sdhci_readb(host, SDHCI_SOFTWARE_RESET) & mask) {
-		if (timeout == 0) {
+		if (time_is_before_jiffies(timeout)) {
 			printk(KERN_ERR "%s: Reset 0x%x never completed.\n",
 				mmc_hostname(host->mmc), (int)mask);
 			sdhci_dumpregs(host);
 			return;
 		}
-		timeout--;
-		mdelay(1);
+		cpu_relax();
 	}
 
 	if (host->quirks & SDHCI_QUIRK_RESTORE_IRQS_AFTER_RESET)


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* New to list, rt-kernel question re Ubuntu 9.04
  2009-08-13 16:02 [Fwd: Re: sdhci can turn off irq up to 200 ms] Matthieu CASTET
@ 2009-08-13 17:01 ` Henry W. Peters
  2009-08-14  6:32   ` Tobias Knutsson
  0 siblings, 1 reply; 3+ messages in thread
From: Henry W. Peters @ 2009-08-13 17:01 UTC (permalink / raw)
  To: linux-rt-users

Been monitoring the list for a few days, my question might be a little 
basic for this list... but some one may be able to direct me to a 
possibly more relevant place to pose it...

I do (among other things) audio work... trying to get my Linux system 
(now, Ubuntu 9.04) to do some of the work. It has been a struggle so 
far, but I am currently having some success with (among a few others) 
Audacity... even using 'Jack,' etc. (it will input my Echo, Mia-Midi 
card from my Yamaha 01v digital mixer)... where as Ardour will not...

Anyway, some time ago I tried Ubuntu Studio (v. 8.04.1) that had the rt 
kernel built in, but since I was having other problems, had to revert to 
generic Ubuntu... & now I am on Ubuntu 9.04, generic. What I wish to do 
is a build of the rt kernel... but do not really know how to do this... 
or even really if it would (possibly) work (i.e., matters to 
anticipate). Any tips, pointers, directions, advise would be much 
appreciated...

Thanks,
Henry



^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: New to list, rt-kernel question re Ubuntu 9.04
  2009-08-13 17:01 ` New to list, rt-kernel question re Ubuntu 9.04 Henry W. Peters
@ 2009-08-14  6:32   ` Tobias Knutsson
  0 siblings, 0 replies; 3+ messages in thread
From: Tobias Knutsson @ 2009-08-14  6:32 UTC (permalink / raw)
  To: Henry W. Peters; +Cc: linux-rt-users

Are there any special circumstances that makes you want to build the
kernel yourself?

If not, I believe that Ubuntu provides an precompiled RT kernel. I
guess the package you are looking for is the "linux-rt" package (and
"linux-rt-headers" if you are going to compile any modules).

On Thu, Aug 13, 2009 at 19:01, Henry W. Peters<hwpeters@jamadots.com> wrote:
> Been monitoring the list for a few days, my question might be a little basic
> for this list... but some one may be able to direct me to a possibly more
> relevant place to pose it...
>
> I do (among other things) audio work... trying to get my Linux system (now,
> Ubuntu 9.04) to do some of the work. It has been a struggle so far, but I am
> currently having some success with (among a few others) Audacity... even
> using 'Jack,' etc. (it will input my Echo, Mia-Midi card from my Yamaha 01v
> digital mixer)... where as Ardour will not...
>
> Anyway, some time ago I tried Ubuntu Studio (v. 8.04.1) that had the rt
> kernel built in, but since I was having other problems, had to revert to
> generic Ubuntu... & now I am on Ubuntu 9.04, generic. What I wish to do is a
> build of the rt kernel... but do not really know how to do this... or even
> really if it would (possibly) work (i.e., matters to anticipate). Any tips,
> pointers, directions, advise would be much appreciated...
>
> Thanks,
> Henry
>
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-rt-users" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>



-- 

Hälsningar/Regards
Tobias Knutsson
--
To unsubscribe from this list: send the line "unsubscribe linux-rt-users" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2009-08-14  6:32 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-08-13 16:02 [Fwd: Re: sdhci can turn off irq up to 200 ms] Matthieu CASTET
2009-08-13 17:01 ` New to list, rt-kernel question re Ubuntu 9.04 Henry W. Peters
2009-08-14  6:32   ` Tobias Knutsson

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.