lkml.org 
[lkml]   [2009]   [Sep]   [6]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: sdhci can turn off irq up to 200 ms
    On Thu, 9 Jul 2009 12:28:01 +0200
    Matthieu CASTET <matthieu.castet@parrot.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.
    [unhandled content-type:application/pgp-signature]
    \
     
     \ /
      Last update: 2009-09-06 15:35    [W:0.036 / U:0.184 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site