All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Teres Alexis, Alan Previn" <alan.previn.teres.alexis@intel.com>
To: kernel test robot <lkp@intel.com>, <intel-gfx@lists.freedesktop.org>
Cc: <llvm@lists.linux.dev>, <kbuild-all@lists.01.org>
Subject: Re: [Intel-gfx] [PATCH v9 13/13] drm/i915/guc: Print the GuC error capture output register list.
Date: Tue, 15 Mar 2022 18:04:40 -0700	[thread overview]
Message-ID: <b2dd9821-d016-872c-6f23-cb71f99227ec@intel.com> (raw)
In-Reply-To: <202203151007.mYugtWwO-lkp@intel.com>

This is an actual bug I missed - will fix this - would cause a 
compilation error when enabling "CONFIG_DRM_I915_DEBUG_GUC"

On 3/14/2022 7:26 PM, kernel test robot wrote:
> Hi Alan,
>
> Thank you for the patch! Yet something to improve:
>
> [auto build test ERROR on drm-tip/drm-tip]
> [cannot apply to drm-intel/for-linux-next drm-exynos/exynos-drm-next drm/drm-next tegra-drm/drm/tegra/for-next v5.17-rc8 next-20220310]
> [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/Alan-Previn/Add-GuC-Error-Capture-Support/20220315-010958
> base:   git://anongit.freedesktop.org/drm/drm-tip drm-tip
> config: i386-allyesconfig (https://download.01.org/0day-ci/archive/20220315/202203151007.mYugtWwO-lkp@intel.com/config)
> compiler: clang version 15.0.0 (https://github.com/llvm/llvm-project 3e4950d7fa78ac83f33bbf1658e2f49a73719236)
> 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://github.com/0day-ci/linux/commit/90c08c10562cba1ebf8b31788e7a9550c7637838
>          git remote add linux-review https://github.com/0day-ci/linux
>          git fetch --no-tags linux-review Alan-Previn/Add-GuC-Error-Capture-Support/20220315-010958
>          git checkout 90c08c10562cba1ebf8b31788e7a9550c7637838
>          # 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=i386 SHELL=/bin/bash
>
> If you fix the issue, kindly add following tag as appropriate
> Reported-by: kernel test robot <lkp@intel.com>
>
> All errors (new ones prefixed by >>):
>
>>> drivers/gpu/drm/i915/gt/uc/intel_guc_capture.c:1497:2: error: no member named 'drm' in 'struct drm_i915_error_state_buf'
>             __out(ebuf, "global --- GuC Error Capture on %s command stream:\n",
>             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>     drivers/gpu/drm/i915/gt/uc/intel_guc_capture.c:1442:19: note: expanded from macro '__out'
>                     drm_warn((&(a)->drm), __VA_ARGS__); \
>                     ~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
>     include/drm/drm_print.h:435:16: note: expanded from macro 'drm_warn'
>             __drm_printk((drm), warn,, fmt, ##__VA_ARGS__)
>             ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>     include/drm/drm_print.h:425:21: note: expanded from macro '__drm_printk'
>             dev_##level##type((drm)->dev, "[drm] " fmt, ##__VA_ARGS__)
>             ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>     include/linux/dev_printk.h:146:49: note: expanded from macro 'dev_warn'
>             dev_printk_index_wrap(_dev_warn, KERN_WARNING, dev, dev_fmt(fmt), ##__VA_ARGS__)
>             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>     include/linux/dev_printk.h:110:11: note: expanded from macro 'dev_printk_index_wrap'
>                     _p_func(dev, fmt, ##__VA_ARGS__);                       \
>                             ^~~
>     drivers/gpu/drm/i915/gt/uc/intel_guc_capture.c:1502:3: error: no member named 'drm' in 'struct drm_i915_error_state_buf'
>                     __out(ebuf, "  No matching ee-node\n");
>                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>     drivers/gpu/drm/i915/gt/uc/intel_guc_capture.c:1442:19: note: expanded from macro '__out'
>                     drm_warn((&(a)->drm), __VA_ARGS__); \
>                     ~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
>     include/drm/drm_print.h:435:16: note: expanded from macro 'drm_warn'
>             __drm_printk((drm), warn,, fmt, ##__VA_ARGS__)
>             ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>     include/drm/drm_print.h:425:21: note: expanded from macro '__drm_printk'
>             dev_##level##type((drm)->dev, "[drm] " fmt, ##__VA_ARGS__)
>             ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>     include/linux/dev_printk.h:146:49: note: expanded from macro 'dev_warn'
>             dev_printk_index_wrap(_dev_warn, KERN_WARNING, dev, dev_fmt(fmt), ##__VA_ARGS__)
>             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>     include/linux/dev_printk.h:110:11: note: expanded from macro 'dev_printk_index_wrap'
>                     _p_func(dev, fmt, ##__VA_ARGS__);                       \
>                             ^~~
>     drivers/gpu/drm/i915/gt/uc/intel_guc_capture.c:1506:2: error: no member named 'drm' in 'struct drm_i915_error_state_buf'
>             __out(ebuf, "Coverage:  %s\n", grptype[node->is_partial]);
>             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>     drivers/gpu/drm/i915/gt/uc/intel_guc_capture.c:1442:19: note: expanded from macro '__out'
>                     drm_warn((&(a)->drm), __VA_ARGS__); \
>                     ~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
>     include/drm/drm_print.h:435:16: note: expanded from macro 'drm_warn'
>             __drm_printk((drm), warn,, fmt, ##__VA_ARGS__)
>             ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>     include/drm/drm_print.h:425:21: note: expanded from macro '__drm_printk'
>             dev_##level##type((drm)->dev, "[drm] " fmt, ##__VA_ARGS__)
>             ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>     include/linux/dev_printk.h:146:49: note: expanded from macro 'dev_warn'
>             dev_printk_index_wrap(_dev_warn, KERN_WARNING, dev, dev_fmt(fmt), ##__VA_ARGS__)
>             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>     include/linux/dev_printk.h:110:11: note: expanded from macro 'dev_printk_index_wrap'
>                     _p_func(dev, fmt, ##__VA_ARGS__);                       \
>                             ^~~
>     drivers/gpu/drm/i915/gt/uc/intel_guc_capture.c:1509:3: error: no member named 'drm' in 'struct drm_i915_error_state_buf'
>                     __out(ebuf, "  RegListType: %s\n",
>                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>     drivers/gpu/drm/i915/gt/uc/intel_guc_capture.c:1442:19: note: expanded from macro '__out'
>                     drm_warn((&(a)->drm), __VA_ARGS__); \
>                     ~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
>     include/drm/drm_print.h:435:16: note: expanded from macro 'drm_warn'
>             __drm_printk((drm), warn,, fmt, ##__VA_ARGS__)
>             ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>     include/drm/drm_print.h:425:21: note: expanded from macro '__drm_printk'
>             dev_##level##type((drm)->dev, "[drm] " fmt, ##__VA_ARGS__)
>             ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>     include/linux/dev_printk.h:146:49: note: expanded from macro 'dev_warn'
>             dev_printk_index_wrap(_dev_warn, KERN_WARNING, dev, dev_fmt(fmt), ##__VA_ARGS__)
>             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>     include/linux/dev_printk.h:110:11: note: expanded from macro 'dev_printk_index_wrap'
>                     _p_func(dev, fmt, ##__VA_ARGS__);                       \
>                             ^~~
>     drivers/gpu/drm/i915/gt/uc/intel_guc_capture.c:1511:3: error: no member named 'drm' in 'struct drm_i915_error_state_buf'
>                     __out(ebuf, "    Owner-Id: %d\n", node->reginfo[i].vfid);
>                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>     drivers/gpu/drm/i915/gt/uc/intel_guc_capture.c:1442:19: note: expanded from macro '__out'
>                     drm_warn((&(a)->drm), __VA_ARGS__); \
>                     ~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
>     include/drm/drm_print.h:435:16: note: expanded from macro 'drm_warn'
>             __drm_printk((drm), warn,, fmt, ##__VA_ARGS__)
>             ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>     include/drm/drm_print.h:425:21: note: expanded from macro '__drm_printk'
>             dev_##level##type((drm)->dev, "[drm] " fmt, ##__VA_ARGS__)
>             ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>     include/linux/dev_printk.h:146:49: note: expanded from macro 'dev_warn'
>             dev_printk_index_wrap(_dev_warn, KERN_WARNING, dev, dev_fmt(fmt), ##__VA_ARGS__)
>             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>     include/linux/dev_printk.h:110:11: note: expanded from macro 'dev_printk_index_wrap'
>                     _p_func(dev, fmt, ##__VA_ARGS__);                       \
>                             ^~~
>     drivers/gpu/drm/i915/gt/uc/intel_guc_capture.c:1518:4: error: no member named 'drm' in 'struct drm_i915_error_state_buf'
>                             __out(ebuf, "    GuC-Eng-Class: %d\n", node->eng_class);
>                             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>     drivers/gpu/drm/i915/gt/uc/intel_guc_capture.c:1442:19: note: expanded from macro '__out'
>                     drm_warn((&(a)->drm), __VA_ARGS__); \
>                     ~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
>     include/drm/drm_print.h:435:16: note: expanded from macro 'drm_warn'
>             __drm_printk((drm), warn,, fmt, ##__VA_ARGS__)
>             ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>     include/drm/drm_print.h:425:21: note: expanded from macro '__drm_printk'
>             dev_##level##type((drm)->dev, "[drm] " fmt, ##__VA_ARGS__)
>
>
> vim +1497 drivers/gpu/drm/i915/gt/uc/intel_guc_capture.c
>
>    1449	
>    1450	#define GCAP_PRINT_INTEL_ENG_INFO(ebuf, eng) \
>    1451		do { \
>    1452			__out(ebuf, "    i915-Eng-Name: %s command stream\n", \
>    1453			      (eng)->name); \
>    1454			__out(ebuf, "    i915-Eng-Inst-Class: 0x%02x\n", (eng)->class); \
>    1455			__out(ebuf, "    i915-Eng-Inst-Id: 0x%02x\n", (eng)->instance); \
>    1456			__out(ebuf, "    i915-Eng-LogicalMask: 0x%08x\n", \
>    1457			      (eng)->logical_mask); \
>    1458		} while (0)
>    1459	
>    1460	#define GCAP_PRINT_GUC_INST_INFO(ebuf, node) \
>    1461		do { \
>    1462			__out(ebuf, "    GuC-Engine-Inst-Id: 0x%08x\n", \
>    1463			      (node)->eng_inst); \
>    1464			__out(ebuf, "    GuC-Context-Id: 0x%08x\n", (node)->guc_id); \
>    1465			__out(ebuf, "    LRCA: 0x%08x\n", (node)->lrca); \
>    1466		} while (0)
>    1467	
>    1468	int intel_guc_capture_print_engine_node(struct drm_i915_error_state_buf *ebuf,
>    1469						const struct intel_engine_coredump *ee)
>    1470	{
>    1471		const char *grptype[GUC_STATE_CAPTURE_GROUP_TYPE_MAX] = {
>    1472			"full-capture",
>    1473			"partial-capture"
>    1474		};
>    1475		const char *datatype[GUC_CAPTURE_LIST_TYPE_MAX] = {
>    1476			"Global",
>    1477			"Engine-Class",
>    1478			"Engine-Instance"
>    1479		};
>    1480		struct intel_guc_state_capture *cap;
>    1481		struct __guc_capture_parsed_output *node;
>    1482		struct intel_engine_cs *eng;
>    1483		struct guc_mmio_reg *regs;
>    1484		struct intel_guc *guc;
>    1485		const char *str;
>    1486		int numregs, i, j;
>    1487		u32 is_ext;
>    1488	
>    1489		if (!ebuf || !ee)
>    1490			return -EINVAL;
>    1491		cap = ee->capture;
>    1492		if (!cap || !ee->engine)
>    1493			return -ENODEV;
>    1494	
>    1495		guc = &ee->engine->gt->uc.guc;
>    1496	
>> 1497		__out(ebuf, "global --- GuC Error Capture on %s command stream:\n",
>    1498		      ee->engine->name);
>    1499	
>    1500		node = ee->guc_capture_node;
>    1501		if (!node) {
>    1502			__out(ebuf, "  No matching ee-node\n");
>    1503			return 0;
>    1504		}
>    1505	
>    1506		__out(ebuf, "Coverage:  %s\n", grptype[node->is_partial]);
>    1507	
>    1508		for (i = GUC_CAPTURE_LIST_TYPE_GLOBAL; i < GUC_CAPTURE_LIST_TYPE_MAX; ++i) {
>    1509			__out(ebuf, "  RegListType: %s\n",
>    1510			      datatype[i % GUC_CAPTURE_LIST_TYPE_MAX]);
>    1511			__out(ebuf, "    Owner-Id: %d\n", node->reginfo[i].vfid);
>    1512	
>    1513			switch (i) {
>    1514			case GUC_CAPTURE_LIST_TYPE_GLOBAL:
>    1515			default:
>    1516				break;
>    1517			case GUC_CAPTURE_LIST_TYPE_ENGINE_CLASS:
>    1518				__out(ebuf, "    GuC-Eng-Class: %d\n", node->eng_class);
>    1519				__out(ebuf, "    i915-Eng-Class: %d\n",
>    1520				      guc_class_to_engine_class(node->eng_class));
>    1521				break;
>    1522			case GUC_CAPTURE_LIST_TYPE_ENGINE_INSTANCE:
>    1523				eng = intel_guc_lookup_engine(guc, node->eng_class, node->eng_inst);
>    1524				if (eng)
>    1525					GCAP_PRINT_INTEL_ENG_INFO(ebuf, eng);
>    1526				else
>    1527					__out(ebuf, "    i915-Eng-Lookup Fail!\n");
>    1528				GCAP_PRINT_GUC_INST_INFO(ebuf, node);
>    1529				break;
>    1530			}
>    1531	
>    1532			numregs = node->reginfo[i].num_regs;
>    1533			__out(ebuf, "    NumRegs: %d\n", numregs);
>    1534			j = 0;
>    1535			while (numregs--) {
>    1536				regs = node->reginfo[i].regs;
>    1537				str = guc_capture_reg_to_str(guc, GUC_CAPTURE_LIST_INDEX_PF, i,
>    1538							     node->eng_class, 0, regs[j].offset, &is_ext);
>    1539				if (!str)
>    1540					__out(ebuf, "      REG-0x%08x", regs[j].offset);
>    1541				else
>    1542					__out(ebuf, "      %s", str);
>    1543				if (is_ext)
>    1544					__out(ebuf, "[%ld][%ld]",
>    1545					      FIELD_GET(GUC_REGSET_STEERING_GROUP, regs[j].flags),
>    1546					      FIELD_GET(GUC_REGSET_STEERING_INSTANCE, regs[j].flags));
>    1547				__out(ebuf, ":  0x%08x\n", regs[j].value);
>    1548				++j;
>    1549			}
>    1550		}
>    1551		return 0;
>    1552	}
>    1553	
>
> ---
> 0-DAY CI Kernel Test Service
> https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org

WARNING: multiple messages have this Message-ID (diff)
From: "Teres Alexis, Alan Previn" <alan.previn.teres.alexis@intel.com>
To: kernel test robot <lkp@intel.com>, <intel-gfx@lists.freedesktop.org>
Cc: llvm@lists.linux.dev, kbuild-all@lists.01.org
Subject: Re: [Intel-gfx] [PATCH v9 13/13] drm/i915/guc: Print the GuC error capture output register list.
Date: Tue, 15 Mar 2022 18:04:40 -0700	[thread overview]
Message-ID: <b2dd9821-d016-872c-6f23-cb71f99227ec@intel.com> (raw)
In-Reply-To: <202203151007.mYugtWwO-lkp@intel.com>

This is an actual bug I missed - will fix this - would cause a 
compilation error when enabling "CONFIG_DRM_I915_DEBUG_GUC"

On 3/14/2022 7:26 PM, kernel test robot wrote:
> Hi Alan,
>
> Thank you for the patch! Yet something to improve:
>
> [auto build test ERROR on drm-tip/drm-tip]
> [cannot apply to drm-intel/for-linux-next drm-exynos/exynos-drm-next drm/drm-next tegra-drm/drm/tegra/for-next v5.17-rc8 next-20220310]
> [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/Alan-Previn/Add-GuC-Error-Capture-Support/20220315-010958
> base:   git://anongit.freedesktop.org/drm/drm-tip drm-tip
> config: i386-allyesconfig (https://download.01.org/0day-ci/archive/20220315/202203151007.mYugtWwO-lkp@intel.com/config)
> compiler: clang version 15.0.0 (https://github.com/llvm/llvm-project 3e4950d7fa78ac83f33bbf1658e2f49a73719236)
> 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://github.com/0day-ci/linux/commit/90c08c10562cba1ebf8b31788e7a9550c7637838
>          git remote add linux-review https://github.com/0day-ci/linux
>          git fetch --no-tags linux-review Alan-Previn/Add-GuC-Error-Capture-Support/20220315-010958
>          git checkout 90c08c10562cba1ebf8b31788e7a9550c7637838
>          # 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=i386 SHELL=/bin/bash
>
> If you fix the issue, kindly add following tag as appropriate
> Reported-by: kernel test robot <lkp@intel.com>
>
> All errors (new ones prefixed by >>):
>
>>> drivers/gpu/drm/i915/gt/uc/intel_guc_capture.c:1497:2: error: no member named 'drm' in 'struct drm_i915_error_state_buf'
>             __out(ebuf, "global --- GuC Error Capture on %s command stream:\n",
>             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>     drivers/gpu/drm/i915/gt/uc/intel_guc_capture.c:1442:19: note: expanded from macro '__out'
>                     drm_warn((&(a)->drm), __VA_ARGS__); \
>                     ~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
>     include/drm/drm_print.h:435:16: note: expanded from macro 'drm_warn'
>             __drm_printk((drm), warn,, fmt, ##__VA_ARGS__)
>             ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>     include/drm/drm_print.h:425:21: note: expanded from macro '__drm_printk'
>             dev_##level##type((drm)->dev, "[drm] " fmt, ##__VA_ARGS__)
>             ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>     include/linux/dev_printk.h:146:49: note: expanded from macro 'dev_warn'
>             dev_printk_index_wrap(_dev_warn, KERN_WARNING, dev, dev_fmt(fmt), ##__VA_ARGS__)
>             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>     include/linux/dev_printk.h:110:11: note: expanded from macro 'dev_printk_index_wrap'
>                     _p_func(dev, fmt, ##__VA_ARGS__);                       \
>                             ^~~
>     drivers/gpu/drm/i915/gt/uc/intel_guc_capture.c:1502:3: error: no member named 'drm' in 'struct drm_i915_error_state_buf'
>                     __out(ebuf, "  No matching ee-node\n");
>                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>     drivers/gpu/drm/i915/gt/uc/intel_guc_capture.c:1442:19: note: expanded from macro '__out'
>                     drm_warn((&(a)->drm), __VA_ARGS__); \
>                     ~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
>     include/drm/drm_print.h:435:16: note: expanded from macro 'drm_warn'
>             __drm_printk((drm), warn,, fmt, ##__VA_ARGS__)
>             ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>     include/drm/drm_print.h:425:21: note: expanded from macro '__drm_printk'
>             dev_##level##type((drm)->dev, "[drm] " fmt, ##__VA_ARGS__)
>             ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>     include/linux/dev_printk.h:146:49: note: expanded from macro 'dev_warn'
>             dev_printk_index_wrap(_dev_warn, KERN_WARNING, dev, dev_fmt(fmt), ##__VA_ARGS__)
>             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>     include/linux/dev_printk.h:110:11: note: expanded from macro 'dev_printk_index_wrap'
>                     _p_func(dev, fmt, ##__VA_ARGS__);                       \
>                             ^~~
>     drivers/gpu/drm/i915/gt/uc/intel_guc_capture.c:1506:2: error: no member named 'drm' in 'struct drm_i915_error_state_buf'
>             __out(ebuf, "Coverage:  %s\n", grptype[node->is_partial]);
>             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>     drivers/gpu/drm/i915/gt/uc/intel_guc_capture.c:1442:19: note: expanded from macro '__out'
>                     drm_warn((&(a)->drm), __VA_ARGS__); \
>                     ~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
>     include/drm/drm_print.h:435:16: note: expanded from macro 'drm_warn'
>             __drm_printk((drm), warn,, fmt, ##__VA_ARGS__)
>             ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>     include/drm/drm_print.h:425:21: note: expanded from macro '__drm_printk'
>             dev_##level##type((drm)->dev, "[drm] " fmt, ##__VA_ARGS__)
>             ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>     include/linux/dev_printk.h:146:49: note: expanded from macro 'dev_warn'
>             dev_printk_index_wrap(_dev_warn, KERN_WARNING, dev, dev_fmt(fmt), ##__VA_ARGS__)
>             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>     include/linux/dev_printk.h:110:11: note: expanded from macro 'dev_printk_index_wrap'
>                     _p_func(dev, fmt, ##__VA_ARGS__);                       \
>                             ^~~
>     drivers/gpu/drm/i915/gt/uc/intel_guc_capture.c:1509:3: error: no member named 'drm' in 'struct drm_i915_error_state_buf'
>                     __out(ebuf, "  RegListType: %s\n",
>                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>     drivers/gpu/drm/i915/gt/uc/intel_guc_capture.c:1442:19: note: expanded from macro '__out'
>                     drm_warn((&(a)->drm), __VA_ARGS__); \
>                     ~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
>     include/drm/drm_print.h:435:16: note: expanded from macro 'drm_warn'
>             __drm_printk((drm), warn,, fmt, ##__VA_ARGS__)
>             ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>     include/drm/drm_print.h:425:21: note: expanded from macro '__drm_printk'
>             dev_##level##type((drm)->dev, "[drm] " fmt, ##__VA_ARGS__)
>             ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>     include/linux/dev_printk.h:146:49: note: expanded from macro 'dev_warn'
>             dev_printk_index_wrap(_dev_warn, KERN_WARNING, dev, dev_fmt(fmt), ##__VA_ARGS__)
>             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>     include/linux/dev_printk.h:110:11: note: expanded from macro 'dev_printk_index_wrap'
>                     _p_func(dev, fmt, ##__VA_ARGS__);                       \
>                             ^~~
>     drivers/gpu/drm/i915/gt/uc/intel_guc_capture.c:1511:3: error: no member named 'drm' in 'struct drm_i915_error_state_buf'
>                     __out(ebuf, "    Owner-Id: %d\n", node->reginfo[i].vfid);
>                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>     drivers/gpu/drm/i915/gt/uc/intel_guc_capture.c:1442:19: note: expanded from macro '__out'
>                     drm_warn((&(a)->drm), __VA_ARGS__); \
>                     ~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
>     include/drm/drm_print.h:435:16: note: expanded from macro 'drm_warn'
>             __drm_printk((drm), warn,, fmt, ##__VA_ARGS__)
>             ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>     include/drm/drm_print.h:425:21: note: expanded from macro '__drm_printk'
>             dev_##level##type((drm)->dev, "[drm] " fmt, ##__VA_ARGS__)
>             ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>     include/linux/dev_printk.h:146:49: note: expanded from macro 'dev_warn'
>             dev_printk_index_wrap(_dev_warn, KERN_WARNING, dev, dev_fmt(fmt), ##__VA_ARGS__)
>             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>     include/linux/dev_printk.h:110:11: note: expanded from macro 'dev_printk_index_wrap'
>                     _p_func(dev, fmt, ##__VA_ARGS__);                       \
>                             ^~~
>     drivers/gpu/drm/i915/gt/uc/intel_guc_capture.c:1518:4: error: no member named 'drm' in 'struct drm_i915_error_state_buf'
>                             __out(ebuf, "    GuC-Eng-Class: %d\n", node->eng_class);
>                             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>     drivers/gpu/drm/i915/gt/uc/intel_guc_capture.c:1442:19: note: expanded from macro '__out'
>                     drm_warn((&(a)->drm), __VA_ARGS__); \
>                     ~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
>     include/drm/drm_print.h:435:16: note: expanded from macro 'drm_warn'
>             __drm_printk((drm), warn,, fmt, ##__VA_ARGS__)
>             ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>     include/drm/drm_print.h:425:21: note: expanded from macro '__drm_printk'
>             dev_##level##type((drm)->dev, "[drm] " fmt, ##__VA_ARGS__)
>
>
> vim +1497 drivers/gpu/drm/i915/gt/uc/intel_guc_capture.c
>
>    1449	
>    1450	#define GCAP_PRINT_INTEL_ENG_INFO(ebuf, eng) \
>    1451		do { \
>    1452			__out(ebuf, "    i915-Eng-Name: %s command stream\n", \
>    1453			      (eng)->name); \
>    1454			__out(ebuf, "    i915-Eng-Inst-Class: 0x%02x\n", (eng)->class); \
>    1455			__out(ebuf, "    i915-Eng-Inst-Id: 0x%02x\n", (eng)->instance); \
>    1456			__out(ebuf, "    i915-Eng-LogicalMask: 0x%08x\n", \
>    1457			      (eng)->logical_mask); \
>    1458		} while (0)
>    1459	
>    1460	#define GCAP_PRINT_GUC_INST_INFO(ebuf, node) \
>    1461		do { \
>    1462			__out(ebuf, "    GuC-Engine-Inst-Id: 0x%08x\n", \
>    1463			      (node)->eng_inst); \
>    1464			__out(ebuf, "    GuC-Context-Id: 0x%08x\n", (node)->guc_id); \
>    1465			__out(ebuf, "    LRCA: 0x%08x\n", (node)->lrca); \
>    1466		} while (0)
>    1467	
>    1468	int intel_guc_capture_print_engine_node(struct drm_i915_error_state_buf *ebuf,
>    1469						const struct intel_engine_coredump *ee)
>    1470	{
>    1471		const char *grptype[GUC_STATE_CAPTURE_GROUP_TYPE_MAX] = {
>    1472			"full-capture",
>    1473			"partial-capture"
>    1474		};
>    1475		const char *datatype[GUC_CAPTURE_LIST_TYPE_MAX] = {
>    1476			"Global",
>    1477			"Engine-Class",
>    1478			"Engine-Instance"
>    1479		};
>    1480		struct intel_guc_state_capture *cap;
>    1481		struct __guc_capture_parsed_output *node;
>    1482		struct intel_engine_cs *eng;
>    1483		struct guc_mmio_reg *regs;
>    1484		struct intel_guc *guc;
>    1485		const char *str;
>    1486		int numregs, i, j;
>    1487		u32 is_ext;
>    1488	
>    1489		if (!ebuf || !ee)
>    1490			return -EINVAL;
>    1491		cap = ee->capture;
>    1492		if (!cap || !ee->engine)
>    1493			return -ENODEV;
>    1494	
>    1495		guc = &ee->engine->gt->uc.guc;
>    1496	
>> 1497		__out(ebuf, "global --- GuC Error Capture on %s command stream:\n",
>    1498		      ee->engine->name);
>    1499	
>    1500		node = ee->guc_capture_node;
>    1501		if (!node) {
>    1502			__out(ebuf, "  No matching ee-node\n");
>    1503			return 0;
>    1504		}
>    1505	
>    1506		__out(ebuf, "Coverage:  %s\n", grptype[node->is_partial]);
>    1507	
>    1508		for (i = GUC_CAPTURE_LIST_TYPE_GLOBAL; i < GUC_CAPTURE_LIST_TYPE_MAX; ++i) {
>    1509			__out(ebuf, "  RegListType: %s\n",
>    1510			      datatype[i % GUC_CAPTURE_LIST_TYPE_MAX]);
>    1511			__out(ebuf, "    Owner-Id: %d\n", node->reginfo[i].vfid);
>    1512	
>    1513			switch (i) {
>    1514			case GUC_CAPTURE_LIST_TYPE_GLOBAL:
>    1515			default:
>    1516				break;
>    1517			case GUC_CAPTURE_LIST_TYPE_ENGINE_CLASS:
>    1518				__out(ebuf, "    GuC-Eng-Class: %d\n", node->eng_class);
>    1519				__out(ebuf, "    i915-Eng-Class: %d\n",
>    1520				      guc_class_to_engine_class(node->eng_class));
>    1521				break;
>    1522			case GUC_CAPTURE_LIST_TYPE_ENGINE_INSTANCE:
>    1523				eng = intel_guc_lookup_engine(guc, node->eng_class, node->eng_inst);
>    1524				if (eng)
>    1525					GCAP_PRINT_INTEL_ENG_INFO(ebuf, eng);
>    1526				else
>    1527					__out(ebuf, "    i915-Eng-Lookup Fail!\n");
>    1528				GCAP_PRINT_GUC_INST_INFO(ebuf, node);
>    1529				break;
>    1530			}
>    1531	
>    1532			numregs = node->reginfo[i].num_regs;
>    1533			__out(ebuf, "    NumRegs: %d\n", numregs);
>    1534			j = 0;
>    1535			while (numregs--) {
>    1536				regs = node->reginfo[i].regs;
>    1537				str = guc_capture_reg_to_str(guc, GUC_CAPTURE_LIST_INDEX_PF, i,
>    1538							     node->eng_class, 0, regs[j].offset, &is_ext);
>    1539				if (!str)
>    1540					__out(ebuf, "      REG-0x%08x", regs[j].offset);
>    1541				else
>    1542					__out(ebuf, "      %s", str);
>    1543				if (is_ext)
>    1544					__out(ebuf, "[%ld][%ld]",
>    1545					      FIELD_GET(GUC_REGSET_STEERING_GROUP, regs[j].flags),
>    1546					      FIELD_GET(GUC_REGSET_STEERING_INSTANCE, regs[j].flags));
>    1547				__out(ebuf, ":  0x%08x\n", regs[j].value);
>    1548				++j;
>    1549			}
>    1550		}
>    1551		return 0;
>    1552	}
>    1553	
>
> ---
> 0-DAY CI Kernel Test Service
> https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org

  reply	other threads:[~2022-03-16  1:05 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-03-14 17:09 [PATCH v9 00/13] Add GuC Error Capture Support Alan Previn
2022-03-14 17:09 ` [Intel-gfx] " Alan Previn
2022-03-14 17:09 ` [Intel-gfx] [PATCH v9 01/13] drm/i915/guc: Update GuC ADS size for error capture lists Alan Previn
2022-03-15 15:17   ` Matthew Brost
2022-03-15 16:06     ` Teres Alexis, Alan Previn
2022-03-14 17:09 ` [Intel-gfx] [PATCH v9 02/13] drm/i915/guc: Add XE_LP static registers for GuC error capture Alan Previn
2022-03-14 17:09 ` [Intel-gfx] [PATCH v9 03/13] drm/i915/guc: Add XE_LP steered register lists support Alan Previn
2022-03-14 17:09 ` [Intel-gfx] [PATCH v9 04/13] drm/i915/guc: Add DG2 registers for GuC error state capture Alan Previn
2022-03-14 17:09 ` [Intel-gfx] [PATCH v9 05/13] drm/i915/guc: Add Gen9 " Alan Previn
2022-03-14 17:09 ` [Intel-gfx] [PATCH v9 06/13] drm/i915/guc: Add GuC's error state capture output structures Alan Previn
2022-03-14 17:09 ` [Intel-gfx] [PATCH v9 07/13] drm/i915/guc: Update GuC-log relay function names Alan Previn
2022-03-14 17:09 ` [Intel-gfx] [PATCH v9 08/13] drm/i915/guc: Add capture region into intel_guc_log Alan Previn
2022-03-14 17:09 ` [Intel-gfx] [PATCH v9 09/13] drm/i915/guc: Check sizing of guc_capture output Alan Previn
2022-03-14 17:09 ` [Intel-gfx] [PATCH v9 10/13] drm/i915/guc: Extract GuC error capture lists on G2H notification Alan Previn
2022-03-14 17:09 ` [Intel-gfx] [PATCH v9 11/13] drm/i915/guc: Pre-allocate output nodes for extraction Alan Previn
2022-03-14 17:09 ` [Intel-gfx] [PATCH v9 12/13] drm/i915/guc: Plumb GuC-capture into gpu_coredump Alan Previn
2022-03-14 17:09 ` [Intel-gfx] [PATCH v9 13/13] drm/i915/guc: Print the GuC error capture output register list Alan Previn
2022-03-14 23:42   ` kernel test robot
2022-03-15  2:26   ` kernel test robot
2022-03-16  1:04     ` Teres Alexis, Alan Previn [this message]
2022-03-16  1:04       ` Teres Alexis, Alan Previn
2022-03-14 20:11 ` [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for Add GuC Error Capture Support Patchwork
2022-03-14 20:13 ` [Intel-gfx] ✗ Fi.CI.SPARSE: " Patchwork
2022-03-14 20:46 ` [Intel-gfx] ✗ Fi.CI.BAT: failure " Patchwork
2022-03-15 18:24 ` [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for Add GuC Error Capture Support (rev2) Patchwork
2022-03-16  1:24   ` Teres Alexis, Alan Previn
2022-03-15 18:25 ` [Intel-gfx] ✗ Fi.CI.SPARSE: " Patchwork
2022-03-15 18:58 ` [Intel-gfx] ✓ Fi.CI.BAT: success " Patchwork
2022-03-15 22:50 ` [Intel-gfx] ✓ Fi.CI.IGT: " Patchwork

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=b2dd9821-d016-872c-6f23-cb71f99227ec@intel.com \
    --to=alan.previn.teres.alexis@intel.com \
    --cc=intel-gfx@lists.freedesktop.org \
    --cc=kbuild-all@lists.01.org \
    --cc=lkp@intel.com \
    --cc=llvm@lists.linux.dev \
    /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 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.