Web lists-archives.com

Re: [Regression] Re: Linux 5.0.2




(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