Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1623918 > unrolled thread

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

Started bykbuild test robot <fengguang.wu@intel.com>
First post2017-04-14 23:20 +0200
Last post2017-04-17 10:20 +0200
Articles 4 — 3 participants

Back to article view | Back to linux.kernel


Contents

  [tip:x86/cpu 8/12] arch/x86/kernel/cpu/intel_rdt.c:63: error:  unknown field 'cache' specified in initializer kbuild test robot <fengguang.wu@intel.com> - 2017-04-14 23:20 +0200
    Re: [tip:x86/cpu 8/12] arch/x86/kernel/cpu/intel_rdt.c:63: error:  unknown field 'cache' specified in initializer Thomas Gleixner <tglx@linutronix.de> - 2017-04-15 07:50 +0200
      Re: [kbuild-all] [tip:x86/cpu 8/12]  arch/x86/kernel/cpu/intel_rdt.c:63: error: unknown field 'cache' specified  in initializer Fengguang Wu <fengguang.wu@intel.com> - 2017-04-17 04:10 +0200
        Re: [kbuild-all] [tip:x86/cpu 8/12] arch/x86/kernel/cpu/intel_rdt.c:63:  error: unknown field 'cache' specified in initializer Thomas Gleixner <tglx@linutronix.de> - 2017-04-17 10:20 +0200

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

Fromkbuild test robot <fengguang.wu@intel.com>
Date2017-04-14 23:20 +0200
Subject[tip:x86/cpu 8/12] arch/x86/kernel/cpu/intel_rdt.c:63: error: unknown field 'cache' specified in initializer
Message-ID<twgNj-6dk-1@gated-at.bofh.it>

[Multipart message — attachments visible in raw view] — view raw

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 

All error/warnings (new ones prefixed by >>):

>> arch/x86/kernel/cpu/intel_rdt.c:63: error: unknown field 'cache' specified in initializer
>> arch/x86/kernel/cpu/intel_rdt.c:63: warning: braces around scalar initializer
   arch/x86/kernel/cpu/intel_rdt.c:63: warning: (near initialization for 'rdt_resources_all[0].default_ctrl')
>> arch/x86/kernel/cpu/intel_rdt.c:64: error: field name not in record or union initializer
   arch/x86/kernel/cpu/intel_rdt.c:64: error: (near initialization for 'rdt_resources_all[0].default_ctrl')
   arch/x86/kernel/cpu/intel_rdt.c:65: error: field name not in record or union initializer
   arch/x86/kernel/cpu/intel_rdt.c:65: error: (near initialization for 'rdt_resources_all[0].default_ctrl')
