From: kernel test robot <lkp@intel.com>
To: Lucas De Marchi <lucas.demarchi@intel.com>,
intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org
Cc: kbuild-all@lists.01.org, daniel.vetter@ffwll.ch,
llvm@lists.linux.dev, Lucas De Marchi <lucas.demarchi@intel.com>,
Chris Wilson <chris@chris-wilson.co.uk>,
tzimmermann@suse.de, christian.koenig@amd.com
Subject: Re: [Intel-gfx] [PATCH] iosys-map: Add word-sized reads
Date: Fri, 10 Jun 2022 10:55:04 +0800 [thread overview]
Message-ID: <202206101010.IAvFUbqo-lkp@intel.com> (raw)
In-Reply-To: <20220609232020.2292649-1-lucas.demarchi@intel.com>
Hi Lucas,
Thank you for the patch! Yet something to improve:
[auto build test ERROR on drm-tip/drm-tip]
[also build test ERROR on linus/master v5.19-rc1 next-20220609]
[cannot apply to tegra-drm/drm/tegra/for-next]
[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/intel-lab-lkp/linux/commits/Lucas-De-Marchi/iosys-map-Add-word-sized-reads/20220610-072113
base: git://anongit.freedesktop.org/drm/drm-tip drm-tip
config: i386-randconfig-a013 (https://download.01.org/0day-ci/archive/20220610/202206101010.IAvFUbqo-lkp@intel.com/config)
compiler: clang version 15.0.0 (https://github.com/llvm/llvm-project 70d35fe1257e429266b83025997b400e9f79110e)
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/intel-lab-lkp/linux/commit/7b9b2d6b8d738fe2857fa1a96f7f3c9d8c11e9cd
git remote add linux-review https://github.com/intel-lab-lkp/linux
git fetch --no-tags linux-review Lucas-De-Marchi/iosys-map-Add-word-sized-reads/20220610-072113
git checkout 7b9b2d6b8d738fe2857fa1a96f7f3c9d8c11e9cd
# save the config file
mkdir build_dir && cp config build_dir/.config
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 where applicable
Reported-by: kernel test robot <lkp@intel.com>
All errors (new ones prefixed by >>):
>> drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c:1154:14: error: unknown type name '__iosys_map_rd_io_u64_case'
*last_in = record_read(&rec_map, last_switch_in_stamp);
^
drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c:1134:2: note: expanded from macro 'record_read'
iosys_map_rd_field(map_, 0, struct guc_engine_usage_record, field_)
^
include/linux/iosys-map.h:452:2: note: expanded from macro 'iosys_map_rd_field'
iosys_map_rd(map__, struct_offset__ + offsetof(struct_type__, field__), \
^
include/linux/iosys-map.h:366:3: note: expanded from macro 'iosys_map_rd'
__iosys_map_rd_io(val, (map__)->vaddr_iomem + offset__, type__);\
^
include/linux/iosys-map.h:347:2: note: expanded from macro '__iosys_map_rd_io'
__iosys_map_rd_io_u64_case(val__, vaddr_iomem__) \
^
>> drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c:1154:14: error: type-id cannot have a name
drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c:1134:2: note: expanded from macro 'record_read'
iosys_map_rd_field(map_, 0, struct guc_engine_usage_record, field_)
^
include/linux/iosys-map.h:452:2: note: expanded from macro 'iosys_map_rd_field'
iosys_map_rd(map__, struct_offset__ + offsetof(struct_type__, field__), \
^
include/linux/iosys-map.h:366:21: note: expanded from macro 'iosys_map_rd'
__iosys_map_rd_io(val, (map__)->vaddr_iomem + offset__, type__);\
^
>> drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c:1154:14: error: expected ')'
drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c:1134:2: note: expanded from macro 'record_read'
iosys_map_rd_field(map_, 0, struct guc_engine_usage_record, field_)
^
include/linux/iosys-map.h:452:2: note: expanded from macro 'iosys_map_rd_field'
iosys_map_rd(map__, struct_offset__ + offsetof(struct_type__, field__), \
^
include/linux/iosys-map.h:366:3: note: expanded from macro 'iosys_map_rd'
__iosys_map_rd_io(val, (map__)->vaddr_iomem + offset__, type__);\
^
include/linux/iosys-map.h:347:34: note: expanded from macro '__iosys_map_rd_io'
__iosys_map_rd_io_u64_case(val__, vaddr_iomem__) \
^
drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c:1154:14: note: to match this '('
drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c:1134:2: note: expanded from macro 'record_read'
iosys_map_rd_field(map_, 0, struct guc_engine_usage_record, field_)
^
include/linux/iosys-map.h:452:2: note: expanded from macro 'iosys_map_rd_field'
iosys_map_rd(map__, struct_offset__ + offsetof(struct_type__, field__), \
^
include/linux/iosys-map.h:366:3: note: expanded from macro 'iosys_map_rd'
__iosys_map_rd_io(val, (map__)->vaddr_iomem + offset__, type__);\
^
include/linux/iosys-map.h:347:28: note: expanded from macro '__iosys_map_rd_io'
__iosys_map_rd_io_u64_case(val__, vaddr_iomem__) \
^
drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c:1155:9: error: unknown type name '__iosys_map_rd_io_u64_case'
*id = record_read(&rec_map, current_context_index);
^
drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c:1134:2: note: expanded from macro 'record_read'
iosys_map_rd_field(map_, 0, struct guc_engine_usage_record, field_)
^
include/linux/iosys-map.h:452:2: note: expanded from macro 'iosys_map_rd_field'
iosys_map_rd(map__, struct_offset__ + offsetof(struct_type__, field__), \
^
include/linux/iosys-map.h:366:3: note: expanded from macro 'iosys_map_rd'
__iosys_map_rd_io(val, (map__)->vaddr_iomem + offset__, type__);\
^
include/linux/iosys-map.h:347:2: note: expanded from macro '__iosys_map_rd_io'
__iosys_map_rd_io_u64_case(val__, vaddr_iomem__) \
^
drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c:1155:9: error: type-id cannot have a name
drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c:1134:2: note: expanded from macro 'record_read'
iosys_map_rd_field(map_, 0, struct guc_engine_usage_record, field_)
^
include/linux/iosys-map.h:452:2: note: expanded from macro 'iosys_map_rd_field'
iosys_map_rd(map__, struct_offset__ + offsetof(struct_type__, field__), \
^
include/linux/iosys-map.h:366:21: note: expanded from macro 'iosys_map_rd'
__iosys_map_rd_io(val, (map__)->vaddr_iomem + offset__, type__);\
^
drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c:1155:9: error: expected ')'
drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c:1134:2: note: expanded from macro 'record_read'
iosys_map_rd_field(map_, 0, struct guc_engine_usage_record, field_)
^
include/linux/iosys-map.h:452:2: note: expanded from macro 'iosys_map_rd_field'
iosys_map_rd(map__, struct_offset__ + offsetof(struct_type__, field__), \
^
include/linux/iosys-map.h:366:3: note: expanded from macro 'iosys_map_rd'
__iosys_map_rd_io(val, (map__)->vaddr_iomem + offset__, type__);\
^
include/linux/iosys-map.h:347:34: note: expanded from macro '__iosys_map_rd_io'
__iosys_map_rd_io_u64_case(val__, vaddr_iomem__) \
^
drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c:1155:9: note: to match this '('
drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c:1134:2: note: expanded from macro 'record_read'
iosys_map_rd_field(map_, 0, struct guc_engine_usage_record, field_)
^
include/linux/iosys-map.h:452:2: note: expanded from macro 'iosys_map_rd_field'
iosys_map_rd(map__, struct_offset__ + offsetof(struct_type__, field__), \
^
include/linux/iosys-map.h:366:3: note: expanded from macro 'iosys_map_rd'
__iosys_map_rd_io(val, (map__)->vaddr_iomem + offset__, type__);\
^
include/linux/iosys-map.h:347:28: note: expanded from macro '__iosys_map_rd_io'
__iosys_map_rd_io_u64_case(val__, vaddr_iomem__) \
^
drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c:1156:12: error: unknown type name '__iosys_map_rd_io_u64_case'
*total = record_read(&rec_map, total_runtime);
^
drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c:1134:2: note: expanded from macro 'record_read'
iosys_map_rd_field(map_, 0, struct guc_engine_usage_record, field_)
^
include/linux/iosys-map.h:452:2: note: expanded from macro 'iosys_map_rd_field'
iosys_map_rd(map__, struct_offset__ + offsetof(struct_type__, field__), \
^
include/linux/iosys-map.h:366:3: note: expanded from macro 'iosys_map_rd'
__iosys_map_rd_io(val, (map__)->vaddr_iomem + offset__, type__);\
^
include/linux/iosys-map.h:347:2: note: expanded from macro '__iosys_map_rd_io'
__iosys_map_rd_io_u64_case(val__, vaddr_iomem__) \
^
drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c:1156:12: error: type-id cannot have a name
drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c:1134:2: note: expanded from macro 'record_read'
iosys_map_rd_field(map_, 0, struct guc_engine_usage_record, field_)
^
include/linux/iosys-map.h:452:2: note: expanded from macro 'iosys_map_rd_field'
iosys_map_rd(map__, struct_offset__ + offsetof(struct_type__, field__), \
^
include/linux/iosys-map.h:366:21: note: expanded from macro 'iosys_map_rd'
__iosys_map_rd_io(val, (map__)->vaddr_iomem + offset__, type__);\
--
>> drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c:165:6: error: unknown type name '__iosys_map_rd_io_u64_case'
ads_blob_read(guc, policies.dpc_promote_time));
^
drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c:65:2: note: expanded from macro 'ads_blob_read'
iosys_map_rd_field(&(guc_)->ads_map, 0, struct __guc_ads_blob, field_)
^
include/linux/iosys-map.h:452:2: note: expanded from macro 'iosys_map_rd_field'
iosys_map_rd(map__, struct_offset__ + offsetof(struct_type__, field__), \
^
include/linux/iosys-map.h:366:3: note: expanded from macro 'iosys_map_rd'
__iosys_map_rd_io(val, (map__)->vaddr_iomem + offset__, type__);\
^
include/linux/iosys-map.h:347:2: note: expanded from macro '__iosys_map_rd_io'
__iosys_map_rd_io_u64_case(val__, vaddr_iomem__) \
^
>> drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c:165:6: error: type-id cannot have a name
drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c:65:2: note: expanded from macro 'ads_blob_read'
iosys_map_rd_field(&(guc_)->ads_map, 0, struct __guc_ads_blob, field_)
^
include/linux/iosys-map.h:452:2: note: expanded from macro 'iosys_map_rd_field'
iosys_map_rd(map__, struct_offset__ + offsetof(struct_type__, field__), \
^
include/linux/iosys-map.h:366:21: note: expanded from macro 'iosys_map_rd'
__iosys_map_rd_io(val, (map__)->vaddr_iomem + offset__, type__);\
^
>> drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c:165:6: error: expected ')'
drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c:65:2: note: expanded from macro 'ads_blob_read'
iosys_map_rd_field(&(guc_)->ads_map, 0, struct __guc_ads_blob, field_)
^
include/linux/iosys-map.h:452:2: note: expanded from macro 'iosys_map_rd_field'
iosys_map_rd(map__, struct_offset__ + offsetof(struct_type__, field__), \
^
include/linux/iosys-map.h:366:3: note: expanded from macro 'iosys_map_rd'
__iosys_map_rd_io(val, (map__)->vaddr_iomem + offset__, type__);\
^
include/linux/iosys-map.h:347:34: note: expanded from macro '__iosys_map_rd_io'
__iosys_map_rd_io_u64_case(val__, vaddr_iomem__) \
^
drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c:165:6: note: to match this '('
drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c:65:2: note: expanded from macro 'ads_blob_read'
iosys_map_rd_field(&(guc_)->ads_map, 0, struct __guc_ads_blob, field_)
^
include/linux/iosys-map.h:452:2: note: expanded from macro 'iosys_map_rd_field'
iosys_map_rd(map__, struct_offset__ + offsetof(struct_type__, field__), \
^
include/linux/iosys-map.h:366:3: note: expanded from macro 'iosys_map_rd'
__iosys_map_rd_io(val, (map__)->vaddr_iomem + offset__, type__);\
^
include/linux/iosys-map.h:347:28: note: expanded from macro '__iosys_map_rd_io'
__iosys_map_rd_io_u64_case(val__, vaddr_iomem__) \
^
drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c:167:6: error: unknown type name '__iosys_map_rd_io_u64_case'
ads_blob_read(guc, policies.max_num_work_items));
^
drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c:65:2: note: expanded from macro 'ads_blob_read'
iosys_map_rd_field(&(guc_)->ads_map, 0, struct __guc_ads_blob, field_)
^
include/linux/iosys-map.h:452:2: note: expanded from macro 'iosys_map_rd_field'
iosys_map_rd(map__, struct_offset__ + offsetof(struct_type__, field__), \
^
include/linux/iosys-map.h:366:3: note: expanded from macro 'iosys_map_rd'
__iosys_map_rd_io(val, (map__)->vaddr_iomem + offset__, type__);\
^
include/linux/iosys-map.h:347:2: note: expanded from macro '__iosys_map_rd_io'
__iosys_map_rd_io_u64_case(val__, vaddr_iomem__) \
^
drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c:167:6: error: type-id cannot have a name
drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c:65:2: note: expanded from macro 'ads_blob_read'
iosys_map_rd_field(&(guc_)->ads_map, 0, struct __guc_ads_blob, field_)
^
include/linux/iosys-map.h:452:2: note: expanded from macro 'iosys_map_rd_field'
iosys_map_rd(map__, struct_offset__ + offsetof(struct_type__, field__), \
^
include/linux/iosys-map.h:366:21: note: expanded from macro 'iosys_map_rd'
__iosys_map_rd_io(val, (map__)->vaddr_iomem + offset__, type__);\
^
drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c:167:6: error: expected ')'
drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c:65:2: note: expanded from macro 'ads_blob_read'
iosys_map_rd_field(&(guc_)->ads_map, 0, struct __guc_ads_blob, field_)
^
include/linux/iosys-map.h:452:2: note: expanded from macro 'iosys_map_rd_field'
iosys_map_rd(map__, struct_offset__ + offsetof(struct_type__, field__), \
^
include/linux/iosys-map.h:366:3: note: expanded from macro 'iosys_map_rd'
__iosys_map_rd_io(val, (map__)->vaddr_iomem + offset__, type__);\
^
include/linux/iosys-map.h:347:34: note: expanded from macro '__iosys_map_rd_io'
__iosys_map_rd_io_u64_case(val__, vaddr_iomem__) \
^
drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c:167:6: note: to match this '('
drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c:65:2: note: expanded from macro 'ads_blob_read'
iosys_map_rd_field(&(guc_)->ads_map, 0, struct __guc_ads_blob, field_)
^
include/linux/iosys-map.h:452:2: note: expanded from macro 'iosys_map_rd_field'
iosys_map_rd(map__, struct_offset__ + offsetof(struct_type__, field__), \
^
include/linux/iosys-map.h:366:3: note: expanded from macro 'iosys_map_rd'
__iosys_map_rd_io(val, (map__)->vaddr_iomem + offset__, type__);\
^
include/linux/iosys-map.h:347:28: note: expanded from macro '__iosys_map_rd_io'
__iosys_map_rd_io_u64_case(val__, vaddr_iomem__) \
^
drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c:169:6: error: unknown type name '__iosys_map_rd_io_u64_case'
ads_blob_read(guc, policies.global_flags));
^
drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c:65:2: note: expanded from macro 'ads_blob_read'
iosys_map_rd_field(&(guc_)->ads_map, 0, struct __guc_ads_blob, field_)
^
include/linux/iosys-map.h:452:2: note: expanded from macro 'iosys_map_rd_field'
iosys_map_rd(map__, struct_offset__ + offsetof(struct_type__, field__), \
^
include/linux/iosys-map.h:366:3: note: expanded from macro 'iosys_map_rd'
__iosys_map_rd_io(val, (map__)->vaddr_iomem + offset__, type__);\
^
include/linux/iosys-map.h:347:2: note: expanded from macro '__iosys_map_rd_io'
__iosys_map_rd_io_u64_case(val__, vaddr_iomem__) \
^
drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c:169:6: error: type-id cannot have a name
drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c:65:2: note: expanded from macro 'ads_blob_read'
iosys_map_rd_field(&(guc_)->ads_map, 0, struct __guc_ads_blob, field_)
^
include/linux/iosys-map.h:452:2: note: expanded from macro 'iosys_map_rd_field'
iosys_map_rd(map__, struct_offset__ + offsetof(struct_type__, field__), \
^
include/linux/iosys-map.h:366:21: note: expanded from macro 'iosys_map_rd'
__iosys_map_rd_io(val, (map__)->vaddr_iomem + offset__, type__);\
vim +/__iosys_map_rd_io_u64_case +1154 drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c
77cdd054dd2ced Umesh Nerlige Ramappa 2021-10-26 1132
4801b99588a2e0 Lucas De Marchi 2022-02-16 1133 #define record_read(map_, field_) \
4801b99588a2e0 Lucas De Marchi 2022-02-16 1134 iosys_map_rd_field(map_, 0, struct guc_engine_usage_record, field_)
4801b99588a2e0 Lucas De Marchi 2022-02-16 1135
512712a824de9b Umesh Nerlige Ramappa 2022-01-24 1136 /*
512712a824de9b Umesh Nerlige Ramappa 2022-01-24 1137 * GuC updates shared memory and KMD reads it. Since this is not synchronized,
512712a824de9b Umesh Nerlige Ramappa 2022-01-24 1138 * we run into a race where the value read is inconsistent. Sometimes the
512712a824de9b Umesh Nerlige Ramappa 2022-01-24 1139 * inconsistency is in reading the upper MSB bytes of the last_in value when
512712a824de9b Umesh Nerlige Ramappa 2022-01-24 1140 * this race occurs. 2 types of cases are seen - upper 8 bits are zero and upper
512712a824de9b Umesh Nerlige Ramappa 2022-01-24 1141 * 24 bits are zero. Since these are non-zero values, it is non-trivial to
512712a824de9b Umesh Nerlige Ramappa 2022-01-24 1142 * determine validity of these values. Instead we read the values multiple times
512712a824de9b Umesh Nerlige Ramappa 2022-01-24 1143 * until they are consistent. In test runs, 3 attempts results in consistent
512712a824de9b Umesh Nerlige Ramappa 2022-01-24 1144 * values. The upper bound is set to 6 attempts and may need to be tuned as per
512712a824de9b Umesh Nerlige Ramappa 2022-01-24 1145 * any new occurences.
512712a824de9b Umesh Nerlige Ramappa 2022-01-24 1146 */
512712a824de9b Umesh Nerlige Ramappa 2022-01-24 1147 static void __get_engine_usage_record(struct intel_engine_cs *engine,
512712a824de9b Umesh Nerlige Ramappa 2022-01-24 1148 u32 *last_in, u32 *id, u32 *total)
77cdd054dd2ced Umesh Nerlige Ramappa 2021-10-26 1149 {
4801b99588a2e0 Lucas De Marchi 2022-02-16 1150 struct iosys_map rec_map = intel_guc_engine_usage_record_map(engine);
512712a824de9b Umesh Nerlige Ramappa 2022-01-24 1151 int i = 0;
512712a824de9b Umesh Nerlige Ramappa 2022-01-24 1152
512712a824de9b Umesh Nerlige Ramappa 2022-01-24 1153 do {
4801b99588a2e0 Lucas De Marchi 2022-02-16 @1154 *last_in = record_read(&rec_map, last_switch_in_stamp);
4801b99588a2e0 Lucas De Marchi 2022-02-16 1155 *id = record_read(&rec_map, current_context_index);
4801b99588a2e0 Lucas De Marchi 2022-02-16 1156 *total = record_read(&rec_map, total_runtime);
512712a824de9b Umesh Nerlige Ramappa 2022-01-24 1157
4801b99588a2e0 Lucas De Marchi 2022-02-16 1158 if (record_read(&rec_map, last_switch_in_stamp) == *last_in &&
4801b99588a2e0 Lucas De Marchi 2022-02-16 1159 record_read(&rec_map, current_context_index) == *id &&
4801b99588a2e0 Lucas De Marchi 2022-02-16 1160 record_read(&rec_map, total_runtime) == *total)
512712a824de9b Umesh Nerlige Ramappa 2022-01-24 1161 break;
512712a824de9b Umesh Nerlige Ramappa 2022-01-24 1162 } while (++i < 6);
512712a824de9b Umesh Nerlige Ramappa 2022-01-24 1163 }
512712a824de9b Umesh Nerlige Ramappa 2022-01-24 1164
--
0-DAY CI Kernel Test Service
https://01.org/lkp
WARNING: multiple messages have this Message-ID (diff)
From: kernel test robot <lkp@intel.com>
To: Lucas De Marchi <lucas.demarchi@intel.com>,
intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org
Cc: llvm@lists.linux.dev, kbuild-all@lists.01.org,
daniel.vetter@ffwll.ch,
Lucas De Marchi <lucas.demarchi@intel.com>,
christian.koenig@amd.com, tzimmermann@suse.de,
Chris Wilson <chris@chris-wilson.co.uk>
Subject: Re: [PATCH] iosys-map: Add word-sized reads
Date: Fri, 10 Jun 2022 10:55:04 +0800 [thread overview]
Message-ID: <202206101010.IAvFUbqo-lkp@intel.com> (raw)
In-Reply-To: <20220609232020.2292649-1-lucas.demarchi@intel.com>
Hi Lucas,
Thank you for the patch! Yet something to improve:
[auto build test ERROR on drm-tip/drm-tip]
[also build test ERROR on linus/master v5.19-rc1 next-20220609]
[cannot apply to tegra-drm/drm/tegra/for-next]
[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/intel-lab-lkp/linux/commits/Lucas-De-Marchi/iosys-map-Add-word-sized-reads/20220610-072113
base: git://anongit.freedesktop.org/drm/drm-tip drm-tip
config: i386-randconfig-a013 (https://download.01.org/0day-ci/archive/20220610/202206101010.IAvFUbqo-lkp@intel.com/config)
compiler: clang version 15.0.0 (https://github.com/llvm/llvm-project 70d35fe1257e429266b83025997b400e9f79110e)
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/intel-lab-lkp/linux/commit/7b9b2d6b8d738fe2857fa1a96f7f3c9d8c11e9cd
git remote add linux-review https://github.com/intel-lab-lkp/linux
git fetch --no-tags linux-review Lucas-De-Marchi/iosys-map-Add-word-sized-reads/20220610-072113
git checkout 7b9b2d6b8d738fe2857fa1a96f7f3c9d8c11e9cd
# save the config file
mkdir build_dir && cp config build_dir/.config
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 where applicable
Reported-by: kernel test robot <lkp@intel.com>
All errors (new ones prefixed by >>):
>> drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c:1154:14: error: unknown type name '__iosys_map_rd_io_u64_case'
*last_in = record_read(&rec_map, last_switch_in_stamp);
^
drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c:1134:2: note: expanded from macro 'record_read'
iosys_map_rd_field(map_, 0, struct guc_engine_usage_record, field_)
^
include/linux/iosys-map.h:452:2: note: expanded from macro 'iosys_map_rd_field'
iosys_map_rd(map__, struct_offset__ + offsetof(struct_type__, field__), \
^
include/linux/iosys-map.h:366:3: note: expanded from macro 'iosys_map_rd'
__iosys_map_rd_io(val, (map__)->vaddr_iomem + offset__, type__);\
^
include/linux/iosys-map.h:347:2: note: expanded from macro '__iosys_map_rd_io'
__iosys_map_rd_io_u64_case(val__, vaddr_iomem__) \
^
>> drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c:1154:14: error: type-id cannot have a name
drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c:1134:2: note: expanded from macro 'record_read'
iosys_map_rd_field(map_, 0, struct guc_engine_usage_record, field_)
^
include/linux/iosys-map.h:452:2: note: expanded from macro 'iosys_map_rd_field'
iosys_map_rd(map__, struct_offset__ + offsetof(struct_type__, field__), \
^
include/linux/iosys-map.h:366:21: note: expanded from macro 'iosys_map_rd'
__iosys_map_rd_io(val, (map__)->vaddr_iomem + offset__, type__);\
^
>> drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c:1154:14: error: expected ')'
drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c:1134:2: note: expanded from macro 'record_read'
iosys_map_rd_field(map_, 0, struct guc_engine_usage_record, field_)
^
include/linux/iosys-map.h:452:2: note: expanded from macro 'iosys_map_rd_field'
iosys_map_rd(map__, struct_offset__ + offsetof(struct_type__, field__), \
^
include/linux/iosys-map.h:366:3: note: expanded from macro 'iosys_map_rd'
__iosys_map_rd_io(val, (map__)->vaddr_iomem + offset__, type__);\
^
include/linux/iosys-map.h:347:34: note: expanded from macro '__iosys_map_rd_io'
__iosys_map_rd_io_u64_case(val__, vaddr_iomem__) \
^
drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c:1154:14: note: to match this '('
drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c:1134:2: note: expanded from macro 'record_read'
iosys_map_rd_field(map_, 0, struct guc_engine_usage_record, field_)
^
include/linux/iosys-map.h:452:2: note: expanded from macro 'iosys_map_rd_field'
iosys_map_rd(map__, struct_offset__ + offsetof(struct_type__, field__), \
^
include/linux/iosys-map.h:366:3: note: expanded from macro 'iosys_map_rd'
__iosys_map_rd_io(val, (map__)->vaddr_iomem + offset__, type__);\
^
include/linux/iosys-map.h:347:28: note: expanded from macro '__iosys_map_rd_io'
__iosys_map_rd_io_u64_case(val__, vaddr_iomem__) \
^
drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c:1155:9: error: unknown type name '__iosys_map_rd_io_u64_case'
*id = record_read(&rec_map, current_context_index);
^
drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c:1134:2: note: expanded from macro 'record_read'
iosys_map_rd_field(map_, 0, struct guc_engine_usage_record, field_)
^
include/linux/iosys-map.h:452:2: note: expanded from macro 'iosys_map_rd_field'
iosys_map_rd(map__, struct_offset__ + offsetof(struct_type__, field__), \
^
include/linux/iosys-map.h:366:3: note: expanded from macro 'iosys_map_rd'
__iosys_map_rd_io(val, (map__)->vaddr_iomem + offset__, type__);\
^
include/linux/iosys-map.h:347:2: note: expanded from macro '__iosys_map_rd_io'
__iosys_map_rd_io_u64_case(val__, vaddr_iomem__) \
^
drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c:1155:9: error: type-id cannot have a name
drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c:1134:2: note: expanded from macro 'record_read'
iosys_map_rd_field(map_, 0, struct guc_engine_usage_record, field_)
^
include/linux/iosys-map.h:452:2: note: expanded from macro 'iosys_map_rd_field'
iosys_map_rd(map__, struct_offset__ + offsetof(struct_type__, field__), \
^
include/linux/iosys-map.h:366:21: note: expanded from macro 'iosys_map_rd'
__iosys_map_rd_io(val, (map__)->vaddr_iomem + offset__, type__);\
^
drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c:1155:9: error: expected ')'
drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c:1134:2: note: expanded from macro 'record_read'
iosys_map_rd_field(map_, 0, struct guc_engine_usage_record, field_)
^
include/linux/iosys-map.h:452:2: note: expanded from macro 'iosys_map_rd_field'
iosys_map_rd(map__, struct_offset__ + offsetof(struct_type__, field__), \
^
include/linux/iosys-map.h:366:3: note: expanded from macro 'iosys_map_rd'
__iosys_map_rd_io(val, (map__)->vaddr_iomem + offset__, type__);\
^
include/linux/iosys-map.h:347:34: note: expanded from macro '__iosys_map_rd_io'
__iosys_map_rd_io_u64_case(val__, vaddr_iomem__) \
^
drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c:1155:9: note: to match this '('
drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c:1134:2: note: expanded from macro 'record_read'
iosys_map_rd_field(map_, 0, struct guc_engine_usage_record, field_)
^
include/linux/iosys-map.h:452:2: note: expanded from macro 'iosys_map_rd_field'
iosys_map_rd(map__, struct_offset__ + offsetof(struct_type__, field__), \
^
include/linux/iosys-map.h:366:3: note: expanded from macro 'iosys_map_rd'
__iosys_map_rd_io(val, (map__)->vaddr_iomem + offset__, type__);\
^
include/linux/iosys-map.h:347:28: note: expanded from macro '__iosys_map_rd_io'
__iosys_map_rd_io_u64_case(val__, vaddr_iomem__) \
^
drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c:1156:12: error: unknown type name '__iosys_map_rd_io_u64_case'
*total = record_read(&rec_map, total_runtime);
^
drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c:1134:2: note: expanded from macro 'record_read'
iosys_map_rd_field(map_, 0, struct guc_engine_usage_record, field_)
^
include/linux/iosys-map.h:452:2: note: expanded from macro 'iosys_map_rd_field'
iosys_map_rd(map__, struct_offset__ + offsetof(struct_type__, field__), \
^
include/linux/iosys-map.h:366:3: note: expanded from macro 'iosys_map_rd'
__iosys_map_rd_io(val, (map__)->vaddr_iomem + offset__, type__);\
^
include/linux/iosys-map.h:347:2: note: expanded from macro '__iosys_map_rd_io'
__iosys_map_rd_io_u64_case(val__, vaddr_iomem__) \
^
drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c:1156:12: error: type-id cannot have a name
drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c:1134:2: note: expanded from macro 'record_read'
iosys_map_rd_field(map_, 0, struct guc_engine_usage_record, field_)
^
include/linux/iosys-map.h:452:2: note: expanded from macro 'iosys_map_rd_field'
iosys_map_rd(map__, struct_offset__ + offsetof(struct_type__, field__), \
^
include/linux/iosys-map.h:366:21: note: expanded from macro 'iosys_map_rd'
__iosys_map_rd_io(val, (map__)->vaddr_iomem + offset__, type__);\
--
>> drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c:165:6: error: unknown type name '__iosys_map_rd_io_u64_case'
ads_blob_read(guc, policies.dpc_promote_time));
^
drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c:65:2: note: expanded from macro 'ads_blob_read'
iosys_map_rd_field(&(guc_)->ads_map, 0, struct __guc_ads_blob, field_)
^
include/linux/iosys-map.h:452:2: note: expanded from macro 'iosys_map_rd_field'
iosys_map_rd(map__, struct_offset__ + offsetof(struct_type__, field__), \
^
include/linux/iosys-map.h:366:3: note: expanded from macro 'iosys_map_rd'
__iosys_map_rd_io(val, (map__)->vaddr_iomem + offset__, type__);\
^
include/linux/iosys-map.h:347:2: note: expanded from macro '__iosys_map_rd_io'
__iosys_map_rd_io_u64_case(val__, vaddr_iomem__) \
^
>> drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c:165:6: error: type-id cannot have a name
drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c:65:2: note: expanded from macro 'ads_blob_read'
iosys_map_rd_field(&(guc_)->ads_map, 0, struct __guc_ads_blob, field_)
^
include/linux/iosys-map.h:452:2: note: expanded from macro 'iosys_map_rd_field'
iosys_map_rd(map__, struct_offset__ + offsetof(struct_type__, field__), \
^
include/linux/iosys-map.h:366:21: note: expanded from macro 'iosys_map_rd'
__iosys_map_rd_io(val, (map__)->vaddr_iomem + offset__, type__);\
^
>> drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c:165:6: error: expected ')'
drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c:65:2: note: expanded from macro 'ads_blob_read'
iosys_map_rd_field(&(guc_)->ads_map, 0, struct __guc_ads_blob, field_)
^
include/linux/iosys-map.h:452:2: note: expanded from macro 'iosys_map_rd_field'
iosys_map_rd(map__, struct_offset__ + offsetof(struct_type__, field__), \
^
include/linux/iosys-map.h:366:3: note: expanded from macro 'iosys_map_rd'
__iosys_map_rd_io(val, (map__)->vaddr_iomem + offset__, type__);\
^
include/linux/iosys-map.h:347:34: note: expanded from macro '__iosys_map_rd_io'
__iosys_map_rd_io_u64_case(val__, vaddr_iomem__) \
^
drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c:165:6: note: to match this '('
drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c:65:2: note: expanded from macro 'ads_blob_read'
iosys_map_rd_field(&(guc_)->ads_map, 0, struct __guc_ads_blob, field_)
^
include/linux/iosys-map.h:452:2: note: expanded from macro 'iosys_map_rd_field'
iosys_map_rd(map__, struct_offset__ + offsetof(struct_type__, field__), \
^
include/linux/iosys-map.h:366:3: note: expanded from macro 'iosys_map_rd'
__iosys_map_rd_io(val, (map__)->vaddr_iomem + offset__, type__);\
^
include/linux/iosys-map.h:347:28: note: expanded from macro '__iosys_map_rd_io'
__iosys_map_rd_io_u64_case(val__, vaddr_iomem__) \
^
drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c:167:6: error: unknown type name '__iosys_map_rd_io_u64_case'
ads_blob_read(guc, policies.max_num_work_items));
^
drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c:65:2: note: expanded from macro 'ads_blob_read'
iosys_map_rd_field(&(guc_)->ads_map, 0, struct __guc_ads_blob, field_)
^
include/linux/iosys-map.h:452:2: note: expanded from macro 'iosys_map_rd_field'
iosys_map_rd(map__, struct_offset__ + offsetof(struct_type__, field__), \
^
include/linux/iosys-map.h:366:3: note: expanded from macro 'iosys_map_rd'
__iosys_map_rd_io(val, (map__)->vaddr_iomem + offset__, type__);\
^
include/linux/iosys-map.h:347:2: note: expanded from macro '__iosys_map_rd_io'
__iosys_map_rd_io_u64_case(val__, vaddr_iomem__) \
^
drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c:167:6: error: type-id cannot have a name
drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c:65:2: note: expanded from macro 'ads_blob_read'
iosys_map_rd_field(&(guc_)->ads_map, 0, struct __guc_ads_blob, field_)
^
include/linux/iosys-map.h:452:2: note: expanded from macro 'iosys_map_rd_field'
iosys_map_rd(map__, struct_offset__ + offsetof(struct_type__, field__), \
^
include/linux/iosys-map.h:366:21: note: expanded from macro 'iosys_map_rd'
__iosys_map_rd_io(val, (map__)->vaddr_iomem + offset__, type__);\
^
drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c:167:6: error: expected ')'
drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c:65:2: note: expanded from macro 'ads_blob_read'
iosys_map_rd_field(&(guc_)->ads_map, 0, struct __guc_ads_blob, field_)
^
include/linux/iosys-map.h:452:2: note: expanded from macro 'iosys_map_rd_field'
iosys_map_rd(map__, struct_offset__ + offsetof(struct_type__, field__), \
^
include/linux/iosys-map.h:366:3: note: expanded from macro 'iosys_map_rd'
__iosys_map_rd_io(val, (map__)->vaddr_iomem + offset__, type__);\
^
include/linux/iosys-map.h:347:34: note: expanded from macro '__iosys_map_rd_io'
__iosys_map_rd_io_u64_case(val__, vaddr_iomem__) \
^
drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c:167:6: note: to match this '('
drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c:65:2: note: expanded from macro 'ads_blob_read'
iosys_map_rd_field(&(guc_)->ads_map, 0, struct __guc_ads_blob, field_)
^
include/linux/iosys-map.h:452:2: note: expanded from macro 'iosys_map_rd_field'
iosys_map_rd(map__, struct_offset__ + offsetof(struct_type__, field__), \
^
include/linux/iosys-map.h:366:3: note: expanded from macro 'iosys_map_rd'
__iosys_map_rd_io(val, (map__)->vaddr_iomem + offset__, type__);\
^
include/linux/iosys-map.h:347:28: note: expanded from macro '__iosys_map_rd_io'
__iosys_map_rd_io_u64_case(val__, vaddr_iomem__) \
^
drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c:169:6: error: unknown type name '__iosys_map_rd_io_u64_case'
ads_blob_read(guc, policies.global_flags));
^
drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c:65:2: note: expanded from macro 'ads_blob_read'
iosys_map_rd_field(&(guc_)->ads_map, 0, struct __guc_ads_blob, field_)
^
include/linux/iosys-map.h:452:2: note: expanded from macro 'iosys_map_rd_field'
iosys_map_rd(map__, struct_offset__ + offsetof(struct_type__, field__), \
^
include/linux/iosys-map.h:366:3: note: expanded from macro 'iosys_map_rd'
__iosys_map_rd_io(val, (map__)->vaddr_iomem + offset__, type__);\
^
include/linux/iosys-map.h:347:2: note: expanded from macro '__iosys_map_rd_io'
__iosys_map_rd_io_u64_case(val__, vaddr_iomem__) \
^
drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c:169:6: error: type-id cannot have a name
drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c:65:2: note: expanded from macro 'ads_blob_read'
iosys_map_rd_field(&(guc_)->ads_map, 0, struct __guc_ads_blob, field_)
^
include/linux/iosys-map.h:452:2: note: expanded from macro 'iosys_map_rd_field'
iosys_map_rd(map__, struct_offset__ + offsetof(struct_type__, field__), \
^
include/linux/iosys-map.h:366:21: note: expanded from macro 'iosys_map_rd'
__iosys_map_rd_io(val, (map__)->vaddr_iomem + offset__, type__);\
vim +/__iosys_map_rd_io_u64_case +1154 drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c
77cdd054dd2ced Umesh Nerlige Ramappa 2021-10-26 1132
4801b99588a2e0 Lucas De Marchi 2022-02-16 1133 #define record_read(map_, field_) \
4801b99588a2e0 Lucas De Marchi 2022-02-16 1134 iosys_map_rd_field(map_, 0, struct guc_engine_usage_record, field_)
4801b99588a2e0 Lucas De Marchi 2022-02-16 1135
512712a824de9b Umesh Nerlige Ramappa 2022-01-24 1136 /*
512712a824de9b Umesh Nerlige Ramappa 2022-01-24 1137 * GuC updates shared memory and KMD reads it. Since this is not synchronized,
512712a824de9b Umesh Nerlige Ramappa 2022-01-24 1138 * we run into a race where the value read is inconsistent. Sometimes the
512712a824de9b Umesh Nerlige Ramappa 2022-01-24 1139 * inconsistency is in reading the upper MSB bytes of the last_in value when
512712a824de9b Umesh Nerlige Ramappa 2022-01-24 1140 * this race occurs. 2 types of cases are seen - upper 8 bits are zero and upper
512712a824de9b Umesh Nerlige Ramappa 2022-01-24 1141 * 24 bits are zero. Since these are non-zero values, it is non-trivial to
512712a824de9b Umesh Nerlige Ramappa 2022-01-24 1142 * determine validity of these values. Instead we read the values multiple times
512712a824de9b Umesh Nerlige Ramappa 2022-01-24 1143 * until they are consistent. In test runs, 3 attempts results in consistent
512712a824de9b Umesh Nerlige Ramappa 2022-01-24 1144 * values. The upper bound is set to 6 attempts and may need to be tuned as per
512712a824de9b Umesh Nerlige Ramappa 2022-01-24 1145 * any new occurences.
512712a824de9b Umesh Nerlige Ramappa 2022-01-24 1146 */
512712a824de9b Umesh Nerlige Ramappa 2022-01-24 1147 static void __get_engine_usage_record(struct intel_engine_cs *engine,
512712a824de9b Umesh Nerlige Ramappa 2022-01-24 1148 u32 *last_in, u32 *id, u32 *total)
77cdd054dd2ced Umesh Nerlige Ramappa 2021-10-26 1149 {
4801b99588a2e0 Lucas De Marchi 2022-02-16 1150 struct iosys_map rec_map = intel_guc_engine_usage_record_map(engine);
512712a824de9b Umesh Nerlige Ramappa 2022-01-24 1151 int i = 0;
512712a824de9b Umesh Nerlige Ramappa 2022-01-24 1152
512712a824de9b Umesh Nerlige Ramappa 2022-01-24 1153 do {
4801b99588a2e0 Lucas De Marchi 2022-02-16 @1154 *last_in = record_read(&rec_map, last_switch_in_stamp);
4801b99588a2e0 Lucas De Marchi 2022-02-16 1155 *id = record_read(&rec_map, current_context_index);
4801b99588a2e0 Lucas De Marchi 2022-02-16 1156 *total = record_read(&rec_map, total_runtime);
512712a824de9b Umesh Nerlige Ramappa 2022-01-24 1157
4801b99588a2e0 Lucas De Marchi 2022-02-16 1158 if (record_read(&rec_map, last_switch_in_stamp) == *last_in &&
4801b99588a2e0 Lucas De Marchi 2022-02-16 1159 record_read(&rec_map, current_context_index) == *id &&
4801b99588a2e0 Lucas De Marchi 2022-02-16 1160 record_read(&rec_map, total_runtime) == *total)
512712a824de9b Umesh Nerlige Ramappa 2022-01-24 1161 break;
512712a824de9b Umesh Nerlige Ramappa 2022-01-24 1162 } while (++i < 6);
512712a824de9b Umesh Nerlige Ramappa 2022-01-24 1163 }
512712a824de9b Umesh Nerlige Ramappa 2022-01-24 1164
--
0-DAY CI Kernel Test Service
https://01.org/lkp
WARNING: multiple messages have this Message-ID (diff)
From: kernel test robot <lkp@intel.com>
To: Lucas De Marchi <lucas.demarchi@intel.com>,
intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org
Cc: kbuild-all@lists.01.org, daniel.vetter@ffwll.ch,
llvm@lists.linux.dev, Lucas De Marchi <lucas.demarchi@intel.com>,
Chris Wilson <chris@chris-wilson.co.uk>,
tzimmermann@suse.de, christian.koenig@amd.com
Subject: Re: [PATCH] iosys-map: Add word-sized reads
Date: Fri, 10 Jun 2022 10:55:04 +0800 [thread overview]
Message-ID: <202206101010.IAvFUbqo-lkp@intel.com> (raw)
In-Reply-To: <20220609232020.2292649-1-lucas.demarchi@intel.com>
Hi Lucas,
Thank you for the patch! Yet something to improve:
[auto build test ERROR on drm-tip/drm-tip]
[also build test ERROR on linus/master v5.19-rc1 next-20220609]
[cannot apply to tegra-drm/drm/tegra/for-next]
[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/intel-lab-lkp/linux/commits/Lucas-De-Marchi/iosys-map-Add-word-sized-reads/20220610-072113
base: git://anongit.freedesktop.org/drm/drm-tip drm-tip
config: i386-randconfig-a013 (https://download.01.org/0day-ci/archive/20220610/202206101010.IAvFUbqo-lkp@intel.com/config)
compiler: clang version 15.0.0 (https://github.com/llvm/llvm-project 70d35fe1257e429266b83025997b400e9f79110e)
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/intel-lab-lkp/linux/commit/7b9b2d6b8d738fe2857fa1a96f7f3c9d8c11e9cd
git remote add linux-review https://github.com/intel-lab-lkp/linux
git fetch --no-tags linux-review Lucas-De-Marchi/iosys-map-Add-word-sized-reads/20220610-072113
git checkout 7b9b2d6b8d738fe2857fa1a96f7f3c9d8c11e9cd
# save the config file
mkdir build_dir && cp config build_dir/.config
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 where applicable
Reported-by: kernel test robot <lkp@intel.com>
All errors (new ones prefixed by >>):
>> drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c:1154:14: error: unknown type name '__iosys_map_rd_io_u64_case'
*last_in = record_read(&rec_map, last_switch_in_stamp);
^
drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c:1134:2: note: expanded from macro 'record_read'
iosys_map_rd_field(map_, 0, struct guc_engine_usage_record, field_)
^
include/linux/iosys-map.h:452:2: note: expanded from macro 'iosys_map_rd_field'
iosys_map_rd(map__, struct_offset__ + offsetof(struct_type__, field__), \
^
include/linux/iosys-map.h:366:3: note: expanded from macro 'iosys_map_rd'
__iosys_map_rd_io(val, (map__)->vaddr_iomem + offset__, type__);\
^
include/linux/iosys-map.h:347:2: note: expanded from macro '__iosys_map_rd_io'
__iosys_map_rd_io_u64_case(val__, vaddr_iomem__) \
^
>> drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c:1154:14: error: type-id cannot have a name
drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c:1134:2: note: expanded from macro 'record_read'
iosys_map_rd_field(map_, 0, struct guc_engine_usage_record, field_)
^
include/linux/iosys-map.h:452:2: note: expanded from macro 'iosys_map_rd_field'
iosys_map_rd(map__, struct_offset__ + offsetof(struct_type__, field__), \
^
include/linux/iosys-map.h:366:21: note: expanded from macro 'iosys_map_rd'
__iosys_map_rd_io(val, (map__)->vaddr_iomem + offset__, type__);\
^
>> drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c:1154:14: error: expected ')'
drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c:1134:2: note: expanded from macro 'record_read'
iosys_map_rd_field(map_, 0, struct guc_engine_usage_record, field_)
^
include/linux/iosys-map.h:452:2: note: expanded from macro 'iosys_map_rd_field'
iosys_map_rd(map__, struct_offset__ + offsetof(struct_type__, field__), \
^
include/linux/iosys-map.h:366:3: note: expanded from macro 'iosys_map_rd'
__iosys_map_rd_io(val, (map__)->vaddr_iomem + offset__, type__);\
^
include/linux/iosys-map.h:347:34: note: expanded from macro '__iosys_map_rd_io'
__iosys_map_rd_io_u64_case(val__, vaddr_iomem__) \
^
drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c:1154:14: note: to match this '('
drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c:1134:2: note: expanded from macro 'record_read'
iosys_map_rd_field(map_, 0, struct guc_engine_usage_record, field_)
^
include/linux/iosys-map.h:452:2: note: expanded from macro 'iosys_map_rd_field'
iosys_map_rd(map__, struct_offset__ + offsetof(struct_type__, field__), \
^
include/linux/iosys-map.h:366:3: note: expanded from macro 'iosys_map_rd'
__iosys_map_rd_io(val, (map__)->vaddr_iomem + offset__, type__);\
^
include/linux/iosys-map.h:347:28: note: expanded from macro '__iosys_map_rd_io'
__iosys_map_rd_io_u64_case(val__, vaddr_iomem__) \
^
drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c:1155:9: error: unknown type name '__iosys_map_rd_io_u64_case'
*id = record_read(&rec_map, current_context_index);
^
drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c:1134:2: note: expanded from macro 'record_read'
iosys_map_rd_field(map_, 0, struct guc_engine_usage_record, field_)
^
include/linux/iosys-map.h:452:2: note: expanded from macro 'iosys_map_rd_field'
iosys_map_rd(map__, struct_offset__ + offsetof(struct_type__, field__), \
^
include/linux/iosys-map.h:366:3: note: expanded from macro 'iosys_map_rd'
__iosys_map_rd_io(val, (map__)->vaddr_iomem + offset__, type__);\
^
include/linux/iosys-map.h:347:2: note: expanded from macro '__iosys_map_rd_io'
__iosys_map_rd_io_u64_case(val__, vaddr_iomem__) \
^
drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c:1155:9: error: type-id cannot have a name
drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c:1134:2: note: expanded from macro 'record_read'
iosys_map_rd_field(map_, 0, struct guc_engine_usage_record, field_)
^
include/linux/iosys-map.h:452:2: note: expanded from macro 'iosys_map_rd_field'
iosys_map_rd(map__, struct_offset__ + offsetof(struct_type__, field__), \
^
include/linux/iosys-map.h:366:21: note: expanded from macro 'iosys_map_rd'
__iosys_map_rd_io(val, (map__)->vaddr_iomem + offset__, type__);\
^
drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c:1155:9: error: expected ')'
drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c:1134:2: note: expanded from macro 'record_read'
iosys_map_rd_field(map_, 0, struct guc_engine_usage_record, field_)
^
include/linux/iosys-map.h:452:2: note: expanded from macro 'iosys_map_rd_field'
iosys_map_rd(map__, struct_offset__ + offsetof(struct_type__, field__), \
^
include/linux/iosys-map.h:366:3: note: expanded from macro 'iosys_map_rd'
__iosys_map_rd_io(val, (map__)->vaddr_iomem + offset__, type__);\
^
include/linux/iosys-map.h:347:34: note: expanded from macro '__iosys_map_rd_io'
__iosys_map_rd_io_u64_case(val__, vaddr_iomem__) \
^
drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c:1155:9: note: to match this '('
drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c:1134:2: note: expanded from macro 'record_read'
iosys_map_rd_field(map_, 0, struct guc_engine_usage_record, field_)
^
include/linux/iosys-map.h:452:2: note: expanded from macro 'iosys_map_rd_field'
iosys_map_rd(map__, struct_offset__ + offsetof(struct_type__, field__), \
^
include/linux/iosys-map.h:366:3: note: expanded from macro 'iosys_map_rd'
__iosys_map_rd_io(val, (map__)->vaddr_iomem + offset__, type__);\
^
include/linux/iosys-map.h:347:28: note: expanded from macro '__iosys_map_rd_io'
__iosys_map_rd_io_u64_case(val__, vaddr_iomem__) \
^
drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c:1156:12: error: unknown type name '__iosys_map_rd_io_u64_case'
*total = record_read(&rec_map, total_runtime);
^
drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c:1134:2: note: expanded from macro 'record_read'
iosys_map_rd_field(map_, 0, struct guc_engine_usage_record, field_)
^
include/linux/iosys-map.h:452:2: note: expanded from macro 'iosys_map_rd_field'
iosys_map_rd(map__, struct_offset__ + offsetof(struct_type__, field__), \
^
include/linux/iosys-map.h:366:3: note: expanded from macro 'iosys_map_rd'
__iosys_map_rd_io(val, (map__)->vaddr_iomem + offset__, type__);\
^
include/linux/iosys-map.h:347:2: note: expanded from macro '__iosys_map_rd_io'
__iosys_map_rd_io_u64_case(val__, vaddr_iomem__) \
^
drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c:1156:12: error: type-id cannot have a name
drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c:1134:2: note: expanded from macro 'record_read'
iosys_map_rd_field(map_, 0, struct guc_engine_usage_record, field_)
^
include/linux/iosys-map.h:452:2: note: expanded from macro 'iosys_map_rd_field'
iosys_map_rd(map__, struct_offset__ + offsetof(struct_type__, field__), \
^
include/linux/iosys-map.h:366:21: note: expanded from macro 'iosys_map_rd'
__iosys_map_rd_io(val, (map__)->vaddr_iomem + offset__, type__);\
--
>> drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c:165:6: error: unknown type name '__iosys_map_rd_io_u64_case'
ads_blob_read(guc, policies.dpc_promote_time));
^
drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c:65:2: note: expanded from macro 'ads_blob_read'
iosys_map_rd_field(&(guc_)->ads_map, 0, struct __guc_ads_blob, field_)
^
include/linux/iosys-map.h:452:2: note: expanded from macro 'iosys_map_rd_field'
iosys_map_rd(map__, struct_offset__ + offsetof(struct_type__, field__), \
^
include/linux/iosys-map.h:366:3: note: expanded from macro 'iosys_map_rd'
__iosys_map_rd_io(val, (map__)->vaddr_iomem + offset__, type__);\
^
include/linux/iosys-map.h:347:2: note: expanded from macro '__iosys_map_rd_io'
__iosys_map_rd_io_u64_case(val__, vaddr_iomem__) \
^
>> drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c:165:6: error: type-id cannot have a name
drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c:65:2: note: expanded from macro 'ads_blob_read'
iosys_map_rd_field(&(guc_)->ads_map, 0, struct __guc_ads_blob, field_)
^
include/linux/iosys-map.h:452:2: note: expanded from macro 'iosys_map_rd_field'
iosys_map_rd(map__, struct_offset__ + offsetof(struct_type__, field__), \
^
include/linux/iosys-map.h:366:21: note: expanded from macro 'iosys_map_rd'
__iosys_map_rd_io(val, (map__)->vaddr_iomem + offset__, type__);\
^
>> drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c:165:6: error: expected ')'
drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c:65:2: note: expanded from macro 'ads_blob_read'
iosys_map_rd_field(&(guc_)->ads_map, 0, struct __guc_ads_blob, field_)
^
include/linux/iosys-map.h:452:2: note: expanded from macro 'iosys_map_rd_field'
iosys_map_rd(map__, struct_offset__ + offsetof(struct_type__, field__), \
^
include/linux/iosys-map.h:366:3: note: expanded from macro 'iosys_map_rd'
__iosys_map_rd_io(val, (map__)->vaddr_iomem + offset__, type__);\
^
include/linux/iosys-map.h:347:34: note: expanded from macro '__iosys_map_rd_io'
__iosys_map_rd_io_u64_case(val__, vaddr_iomem__) \
^
drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c:165:6: note: to match this '('
drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c:65:2: note: expanded from macro 'ads_blob_read'
iosys_map_rd_field(&(guc_)->ads_map, 0, struct __guc_ads_blob, field_)
^
include/linux/iosys-map.h:452:2: note: expanded from macro 'iosys_map_rd_field'
iosys_map_rd(map__, struct_offset__ + offsetof(struct_type__, field__), \
^
include/linux/iosys-map.h:366:3: note: expanded from macro 'iosys_map_rd'
__iosys_map_rd_io(val, (map__)->vaddr_iomem + offset__, type__);\
^
include/linux/iosys-map.h:347:28: note: expanded from macro '__iosys_map_rd_io'
__iosys_map_rd_io_u64_case(val__, vaddr_iomem__) \
^
drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c:167:6: error: unknown type name '__iosys_map_rd_io_u64_case'
ads_blob_read(guc, policies.max_num_work_items));
^
drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c:65:2: note: expanded from macro 'ads_blob_read'
iosys_map_rd_field(&(guc_)->ads_map, 0, struct __guc_ads_blob, field_)
^
include/linux/iosys-map.h:452:2: note: expanded from macro 'iosys_map_rd_field'
iosys_map_rd(map__, struct_offset__ + offsetof(struct_type__, field__), \
^
include/linux/iosys-map.h:366:3: note: expanded from macro 'iosys_map_rd'
__iosys_map_rd_io(val, (map__)->vaddr_iomem + offset__, type__);\
^
include/linux/iosys-map.h:347:2: note: expanded from macro '__iosys_map_rd_io'
__iosys_map_rd_io_u64_case(val__, vaddr_iomem__) \
^
drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c:167:6: error: type-id cannot have a name
drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c:65:2: note: expanded from macro 'ads_blob_read'
iosys_map_rd_field(&(guc_)->ads_map, 0, struct __guc_ads_blob, field_)
^
include/linux/iosys-map.h:452:2: note: expanded from macro 'iosys_map_rd_field'
iosys_map_rd(map__, struct_offset__ + offsetof(struct_type__, field__), \
^
include/linux/iosys-map.h:366:21: note: expanded from macro 'iosys_map_rd'
__iosys_map_rd_io(val, (map__)->vaddr_iomem + offset__, type__);\
^
drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c:167:6: error: expected ')'
drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c:65:2: note: expanded from macro 'ads_blob_read'
iosys_map_rd_field(&(guc_)->ads_map, 0, struct __guc_ads_blob, field_)
^
include/linux/iosys-map.h:452:2: note: expanded from macro 'iosys_map_rd_field'
iosys_map_rd(map__, struct_offset__ + offsetof(struct_type__, field__), \
^
include/linux/iosys-map.h:366:3: note: expanded from macro 'iosys_map_rd'
__iosys_map_rd_io(val, (map__)->vaddr_iomem + offset__, type__);\
^
include/linux/iosys-map.h:347:34: note: expanded from macro '__iosys_map_rd_io'
__iosys_map_rd_io_u64_case(val__, vaddr_iomem__) \
^
drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c:167:6: note: to match this '('
drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c:65:2: note: expanded from macro 'ads_blob_read'
iosys_map_rd_field(&(guc_)->ads_map, 0, struct __guc_ads_blob, field_)
^
include/linux/iosys-map.h:452:2: note: expanded from macro 'iosys_map_rd_field'
iosys_map_rd(map__, struct_offset__ + offsetof(struct_type__, field__), \
^
include/linux/iosys-map.h:366:3: note: expanded from macro 'iosys_map_rd'
__iosys_map_rd_io(val, (map__)->vaddr_iomem + offset__, type__);\
^
include/linux/iosys-map.h:347:28: note: expanded from macro '__iosys_map_rd_io'
__iosys_map_rd_io_u64_case(val__, vaddr_iomem__) \
^
drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c:169:6: error: unknown type name '__iosys_map_rd_io_u64_case'
ads_blob_read(guc, policies.global_flags));
^
drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c:65:2: note: expanded from macro 'ads_blob_read'
iosys_map_rd_field(&(guc_)->ads_map, 0, struct __guc_ads_blob, field_)
^
include/linux/iosys-map.h:452:2: note: expanded from macro 'iosys_map_rd_field'
iosys_map_rd(map__, struct_offset__ + offsetof(struct_type__, field__), \
^
include/linux/iosys-map.h:366:3: note: expanded from macro 'iosys_map_rd'
__iosys_map_rd_io(val, (map__)->vaddr_iomem + offset__, type__);\
^
include/linux/iosys-map.h:347:2: note: expanded from macro '__iosys_map_rd_io'
__iosys_map_rd_io_u64_case(val__, vaddr_iomem__) \
^
drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c:169:6: error: type-id cannot have a name
drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c:65:2: note: expanded from macro 'ads_blob_read'
iosys_map_rd_field(&(guc_)->ads_map, 0, struct __guc_ads_blob, field_)
^
include/linux/iosys-map.h:452:2: note: expanded from macro 'iosys_map_rd_field'
iosys_map_rd(map__, struct_offset__ + offsetof(struct_type__, field__), \
^
include/linux/iosys-map.h:366:21: note: expanded from macro 'iosys_map_rd'
__iosys_map_rd_io(val, (map__)->vaddr_iomem + offset__, type__);\
vim +/__iosys_map_rd_io_u64_case +1154 drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c
77cdd054dd2ced Umesh Nerlige Ramappa 2021-10-26 1132
4801b99588a2e0 Lucas De Marchi 2022-02-16 1133 #define record_read(map_, field_) \
4801b99588a2e0 Lucas De Marchi 2022-02-16 1134 iosys_map_rd_field(map_, 0, struct guc_engine_usage_record, field_)
4801b99588a2e0 Lucas De Marchi 2022-02-16 1135
512712a824de9b Umesh Nerlige Ramappa 2022-01-24 1136 /*
512712a824de9b Umesh Nerlige Ramappa 2022-01-24 1137 * GuC updates shared memory and KMD reads it. Since this is not synchronized,
512712a824de9b Umesh Nerlige Ramappa 2022-01-24 1138 * we run into a race where the value read is inconsistent. Sometimes the
512712a824de9b Umesh Nerlige Ramappa 2022-01-24 1139 * inconsistency is in reading the upper MSB bytes of the last_in value when
512712a824de9b Umesh Nerlige Ramappa 2022-01-24 1140 * this race occurs. 2 types of cases are seen - upper 8 bits are zero and upper
512712a824de9b Umesh Nerlige Ramappa 2022-01-24 1141 * 24 bits are zero. Since these are non-zero values, it is non-trivial to
512712a824de9b Umesh Nerlige Ramappa 2022-01-24 1142 * determine validity of these values. Instead we read the values multiple times
512712a824de9b Umesh Nerlige Ramappa 2022-01-24 1143 * until they are consistent. In test runs, 3 attempts results in consistent
512712a824de9b Umesh Nerlige Ramappa 2022-01-24 1144 * values. The upper bound is set to 6 attempts and may need to be tuned as per
512712a824de9b Umesh Nerlige Ramappa 2022-01-24 1145 * any new occurences.
512712a824de9b Umesh Nerlige Ramappa 2022-01-24 1146 */
512712a824de9b Umesh Nerlige Ramappa 2022-01-24 1147 static void __get_engine_usage_record(struct intel_engine_cs *engine,
512712a824de9b Umesh Nerlige Ramappa 2022-01-24 1148 u32 *last_in, u32 *id, u32 *total)
77cdd054dd2ced Umesh Nerlige Ramappa 2021-10-26 1149 {
4801b99588a2e0 Lucas De Marchi 2022-02-16 1150 struct iosys_map rec_map = intel_guc_engine_usage_record_map(engine);
512712a824de9b Umesh Nerlige Ramappa 2022-01-24 1151 int i = 0;
512712a824de9b Umesh Nerlige Ramappa 2022-01-24 1152
512712a824de9b Umesh Nerlige Ramappa 2022-01-24 1153 do {
4801b99588a2e0 Lucas De Marchi 2022-02-16 @1154 *last_in = record_read(&rec_map, last_switch_in_stamp);
4801b99588a2e0 Lucas De Marchi 2022-02-16 1155 *id = record_read(&rec_map, current_context_index);
4801b99588a2e0 Lucas De Marchi 2022-02-16 1156 *total = record_read(&rec_map, total_runtime);
512712a824de9b Umesh Nerlige Ramappa 2022-01-24 1157
4801b99588a2e0 Lucas De Marchi 2022-02-16 1158 if (record_read(&rec_map, last_switch_in_stamp) == *last_in &&
4801b99588a2e0 Lucas De Marchi 2022-02-16 1159 record_read(&rec_map, current_context_index) == *id &&
4801b99588a2e0 Lucas De Marchi 2022-02-16 1160 record_read(&rec_map, total_runtime) == *total)
512712a824de9b Umesh Nerlige Ramappa 2022-01-24 1161 break;
512712a824de9b Umesh Nerlige Ramappa 2022-01-24 1162 } while (++i < 6);
512712a824de9b Umesh Nerlige Ramappa 2022-01-24 1163 }
512712a824de9b Umesh Nerlige Ramappa 2022-01-24 1164
--
0-DAY CI Kernel Test Service
https://01.org/lkp
next prev parent reply other threads:[~2022-06-10 2:56 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-06-09 23:20 [Intel-gfx] [PATCH] iosys-map: Add word-sized reads Lucas De Marchi
2022-06-09 23:20 ` Lucas De Marchi
2022-06-09 23:36 ` [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for " Patchwork
2022-06-09 23:36 ` [Intel-gfx] ✗ Fi.CI.SPARSE: " Patchwork
2022-06-10 2:55 ` kernel test robot [this message]
2022-06-10 2:55 ` [PATCH] " kernel test robot
2022-06-10 2:55 ` kernel test robot
2022-06-10 7:05 ` [Intel-gfx] ✓ Fi.CI.BAT: success for " Patchwork
2022-06-10 7:20 ` [Intel-gfx] [PATCH] " Christian König
2022-06-10 7:20 ` Christian König
2022-06-10 17:35 ` [Intel-gfx] " Lucas De Marchi
2022-06-10 17:35 ` Lucas De Marchi
2022-06-10 14:17 ` [Intel-gfx] " kernel test robot
2022-06-10 14:17 ` kernel test robot
2022-06-11 7:02 ` [Intel-gfx] ✓ Fi.CI.IGT: success for " Patchwork
2022-06-13 10:58 ` [Intel-gfx] [PATCH] " Thomas Zimmermann
2022-06-13 10:58 ` Thomas Zimmermann
2022-06-13 18:37 ` [Intel-gfx] " Lucas De Marchi
2022-06-13 18:37 ` Lucas De Marchi
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=202206101010.IAvFUbqo-lkp@intel.com \
--to=lkp@intel.com \
--cc=chris@chris-wilson.co.uk \
--cc=christian.koenig@amd.com \
--cc=daniel.vetter@ffwll.ch \
--cc=dri-devel@lists.freedesktop.org \
--cc=intel-gfx@lists.freedesktop.org \
--cc=kbuild-all@lists.01.org \
--cc=llvm@lists.linux.dev \
--cc=lucas.demarchi@intel.com \
--cc=tzimmermann@suse.de \
/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.