On 01/03/16 14:11, Cyril Bur wrote: > 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> > 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 _______________________________________________ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev