Re: [Regression] Re: Linux 5.0.2

From: Alan J. Wylie
Date: Thu Mar 14 2019 - 16:43:20 EST



(Adding Linus, since his tree is also broken)

Greg KH <gregkh@xxxxxxxxxxxxxxxxxxx> writes:

> On Thu, Mar 14, 2019 at 07:59:00PM +0000, Alan J. Wylie wrote:
>> Greg KH <gregkh@xxxxxxxxxxxxxxxxxxx> 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@xxxxxxxxxxxxx>
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

--
Alan J. Wylie https://www.wylie.me.uk/

Dance like no-one's watching. / Encrypt like everyone is.
Security is inversely proportional to convenience