All of lore.kernel.org
 help / color / mirror / Atom feed
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
To: Rolf Peukert <rolf.peukert@imms.de>
Cc: linux-rt-users@vger.kernel.org
Subject: Re: Strange results from Locking API testsuite on ARM
Date: Fri, 24 Jan 2014 14:39:13 +0100	[thread overview]
Message-ID: <20140124133913.GD10264@linutronix.de> (raw)
In-Reply-To: <52E161B7.6000002@imms.de>

* 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

      reply	other threads:[~2014-01-24 13:39 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-01-23 18:38 Strange results from Locking API testsuite on ARM Rolf Peukert
2014-01-24 13:39 ` Sebastian Andrzej Siewior [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20140124133913.GD10264@linutronix.de \
    --to=bigeasy@linutronix.de \
    --cc=linux-rt-users@vger.kernel.org \
    --cc=rolf.peukert@imms.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.