>> arch/x86/kernel/cpu/intel_rdt.c:65: warning: excess elements in scalar initializer
   arch/x86/kernel/cpu/intel_rdt.c:65: warning: (near initialization for 'rdt_resources_all[0].default_ctrl')
   arch/x86/kernel/cpu/intel_rdt.c:66: error: field name not in record or union initializer
   arch/x86/kernel/cpu/intel_rdt.c:66: error: (near initialization for 'rdt_resources_all[0].default_ctrl')
   arch/x86/kernel/cpu/intel_rdt.c:66: warning: excess elements in scalar initializer
   arch/x86/kernel/cpu/intel_rdt.c:66: warning: (near initialization for 'rdt_resources_all[0].default_ctrl')
   arch/x86/kernel/cpu/intel_rdt.c:75: error: unknown field 'cache' specified in initializer
   arch/x86/kernel/cpu/intel_rdt.c:75: warning: braces around scalar initializer
   arch/x86/kernel/cpu/intel_rdt.c:75: warning: (near initialization for 'rdt_resources_all[1].default_ctrl')
   arch/x86/kernel/cpu/intel_rdt.c:76: error: field name not in record or union initializer
   arch/x86/kernel/cpu/intel_rdt.c:76: error: (near initialization for 'rdt_resources_all[1].default_ctrl')
   arch/x86/kernel/cpu/intel_rdt.c:77: error: field name not in record or union initializer
   arch/x86/kernel/cpu/intel_rdt.c:77: error: (near initialization for 'rdt_resources_all[1].default_ctrl')
   arch/x86/kernel/cpu/intel_rdt.c:77: warning: excess elements in scalar initializer
   arch/x86/kernel/cpu/intel_rdt.c:77: warning: (near initialization for 'rdt_resources_all[1].default_ctrl')
   arch/x86/kernel/cpu/intel_rdt.c:78: error: field name not in record or union initializer
   arch/x86/kernel/cpu/intel_rdt.c:78: error: (near initialization for 'rdt_resources_all[1].default_ctrl')
   arch/x86/kernel/cpu/intel_rdt.c:78: warning: excess elements in scalar initializer
   arch/x86/kernel/cpu/intel_rdt.c:78: warning: (near initialization for 'rdt_resources_all[1].default_ctrl')
   arch/x86/kernel/cpu/intel_rdt.c:87: error: unknown field 'cache' specified in initializer
   arch/x86/kernel/cpu/intel_rdt.c:87: warning: braces around scalar initializer
   arch/x86/kernel/cpu/intel_rdt.c:87: warning: (near initialization for 'rdt_resources_all[2].default_ctrl')
   arch/x86/kernel/cpu/intel_rdt.c:88: error: field name not in record or union initializer
   arch/x86/kernel/cpu/intel_rdt.c:88: error: (near initialization for 'rdt_resources_all[2].default_ctrl')
   arch/x86/kernel/cpu/intel_rdt.c:89: error: field name not in record or union initializer
   arch/x86/kernel/cpu/intel_rdt.c:89: error: (near initialization for 'rdt_resources_all[2].default_ctrl')
   arch/x86/kernel/cpu/intel_rdt.c:89: warning: excess elements in scalar initializer
   arch/x86/kernel/cpu/intel_rdt.c:89: warning: (near initialization for 'rdt_resources_all[2].default_ctrl')
   arch/x86/kernel/cpu/intel_rdt.c:90: error: field name not in record or union initializer
   arch/x86/kernel/cpu/intel_rdt.c:90: error: (near initialization for 'rdt_resources_all[2].default_ctrl')
   arch/x86/kernel/cpu/intel_rdt.c:90: warning: excess elements in scalar initializer
   arch/x86/kernel/cpu/intel_rdt.c:90: warning: (near initialization for 'rdt_resources_all[2].default_ctrl')
   arch/x86/kernel/cpu/intel_rdt.c:99: error: unknown field 'cache' specified in initializer
   arch/x86/kernel/cpu/intel_rdt.c:99: warning: braces around scalar initializer
   arch/x86/kernel/cpu/intel_rdt.c:99: warning: (near initialization for 'rdt_resources_all[3].default_ctrl')
   arch/x86/kernel/cpu/intel_rdt.c:100: error: field name not in record or union initializer
   arch/x86/kernel/cpu/intel_rdt.c:100: error: (near initialization for 'rdt_resources_all[3].default_ctrl')
   arch/x86/kernel/cpu/intel_rdt.c:101: error: field name not in record or union initializer
   arch/x86/kernel/cpu/intel_rdt.c:101: error: (near initialization for 'rdt_resources_all[3].default_ctrl')
   arch/x86/kernel/cpu/intel_rdt.c:101: warning: excess elements in scalar initializer
   arch/x86/kernel/cpu/intel_rdt.c:101: warning: (near initialization for 'rdt_resources_all[3].default_ctrl')
   arch/x86/kernel/cpu/intel_rdt.c:102: error: field name not in record or union initializer
   arch/x86/kernel/cpu/intel_rdt.c:102: error: (near initialization for 'rdt_resources_all[3].default_ctrl')
   arch/x86/kernel/cpu/intel_rdt.c:102: warning: excess elements in scalar initializer
   arch/x86/kernel/cpu/intel_rdt.c:102: warning: (near initialization for 'rdt_resources_all[3].default_ctrl')

vim +/cache +63 arch/x86/kernel/cpu/intel_rdt.c

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

:::::: TO: Thomas Gleixner <tglx@linutronix.de>
:::::: CC: Thomas Gleixner <tglx@linutronix.de>

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

[toc] | [next] | [standalone]


#1624026

FromThomas Gleixner <tglx@linutronix.de>
Date2017-04-15 07:50 +0200
Message-ID<twoKS-2J8-5@gated-at.bofh.it>
In reply to#1623918
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

[toc] | [prev] | [next] | [standalone]


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

FromFengguang Wu <fengguang.wu@intel.com>
Date2017-04-17 04:10 +0200
SubjectRe: [kbuild-all] [tip:x86/cpu 8/12] arch/x86/kernel/cpu/intel_rdt.c:63: error: unknown field 'cache' specified in initializer
Message-ID<tx4h4-31r-5@gated-at.bofh.it>
In reply to#1624026
On Sat, Apr 15, 2017 at 07:40:34AM +0200, Thomas Gleixner wrote:
>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.

It looks like a problem with gcc 4.4:

        Bug 42875 - gcc disallows named initializers for anonymous unions
        https://gcc.gnu.org/bugzilla/show_bug.cgi?id=42875
        https://gcc.gnu.org/bugzilla/show_bug.cgi?id=10676

        gcc-4.4.3 lets you statically initialize named fields, and
        lets you assign to anonymous union members, but you cannot
        statically initialize a named member of an anonymous union.

Thanks,
Fengguang

[toc] | [prev] | [next] | [standalone]


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

FromThomas Gleixner <tglx@linutronix.de>
Date2017-04-17 10:20 +0200
SubjectRe: [kbuild-all] [tip:x86/cpu 8/12] arch/x86/kernel/cpu/intel_rdt.c:63: error: unknown field 'cache' specified in initializer
Message-ID<txa37-6NZ-7@gated-at.bofh.it>
In reply to#1624508
On Mon, 17 Apr 2017, Fengguang Wu wrote:
> > 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.
> 
> It looks like a problem with gcc 4.4:
> 
>        Bug 42875 - gcc disallows named initializers for anonymous unions
>        https://gcc.gnu.org/bugzilla/show_bug.cgi?id=42875
>        https://gcc.gnu.org/bugzilla/show_bug.cgi?id=10676
> 
>        gcc-4.4.3 lets you statically initialize named fields, and
>        lets you assign to anonymous union members, but you cannot
>        statically initialize a named member of an anonymous union.

Bah. I'll fix it up.

Thanks,

	tglx

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web