* Strange results from Locking API testsuite on ARM
@ 2014-01-23 18:38 Rolf Peukert
2014-01-24 13:39 ` Sebastian Andrzej Siewior
0 siblings, 1 reply; 2+ messages in thread
From: Rolf Peukert @ 2014-01-23 18:38 UTC (permalink / raw)
To: linux-rt-users
Hello,
on our ARM-Cortex-A8-based board (using a TI AM3505 Sitara CPU) running
3.2.54-rt77, the Locking API testsuite displays 87 unexpected failures.
The pattern in the output looks interesting, but I'm not sure what it means:
> [ 0.000000] | Locking API testsuite:
> [ 0.000000] ----------------------------------------------------------------------------
> [ 0.000000] | spin |wlock |rlock |mutex | wsem | rsem |
> [ 0.000000] --------------------------------------------------------------------------
> [ 0.000000] A-A deadlock: ok | ok |FAILED| ok | ok | ok |
> [ 0.000000] A-B-B-A deadlock: ok | ok |FAILED| ok | ok | ok |
> [ 0.000000] A-B-B-C-C-A deadlock: ok | ok |FAILED| ok | ok | ok |
> [ 0.000000] A-B-C-A-B-C deadlock: ok | ok |FAILED| ok | ok | ok |
> [ 0.000000] A-B-B-C-C-D-D-A deadlock: ok | ok |FAILED| ok | ok | ok |
> [ 0.000000] A-B-C-D-B-D-D-A deadlock: ok | ok |FAILED| ok | ok | ok |
> [ 0.000000] A-B-C-D-B-C-D-A deadlock: ok | ok |FAILED| ok | ok | ok |
> [ 0.000000] double unlock: ok | ok |FAILED| ok | ok |FAILED|
> [ 0.000000] initialize held: ok | ok | ok | ok | ok | ok |
> [ 0.000000] bad unlock order: ok | ok | ok | ok | ok | ok |
> [ 0.000000] --------------------------------------------------------------------------
> [ 0.000000] recursive read-lock: | ok | |FAILED|
> [ 0.000000] recursive read-lock #2: |FAILED| | ok |
> [ 0.000000] mixed read-write-lock: | ok | | ok |
> [ 0.000000] mixed write-read-lock: | ok | | ok |
> [ 0.000000] --------------------------------------------------------------------------
> [ 0.000000] hard-irqs-on + irq-safe-A/12: ok | ok |FAILED|
> [ 0.000000] soft-irqs-on + irq-safe-A/12:FAILED|FAILED| ok |
> [ 0.000000] hard-irqs-on + irq-safe-A/21: ok | ok |FAILED|
> [ 0.000000] soft-irqs-on + irq-safe-A/21:FAILED|FAILED| ok |
> [ 0.000000] sirq-safe-A => hirqs-on/12:FAILED|FAILED| ok |
> [ 0.000000] sirq-safe-A => hirqs-on/21:FAILED|FAILED| ok |
> [ 0.000000] hard-safe-A + irqs-on/12: ok | ok |FAILED|
> [ 0.000000] soft-safe-A + irqs-on/12:FAILED|FAILED| ok |
> [ 0.000000] hard-safe-A + irqs-on/21: ok | ok |FAILED|
> [ 0.000000] soft-safe-A + irqs-on/21:FAILED|FAILED| ok |
> [ 0.000000] hard-safe-A + unsafe-B #1/123: ok | ok |FAILED|
> [ 0.000000] soft-safe-A + unsafe-B #1/123:FAILED|FAILED| ok |
> [ 0.000000] hard-safe-A + unsafe-B #1/132: ok | ok |FAILED|
> [ 0.000000] soft-safe-A + unsafe-B #1/132:FAILED|FAILED| ok |
> [ 0.000000] hard-safe-A + unsafe-B #1/213: ok | ok |FAILED|
> [ 0.000000] soft-safe-A + unsafe-B #1/213:FAILED|FAILED| ok |
> [ 0.000000] hard-safe-A + unsafe-B #1/231: ok | ok |FAILED|
> [ 0.000000] soft-safe-A + unsafe-B #1/231:FAILED|FAILED| ok |
> [ 0.000000] hard-safe-A + unsafe-B #1/312: ok | ok |FAILED|
> [ 0.000000] soft-safe-A + unsafe-B #1/312:FAILED|FAILED| ok |
> [ 0.000000] hard-safe-A + unsafe-B #1/321: ok | ok |FAILED|
> [ 0.000000] soft-safe-A + unsafe-B #1/321:FAILED|FAILED| ok |
> [ 0.000000] hard-safe-A + unsafe-B #2/123: ok | ok |FAILED|
> [ 0.000000] soft-safe-A + unsafe-B #2/123:FAILED|FAILED| ok |
> [ 0.000000] hard-safe-A + unsafe-B #2/132: ok | ok |FAILED|
> [ 0.000000] soft-safe-A + unsafe-B #2/132:FAILED|FAILED| ok |
> [ 0.000000] hard-safe-A + unsafe-B #2/213: ok | ok |FAILED|
> [ 0.000000] soft-safe-A + unsafe-B #2/213:FAILED|FAILED| ok |
> [ 0.000000] hard-safe-A + unsafe-B #2/231: ok | ok |FAILED|
> [ 0.000000] soft-safe-A + unsafe-B #2/231:FAILED|FAILED| ok |
> [ 0.000000] hard-safe-A + unsafe-B #2/312: ok | ok |FAILED|
> [ 0.000000] soft-safe-A + unsafe-B #2/312:FAILED|FAILED| ok |
> [ 0.000000] hard-safe-A + unsafe-B #2/321: ok | ok |FAILED|
> [ 0.000000] soft-safe-A + unsafe-B #2/321:FAILED|FAILED| ok |
> [ 0.000000] hard-irq lock-inversion/123: ok | ok |FAILED|
> [ 0.000000] soft-irq lock-inversion/123:FAILED|FAILED| ok |
> [ 0.000000] hard-irq lock-inversion/132: ok | ok |FAILED|
> [ 0.000000] soft-irq lock-inversion/132:FAILED|FAILED| ok |
> [ 0.000000] hard-irq lock-inversion/213: ok | ok |FAILED|
> [ 0.000000] soft-irq lock-inversion/213:FAILED|FAILED| ok |
> [ 0.000000] hard-irq lock-inversion/231: ok | ok |FAILED|
> [ 0.000000] soft-irq lock-inversion/231:FAILED|FAILED| ok |
> [ 0.000000] hard-irq lock-inversion/312: ok | ok |FAILED|
> [ 0.000000] soft-irq lock-inversion/312:FAILED|FAILED| ok |
> [ 0.000000] hard-irq lock-inversion/321: ok | ok |FAILED|
> [ 0.000000] soft-irq lock-inversion/321:FAILED|FAILED| ok |
> [ 0.000000] hard-irq read-recursion/123:FAILED|
> [ 0.000000] soft-irq read-recursion/123: ok |
> [ 0.000000] hard-irq read-recursion/132:FAILED|
> [ 0.000000] soft-irq read-recursion/132: ok |
> [ 0.000000] hard-irq read-recursion/213:FAILED|
> [ 0.000000] soft-irq read-recursion/213: ok |
> [ 0.000000] hard-irq read-recursion/231:FAILED|
> [ 0.000000] soft-irq read-recursion/231: ok |
> [ 0.000000] hard-irq read-recursion/312:FAILED|
> [ 0.000000] soft-irq read-recursion/312: ok |
> [ 0.000000] hard-irq read-recursion/321:FAILED|
> [ 0.000000] soft-irq read-recursion/321: ok |
> [ 0.000000] -----------------------------------------------------------------
> [ 0.000000] BUG: 87 unexpected failures (out of 218) - debugging disabled! |
Apparently the RT capabilites are not affected.
Here is a link to the full startup log, http://pastebin.com/bBmLwebD
and the kernel configuration used, http://pastebin.com/nYHyBjqT
If I configure the kernel for "Basic RT" or less, all 218 testcases
pass. If I configure "Full RT", but don't select "prove locking
correctness", the result is the usual "135 out of 218 testcases failed,
as expected."
This phenomenon happens with the previous kernel too (at least, haven't
checked older versions yet).
I'm not sure, is the testsuite meant to work in full RT at all?
Did I miss some important kernel config options?
Thanks,
Rolf
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: Strange results from Locking API testsuite on ARM
2014-01-23 18:38 Strange results from Locking API testsuite on ARM Rolf Peukert
@ 2014-01-24 13:39 ` Sebastian Andrzej Siewior
0 siblings, 0 replies; 2+ messages in thread
From: Sebastian Andrzej Siewior @ 2014-01-24 13:39 UTC (permalink / raw)
To: Rolf Peukert; +Cc: linux-rt-users
* Rolf Peukert | 2014-01-23 19:38:47 [+0100]:
>Hello,
Hi Rolf,
>
>If I configure the kernel for "Basic RT" or less, all 218 testcases
>pass. If I configure "Full RT", but don't select "prove locking
Yes. I think in basic mode we use the "vanila" locking.
>correctness", the result is the usual "135 out of 218 testcases failed,
>as expected."
>
>This phenomenon happens with the previous kernel too (at least, haven't
>checked older versions yet).
>
>I'm not sure, is the testsuite meant to work in full RT at all?
>Did I miss some important kernel config options?
No you are fine. From a quick look on the v3.12 x86 output we disabled
the failed tests from your second part of the output.
The first few with the rlock fail because it works a little different on
-RT and thus leading to the errors. So the testsuite was never updated
to match the behavior on -RT in v3.2 and it still does not match 100% on
current v3.12.
My current output is:
| ------------------------
| | Locking API testsuite:
| ----------------------------------------------------------------------------
| | spin |wlock |rlock |mutex | wsem | rsem |
| --------------------------------------------------------------------------
| A-A deadlock: ok | ok |FAILED| ok | ok | ok |
| A-B-B-A deadlock: ok | ok |FAILED| ok | ok | ok |
| A-B-B-C-C-A deadlock: ok | ok |FAILED| ok | ok | ok |
| A-B-C-A-B-C deadlock: ok | ok |FAILED| ok | ok | ok |
| A-B-B-C-C-D-D-A deadlock: ok | ok |FAILED| ok | ok | ok |
| A-B-C-D-B-D-D-A deadlock: ok | ok |FAILED| ok | ok | ok |
| A-B-C-D-B-C-D-A deadlock: ok | ok |FAILED| ok | ok | ok |
| double unlock: ok | ok |FAILED| ok | ok |FAILED|
| initialize held: ok | ok | ok | ok | ok | ok |
| bad unlock order: ok | ok | ok | ok | ok | ok |
| --------------------------------------------------------------------------
| recursive read-lock: | ok | |FAILED|
| recursive read-lock #2: |FAILED| | ok |
| mixed read-write-lock: | ok | | ok |
| mixed write-read-lock: | ok | | ok |
| --------------------------------------------------------------------------
| hard-irqs-on + irq-safe-A/12: ok |
| hard-irqs-on + irq-safe-A/21: ok |
| hard-safe-A + irqs-on/12: ok |
| hard-safe-A + irqs-on/21: ok |
| hard-safe-A + unsafe-B #1/123: ok |
| hard-safe-A + unsafe-B #1/132: ok |
| hard-safe-A + unsafe-B #1/213: ok |
| hard-safe-A + unsafe-B #1/231: ok |
| hard-safe-A + unsafe-B #1/312: ok |
| hard-safe-A + unsafe-B #1/321: ok |
| hard-safe-A + unsafe-B #2/123: ok |
| hard-safe-A + unsafe-B #2/132: ok |
| hard-safe-A + unsafe-B #2/213: ok |
| hard-safe-A + unsafe-B #2/231: ok |
| hard-safe-A + unsafe-B #2/312: ok |
| hard-safe-A + unsafe-B #2/321: ok |
| --------------------------------------------------------------------------
| | Wound/wait tests |
| ---------------------
| ww api failures: ok | ok | ok |
| ww contexts mixing: ok | ok |
| finishing ww context: ok | ok | ok | ok |
| locking mismatches: ok | ok | ok |
| EDEADLK handling: ok | ok | ok | ok | ok | ok | ok | ok | ok | ok |
| spinlock nest unlocked: ok |
| -----------------------------------------------------
| |block | try |context|
| -----------------------------------------------------
| context: ok | ok | ok |
| try: ok | ok | ok |
| block: ok | ok | ok |
| spinlock: ok | ok | ok |
| -----------------------------------------------------------------
| BUG: 11 unexpected failures (out of 119) - debugging disabled! |
| -----------------------------------------------------------------
and all fails here are due to -RT specific changes (which I verified
while I added the Wound/wait part).
>Thanks,
>Rolf
Sebastian
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2014-01-24 13:39 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-01-23 18:38 Strange results from Locking API testsuite on ARM Rolf Peukert
2014-01-24 13:39 ` Sebastian Andrzej Siewior
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).