(Adding Linus, since his tree is also broken)
Greg KH gregkh@linuxfoundation.org writes:
On Thu, Mar 14, 2019 at 07:59:00PM +0000, Alan J. Wylie wrote:
Greg KH gregkh@linuxfoundation.org writes:
I'm announcing the release of the 5.0.2 kernel.
There is a regression for AMD-only builds.
Adding the stable list, which people should do...
See also Alec Ari's report: https://lkml.org/lkml/2019/3/13/1113
If CONFIG_CPU_SUP_INTEL is disabled with either the 5.0.2 or 4.20.16 kernel, it errors out right away:
$ grep "CONFIG_CPU_SUP_" .config # CONFIG_CPU_SUP_INTEL is not set CONFIG_CPU_SUP_AMD=y # CONFIG_CPU_SUP_HYGON is not set # CONFIG_CPU_SUP_CENTAUR is not set
CC arch/x86/events/core.o In file included from arch/x86/events/core.c:44: arch/x86/events/perf_event.h:1035:45: warning: ‘struct cpu_hw_event’ declared inside parameter list will not be visible outside of this definition or declaration static inline int intel_cpuc_prepare(struct cpu_hw_event *cpuc, int cpu) ^~~~~~~~~~~~ arch/x86/events/perf_event.h:1040:45: warning: ‘struct cpu_hw_event’ declared inside parameter list will not be visible outside of this definition or declaration static inline void intel_cpuc_finish(struct cpu_hw_event *cpuc) ^~~~~~~~~~~~ arch/x86/events/core.c: In function ‘free_fake_cpuc’: arch/x86/events/core.c:1998:20: error: passing argument 1 of ‘intel_cpuc_finish’ from incompatible pointer type [-Werror=incompatible-pointer-types] intel_cpuc_finish(cpuc); ^~~~ In file included from arch/x86/events/core.c:44: arch/x86/events/perf_event.h:1040:59: note: expected ‘struct cpu_hw_event *’ but argument is of type ‘struct cpu_hw_events *’ static inline void intel_cpuc_finish(struct cpu_hw_event *cpuc) ~~~~~~~~~~~~~~~~~~~~~^~~~
arch/x86/events/core.c: In function ‘allocate_fake_cpuc’: arch/x86/events/core.c:2012:25: error: passing argument 1 of ‘intel_cpuc_prepare’ from incompatible pointer type [-Werror=incompatible-pointer-types] if (intel_cpuc_prepare(cpuc, cpu)) ^~~~ In file included from arch/x86/events/core.c:44: arch/x86/events/perf_event.h:1035:59: note: expected ‘struct cpu_hw_event *’ but argument is of type ‘struct cpu_hw_events *’ static inline int intel_cpuc_prepare(struct cpu_hw_event *cpuc, int cpu) ~~~~~~~~~~~~~~~~~~~~~^~~~ cc1: some warnings being treated as errors
Is this a regression?
5.0.1 was fine, git pulled, then "make oldconfig" just answering the default "N"s
If so, what commit caused this?
It looks as if it's
commit 3ad8e57560d7652a66da12b41c668a593509f3ad Author: Peter Zijlstra (Intel) peterz@infradead.org Date: Tue Mar 5 22:23:15 2019 +0100
perf/x86/intel: Make cpuc allocations consistent
The cpuc data structure allocation is different between fake and real cpuc's; use the same code to init/free both.
which is the commit which introduces the function:
+static inline int intel_cpuc_prepare(struct cpu_hw_event *cpuc, int cpu)
Is this also an issue in Linus's tree right now?
Yes, as of 3b319ee220a8795406852a897299dbdfc1b09911
CC arch/x86/entry/common.o arch/x86/events/core.c: In function ‘free_fake_cpuc’: arch/x86/events/core.c:1998:20: error: passing argument 1 of ‘intel_cpuc_finish’ from incompatible pointer type [-Werror=incompatible-pointer-types] intel_cpuc_finish(cpuc); ^~~~ Thanks Alan