linuxppc-dev.lists.ozlabs.org archive mirror
 help / color / mirror / Atom feed
From: Suraj Jitindar Singh <sjitindarsingh@gmail.com>
To: Cyril Bur <cyrilbur@gmail.com>
Cc: Michael Ellerman <mpe@ellerman.id.au>, linuxppc-dev@ozlabs.org
Subject: Re: selftests/powerpc: Remove -flto from common CFLAGS
Date: Tue, 1 Mar 2016 15:46:17 +1100	[thread overview]
Message-ID: <56D51E99.20604@gmail.com> (raw)
In-Reply-To: <20160301141154.1938845e@camb691>

On 01/03/16 14:11, Cyril Bur wrote:
> On Mon, 29 Feb 2016 22:10:13 +1100 (AEDT)
> Michael Ellerman <mpe@ellerman.id.au> wrote:
>
>> Hi Suraj,
>>
>> On Mon, 2016-29-02 at 06:29:55 UTC, Suraj Jitindar Singh wrote:
>>> LTO can cause GCC to inline some functions which have attributes set. The  
>> You should define what LTO is the first time you use it.
>>
>>> act of inlining the functions can lead to GCC forgetting about the
>>> attributes which leads to incorrect tests.
>>> Notable example being: __attribute__((__target__("no-vsx")))  
>> That is probably a GCC bug, but we still need to work around it for now.
>>
>>> LTO can also interact strangely with custom assembly functions and cause
>>> tests to intermittently fail.  
>> That's probably Cyril writing bad asm :)
>>
>>> Both these cases are hard to detect and require manual inspection of
>>> binaries which is unlikely to happen for all tests. Furthermore, LTO
>>> optimisations are not necessary for selftests and correctness is paramount
>>> and as such it is best to disable LTO.
>>>
>>> LTO can be enabled on a per test basis.
>>>
>>> A pseries_le_defconfig kernel on a POWER8 was used to determine that the
>>> same subset of selftests pass and fail with and without -flto in the
>>> common Makefile.
>>>
>>> These tests always fail:
>>> selftests: per_event_excludes [FAIL]
>>> selftests: event_attributes_test [FAIL]
>>> selftests: ebb_vs_cpu_event_test [FAIL]
>>> selftests: cpu_event_vs_ebb_test [FAIL]
>>> selftests: cpu_event_pinned_vs_ebb_test [FAIL]  
>> They shouldn't :)
>>
>> Are you running as root? Bare metal or guest?
> The answer here is that /proc/sys/kernel/perf_event_paranoid defaults to 1 but
> 0 is needed for these tests to not SKIP. The standard harness does not decern
> between skips and fails, running each test in powerpc/ shows SKIP/FAIL.
>
> I have run four kernels under QEMU/KVM on a fairly busy VM box and I have the
> same result for all 4. All had /proc/sys/kernel/perf_event_paranoid set to 0
> before running the tests. Each test was run by it's self not with the
> run_kselftest.sh script which hides SKIPs.
>
> pseries_defconfig (BE) qemu/KVM PATCHED
> # grep FAIL *.out
> cpu_event_pinned_vs_ebb_test.out:[FAIL] Test FAILED on line 87
> ipc_unmuxed.out:[FAIL] Test FAILED on line 38
> per_event_excludes.out:[FAIL] Test FAILED on line 95
>
> pseries_defconfig (BE) qemu/KVM unpatched
> # grep FAIL *.out
> cpu_event_pinned_vs_ebb_test.out:[FAIL] Test FAILED on line 87
> ipc_unmuxed.out:[FAIL] Test FAILED on line 38
> per_event_excludes.out:[FAIL] Test FAILED on line 95
>
> pseries_le_defconfig (LE) qemu/KVM PATCHED
> # grep FAIL *.out
> cpu_event_pinned_vs_ebb_test.out:[FAIL] Test FAILED on line 87
> ipc_unmuxed.out:[FAIL] Test FAILED on line 38
> per_event_excludes.out:[FAIL] Test FAILED on line 95
>
> pseries_le_defconfig (LE) qemu/KVM unpatched
> # grep FAIL *.out
> cpu_event_pinned_vs_ebb_test.out:[FAIL] Test FAILED on line 87
> ipc_unmuxed.out:[FAIL] Test FAILED on line 38
> per_event_excludes.out:[FAIL] Test FAILED on line 95
>
> There were no matches for grep SKIP *.out for any of the four.
>
> This patch appears to not have affected any of the tests.
>
> Reviewed-by: Cyril Bur <cyrilbur@gmail.com>
>
The same tests were run with /proc/sys/kernel/perf_event_paranoid set to 0 on an bare metal power8 system with the same results.

pseries_le_defconfig (LE) PATCHED
# grep FAIL results_patched
[FAIL] Test FAILED on line 95
selftests: per_event_excludes [FAIL]
[FAIL] Test FAILED on line 87
selftests: cpu_event_pinned_vs_ebb_test [FAIL]
selftests: ipc_unmuxed [FAIL]

pseries_le_defconfig (LE) unpatched
# grep FAIL results_unpatched
[FAIL] Test FAILED on line 95
selftests: per_event_excludes [FAIL]
[FAIL] Test FAILED on line 87
selftests: cpu_event_pinned_vs_ebb_test [FAIL]
selftests: ipc_unmuxed [FAIL]

Thus there was no change in the test results between the patched and unpatched systems.

>>> selftests: ipc_unmuxed [FAIL]  
>> That one is expected.
>>
>> cheers
>> _______________________________________________
>> Linuxppc-dev mailing list
>> Linuxppc-dev@lists.ozlabs.org
>> https://lists.ozlabs.org/listinfo/linuxppc-dev

  reply	other threads:[~2016-03-01  4:46 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-02-29  6:29 [PATCH] selftests/powerpc: Remove -flto from common CFLAGS Suraj Jitindar Singh
2016-02-29 11:10 ` Michael Ellerman
2016-02-29 23:08   ` Cyril Bur
2016-02-29 23:35     ` Michael Ellerman
2016-03-01  3:11   ` Cyril Bur
2016-03-01  4:46     ` Suraj Jitindar Singh [this message]
2016-03-03 10:58 ` Michael Ellerman

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=56D51E99.20604@gmail.com \
    --to=sjitindarsingh@gmail.com \
    --cc=cyrilbur@gmail.com \
    --cc=linuxppc-dev@ozlabs.org \
    --cc=mpe@ellerman.id.au \
    /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 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).