From: kernel test robot <lkp@intel.com> To: Iouri Tarassov <iourit@linux.microsoft.com>, kys@microsoft.com, haiyangz@microsoft.com, sthemmin@microsoft.com, wei.liu@kernel.org, linux-hyperv@vger.kernel.org Cc: llvm@lists.linux.dev, kbuild-all@lists.01.org, linux-kernel@vger.kernel.org, spronovo@microsoft.com, gregkh@linuxfoundation.org Subject: Re: [PATCH v1 2/9] drivers: hv: dxgkrnl: Open device object, adapter enumeration, dxgdevice, dxgcontext creation Date: Thu, 13 Jan 2022 15:44:11 +0800 [thread overview] Message-ID: <202201131549.w952i85x-lkp@intel.com> (raw) In-Reply-To: <79cf6932161dd52c226c9f7a729b5b3a0a217fc3.1641937419.git.iourit@linux.microsoft.com> Hi Iouri, I love your patch! Perhaps something to improve: [auto build test WARNING on linus/master] [also build test WARNING on v5.16 next-20220113] [If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use '--base' as documented in https://git-scm.com/docs/git-format-patch] url: https://github.com/0day-ci/linux/commits/Iouri-Tarassov/drivers-hv-dxgkrnl-Driver-overview/20220113-035836 base: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git e3084ed48fd6b661fe434da0cb36d7d6706cf27f config: arm64-randconfig-r032-20220113 (https://download.01.org/0day-ci/archive/20220113/202201131549.w952i85x-lkp@intel.com/config) compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project d1021978b8e7e35dcc30201ca1731d64b5a602a8) reproduce (this is a W=1 build): wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # install arm64 cross compiling tool for clang build # apt-get install binutils-aarch64-linux-gnu # https://github.com/0day-ci/linux/commit/91a8d0866d1c0efc52ca8e1cb504e0ec15c979e2 git remote add linux-review https://github.com/0day-ci/linux git fetch --no-tags linux-review Iouri-Tarassov/drivers-hv-dxgkrnl-Driver-overview/20220113-035836 git checkout 91a8d0866d1c0efc52ca8e1cb504e0ec15c979e2 # save the config file to linux build tree mkdir build_dir COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=arm64 SHELL=/bin/bash drivers/hv/dxgkrnl/ If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <lkp@intel.com> All warnings (new ones prefixed by >>): >> drivers/hv/dxgkrnl/hmgr.c:85:5: warning: no previous prototype for function 'get_instance' [-Wmissing-prototypes] u32 get_instance(struct d3dkmthandle h) ^ drivers/hv/dxgkrnl/hmgr.c:85:1: note: declare 'static' if the function is not intended to be used outside of this translation unit u32 get_instance(struct d3dkmthandle h) ^ static >> drivers/hv/dxgkrnl/hmgr.c:172:6: warning: no previous prototype for function 'print_status' [-Wmissing-prototypes] void print_status(struct hmgrtable *table) ^ drivers/hv/dxgkrnl/hmgr.c:172:1: note: declare 'static' if the function is not intended to be used outside of this translation unit void print_status(struct hmgrtable *table) ^ static >> drivers/hv/dxgkrnl/hmgr.c:551:21: warning: no previous prototype for function 'hmgrtable_get_entry_type' [-Wmissing-prototypes] enum hmgrentry_type hmgrtable_get_entry_type(struct hmgrtable *table, ^ drivers/hv/dxgkrnl/hmgr.c:551:1: note: declare 'static' if the function is not intended to be used outside of this translation unit enum hmgrentry_type hmgrtable_get_entry_type(struct hmgrtable *table, ^ static drivers/hv/dxgkrnl/hmgr.c:167:20: warning: unused function 'is_empty' [-Wunused-function] static inline bool is_empty(struct hmgrtable *table) ^ 4 warnings generated. -- >> drivers/hv/dxgkrnl/dxgadapter.c:261:6: warning: no previous prototype for function 'dxgdevice_mark_destroyed' [-Wmissing-prototypes] void dxgdevice_mark_destroyed(struct dxgdevice *device) ^ drivers/hv/dxgkrnl/dxgadapter.c:261:1: note: declare 'static' if the function is not intended to be used outside of this translation unit void dxgdevice_mark_destroyed(struct dxgdevice *device) ^ static 1 warning generated. vim +/get_instance +85 drivers/hv/dxgkrnl/hmgr.c 84 > 85 u32 get_instance(struct d3dkmthandle h) 86 { 87 return (h.v & HMGRHANDLE_INSTANCE_MASK) >> HMGRHANDLE_INSTANCE_SHIFT; 88 } 89 90 static bool is_handle_valid(struct hmgrtable *table, struct d3dkmthandle h, 91 bool ignore_destroyed, enum hmgrentry_type t) 92 { 93 u32 index = get_index(h); 94 u32 unique = get_unique(h); 95 struct hmgrentry *entry; 96 97 if (index >= table->table_size) { 98 pr_err("%s Invalid index %x %d\n", __func__, h.v, index); 99 return false; 100 } 101 102 entry = &table->entry_table[index]; 103 if (unique != entry->unique) { 104 pr_err("%s Invalid unique %x %d %d %d %p", 105 __func__, h.v, unique, entry->unique, 106 index, entry->object); 107 return false; 108 } 109 110 if (entry->destroyed && !ignore_destroyed) { 111 pr_err("%s Invalid destroyed", __func__); 112 return false; 113 } 114 115 if (entry->type == HMGRENTRY_TYPE_FREE) { 116 pr_err("%s Entry is freed %x %d", __func__, h.v, index); 117 return false; 118 } 119 120 if (t != HMGRENTRY_TYPE_FREE && t != entry->type) { 121 pr_err("%s type mismatch %x %d %d", __func__, h.v, 122 t, entry->type); 123 return false; 124 } 125 126 return true; 127 } 128 129 static struct d3dkmthandle build_handle(u32 index, u32 unique, u32 instance) 130 { 131 struct d3dkmthandle handle; 132 133 handle.v = (index << HMGRHANDLE_INDEX_SHIFT) & HMGRHANDLE_INDEX_MASK; 134 handle.v |= (unique << HMGRHANDLE_UNIQUE_SHIFT) & 135 HMGRHANDLE_UNIQUE_MASK; 136 handle.v |= (instance << HMGRHANDLE_INSTANCE_SHIFT) & 137 HMGRHANDLE_INSTANCE_MASK; 138 139 return handle; 140 } 141 142 inline u32 hmgrtable_get_used_entry_count(struct hmgrtable *table) 143 { 144 DXGKRNL_ASSERT(table->table_size >= table->free_count); 145 return (table->table_size - table->free_count); 146 } 147 148 bool hmgrtable_mark_destroyed(struct hmgrtable *table, struct d3dkmthandle h) 149 { 150 if (!is_handle_valid(table, h, false, HMGRENTRY_TYPE_FREE)) 151 return false; 152 153 table->entry_table[get_index(h)].destroyed = true; 154 return true; 155 } 156 157 bool hmgrtable_unmark_destroyed(struct hmgrtable *table, struct d3dkmthandle h) 158 { 159 if (!is_handle_valid(table, h, true, HMGRENTRY_TYPE_FREE)) 160 return true; 161 162 DXGKRNL_ASSERT(table->entry_table[get_index(h)].destroyed); 163 table->entry_table[get_index(h)].destroyed = 0; 164 return true; 165 } 166 167 static inline bool is_empty(struct hmgrtable *table) 168 { 169 return (table->free_count == table->table_size); 170 } 171 > 172 void print_status(struct hmgrtable *table) 173 { 174 int i; 175 176 dev_dbg(dxgglobaldev, "hmgrtable head, tail %p %d %d\n", 177 table, table->free_handle_list_head, 178 table->free_handle_list_tail); 179 if (table->entry_table == NULL) 180 return; 181 for (i = 0; i < 3; i++) { 182 if (table->entry_table[i].type != HMGRENTRY_TYPE_FREE) 183 dev_dbg(dxgglobaldev, "hmgrtable entry %p %d %p\n", 184 table, i, table->entry_table[i].object); 185 else 186 dev_dbg(dxgglobaldev, "hmgrtable entry %p %d %d %d\n", 187 table, i, 188 table->entry_table[i].next_free_index, 189 table->entry_table[i].prev_free_index); 190 } 191 } 192 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
WARNING: multiple messages have this Message-ID (diff)
From: kernel test robot <lkp@intel.com> To: kbuild-all@lists.01.org Subject: Re: [PATCH v1 2/9] drivers: hv: dxgkrnl: Open device object, adapter enumeration, dxgdevice, dxgcontext creation Date: Thu, 13 Jan 2022 15:44:11 +0800 [thread overview] Message-ID: <202201131549.w952i85x-lkp@intel.com> (raw) In-Reply-To: <79cf6932161dd52c226c9f7a729b5b3a0a217fc3.1641937419.git.iourit@linux.microsoft.com> [-- Attachment #1: Type: text/plain, Size: 7555 bytes --] Hi Iouri, I love your patch! Perhaps something to improve: [auto build test WARNING on linus/master] [also build test WARNING on v5.16 next-20220113] [If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use '--base' as documented in https://git-scm.com/docs/git-format-patch] url: https://github.com/0day-ci/linux/commits/Iouri-Tarassov/drivers-hv-dxgkrnl-Driver-overview/20220113-035836 base: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git e3084ed48fd6b661fe434da0cb36d7d6706cf27f config: arm64-randconfig-r032-20220113 (https://download.01.org/0day-ci/archive/20220113/202201131549.w952i85x-lkp(a)intel.com/config) compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project d1021978b8e7e35dcc30201ca1731d64b5a602a8) reproduce (this is a W=1 build): wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # install arm64 cross compiling tool for clang build # apt-get install binutils-aarch64-linux-gnu # https://github.com/0day-ci/linux/commit/91a8d0866d1c0efc52ca8e1cb504e0ec15c979e2 git remote add linux-review https://github.com/0day-ci/linux git fetch --no-tags linux-review Iouri-Tarassov/drivers-hv-dxgkrnl-Driver-overview/20220113-035836 git checkout 91a8d0866d1c0efc52ca8e1cb504e0ec15c979e2 # save the config file to linux build tree mkdir build_dir COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=arm64 SHELL=/bin/bash drivers/hv/dxgkrnl/ If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <lkp@intel.com> All warnings (new ones prefixed by >>): >> drivers/hv/dxgkrnl/hmgr.c:85:5: warning: no previous prototype for function 'get_instance' [-Wmissing-prototypes] u32 get_instance(struct d3dkmthandle h) ^ drivers/hv/dxgkrnl/hmgr.c:85:1: note: declare 'static' if the function is not intended to be used outside of this translation unit u32 get_instance(struct d3dkmthandle h) ^ static >> drivers/hv/dxgkrnl/hmgr.c:172:6: warning: no previous prototype for function 'print_status' [-Wmissing-prototypes] void print_status(struct hmgrtable *table) ^ drivers/hv/dxgkrnl/hmgr.c:172:1: note: declare 'static' if the function is not intended to be used outside of this translation unit void print_status(struct hmgrtable *table) ^ static >> drivers/hv/dxgkrnl/hmgr.c:551:21: warning: no previous prototype for function 'hmgrtable_get_entry_type' [-Wmissing-prototypes] enum hmgrentry_type hmgrtable_get_entry_type(struct hmgrtable *table, ^ drivers/hv/dxgkrnl/hmgr.c:551:1: note: declare 'static' if the function is not intended to be used outside of this translation unit enum hmgrentry_type hmgrtable_get_entry_type(struct hmgrtable *table, ^ static drivers/hv/dxgkrnl/hmgr.c:167:20: warning: unused function 'is_empty' [-Wunused-function] static inline bool is_empty(struct hmgrtable *table) ^ 4 warnings generated. -- >> drivers/hv/dxgkrnl/dxgadapter.c:261:6: warning: no previous prototype for function 'dxgdevice_mark_destroyed' [-Wmissing-prototypes] void dxgdevice_mark_destroyed(struct dxgdevice *device) ^ drivers/hv/dxgkrnl/dxgadapter.c:261:1: note: declare 'static' if the function is not intended to be used outside of this translation unit void dxgdevice_mark_destroyed(struct dxgdevice *device) ^ static 1 warning generated. vim +/get_instance +85 drivers/hv/dxgkrnl/hmgr.c 84 > 85 u32 get_instance(struct d3dkmthandle h) 86 { 87 return (h.v & HMGRHANDLE_INSTANCE_MASK) >> HMGRHANDLE_INSTANCE_SHIFT; 88 } 89 90 static bool is_handle_valid(struct hmgrtable *table, struct d3dkmthandle h, 91 bool ignore_destroyed, enum hmgrentry_type t) 92 { 93 u32 index = get_index(h); 94 u32 unique = get_unique(h); 95 struct hmgrentry *entry; 96 97 if (index >= table->table_size) { 98 pr_err("%s Invalid index %x %d\n", __func__, h.v, index); 99 return false; 100 } 101 102 entry = &table->entry_table[index]; 103 if (unique != entry->unique) { 104 pr_err("%s Invalid unique %x %d %d %d %p", 105 __func__, h.v, unique, entry->unique, 106 index, entry->object); 107 return false; 108 } 109 110 if (entry->destroyed && !ignore_destroyed) { 111 pr_err("%s Invalid destroyed", __func__); 112 return false; 113 } 114 115 if (entry->type == HMGRENTRY_TYPE_FREE) { 116 pr_err("%s Entry is freed %x %d", __func__, h.v, index); 117 return false; 118 } 119 120 if (t != HMGRENTRY_TYPE_FREE && t != entry->type) { 121 pr_err("%s type mismatch %x %d %d", __func__, h.v, 122 t, entry->type); 123 return false; 124 } 125 126 return true; 127 } 128 129 static struct d3dkmthandle build_handle(u32 index, u32 unique, u32 instance) 130 { 131 struct d3dkmthandle handle; 132 133 handle.v = (index << HMGRHANDLE_INDEX_SHIFT) & HMGRHANDLE_INDEX_MASK; 134 handle.v |= (unique << HMGRHANDLE_UNIQUE_SHIFT) & 135 HMGRHANDLE_UNIQUE_MASK; 136 handle.v |= (instance << HMGRHANDLE_INSTANCE_SHIFT) & 137 HMGRHANDLE_INSTANCE_MASK; 138 139 return handle; 140 } 141 142 inline u32 hmgrtable_get_used_entry_count(struct hmgrtable *table) 143 { 144 DXGKRNL_ASSERT(table->table_size >= table->free_count); 145 return (table->table_size - table->free_count); 146 } 147 148 bool hmgrtable_mark_destroyed(struct hmgrtable *table, struct d3dkmthandle h) 149 { 150 if (!is_handle_valid(table, h, false, HMGRENTRY_TYPE_FREE)) 151 return false; 152 153 table->entry_table[get_index(h)].destroyed = true; 154 return true; 155 } 156 157 bool hmgrtable_unmark_destroyed(struct hmgrtable *table, struct d3dkmthandle h) 158 { 159 if (!is_handle_valid(table, h, true, HMGRENTRY_TYPE_FREE)) 160 return true; 161 162 DXGKRNL_ASSERT(table->entry_table[get_index(h)].destroyed); 163 table->entry_table[get_index(h)].destroyed = 0; 164 return true; 165 } 166 167 static inline bool is_empty(struct hmgrtable *table) 168 { 169 return (table->free_count == table->table_size); 170 } 171 > 172 void print_status(struct hmgrtable *table) 173 { 174 int i; 175 176 dev_dbg(dxgglobaldev, "hmgrtable head, tail %p %d %d\n", 177 table, table->free_handle_list_head, 178 table->free_handle_list_tail); 179 if (table->entry_table == NULL) 180 return; 181 for (i = 0; i < 3; i++) { 182 if (table->entry_table[i].type != HMGRENTRY_TYPE_FREE) 183 dev_dbg(dxgglobaldev, "hmgrtable entry %p %d %p\n", 184 table, i, table->entry_table[i].object); 185 else 186 dev_dbg(dxgglobaldev, "hmgrtable entry %p %d %d %d\n", 187 table, i, 188 table->entry_table[i].next_free_index, 189 table->entry_table[i].prev_free_index); 190 } 191 } 192 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org
next prev parent reply other threads:[~2022-01-13 7:45 UTC|newest] Thread overview: 42+ messages / expand[flat|nested] mbox.gz Atom feed top 2022-01-12 19:55 [PATCH v1 0/9] drivers: hv: dxgkrnl: Driver overview Iouri Tarassov 2022-01-12 19:55 ` [PATCH v1 1/9] drivers: hv: dxgkrnl: Driver initialization and creation of dxgadapter Iouri Tarassov 2022-01-13 1:49 ` kernel test robot 2022-01-13 1:49 ` kernel test robot 2022-01-13 6:42 ` kernel test robot 2022-01-13 6:42 ` kernel test robot 2022-01-13 7:43 ` Greg KH 2022-01-13 7:46 ` Greg KH 2022-01-14 0:08 ` Iouri Tarassov 2022-01-14 5:40 ` Greg KH 2022-01-12 19:55 ` [PATCH v1 2/9] drivers: hv: dxgkrnl: Open device object, adapter enumeration, dxgdevice, dxgcontext creation Iouri Tarassov 2022-01-13 7:41 ` Greg KH 2022-01-13 7:44 ` kernel test robot [this message] 2022-01-13 7:44 ` kernel test robot 2022-01-12 19:55 ` [PATCH v1 3/9] drivers: hv: dxgkrnl: Implement creation/destruction of GPU allocations/resources Iouri Tarassov 2022-01-13 8:56 ` kernel test robot 2022-01-13 8:56 ` kernel test robot 2022-01-12 19:55 ` [PATCH v1 4/9] drivers: hv: dxgkrnl: Implement operations with GPU sync objects Iouri Tarassov 2022-01-12 19:55 ` [PATCH v1 5/9] drivers: hv: dxgkrnl: Implement sharing resources and " Iouri Tarassov 2022-01-12 19:55 ` [PATCH v1 6/9] drivers: hv: dxgkrnl: Seal the shared resource object when dxgk_share_objects is called Iouri Tarassov 2022-01-12 19:55 ` [PATCH v1 7/9] drivers: hv: dxgkrnl: Implementation of submit command, paging and hardware queue Iouri Tarassov 2022-01-12 19:55 ` [PATCH v1 8/9] drivers: hv: dxgkrnl: Implement various WDDM ioctls Iouri Tarassov 2022-01-13 7:47 ` Greg KH 2022-01-14 0:19 ` Iouri Tarassov 2022-01-14 5:38 ` Greg KH 2022-01-15 2:16 ` Iouri Tarassov 2022-01-12 19:55 ` [PATCH v1 9/9] drivers: hv: dxgkrnl: Implement DXGSYNCFILE Iouri Tarassov 2022-01-13 7:41 ` Greg KH 2022-01-14 22:26 ` Iouri Tarassov 2022-01-14 18:03 ` Daniel Vetter 2022-01-14 18:03 ` Daniel Vetter 2022-01-14 18:52 ` Iouri Tarassov 2022-01-17 9:35 ` Daniel Vetter 2022-01-17 9:35 ` Daniel Vetter 2022-02-05 0:35 ` Iouri Tarassov 2022-02-05 0:35 ` Iouri Tarassov 2022-02-08 12:28 ` Daniel Vetter 2022-02-08 12:28 ` Daniel Vetter 2022-01-12 22:12 ` [PATCH v1 0/9] drivers: hv: dxgkrnl: Driver overview Nathan Chancellor 2022-01-12 23:39 ` Iouri Tarassov 2022-01-26 0:27 ` Nathan Chancellor 2022-02-05 0:31 ` Iouri Tarassov
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=202201131549.w952i85x-lkp@intel.com \ --to=lkp@intel.com \ --cc=gregkh@linuxfoundation.org \ --cc=haiyangz@microsoft.com \ --cc=iourit@linux.microsoft.com \ --cc=kbuild-all@lists.01.org \ --cc=kys@microsoft.com \ --cc=linux-hyperv@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=llvm@lists.linux.dev \ --cc=spronovo@microsoft.com \ --cc=sthemmin@microsoft.com \ --cc=wei.liu@kernel.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.