Hi Dmitry, I love your patch! Yet something to improve: [auto build test ERROR on net-next/master] url: https://github.com/0day-ci/linux/commits/Tyler-Hicks/Make-sys-class-net-per-net-namespace-objects-belong-to-container/20180716-020459 config: x86_64-randconfig-u0-07161309 (attached as .config) compiler: gcc-5 (Debian 5.5.0-3) 5.4.1 20171010 reproduce: # save the attached .config to linux build tree make ARCH=x86_64 :::::: branch date: 13 hours ago :::::: commit date: 13 hours ago All errors (new ones prefixed by >>): arch/x86/kernel/cpu/intel_rdt_rdtgroup.c: In function 'rdtgroup_add_file': >> arch/x86/kernel/cpu/intel_rdt_rdtgroup.c:149:7: error: incompatible type for argument 4 of '__kernfs_create_file' 0, rft->kf_ops, rft, NULL, NULL); ^ In file included from include/linux/sysfs.h:16:0, from include/linux/kobject.h:20, from include/linux/device.h:16, from include/linux/node.h:18, from include/linux/cpu.h:17, from arch/x86/kernel/cpu/intel_rdt_rdtgroup.c:23: include/linux/kernfs.h:333:21: note: expected 'kuid_t {aka struct <anonymous>}' but argument is of type 'int' struct kernfs_node *__kernfs_create_file(struct kernfs_node *parent, ^ arch/x86/kernel/cpu/intel_rdt_rdtgroup.c:149:10: error: incompatible type for argument 5 of '__kernfs_create_file' 0, rft->kf_ops, rft, NULL, NULL); ^ In file included from include/linux/sysfs.h:16:0, from include/linux/kobject.h:20, from include/linux/device.h:16, from include/linux/node.h:18, from include/linux/cpu.h:17, from arch/x86/kernel/cpu/intel_rdt_rdtgroup.c:23: include/linux/kernfs.h:333:21: note: expected 'kgid_t {aka struct <anonymous>}' but argument is of type 'struct kernfs_ops *' struct kernfs_node *__kernfs_create_file(struct kernfs_node *parent, ^ arch/x86/kernel/cpu/intel_rdt_rdtgroup.c:149:23: warning: passing argument 6 of '__kernfs_create_file' makes integer from pointer without a cast [-Wint-conversion] 0, rft->kf_ops, rft, NULL, NULL); ^ In file included from include/linux/sysfs.h:16:0, from include/linux/kobject.h:20, from include/linux/device.h:16, from include/linux/node.h:18, from include/linux/cpu.h:17, from arch/x86/kernel/cpu/intel_rdt_rdtgroup.c:23: include/linux/kernfs.h:333:21: note: expected 'loff_t {aka long long int}' but argument is of type 'struct rftype *' struct kernfs_node *__kernfs_create_file(struct kernfs_node *parent, ^ >> arch/x86/kernel/cpu/intel_rdt_rdtgroup.c:148:7: error: too few arguments to function '__kernfs_create_file' kn = __kernfs_create_file(parent_kn, rft->name, rft->mode, ^ In file included from include/linux/sysfs.h:16:0, from include/linux/kobject.h:20, from include/linux/device.h:16, from include/linux/node.h:18, from include/linux/cpu.h:17, from arch/x86/kernel/cpu/intel_rdt_rdtgroup.c:23: include/linux/kernfs.h:333:21: note: declared here struct kernfs_node *__kernfs_create_file(struct kernfs_node *parent, ^ arch/x86/kernel/cpu/intel_rdt_rdtgroup.c: In function 'mon_addfile': arch/x86/kernel/cpu/intel_rdt_rdtgroup.c:1506:51: error: incompatible type for argument 4 of '__kernfs_create_file' kn = __kernfs_create_file(parent_kn, name, 0444, 0, ^ In file included from include/linux/sysfs.h:16:0, from include/linux/kobject.h:20, from include/linux/device.h:16, from include/linux/node.h:18, from include/linux/cpu.h:17, from arch/x86/kernel/cpu/intel_rdt_rdtgroup.c:23: include/linux/kernfs.h:333:21: note: expected 'kuid_t {aka struct <anonymous>}' but argument is of type 'int' struct kernfs_node *__kernfs_create_file(struct kernfs_node *parent, ^ arch/x86/kernel/cpu/intel_rdt_rdtgroup.c:1507:7: error: incompatible type for argument 5 of '__kernfs_create_file' &kf_mondata_ops, priv, NULL, NULL); ^ In file included from include/linux/sysfs.h:16:0, from include/linux/kobject.h:20, from include/linux/device.h:16, from include/linux/node.h:18, from include/linux/cpu.h:17, from arch/x86/kernel/cpu/intel_rdt_rdtgroup.c:23: include/linux/kernfs.h:333:21: note: expected 'kgid_t {aka struct <anonymous>}' but argument is of type 'struct kernfs_ops *' struct kernfs_node *__kernfs_create_file(struct kernfs_node *parent, ^ arch/x86/kernel/cpu/intel_rdt_rdtgroup.c:1507:24: warning: passing argument 6 of '__kernfs_create_file' makes integer from pointer without a cast [-Wint-conversion] &kf_mondata_ops, priv, NULL, NULL); ^ In file included from include/linux/sysfs.h:16:0, from include/linux/kobject.h:20, from include/linux/device.h:16, from include/linux/node.h:18, from include/linux/cpu.h:17, from arch/x86/kernel/cpu/intel_rdt_rdtgroup.c:23: include/linux/kernfs.h:333:21: note: expected 'loff_t {aka long long int}' but argument is of type 'void *' struct kernfs_node *__kernfs_create_file(struct kernfs_node *parent, ^ arch/x86/kernel/cpu/intel_rdt_rdtgroup.c:1506:7: error: too few arguments to function '__kernfs_create_file' kn = __kernfs_create_file(parent_kn, name, 0444, 0, ^ In file included from include/linux/sysfs.h:16:0, from include/linux/kobject.h:20, from include/linux/device.h:16, from include/linux/node.h:18, from include/linux/cpu.h:17, from arch/x86/kernel/cpu/intel_rdt_rdtgroup.c:23: include/linux/kernfs.h:333:21: note: declared here struct kernfs_node *__kernfs_create_file(struct kernfs_node *parent, ^ # https://github.com/0day-ci/linux/commit/d5f7e84e70937f0546d774162a3f9425caec5687 git remote add linux-review https://github.com/0day-ci/linux git remote update linux-review git checkout d5f7e84e70937f0546d774162a3f9425caec5687 vim +/__kernfs_create_file +149 arch/x86/kernel/cpu/intel_rdt_rdtgroup.c 5ff193fb Fenghua Yu 2016-10-28 22 12e0110c Tony Luck 2016-10-28 @23 #include <linux/cpu.h> 5ff193fb Fenghua Yu 2016-10-28 24 #include <linux/fs.h> 5ff193fb Fenghua Yu 2016-10-28 25 #include <linux/sysfs.h> 5ff193fb Fenghua Yu 2016-10-28 26 #include <linux/kernfs.h> 9b3a7fd0 Tony Luck 2017-09-25 27 #include <linux/seq_buf.h> 4e978d06 Fenghua Yu 2016-10-28 28 #include <linux/seq_file.h> 3f07c014 Ingo Molnar 2017-02-08 29 #include <linux/sched/signal.h> 29930025 Ingo Molnar 2017-02-08 30 #include <linux/sched/task.h> 5ff193fb Fenghua Yu 2016-10-28 31 #include <linux/slab.h> e02737d5 Fenghua Yu 2016-10-28 32 #include <linux/task_work.h> 5ff193fb Fenghua Yu 2016-10-28 33 5ff193fb Fenghua Yu 2016-10-28 34 #include <uapi/linux/magic.h> 5ff193fb Fenghua Yu 2016-10-28 35 05830204 Vikas Shivappa 2017-07-25 36 #include <asm/intel_rdt_sched.h> 05830204 Vikas Shivappa 2017-07-25 37 #include "intel_rdt.h" 5ff193fb Fenghua Yu 2016-10-28 38 4af4a88e Vikas Shivappa 2017-07-25 39 DEFINE_STATIC_KEY_FALSE(rdt_enable_key); 4af4a88e Vikas Shivappa 2017-07-25 40 DEFINE_STATIC_KEY_FALSE(rdt_mon_enable_key); 1b5c0b75 Vikas Shivappa 2017-07-25 41 DEFINE_STATIC_KEY_FALSE(rdt_alloc_enable_key); cb2200e9 Reinette Chatre 2017-07-25 42 static struct kernfs_root *rdt_root; 5ff193fb Fenghua Yu 2016-10-28 43 struct rdtgroup rdtgroup_default; 5ff193fb Fenghua Yu 2016-10-28 44 LIST_HEAD(rdt_all_groups); 5ff193fb Fenghua Yu 2016-10-28 45 4e978d06 Fenghua Yu 2016-10-28 46 /* Kernel fs node for "info" directory under root */ 4e978d06 Fenghua Yu 2016-10-28 47 static struct kernfs_node *kn_info; 4e978d06 Fenghua Yu 2016-10-28 48 4af4a88e Vikas Shivappa 2017-07-25 49 /* Kernel fs node for "mon_groups" directory under root */ 4af4a88e Vikas Shivappa 2017-07-25 50 static struct kernfs_node *kn_mongrp; 4af4a88e Vikas Shivappa 2017-07-25 51 4af4a88e Vikas Shivappa 2017-07-25 52 /* Kernel fs node for "mon_data" directory under root */ 4af4a88e Vikas Shivappa 2017-07-25 53 static struct kernfs_node *kn_mondata; 4af4a88e Vikas Shivappa 2017-07-25 54 9b3a7fd0 Tony Luck 2017-09-25 55 static struct seq_buf last_cmd_status; 9b3a7fd0 Tony Luck 2017-09-25 56 static char last_cmd_status_buf[512]; 9b3a7fd0 Tony Luck 2017-09-25 57 9b3a7fd0 Tony Luck 2017-09-25 58 void rdt_last_cmd_clear(void) 9b3a7fd0 Tony Luck 2017-09-25 59 { 9b3a7fd0 Tony Luck 2017-09-25 60 lockdep_assert_held(&rdtgroup_mutex); 9b3a7fd0 Tony Luck 2017-09-25 61 seq_buf_clear(&last_cmd_status); 9b3a7fd0 Tony Luck 2017-09-25 62 } 9b3a7fd0 Tony Luck 2017-09-25 63 9b3a7fd0 Tony Luck 2017-09-25 64 void rdt_last_cmd_puts(const char *s) 9b3a7fd0 Tony Luck 2017-09-25 65 { 9b3a7fd0 Tony Luck 2017-09-25 66 lockdep_assert_held(&rdtgroup_mutex); 9b3a7fd0 Tony Luck 2017-09-25 67 seq_buf_puts(&last_cmd_status, s); 9b3a7fd0 Tony Luck 2017-09-25 68 } 9b3a7fd0 Tony Luck 2017-09-25 69 9b3a7fd0 Tony Luck 2017-09-25 70 void rdt_last_cmd_printf(const char *fmt, ...) 9b3a7fd0 Tony Luck 2017-09-25 71 { 9b3a7fd0 Tony Luck 2017-09-25 72 va_list ap; 9b3a7fd0 Tony Luck 2017-09-25 73 9b3a7fd0 Tony Luck 2017-09-25 74 va_start(ap, fmt); 9b3a7fd0 Tony Luck 2017-09-25 75 lockdep_assert_held(&rdtgroup_mutex); 9b3a7fd0 Tony Luck 2017-09-25 76 seq_buf_vprintf(&last_cmd_status, fmt, ap); 9b3a7fd0 Tony Luck 2017-09-25 77 va_end(ap); 9b3a7fd0 Tony Luck 2017-09-25 78 } 9b3a7fd0 Tony Luck 2017-09-25 79 60cf5e10 Fenghua Yu 2016-10-28 80 /* 60cf5e10 Fenghua Yu 2016-10-28 81 * Trivial allocator for CLOSIDs. Since h/w only supports a small number, 60cf5e10 Fenghua Yu 2016-10-28 82 * we can keep a bitmap of free CLOSIDs in a single integer. 60cf5e10 Fenghua Yu 2016-10-28 83 * 60cf5e10 Fenghua Yu 2016-10-28 84 * Using a global CLOSID across all resources has some advantages and 60cf5e10 Fenghua Yu 2016-10-28 85 * some drawbacks: 60cf5e10 Fenghua Yu 2016-10-28 86 * + We can simply set "current->closid" to assign a task to a resource 60cf5e10 Fenghua Yu 2016-10-28 87 * group. 60cf5e10 Fenghua Yu 2016-10-28 88 * + Context switch code can avoid extra memory references deciding which 60cf5e10 Fenghua Yu 2016-10-28 89 * CLOSID to load into the PQR_ASSOC MSR 60cf5e10 Fenghua Yu 2016-10-28 90 * - We give up some options in configuring resource groups across multi-socket 60cf5e10 Fenghua Yu 2016-10-28 91 * systems. 60cf5e10 Fenghua Yu 2016-10-28 92 * - Our choices on how to configure each resource become progressively more 60cf5e10 Fenghua Yu 2016-10-28 93 * limited as the number of resources grows. 60cf5e10 Fenghua Yu 2016-10-28 94 */ 60cf5e10 Fenghua Yu 2016-10-28 95 static int closid_free_map; 60cf5e10 Fenghua Yu 2016-10-28 96 60cf5e10 Fenghua Yu 2016-10-28 97 static void closid_init(void) 60cf5e10 Fenghua Yu 2016-10-28 98 { 60cf5e10 Fenghua Yu 2016-10-28 99 struct rdt_resource *r; 60cf5e10 Fenghua Yu 2016-10-28 100 int rdt_min_closid = 32; 60cf5e10 Fenghua Yu 2016-10-28 101 60cf5e10 Fenghua Yu 2016-10-28 102 /* Compute rdt_min_closid across all resources */ 1b5c0b75 Vikas Shivappa 2017-07-25 103 for_each_alloc_enabled_rdt_resource(r) 60cf5e10 Fenghua Yu 2016-10-28 104 rdt_min_closid = min(rdt_min_closid, r->num_closid); 60cf5e10 Fenghua Yu 2016-10-28 105 60cf5e10 Fenghua Yu 2016-10-28 106 closid_free_map = BIT_MASK(rdt_min_closid) - 1; 60cf5e10 Fenghua Yu 2016-10-28 107 60cf5e10 Fenghua Yu 2016-10-28 108 /* CLOSID 0 is always reserved for the default group */ 60cf5e10 Fenghua Yu 2016-10-28 109 closid_free_map &= ~1; 60cf5e10 Fenghua Yu 2016-10-28 110 } 60cf5e10 Fenghua Yu 2016-10-28 111 cb2200e9 Reinette Chatre 2017-07-25 112 static int closid_alloc(void) 60cf5e10 Fenghua Yu 2016-10-28 113 { 0734ded1 Vikas Shivappa 2017-07-25 114 u32 closid = ffs(closid_free_map); 60cf5e10 Fenghua Yu 2016-10-28 115 60cf5e10 Fenghua Yu 2016-10-28 116 if (closid == 0) 60cf5e10 Fenghua Yu 2016-10-28 117 return -ENOSPC; 60cf5e10 Fenghua Yu 2016-10-28 118 closid--; 60cf5e10 Fenghua Yu 2016-10-28 119 closid_free_map &= ~(1 << closid); 60cf5e10 Fenghua Yu 2016-10-28 120 60cf5e10 Fenghua Yu 2016-10-28 121 return closid; 60cf5e10 Fenghua Yu 2016-10-28 122 } 60cf5e10 Fenghua Yu 2016-10-28 123 60cf5e10 Fenghua Yu 2016-10-28 124 static void closid_free(int closid) 60cf5e10 Fenghua Yu 2016-10-28 125 { 60cf5e10 Fenghua Yu 2016-10-28 126 closid_free_map |= 1 << closid; 60cf5e10 Fenghua Yu 2016-10-28 127 } 60cf5e10 Fenghua Yu 2016-10-28 128 4e978d06 Fenghua Yu 2016-10-28 129 /* set uid and gid of rdtgroup dirs and files to that of the creator */ 4e978d06 Fenghua Yu 2016-10-28 130 static int rdtgroup_kn_set_ugid(struct kernfs_node *kn) 4e978d06 Fenghua Yu 2016-10-28 131 { 4e978d06 Fenghua Yu 2016-10-28 132 struct iattr iattr = { .ia_valid = ATTR_UID | ATTR_GID, 4e978d06 Fenghua Yu 2016-10-28 133 .ia_uid = current_fsuid(), 4e978d06 Fenghua Yu 2016-10-28 134 .ia_gid = current_fsgid(), }; 4e978d06 Fenghua Yu 2016-10-28 135 4e978d06 Fenghua Yu 2016-10-28 136 if (uid_eq(iattr.ia_uid, GLOBAL_ROOT_UID) && 4e978d06 Fenghua Yu 2016-10-28 137 gid_eq(iattr.ia_gid, GLOBAL_ROOT_GID)) 4e978d06 Fenghua Yu 2016-10-28 138 return 0; 4e978d06 Fenghua Yu 2016-10-28 139 4e978d06 Fenghua Yu 2016-10-28 140 return kernfs_setattr(kn, &iattr); 4e978d06 Fenghua Yu 2016-10-28 141 } 4e978d06 Fenghua Yu 2016-10-28 142 4e978d06 Fenghua Yu 2016-10-28 143 static int rdtgroup_add_file(struct kernfs_node *parent_kn, struct rftype *rft) 4e978d06 Fenghua Yu 2016-10-28 144 { 4e978d06 Fenghua Yu 2016-10-28 145 struct kernfs_node *kn; 4e978d06 Fenghua Yu 2016-10-28 146 int ret; 4e978d06 Fenghua Yu 2016-10-28 147 4e978d06 Fenghua Yu 2016-10-28 @148 kn = __kernfs_create_file(parent_kn, rft->name, rft->mode, 4e978d06 Fenghua Yu 2016-10-28 @149 0, rft->kf_ops, rft, NULL, NULL); 4e978d06 Fenghua Yu 2016-10-28 150 if (IS_ERR(kn)) 4e978d06 Fenghua Yu 2016-10-28 151 return PTR_ERR(kn); 4e978d06 Fenghua Yu 2016-10-28 152 4e978d06 Fenghua Yu 2016-10-28 153 ret = rdtgroup_kn_set_ugid(kn); 4e978d06 Fenghua Yu 2016-10-28 154 if (ret) { 4e978d06 Fenghua Yu 2016-10-28 155 kernfs_remove(kn); 4e978d06 Fenghua Yu 2016-10-28 156 return ret; 4e978d06 Fenghua Yu 2016-10-28 157 } 4e978d06 Fenghua Yu 2016-10-28 158 4e978d06 Fenghua Yu 2016-10-28 159 return 0; 4e978d06 Fenghua Yu 2016-10-28 160 } 4e978d06 Fenghua Yu 2016-10-28 161 :::::: The code at line 149 was first introduced by commit :::::: 4e978d06dedb8207b298a5a8a49fce4b2ab80d12 x86/intel_rdt: Add "info" files to resctrl file system :::::: TO: Fenghua Yu <fenghua.yu@xxxxxxxxx> :::::: CC: Thomas Gleixner <tglx@xxxxxxxxxxxxx> --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation
Attachment:
.config.gz
Description: application/gzip
_______________________________________________ Containers mailing list Containers@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linuxfoundation.org/mailman/listinfo/containers