All of lore.kernel.org
 help / color / mirror / Atom feed
* [ogabbay:habanalabs-next 28/62] drivers/misc/habanalabs/common/command_submission.c:2121:14: warning: The left operand of '==' is a garbage value [clang-analyzer-core.UndefinedBinaryOperatorResult]
@ 2021-08-25 21:30 kernel test robot
  0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2021-08-25 21:30 UTC (permalink / raw)
  To: kbuild

[-- Attachment #1: Type: text/plain, Size: 24851 bytes --]

CC: clang-built-linux(a)googlegroups.com
CC: kbuild-all(a)lists.01.org
CC: linux-kernel(a)vger.kernel.org
TO: Ohad Sharabi <osharabi@habana.ai>
CC: Oded Gabbay <ogabbay@kernel.org>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/ogabbay/linux.git habanalabs-next
head:   1f3192a0f941290cff0d974f6583ca72169fd118
commit: 5bf209df737fb0b7d809a04bae610cbc3f7311f7 [28/62] habanalabs: add wait-for-multi-CS uAPI
:::::: branch date: 2 days ago
:::::: commit date: 7 days ago
config: x86_64-randconfig-c007-20210824 (attached as .config)
compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project d26000e4cc2bc65e207a84fa26cb6e374d60aa12)
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
        # https://git.kernel.org/pub/scm/linux/kernel/git/ogabbay/linux.git/commit/?id=5bf209df737fb0b7d809a04bae610cbc3f7311f7
        git remote add ogabbay https://git.kernel.org/pub/scm/linux/kernel/git/ogabbay/linux.git
        git fetch --no-tags ogabbay habanalabs-next
        git checkout 5bf209df737fb0b7d809a04bae610cbc3f7311f7
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=x86_64 clang-analyzer 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>


