On Mon, 29 Feb 2016 22:10:13 +1100 (AEDT) Michael Ellerman <m...@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 <cyril...@gmail.com> > > > 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 _______________________________________________ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev