Re: [tip:x86/cpu 8/12] arch/x86/kernel/cpu/intel_rdt.c:63: error: unknown field 'cache' specified in initializer

From: Thomas Gleixner
Date: Sat Apr 15 2017 - 01:41:11 EST


On Sat, 15 Apr 2017, kbuild test robot wrote:

> tree: https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git x86/cpu
> head: 64e8ed3d4a6dcd6139a869a3e760e625cb0d3022
> commit: 05b93417ce5b924c6652de19fdcc27439ab37c90 [8/12] x86/intel_rdt/mba: Add primary support for Memory Bandwidth Allocation (MBA)
> config: x86_64-randconfig-s0-04150438 (attached as .config)
> compiler: gcc-4.4 (Debian 4.4.7-8) 4.4.7
> reproduce:
> git checkout 05b93417ce5b924c6652de19fdcc27439ab37c90
> # save the attached .config to linux build tree
> make ARCH=x86_64

That's weird.

> c1c7c3f9 Fenghua Yu 2016-10-22 57 {
> c1c7c3f9 Fenghua Yu 2016-10-22 58 .name = "L3",
> c1c7c3f9 Fenghua Yu 2016-10-22 59 .domains = domain_init(RDT_RESOURCE_L3),
> c1c7c3f9 Fenghua Yu 2016-10-22 60 .msr_base = IA32_L3_CBM_BASE,
> 0921c547 Thomas Gleixner 2017-04-14 61 .msr_update = cat_wrmsr,
> c1c7c3f9 Fenghua Yu 2016-10-22 62 .cache_level = 3,
> d3e11b4d Thomas Gleixner 2017-04-14 @63 .cache = {
> d3e11b4d Thomas Gleixner 2017-04-14 @64 .min_cbm_bits = 1,
> d3e11b4d Thomas Gleixner 2017-04-14 @65 .cbm_idx_mult = 1,
> d3e11b4d Thomas Gleixner 2017-04-14 66 .cbm_idx_offset = 0,
> d3e11b4d Thomas Gleixner 2017-04-14 67 },
> c1c7c3f9 Fenghua Yu 2016-10-22 68 },
>
> :::::: The code at line 63 was first introduced by commit
> :::::: d3e11b4d6ffd363747ac6e6b5522baa9ca5a20c0 x86/intel_rdt: Move CBM specific data into a struct
>

So the compiler fails to handle the anon union, which was introduced in
05b93417ce5b924. No idea why, but that concept is not new and widely used
in the kernel already.

Thanks,

tglx