BUG: commit "ARM: Remove __ARCH_WANT_INTERRUPTS_ON_CTXSW on pre-ARMv6 CPUs" breaks armv5 with CONFIG_PREEMPT
Marc Kleine-Budde
mkl at pengutronix.de
Thu Jun 20 04:43:33 EDT 2013
Hello Catalin,
on current linus/master on armv5 we observed stack trashing[1] on high
load. I bisected this problem down to commit:
> b9d4d42ad901cc848ac87f1cb8923fded3645568 is the first bad commit
> commit b9d4d42ad901cc848ac87f1cb8923fded3645568
> Author: Catalin Marinas <catalin.marinas at arm.com>
> Date: Mon Nov 28 21:57:24 2011 +0000
>
> ARM: Remove __ARCH_WANT_INTERRUPTS_ON_CTXSW on pre-ARMv6 CPUs
>
> This patch removes the __ARCH_WANT_INTERRUPTS_ON_CTXSW definition for
> ARMv5 and earlier processors. On such processors, the context switch
> requires a full cache flush. To avoid high interrupt latencies, this
> patch defers the mm switching to the post-lock switch hook if the
> interrupts are disabled.
>
> Reviewed-by: Will Deacon <will.deacon at arm.com>
> Tested-by: Will Deacon <will.deacon at arm.com>
> Reviewed-by: Frank Rowand <frank.rowand at am.sony.com>
> Tested-by: Marc Zyngier <Marc.Zyngier at arm.com>
> Signed-off-by: Catalin Marinas <catalin.marinas at arm.com>
>
> :040000 040000 034899bdcbc9aa59b5455a85a9d78b646b4cf784 ecc23e33a4ca807d4153f87fbea85a9437ff2928 M arch
The problem can be reproduced on several mx28 and an at91sam9263 and
only occurs of CONFIG_PREEMPT (Preemptible Kernel (Low-Latency Desktop))
is enabled.
I have the gut feeling that the "if (irqs_disabled())" check in the
above patch is not correct for CONFIG_PREEMPT.
Marc
[1] The test program creating 150 threads in a row crashes like this:
> [8]+ Segmentation fault ./thread_test_c
> [5] Illegal instruction ./thread_test_c
> [4] Illegal instruction ./thread_test_c
> [2] Segmentation fault ./thread_test_c
> [3] Illegal instruction ./thread_test_c
> [1] Segmentation fault ./thread_test_c
--
Pengutronix e.K. | Marc Kleine-Budde |
Industrial Linux Solutions | Phone: +49-231-2826-924 |
Vertretung West/Dortmund | Fax: +49-5121-206917-5555 |
Amtsgericht Hildesheim, HRA 2686 | http://www.pengutronix.de |
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 259 bytes
Desc: OpenPGP digital signature
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20130620/11a01756/attachment-0001.sig>
More information about the linux-arm-kernel
mailing list