linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
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

  parent reply	other threads:[~2022-01-13  7:44 UTC|newest]

Thread overview: 34+ 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  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-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-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:52     ` Iouri Tarassov
2022-01-17  9:35       ` Daniel Vetter
2022-02-05  0:35         ` Iouri Tarassov
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: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).