clang-analyzer warnings: (new ones prefixed by >>)
   2 warnings generated.
   Suppressed 2 warnings (2 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   2 warnings generated.
   Suppressed 2 warnings (2 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   drivers/net/ethernet/3com/typhoon.c:241:8: warning: Excessive padding in 'struct typhoon_shared' (76 padding bytes, where 12 is optimal). 
   Optimal fields order: 
   indexes, 
   zeroWord, 
   txHi, 
   iface, 
   cmd, 
   resp, 
   rxLo, 
   rxHi, 
   txLo, 
   rxBuff, 
   consider reordering the fields or adding explicit padding members [clang-analyzer-optin.performance.Padding]
   struct typhoon_shared {
   ~~~~~~~^~~~~~~~~~~~~~~~
   drivers/net/ethernet/3com/typhoon.c:241:8: note: Excessive padding in 'struct typhoon_shared' (76 padding bytes, where 12 is optimal). Optimal fields order: indexes, zeroWord, txHi, iface, cmd, resp, rxLo, rxHi, txLo, rxBuff, consider reordering the fields or adding explicit padding members
   struct typhoon_shared {
   ~~~~~~~^~~~~~~~~~~~~~~~
   drivers/net/ethernet/3com/typhoon.c:259:8: warning: Excessive padding in 'struct typhoon' (124 padding bytes, where 60 is optimal). 
   Optimal fields order: 
   ioaddr, 
   tx_pdev, 
   tx_ioaddr, 
   indexes, 
   pdev, 
   dev, 
   shared, 
   shared_dma, 
   txLoRing, 
   rxLoRing, 
   rxHiRing, 
   rxBuffRing, 
   cmdRing, 
   respRing, 
   txHiRing, 
   command_lock, 
   stats_saved, 
   napi, 
   rxbuffers, 
   txlo_dma_addr, 
   offload, 
   capabilities, 
   xcvr_select, 
   wol_events, 
   awaiting_resp, 
   duplex, 
   speed, 
   card_state, 
   consider reordering the fields or adding explicit padding members [clang-analyzer-optin.performance.Padding]
   struct typhoon {
   ~~~~~~~^~~~~~~~~
   drivers/net/ethernet/3com/typhoon.c:259:8: note: Excessive padding in 'struct typhoon' (124 padding bytes, where 60 is optimal). Optimal fields order: ioaddr, tx_pdev, tx_ioaddr, indexes, pdev, dev, shared, shared_dma, txLoRing, rxLoRing, rxHiRing, rxBuffRing, cmdRing, respRing, txHiRing, command_lock, stats_saved, napi, rxbuffers, txlo_dma_addr, offload, capabilities, xcvr_select, wol_events, awaiting_resp, duplex, speed, card_state, consider reordering the fields or adding explicit padding members
   struct typhoon {
   ~~~~~~~^~~~~~~~~
   Suppressed 2 warnings (2 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   3 warnings generated.
   drivers/net/ethernet/adaptec/starfire.c:962:46: warning: Value stored to 'setup_frm' is never read [clang-analyzer-deadcode.DeadStores]
                   writew(be16_to_cpu(eaddrs[0]), setup_frm); setup_frm += 8;
                                                              ^            ~
   drivers/net/ethernet/adaptec/starfire.c:962:46: note: Value stored to 'setup_frm' is never read
                   writew(be16_to_cpu(eaddrs[0]), setup_frm); setup_frm += 8;
                                                              ^            ~
   Suppressed 2 warnings (2 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   3 warnings generated.
   drivers/net/ethernet/alacritech/slicoss.c:1525:3: warning: Value stored to 'data' is never read [clang-analyzer-deadcode.DeadStores]
                   data += sizeof(slic_stats_strings);
                   ^       ~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/net/ethernet/alacritech/slicoss.c:1525:3: note: Value stored to 'data' is never read
                   data += sizeof(slic_stats_strings);
                   ^       ~~~~~~~~~~~~~~~~~~~~~~~~~~
   Suppressed 2 warnings (2 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   2 warnings generated.
   Suppressed 2 warnings (2 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   2 warnings generated.
   Suppressed 2 warnings (2 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   2 warnings generated.
   Suppressed 2 warnings (2 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   2 warnings generated.
   Suppressed 2 warnings (2 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   2 warnings generated.
   Suppressed 2 warnings (2 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   2 warnings generated.
   Suppressed 2 warnings (2 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   3 warnings generated.
>> drivers/misc/habanalabs/common/command_submission.c:2121:14: warning: The left operand of '==' is a garbage value [clang-analyzer-core.UndefinedBinaryOperatorResult]
                   if (status == CS_WAIT_STATUS_BUSY)
                              ^
   drivers/misc/habanalabs/common/command_submission.c:2661:6: note: Assuming the condition is false
           if (flags & HL_WAIT_CS_FLAGS_INTERRUPT)
               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/misc/habanalabs/common/command_submission.c:2661:2: note: Taking false branch
           if (flags & HL_WAIT_CS_FLAGS_INTERRUPT)
           ^
   drivers/misc/habanalabs/common/command_submission.c:2663:11: note: Assuming the condition is true
           else if (flags & HL_WAIT_CS_FLAGS_MULTI_CS)
                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/misc/habanalabs/common/command_submission.c:2663:7: note: Taking true branch
           else if (flags & HL_WAIT_CS_FLAGS_MULTI_CS)
                ^
   drivers/misc/habanalabs/common/command_submission.c:2664:8: note: Calling 'hl_multi_cs_wait_ioctl'
                   rc = hl_multi_cs_wait_ioctl(hpriv, data);
                        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/misc/habanalabs/common/command_submission.c:2308:6: note: Assuming field 'supports_wait_for_multi_cs' is not equal to 0
           if (!hdev->supports_wait_for_multi_cs) {
               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/misc/habanalabs/common/command_submission.c:2308:2: note: Taking false branch
           if (!hdev->supports_wait_for_multi_cs) {
           ^
   drivers/misc/habanalabs/common/command_submission.c:2315:6: note: Assuming 'seq_arr_len' is <= HL_WAIT_MULTI_CS_LIST_MAX_LEN
           if (seq_arr_len > HL_WAIT_MULTI_CS_LIST_MAX_LEN) {
               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/misc/habanalabs/common/command_submission.c:2315:2: note: Taking false branch
           if (seq_arr_len > HL_WAIT_MULTI_CS_LIST_MAX_LEN) {
           ^
   drivers/misc/habanalabs/common/command_submission.c:2324:6: note: Assuming 'cs_seq_arr' is non-null
           if (!cs_seq_arr)
               ^~~~~~~~~~~
   drivers/misc/habanalabs/common/command_submission.c:2324:2: note: Taking false branch
           if (!cs_seq_arr)
           ^
   drivers/misc/habanalabs/common/command_submission.c:2330:6: note: Assuming the condition is false
           if (copy_from_user(cs_seq_arr, seq_arr, size_to_copy)) {
               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/misc/habanalabs/common/command_submission.c:2330:2: note: Taking false branch
           if (copy_from_user(cs_seq_arr, seq_arr, size_to_copy)) {
           ^
   drivers/misc/habanalabs/common/command_submission.c:2338:6: note: Assuming 'fence_arr' is non-null
           if (!fence_arr) {
               ^~~~~~~~~~
   drivers/misc/habanalabs/common/command_submission.c:2338:2: note: Taking false branch
           if (!fence_arr) {
           ^
   drivers/misc/habanalabs/common/command_submission.c:2353:7: note: Calling 'hl_cs_poll_fences'
           rc = hl_cs_poll_fences(&mcs_data);
                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/misc/habanalabs/common/command_submission.c:2087:2: note: 'status' declared without an initial value
           enum hl_cs_wait_status status;
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/misc/habanalabs/common/command_submission.c:2093:6: note: Assuming 'rc' is 0
           if (rc)
               ^~
   drivers/misc/habanalabs/common/command_submission.c:2093:2: note: Taking false branch
           if (rc)
           ^
   drivers/misc/habanalabs/common/command_submission.c:2103:14: note: Assuming 'i' is < 'arr_len'
           for (i = 0; i < arr_len; i++, fence_ptr++) {
                       ^~~~~~~~~~~
   drivers/misc/habanalabs/common/command_submission.c:2103:2: note: Loop condition is true.  Entering loop body
           for (i = 0; i < arr_len; i++, fence_ptr++) {
           ^
   drivers/misc/habanalabs/common/command_submission.c:2110:8: note: Calling 'hl_wait_for_fence'
                   rc = hl_wait_for_fence(mcs_data->ctx, seq_arr[i], fence,
                        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/misc/habanalabs/common/command_submission.c:2021:6: note: Calling 'IS_ERR'
           if (IS_ERR(fence)) {
               ^~~~~~~~~~~~~
   include/linux/err.h:36:9: note: Assuming the condition is true
           return IS_ERR_VALUE((unsigned long)ptr);
                  ^
   include/linux/err.h:22:34: note: expanded from macro 'IS_ERR_VALUE'
   #define IS_ERR_VALUE(x) unlikely((unsigned long)(void *)(x) >= (unsigned long)-MAX_ERRNO)
                           ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/compiler.h:78:42: note: expanded from macro 'unlikely'
   # define unlikely(x)    __builtin_expect(!!(x), 0)
                                               ^
   include/linux/err.h:36:2: note: Returning the value 1, which participates in a condition later
           return IS_ERR_VALUE((unsigned long)ptr);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/misc/habanalabs/common/command_submission.c:2021:6: note: Returning from 'IS_ERR'
           if (IS_ERR(fence)) {
               ^~~~~~~~~~~~~
   drivers/misc/habanalabs/common/command_submission.c:2021:2: note: Taking true branch
           if (IS_ERR(fence)) {
           ^
   drivers/misc/habanalabs/common/command_submission.c:2023:7: note: Assuming the condition is false
                   if (rc == -EINVAL)
                       ^~~~~~~~~~~~~
   drivers/misc/habanalabs/common/command_submission.c:2023:3: note: Taking false branch
                   if (rc == -EINVAL)
                   ^
   drivers/misc/habanalabs/common/command_submission.c:2027:3: note: Returning without writing to '*status'
                   return rc;
                   ^
   drivers/misc/habanalabs/common/command_submission.c:2027:3: note: Returning value (loaded from 'rc'), which participates in a condition later
                   return rc;

vim +2121 drivers/misc/habanalabs/common/command_submission.c

eff6f4a0e70b7b drivers/misc/habanalabs/command_submission.c        Oded Gabbay  2019-02-16  2066  
5bf209df737fb0 drivers/misc/habanalabs/common/command_submission.c Ohad Sharabi 2021-06-14  2067  /*
5bf209df737fb0 drivers/misc/habanalabs/common/command_submission.c Ohad Sharabi 2021-06-14  2068   * hl_cs_poll_fences - iterate CS fences to check for CS completion
5bf209df737fb0 drivers/misc/habanalabs/common/command_submission.c Ohad Sharabi 2021-06-14  2069   *
5bf209df737fb0 drivers/misc/habanalabs/common/command_submission.c Ohad Sharabi 2021-06-14  2070   * @mcs_data: multi-CS internal data
5bf209df737fb0 drivers/misc/habanalabs/common/command_submission.c Ohad Sharabi 2021-06-14  2071   *
5bf209df737fb0 drivers/misc/habanalabs/common/command_submission.c Ohad Sharabi 2021-06-14  2072   * @return 0 on success, otherwise non 0 error code
5bf209df737fb0 drivers/misc/habanalabs/common/command_submission.c Ohad Sharabi 2021-06-14  2073   *
5bf209df737fb0 drivers/misc/habanalabs/common/command_submission.c Ohad Sharabi 2021-06-14  2074   * The function iterates on all CS sequence in the list and set bit in
5bf209df737fb0 drivers/misc/habanalabs/common/command_submission.c Ohad Sharabi 2021-06-14  2075   * completion_bitmap for each completed CS.
5bf209df737fb0 drivers/misc/habanalabs/common/command_submission.c Ohad Sharabi 2021-06-14  2076   * while iterating, the function can extracts the stream map to be later
5bf209df737fb0 drivers/misc/habanalabs/common/command_submission.c Ohad Sharabi 2021-06-14  2077   * used by the waiting function.
5bf209df737fb0 drivers/misc/habanalabs/common/command_submission.c Ohad Sharabi 2021-06-14  2078   * this function shall be called after taking context ref
5bf209df737fb0 drivers/misc/habanalabs/common/command_submission.c Ohad Sharabi 2021-06-14  2079   */
5bf209df737fb0 drivers/misc/habanalabs/common/command_submission.c Ohad Sharabi 2021-06-14  2080  static int hl_cs_poll_fences(struct multi_cs_data *mcs_data)
5bf209df737fb0 drivers/misc/habanalabs/common/command_submission.c Ohad Sharabi 2021-06-14  2081  {
5bf209df737fb0 drivers/misc/habanalabs/common/command_submission.c Ohad Sharabi 2021-06-14  2082  	struct hl_fence **fence_ptr = mcs_data->fence_arr;
5bf209df737fb0 drivers/misc/habanalabs/common/command_submission.c Ohad Sharabi 2021-06-14  2083  	struct hl_device *hdev = mcs_data->ctx->hdev;
5bf209df737fb0 drivers/misc/habanalabs/common/command_submission.c Ohad Sharabi 2021-06-14  2084  	int i, rc, arr_len = mcs_data->arr_len;
5bf209df737fb0 drivers/misc/habanalabs/common/command_submission.c Ohad Sharabi 2021-06-14  2085  	u64 *seq_arr = mcs_data->seq_arr;
5bf209df737fb0 drivers/misc/habanalabs/common/command_submission.c Ohad Sharabi 2021-06-14  2086  	ktime_t max_ktime, first_cs_time;
5bf209df737fb0 drivers/misc/habanalabs/common/command_submission.c Ohad Sharabi 2021-06-14  2087  	enum hl_cs_wait_status status;
5bf209df737fb0 drivers/misc/habanalabs/common/command_submission.c Ohad Sharabi 2021-06-14  2088  
5bf209df737fb0 drivers/misc/habanalabs/common/command_submission.c Ohad Sharabi 2021-06-14  2089  	memset(fence_ptr, 0, arr_len * sizeof(*fence_ptr));
5bf209df737fb0 drivers/misc/habanalabs/common/command_submission.c Ohad Sharabi 2021-06-14  2090  
5bf209df737fb0 drivers/misc/habanalabs/common/command_submission.c Ohad Sharabi 2021-06-14  2091  	/* get all fences under the same lock */
5bf209df737fb0 drivers/misc/habanalabs/common/command_submission.c Ohad Sharabi 2021-06-14  2092  	rc = hl_ctx_get_fences(mcs_data->ctx, seq_arr, fence_ptr, arr_len);
5bf209df737fb0 drivers/misc/habanalabs/common/command_submission.c Ohad Sharabi 2021-06-14  2093  	if (rc)
5bf209df737fb0 drivers/misc/habanalabs/common/command_submission.c Ohad Sharabi 2021-06-14  2094  		return rc;
5bf209df737fb0 drivers/misc/habanalabs/common/command_submission.c Ohad Sharabi 2021-06-14  2095  
5bf209df737fb0 drivers/misc/habanalabs/common/command_submission.c Ohad Sharabi 2021-06-14  2096  	/*
5bf209df737fb0 drivers/misc/habanalabs/common/command_submission.c Ohad Sharabi 2021-06-14  2097  	 * set to maximum time to verify timestamp is valid: if at the end
5bf209df737fb0 drivers/misc/habanalabs/common/command_submission.c Ohad Sharabi 2021-06-14  2098  	 * this value is maintained- no timestamp was updated
5bf209df737fb0 drivers/misc/habanalabs/common/command_submission.c Ohad Sharabi 2021-06-14  2099  	 */
5bf209df737fb0 drivers/misc/habanalabs/common/command_submission.c Ohad Sharabi 2021-06-14  2100  	max_ktime = ktime_set(KTIME_SEC_MAX, 0);
5bf209df737fb0 drivers/misc/habanalabs/common/command_submission.c Ohad Sharabi 2021-06-14  2101  	first_cs_time = max_ktime;
5bf209df737fb0 drivers/misc/habanalabs/common/command_submission.c Ohad Sharabi 2021-06-14  2102  
5bf209df737fb0 drivers/misc/habanalabs/common/command_submission.c Ohad Sharabi 2021-06-14  2103  	for (i = 0; i < arr_len; i++, fence_ptr++) {
5bf209df737fb0 drivers/misc/habanalabs/common/command_submission.c Ohad Sharabi 2021-06-14  2104  		struct hl_fence *fence = *fence_ptr;
5bf209df737fb0 drivers/misc/habanalabs/common/command_submission.c Ohad Sharabi 2021-06-14  2105  
5bf209df737fb0 drivers/misc/habanalabs/common/command_submission.c Ohad Sharabi 2021-06-14  2106  		/*
5bf209df737fb0 drivers/misc/habanalabs/common/command_submission.c Ohad Sharabi 2021-06-14  2107  		 * function won't sleep as it is called with timeout 0 (i.e.
5bf209df737fb0 drivers/misc/habanalabs/common/command_submission.c Ohad Sharabi 2021-06-14  2108  		 * poll the fence)
5bf209df737fb0 drivers/misc/habanalabs/common/command_submission.c Ohad Sharabi 2021-06-14  2109  		 */
5bf209df737fb0 drivers/misc/habanalabs/common/command_submission.c Ohad Sharabi 2021-06-14  2110  		rc = hl_wait_for_fence(mcs_data->ctx, seq_arr[i], fence,
5bf209df737fb0 drivers/misc/habanalabs/common/command_submission.c Ohad Sharabi 2021-06-14  2111  						&status, 0, NULL);
5bf209df737fb0 drivers/misc/habanalabs/common/command_submission.c Ohad Sharabi 2021-06-14  2112  		if (rc) {
5bf209df737fb0 drivers/misc/habanalabs/common/command_submission.c Ohad Sharabi 2021-06-14  2113  			dev_err(hdev->dev,
5bf209df737fb0 drivers/misc/habanalabs/common/command_submission.c Ohad Sharabi 2021-06-14  2114  				"wait_for_fence error :%d for CS seq %llu\n",
5bf209df737fb0 drivers/misc/habanalabs/common/command_submission.c Ohad Sharabi 2021-06-14  2115  								rc, seq_arr[i]);
5bf209df737fb0 drivers/misc/habanalabs/common/command_submission.c Ohad Sharabi 2021-06-14  2116  			break;
5bf209df737fb0 drivers/misc/habanalabs/common/command_submission.c Ohad Sharabi 2021-06-14  2117  		}
5bf209df737fb0 drivers/misc/habanalabs/common/command_submission.c Ohad Sharabi 2021-06-14  2118  
5bf209df737fb0 drivers/misc/habanalabs/common/command_submission.c Ohad Sharabi 2021-06-14  2119  		mcs_data->stream_map |= fence->stream_map;
5bf209df737fb0 drivers/misc/habanalabs/common/command_submission.c Ohad Sharabi 2021-06-14  2120  
5bf209df737fb0 drivers/misc/habanalabs/common/command_submission.c Ohad Sharabi 2021-06-14 @2121  		if (status == CS_WAIT_STATUS_BUSY)
5bf209df737fb0 drivers/misc/habanalabs/common/command_submission.c Ohad Sharabi 2021-06-14  2122  			continue;
5bf209df737fb0 drivers/misc/habanalabs/common/command_submission.c Ohad Sharabi 2021-06-14  2123  
5bf209df737fb0 drivers/misc/habanalabs/common/command_submission.c Ohad Sharabi 2021-06-14  2124  		mcs_data->completion_bitmap |= BIT(i);
5bf209df737fb0 drivers/misc/habanalabs/common/command_submission.c Ohad Sharabi 2021-06-14  2125  
5bf209df737fb0 drivers/misc/habanalabs/common/command_submission.c Ohad Sharabi 2021-06-14  2126  		/*
5bf209df737fb0 drivers/misc/habanalabs/common/command_submission.c Ohad Sharabi 2021-06-14  2127  		 * best effort to extract timestamp. few notes:
5bf209df737fb0 drivers/misc/habanalabs/common/command_submission.c Ohad Sharabi 2021-06-14  2128  		 * - if even single fence is gone we cannot extract timestamp
5bf209df737fb0 drivers/misc/habanalabs/common/command_submission.c Ohad Sharabi 2021-06-14  2129  		 *   (as fence not exist anymore)
5bf209df737fb0 drivers/misc/habanalabs/common/command_submission.c Ohad Sharabi 2021-06-14  2130  		 * - for all completed CSs we take the earliest timestamp.
5bf209df737fb0 drivers/misc/habanalabs/common/command_submission.c Ohad Sharabi 2021-06-14  2131  		 *   for this we have to validate that:
5bf209df737fb0 drivers/misc/habanalabs/common/command_submission.c Ohad Sharabi 2021-06-14  2132  		 *       1. given timestamp was indeed set
5bf209df737fb0 drivers/misc/habanalabs/common/command_submission.c Ohad Sharabi 2021-06-14  2133  		 *       2. the timestamp is earliest of all timestamps so far
5bf209df737fb0 drivers/misc/habanalabs/common/command_submission.c Ohad Sharabi 2021-06-14  2134  		 */
5bf209df737fb0 drivers/misc/habanalabs/common/command_submission.c Ohad Sharabi 2021-06-14  2135  
5bf209df737fb0 drivers/misc/habanalabs/common/command_submission.c Ohad Sharabi 2021-06-14  2136  		if (status == CS_WAIT_STATUS_GONE) {
5bf209df737fb0 drivers/misc/habanalabs/common/command_submission.c Ohad Sharabi 2021-06-14  2137  			mcs_data->update_ts = false;
5bf209df737fb0 drivers/misc/habanalabs/common/command_submission.c Ohad Sharabi 2021-06-14  2138  			mcs_data->gone_cs = true;
5bf209df737fb0 drivers/misc/habanalabs/common/command_submission.c Ohad Sharabi 2021-06-14  2139  		} else if (mcs_data->update_ts &&
5bf209df737fb0 drivers/misc/habanalabs/common/command_submission.c Ohad Sharabi 2021-06-14  2140  			(ktime_compare(fence->timestamp,
5bf209df737fb0 drivers/misc/habanalabs/common/command_submission.c Ohad Sharabi 2021-06-14  2141  						ktime_set(0, 0)) > 0) &&
5bf209df737fb0 drivers/misc/habanalabs/common/command_submission.c Ohad Sharabi 2021-06-14  2142  			(ktime_compare(fence->timestamp, first_cs_time) < 0)) {
5bf209df737fb0 drivers/misc/habanalabs/common/command_submission.c Ohad Sharabi 2021-06-14  2143  			first_cs_time = fence->timestamp;
5bf209df737fb0 drivers/misc/habanalabs/common/command_submission.c Ohad Sharabi 2021-06-14  2144  		}
5bf209df737fb0 drivers/misc/habanalabs/common/command_submission.c Ohad Sharabi 2021-06-14  2145  	}
5bf209df737fb0 drivers/misc/habanalabs/common/command_submission.c Ohad Sharabi 2021-06-14  2146  
5bf209df737fb0 drivers/misc/habanalabs/common/command_submission.c Ohad Sharabi 2021-06-14  2147  	hl_fences_put(mcs_data->fence_arr, arr_len);
5bf209df737fb0 drivers/misc/habanalabs/common/command_submission.c Ohad Sharabi 2021-06-14  2148  
5bf209df737fb0 drivers/misc/habanalabs/common/command_submission.c Ohad Sharabi 2021-06-14  2149  	if (mcs_data->update_ts &&
5bf209df737fb0 drivers/misc/habanalabs/common/command_submission.c Ohad Sharabi 2021-06-14  2150  			(ktime_compare(first_cs_time, max_ktime) != 0))
5bf209df737fb0 drivers/misc/habanalabs/common/command_submission.c Ohad Sharabi 2021-06-14  2151  		mcs_data->timestamp = ktime_to_ns(first_cs_time);
5bf209df737fb0 drivers/misc/habanalabs/common/command_submission.c Ohad Sharabi 2021-06-14  2152  
5bf209df737fb0 drivers/misc/habanalabs/common/command_submission.c Ohad Sharabi 2021-06-14  2153  	return rc;
5bf209df737fb0 drivers/misc/habanalabs/common/command_submission.c Ohad Sharabi 2021-06-14  2154  }
5bf209df737fb0 drivers/misc/habanalabs/common/command_submission.c Ohad Sharabi 2021-06-14  2155  

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org

[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 35822 bytes --]

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2021-08-25 21:30 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-08-25 21:30 [ogabbay:habanalabs-next 28/62] drivers/misc/habanalabs/common/command_submission.c:2121:14: warning: The left operand of '==' is a garbage value [clang-analyzer-core.UndefinedBinaryOperatorResult] kernel test robot

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.