On Thu, Oct 16, 2014 at 10:23:52AM +0100, Daniel Thompson wrote:
On 14/10/14 23:37, Daniel Drake wrote:
I'm testing your patches on Exynos4412 and I guess in their current state they don't go quite this deep, as the only callers of trigger_all_cpu_backtrace() are sysrq, hung_task and spinlock debug code - none of which seem as fail-safe as a trigger like a pre-programmed watchdog NMI interrupt would be.
Do I need to find a way to get CONFIG_FIQ available on this platform first? and/or CONFIG_HARDLOCKUP_DETECTOR?
You need CONFIG_FIQ working first. Be aware that this may be impossible on Exynos unless you control the TrustZone. For this reason most of my development is on Freescale i.MX6 (because i.MX6 boots in secure mode).
CONFIG_FIQ enables the legacy FIQ code which is unsuitable for use on SMP, so that should not be a requirement.
We still need to validate all the code we're proposing to run in FIQ context does not violate any locking. IRQ-safe locks will do not prevent FIQs occuring, and using IRQ-safe locks which are also taken in the FIQ path /will/ cause deadlocks. So, we need to ensure that the perf internals are safe for this.
Lastly, platforms running in non-secure mode most likely will not be able to take /any/ advantage from the FIQ stuff because FIQs will likely only be available to the secure firmware.