Re: OMAP3 interrupt latency much worse when CPU idle

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, Nov 09, 2017 at 01:57:07PM -0800, Tony Lindgren wrote:
> * Ladislav Michl <ladis@xxxxxxxxxxxxxx> [171109 21:49]:
> > gpio_in (yellow) is fed with signal generator while scope inputs are
> > connected to both gpio_in and gpio_out (blue). Output signal is inverted
> > to make waveform compare easier by naked eye.
> > 
> > Expected result is clean waveform with small offset and reasonable jitter.
> > To make this clearly visible, waveform persistence was enabled on scope.
> > Resulting waveform on idle system looks like this:
> > http://ladislav.michl.sweb.cz/omap3_edge_irq_1.png
> > As you can see, latency (jitter) is up to half of pulse width, which seems
> > pretty bad as frequency is 610Hz.
> 
> Nice test set up :)
> 
> > However, loaded system (*) shows much better results:
> > http://ladislav.michl.sweb.cz/omap3_edge_irq_2.png
> > 
> > Any idea how to get good enough (second measurement) results regardless of
> > the system load?
> 
> Maybe you can block idle states from your driver with PM QoS?
> 
> Just add some latency requirement. See for example what was done
> earlier for omap3 audio in commit 9834ffd1ecc3 ("ASoC: omap-mcbsp: Add PM
> QoS support for McBSP to prevent glitches").
> 
> Not sure if we can do this in a generic way.. But maybe it's doable for
> things like PWM drivers.

That seems to be rather problematic as I need this for generic driver:
drivers/media/rc/gpio-ir-recv.c
I need to be able to detect key presses of various remotes, so protocol
is unknown in advance. Having such a big jitter leads to false positives
when guessing protocol or decoding errors.

I was also considering using FIQ handler, but it probably won't help in
this case.

	ladis
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux Arm (vger)]     [ARM Kernel]     [ARM MSM]     [Linux Tegra]     [Linux WPAN Networking]     [Linux Wireless Networking]     [Maemo Users]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux