From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ozlabs.org (ozlabs.org [103.22.144.67]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by lists.ozlabs.org (Postfix) with ESMTPS id 03C171A06A7 for ; Tue, 1 Mar 2016 15:46:25 +1100 (AEDT) Received: from mail-pa0-x235.google.com (mail-pa0-x235.google.com [IPv6:2607:f8b0:400e:c03::235]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 4DF95140BA6 for ; Tue, 1 Mar 2016 15:46:23 +1100 (AEDT) Received: by mail-pa0-x235.google.com with SMTP id fy10so104522588pac.1 for ; Mon, 29 Feb 2016 20:46:23 -0800 (PST) Subject: Re: selftests/powerpc: Remove -flto from common CFLAGS To: Cyril Bur References: <1456727395-27386-1-git-send-email-sjitindarsingh@gmail.com> <20160229111013.71B58140779@ozlabs.org> <20160301141154.1938845e@camb691> Cc: Michael Ellerman , linuxppc-dev@ozlabs.org From: Suraj Jitindar Singh Message-ID: <56D51E99.20604@gmail.com> Date: Tue, 1 Mar 2016 15:46:17 +1100 MIME-Version: 1.0 In-Reply-To: <20160301141154.1938845e@camb691> Content-Type: text/plain; charset=UTF-8 List-Id: Linux on PowerPC Developers Mail List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , On 01/03/16 14:11, Cyril Bur wrote: > On Mon, 29 Feb 2016 22:10:13 +1100 (AEDT) > Michael Ellerman 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 > 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