tree: https://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux.git rdt-cat-resplit head: b36aa08060202efe83f26fb51184abd8b4687b6a commit: be1745ec0c2601cc11ca01a8e8c97288ac15689f [8/14] x86/intel_rdt: Add basic resctrl filesystem support config: x86_64-randconfig-r0-10021517 (attached as .config) compiler: gcc-6 (Debian 6.2.0-3) 6.2.0 20160901 reproduce: git checkout be1745ec0c2601cc11ca01a8e8c97288ac15689f # 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_rdtgroup.c:33:1: warning: data definition has no type or storage class DEFINE_STATIC_KEY_FALSE(rdt_enable_key); ^~~~~~~~~~~~~~~~~~~~~~~ >> arch/x86/kernel/cpu/intel_rdt_rdtgroup.c:33:1: error: type defaults to 'int' in declaration of 'DEFINE_STATIC_KEY_FALSE' [-Werror=implicit-int] >> arch/x86/kernel/cpu/intel_rdt_rdtgroup.c:33:1: warning: parameter names (without types) in function declaration arch/x86/kernel/cpu/intel_rdt_rdtgroup.c: In function 'rdt_mount': >> arch/x86/kernel/cpu/intel_rdt_rdtgroup.c:84:6: error: implicit declaration of function 'static_branch_unlikely' [-Werror=implicit-function-declaration] if (static_branch_unlikely(&rdt_enable_key)) { ^~~~~~~~~~~~~~~~~~~~~~ >> arch/x86/kernel/cpu/intel_rdt_rdtgroup.c:111:2: error: implicit declaration of function 'static_branch_enable' [-Werror=implicit-function-declaration] static_branch_enable(&rdt_enable_key); ^~~~~~~~~~~~~~~~~~~~ arch/x86/kernel/cpu/intel_rdt_rdtgroup.c: In function 'rdt_kill_sb': >> arch/x86/kernel/cpu/intel_rdt_rdtgroup.c:122:2: error: implicit declaration of function 'static_branch_disable' [-Werror=implicit-function-declaration] static_branch_disable(&rdt_enable_key); ^~~~~~~~~~~~~~~~~~~~~ cc1: some warnings being treated as errors vim +33 arch/x86/kernel/cpu/intel_rdt_rdtgroup.c 27 28 #include <uapi/linux/magic.h> 29 30 #include <asm/intel_rdt.h> 31 32 DEFINE_MUTEX(rdtgroup_mutex); > 33 DEFINE_STATIC_KEY_FALSE(rdt_enable_key); 34 struct kernfs_root *rdt_root; 35 struct rdtgroup *rdtgroups_all; 36 struct rdtgroup *rdtgroup_default; 37 38 static struct rdtgroup *rdtgroup_alloc(void) 39 { 40 int i; 41 42 for (i = 0; i < rdt_max_closid; i++) { 43 if (!(rdtgroups_all[i].flags & RDT_INUSE)) { 44 rdtgroups_all[i].flags = RDT_INUSE; 45 return &rdtgroups_all[i]; 46 } 47 } 48 return NULL; 49 } 50 51 static int parse_rdtgroupfs_options(char *data) 52 { 53 char *token, *o = data; 54 55 while ((token = strsep(&o, ",")) != NULL) { 56 if (!*token) 57 return -EINVAL; 58 59 if (!strcmp(token, "cdp")) { 60 struct cpuinfo_x86 *c = &boot_cpu_data; 61 62 if (!cpu_has(c, X86_FEATURE_CDP_L3)) 63 return -EINVAL; 64 rdt_resources_all[RDT_RESOURCE_L3].cdp_enabled = true; 65 } 66 } 67 68 return 0; 69 } 70 71 static struct dentry *rdt_mount(struct file_system_type *fs_type, 72 int flags, const char *unused_dev_name, 73 void *data) 74 { 75 struct dentry *dentry; 76 int ret; 77 bool new_sb; 78 struct rdt_resource *r = &rdt_resources_all[RDT_RESOURCE_L3]; 79 80 mutex_lock(&rdtgroup_mutex); 81 /* 82 * resctrl file system can only be mounted once. 83 */ > 84 if (static_branch_unlikely(&rdt_enable_key)) { 85 dentry = ERR_PTR(-EBUSY); 86 goto out; 87 } 88 89 r->cdp_enabled = false; 90 ret = parse_rdtgroupfs_options(data); 91 if (ret) { 92 dentry = ERR_PTR(ret); 93 goto out; 94 } 95 if (r->cdp_enabled) 96 r->num_closid = r->max_closid / 2; 97 else 98 r->num_closid = r->max_closid; 99 rdt_max_closid = 0; 100 for_each_rdt_resource(r) 101 rdt_max_closid = max(rdt_max_closid, r->max_closid); 102 103 dentry = kernfs_mount(fs_type, flags, rdt_root, 104 RDTGROUP_SUPER_MAGIC, &new_sb); 105 if (IS_ERR(dentry)) 106 goto out; 107 if (!new_sb) { 108 dentry = ERR_PTR(-EINVAL); 109 goto out; 110 } > 111 static_branch_enable(&rdt_enable_key); 112 113 out: 114 mutex_unlock(&rdtgroup_mutex); 115 116 return dentry; 117 } 118 119 static void rdt_kill_sb(struct super_block *sb) 120 { 121 mutex_lock(&rdtgroup_mutex); > 122 static_branch_disable(&rdt_enable_key); 123 kernfs_kill_sb(sb); 124 mutex_unlock(&rdtgroup_mutex); 125 } --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation
Attachment:
.config.gz
Description: application/gzip
![]() |