All of lore.kernel.org
 help / color / mirror / Atom feed
* [igt-dev] [PATCH i-g-t 0/4] Better document i915 tests
@ 2023-05-05 12:46 Mauro Carvalho Chehab
  2023-05-05 12:46 ` [igt-dev] [PATCH i-g-t 1/4] scripts/test_list.py: add support to exclude files Mauro Carvalho Chehab
                   ` (5 more replies)
  0 siblings, 6 replies; 7+ messages in thread
From: Mauro Carvalho Chehab @ 2023-05-05 12:46 UTC (permalink / raw)
  To: igt-dev

From: Mauro Carvalho Chehab <mchehab@kernel.org>

The i915 test documentation has several gaps. Convert them
to use igt_doc.py tool, adding information from existing
sources.

Please notice that patches 3 and 4 were generated via some
script, which collects data from several different sources.

This is the first step to have a more comprehensive documentation
for i915 tests. Manual work will be needed in order to do some
additional cleanups.

Mauro Carvalho Chehab (4):
  scripts/test_list.py: add support to exclude files
  testplan/meson.build: add i915 support for a testplan document
  tests/i915: Improve test documentation
  tests/i915: Enhance test documentation

 docs/testplan/conf.py                       |    2 +-
 docs/testplan/meson.build                   |   10 +-
 scripts/test_list.py                        |   10 +
 tests/core_auth.c                           |   25 +
 tests/core_getclient.c                      |   12 +
 tests/core_getstats.c                       |   12 +
 tests/core_getversion.c                     |   12 +
 tests/core_hotunplug.c                      |   50 +
 tests/core_setmaster.c                      |   19 +
 tests/core_setmaster_vs_auth.c              |   13 +
 tests/debugfs_test.c                        |   38 +
 tests/device_reset.c                        |   25 +
 tests/dmabuf.c                              |    8 +
 tests/drm_mm.c                              |    8 +
 tests/dumb_buffer.c                         |   37 +
 tests/i915/api_intel_allocator.c            |   77 +
 tests/i915/api_intel_bb.c                   |  111 ++
 tests/i915/drm_fdinfo.c                     |   44 +
 tests/i915/gem_bad_reloc.c                  |   19 +
 tests/i915/gem_barrier_race.c               |   14 +
 tests/i915/gem_basic.c                      |   37 +
 tests/i915/gem_blits.c                      |   11 +
 tests/i915/gem_busy.c                       |   46 +
 tests/i915/gem_caching.c                    |   20 +
 tests/i915/gem_ccs.c                        |   33 +
 tests/i915/gem_close.c                      |   13 +
 tests/i915/gem_close_race.c                 |   53 +
 tests/i915/gem_create.c                     |   70 +
 tests/i915/gem_cs_tlb.c                     |   12 +
 tests/i915/gem_ctx_bad_destroy.c            |   18 +
 tests/i915/gem_ctx_create.c                 |   75 +
 tests/i915/gem_ctx_engines.c                |   26 +
 tests/i915/gem_ctx_exec.c                   |   53 +
 tests/i915/gem_ctx_freq.c                   |   11 +
 tests/i915/gem_ctx_isolation.c              |   53 +
 tests/i915/gem_ctx_param.c                  |  146 ++
 tests/i915/gem_ctx_persistence.c            |  154 ++
 tests/i915/gem_ctx_shared.c                 |   51 +
 tests/i915/gem_ctx_sseu.c                   |   14 +
 tests/i915/gem_ctx_switch.c                 |  365 +++++
 tests/i915/gem_eio.c                        |  178 +++
 tests/i915/gem_evict_alignment.c            |   17 +
 tests/i915/gem_evict_everything.c           |   61 +
 tests/i915/gem_exec_alignment.c             |   27 +
 tests/i915/gem_exec_async.c                 |   14 +
 tests/i915/gem_exec_await.c                 |   16 +
 tests/i915/gem_exec_balancer.c              |  194 +++
 tests/i915/gem_exec_basic.c                 |   16 +
 tests/i915/gem_exec_big.c                   |   14 +
 tests/i915/gem_exec_capture.c               |   40 +
 tests/i915/gem_exec_create.c                |   44 +
 tests/i915/gem_exec_endless.c               |   11 +
 tests/i915/gem_exec_fair.c                  |   92 ++
 tests/i915/gem_exec_fence.c                 |  369 +++++
 tests/i915/gem_exec_flush.c                 | 1496 +++++++++++++++++++
 tests/i915/gem_exec_gttfill.c               |   35 +
 tests/i915/gem_exec_latency.c               |   30 +
 tests/i915/gem_exec_lut_handle.c            |    7 +
 tests/i915/gem_exec_nop.c                   |   63 +
 tests/i915/gem_exec_parallel.c              |   43 +
 tests/i915/gem_exec_params.c                |  125 ++
 tests/i915/gem_exec_reloc.c                 |  593 ++++++++
 tests/i915/gem_exec_schedule.c              |  336 +++++
 tests/i915/gem_exec_store.c                 |   33 +
 tests/i915/gem_exec_suspend.c               |   81 +
 tests/i915/gem_exec_whisper.c               |  256 ++++
 tests/i915/gem_exercise_blt.c               |   17 +
 tests/i915/gem_fd_exhaustion.c              |    6 +
 tests/i915/gem_fence_thrash.c               |   19 +
 tests/i915/gem_fence_upload.c               |   16 +
 tests/i915/gem_fenced_exec_thrash.c         |   18 +
 tests/i915/gem_flink_basic.c                |   39 +
 tests/i915/gem_flink_race.c                 |   17 +
 tests/i915/gem_gpgpu_fill.c                 |   11 +
 tests/i915/gem_gtt_cpu_tlb.c                |    9 +
 tests/i915/gem_gtt_hog.c                    |    6 +
 tests/i915/gem_gtt_speed.c                  |    6 +
 tests/i915/gem_huc_copy.c                   |   11 +
 tests/i915/gem_linear_blits.c               |   25 +
 tests/i915/gem_lmem_evict.c                 |   10 +
 tests/i915/gem_lmem_swapping.c              |  121 ++
 tests/i915/gem_lut_handle.c                 |    7 +
 tests/i915/gem_madvise.c                    |   31 +
 tests/i915/gem_media_fill.c                 |    8 +
 tests/i915/gem_media_vme.c                  |    8 +
 tests/i915/gem_mmap.c                       |   57 +
 tests/i915/gem_mmap_gtt.c                   |  488 ++++++
 tests/i915/gem_mmap_offset.c                |   76 +
 tests/i915/gem_mmap_wc.c                    |   67 +
 tests/i915/gem_partial_pwrite_pread.c       |   62 +
 tests/i915/gem_pipe_control_store_loop.c    |   17 +
 tests/i915/gem_ppgtt.c                      |   29 +
 tests/i915/gem_pread.c                      |   17 +
 tests/i915/gem_pread_after_blit.c           |   29 +
 tests/i915/gem_pwrite.c                     |   67 +
 tests/i915/gem_pwrite_snooped.c             |    9 +
 tests/i915/gem_pxp.c                        |   79 +
 tests/i915/gem_read_read_speed.c            |   61 +
 tests/i915/gem_readwrite.c                  |   15 +
 tests/i915/gem_reg_read.c                   |   11 +
 tests/i915/gem_render_copy.c                |  120 ++
 tests/i915/gem_render_copy_redux.c          |   17 +
 tests/i915/gem_render_linear_blits.c        |   16 +
 tests/i915/gem_render_tiled_blits.c         |   27 +
 tests/i915/gem_request_retire.c             |   12 +
 tests/i915/gem_reset_stats.c                |  178 +++
 tests/i915/gem_ringfill.c                   |  123 ++
 tests/i915/gem_set_tiling_vs_blt.c          |   15 +
 tests/i915/gem_set_tiling_vs_gtt.c          |    8 +
 tests/i915/gem_set_tiling_vs_pwrite.c       |    8 +
 tests/i915/gem_shrink.c                     |  111 ++
 tests/i915/gem_softpin.c                    |  203 +++
 tests/i915/gem_spin_batch.c                 |   66 +
 tests/i915/gem_streaming_writes.c           |   29 +
 tests/i915/gem_stress.c                     |    7 +
 tests/i915/gem_sync.c                       |  247 +++
 tests/i915/gem_tiled_blits.c                |   17 +
 tests/i915/gem_tiled_fence_blits.c          |   15 +
 tests/i915/gem_tiled_partial_pwrite_pread.c |   12 +
 tests/i915/gem_tiled_pread_basic.c          |    9 +
 tests/i915/gem_tiled_pread_pwrite.c         |    9 +
 tests/i915/gem_tiled_swapping.c             |   10 +
 tests/i915/gem_tiled_wb.c                   |   11 +
 tests/i915/gem_tiled_wc.c                   |    8 +
 tests/i915/gem_tiling_max_stride.c          |    9 +
 tests/i915/gem_unfence_active_buffers.c     |    8 +
 tests/i915/gem_unref_active_buffers.c       |   12 +
 tests/i915/gem_userptr_blits.c              |  302 ++++
 tests/i915/gem_vm_create.c                  |   39 +
 tests/i915/gem_wait.c                       |   71 +
 tests/i915/gem_watchdog.c                   |   11 +
 tests/i915/gem_workarounds.c                |   71 +
 tests/i915/gen3_mixed_blits.c               |    7 +
 tests/i915/gen3_render_linear_blits.c       |    7 +
 tests/i915/gen3_render_mixed_blits.c        |    7 +
 tests/i915/gen3_render_tiledx_blits.c       |    7 +
 tests/i915/gen3_render_tiledy_blits.c       |    7 +
 tests/i915/gen7_exec_parse.c                |   31 +
 tests/i915/gen9_exec_parse.c                |   47 +
 tests/i915/i915_fb_tiling.c                 |    8 +
 tests/i915/i915_getparams_basic.c           |   19 +
 tests/i915/i915_hangman.c                   |   83 +
 tests/i915/i915_hwmon.c                     |   13 +
 tests/i915/i915_module_load.c               |   40 +
 tests/i915/i915_pciid.c                     |   13 +
 tests/i915/i915_pipe_stress.c               |   17 +
 tests/i915/i915_pm_backlight.c              |   25 +
 tests/i915/i915_pm_dc.c                     |   41 +
 tests/i915/i915_pm_freq_api.c               |   11 +
 tests/i915/i915_pm_freq_mult.c              |   10 +
 tests/i915/i915_pm_lpsp.c                   |   12 +
 tests/i915/i915_pm_rc6_residency.c          |   16 +
 tests/i915/i915_pm_rpm.c                    |  190 +++
 tests/i915/i915_pm_rps.c                    |   42 +
 tests/i915/i915_pm_sseu.c                   |    8 +
 tests/i915/i915_power.c                     |   12 +
 tests/i915/i915_query.c                     |   97 ++
 tests/i915/i915_selftest.c                  |   16 +
 tests/i915/i915_suspend.c                   |   79 +
 tests/i915/i915_test_config.json            |   88 ++
 tests/i915/perf.c                           |  266 ++++
 tests/i915/perf_pmu.c                       |  250 ++++
 tests/i915/sysfs_defaults.c                 |   12 +
 tests/i915/sysfs_heartbeat_interval.c       |   25 +
 tests/i915/sysfs_preempt_timeout.c          |   18 +
 tests/i915/sysfs_timeslice_duration.c       |   24 +
 tests/prime_busy.c                          |   27 +
 tests/prime_mmap.c                          |   33 +
 tests/prime_mmap_coherency.c                |   20 +
 tests/prime_self_import.c                   |   50 +
 tests/prime_vgem.c                          |  131 ++
 tests/sw_sync.c                             |   46 +
 tests/syncobj_basic.c                       |   34 +
 tests/syncobj_timeline.c                    |  398 +++++
 tests/syncobj_wait.c                        |  284 ++++
 tests/vgem_basic.c                          |  107 ++
 tests/vgem_slow.c                           |   13 +
 177 files changed, 11954 insertions(+), 5 deletions(-)
 create mode 100644 tests/i915/i915_test_config.json

-- 
2.40.1

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [igt-dev] [PATCH i-g-t 1/4] scripts/test_list.py: add support to exclude files
  2023-05-05 12:46 [igt-dev] [PATCH i-g-t 0/4] Better document i915 tests Mauro Carvalho Chehab
@ 2023-05-05 12:46 ` Mauro Carvalho Chehab
  2023-05-05 12:46 ` [igt-dev] [PATCH i-g-t 2/4] testplan/meson.build: add i915 support for a testplan document Mauro Carvalho Chehab
                   ` (4 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: Mauro Carvalho Chehab @ 2023-05-05 12:46 UTC (permalink / raw)
  To: igt-dev

From: Mauro Carvalho Chehab <mchehab@kernel.org>

Specially when using wildcards, it is interesting to have a
way to exclude some files. This is needed to support some kms
helper functions that, instead of being part of the IGT library,
are stored inside the tests sub-directories.

Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
---
 scripts/test_list.py | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/scripts/test_list.py b/scripts/test_list.py
index 2a53d782a4a0..c9dbf144da1e 100755
--- a/scripts/test_list.py
+++ b/scripts/test_list.py
@@ -208,6 +208,7 @@ class TestList:
 
     {
         "files": [ "tests/driver/*.c" ],
+        "exclude_files": [ "tests/driver/*-helper.c" ],
         "fields": {
             "Category": {
                 "Sub-category": {
@@ -302,10 +303,19 @@ class TestList:
             has_implemented = False
             if not self.filenames:
                 self.filenames = []
+                exclude_files = []
                 files = self.config["files"]
+                exclude_file_glob = self.config.get("exclude_files", [])
+                for cfg_file in exclude_file_glob:
+                    cfg_file = os.path.realpath(os.path.dirname(config_fname)) + "/" + cfg_file
+                    for fname in glob.glob(cfg_file):
+                        exclude_files.append(fname)
+
                 for cfg_file in files:
                     cfg_file = os.path.realpath(os.path.dirname(config_fname)) + "/" + cfg_file
                     for fname in glob.glob(cfg_file):
+                        if fname in exclude_files:
+                            continue
                         self.filenames.append(fname)
                         has_implemented = True
             else:
-- 
2.40.1

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [igt-dev] [PATCH i-g-t 2/4] testplan/meson.build: add i915 support for a testplan document
  2023-05-05 12:46 [igt-dev] [PATCH i-g-t 0/4] Better document i915 tests Mauro Carvalho Chehab
  2023-05-05 12:46 ` [igt-dev] [PATCH i-g-t 1/4] scripts/test_list.py: add support to exclude files Mauro Carvalho Chehab
@ 2023-05-05 12:46 ` Mauro Carvalho Chehab
  2023-05-05 12:46 ` [igt-dev] [PATCH i-g-t 3/4] tests/i915: Improve test documentation Mauro Carvalho Chehab
                   ` (3 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: Mauro Carvalho Chehab @ 2023-05-05 12:46 UTC (permalink / raw)
  To: igt-dev

From: Mauro Carvalho Chehab <mchehab@kernel.org>

Prepare to support documenting the i915 tests via in-code macros, in a
similar way to how Xe tests are documented.

For now, don't enable checking i915 documentation here, as this
may consume a lot of build time on desktops.

Please notice that we had to exclude documentation for
gem_concurrent_all.c, as there are too many subtests there:

	${build}/tests/gem_concurrent_all --list|wc -l
	428400

Adding documentation for all of them (even with wildcards) would
produce a very big document, seriously affecting build time.

Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
---
 docs/testplan/conf.py            |  2 +-
 docs/testplan/meson.build        | 10 ++--
 tests/i915/i915_test_config.json | 88 ++++++++++++++++++++++++++++++++
 3 files changed, 95 insertions(+), 5 deletions(-)
 create mode 100644 tests/i915/i915_test_config.json

diff --git a/docs/testplan/conf.py b/docs/testplan/conf.py
index a73ad99b09b6..a7db5c3a230d 100644
--- a/docs/testplan/conf.py
+++ b/docs/testplan/conf.py
@@ -68,5 +68,5 @@ htmlhelp_basename = 'IGT'
 
 # rst2pdf
 pdf_documents = [
-    ('index', u'xe_tests', u'IGT Xe Tests', u'IGT authors'),
+    ('index', u'tests', u'IGT Xe Tests', u'IGT authors'),
 ]
diff --git a/docs/testplan/meson.build b/docs/testplan/meson.build
index e36713960ccd..bc022ae50e08 100644
--- a/docs/testplan/meson.build
+++ b/docs/testplan/meson.build
@@ -7,6 +7,7 @@ rst2pdf = find_program('rst2pdf', required: false)
 stylesheet = join_paths(meson.current_source_dir(), 'testplan.css')
 
 xe_test_config = join_paths(source_root, 'tests', 'xe', 'xe_test_config.json')
+i915_test_config = join_paths(source_root, 'tests', 'i915', 'i915_test_config.json')
 
 check_testlist = []
 if build_tests
@@ -22,8 +23,9 @@ else
 	doc_dependencies = []
 endif
 
-test_dict = { 'xe_tests':
-		{ 'input': xe_test_config, 'extra_args': check_testlist }
+test_dict = {
+		'xe_tests': { 'input': xe_test_config, 'extra_args': check_testlist },
+		'i915_tests': { 'input': i915_test_config, 'extra_args': [] },
 	    }
 
 foreach testplan, fields: test_dict
@@ -68,14 +70,14 @@ if sphinx.found()
 	if rst2pdf.found()
 		sphinx_out_pdf = meson.current_build_dir() + '/pdf'
 
-		custom_target('xe_tests.pdf',
+		custom_target('tests.pdf',
 			      build_by_default : true,
 			      command : [ 'sphinx-build', '-c', meson.current_source_dir(),
 					  '-b', 'pdf',
 					  '-D', 'version=' + meson.project_version(),
 					  meson.current_build_dir(), sphinx_out_pdf],
 			      input : index_rst,
-			      output : 'xe_tests.pdf'
+			      output : 'tests.pdf'
 			     )
 	endif
 endif
diff --git a/tests/i915/i915_test_config.json b/tests/i915/i915_test_config.json
new file mode 100644
index 000000000000..812cb73b9f52
--- /dev/null
+++ b/tests/i915/i915_test_config.json
@@ -0,0 +1,88 @@
+{
+    "description": "JSON file to be used to parse i915 documentation",
+    "files": [ "*.c", "../core_auth.c", "../core_getclient.c",
+               "../core_getstats.c", "../core_getversion.c",
+               "../core_hotunplug.c", "../core_setmaster.c",
+               "../core_setmaster_vs_auth.c", "../debugfs_test.c",
+               "../device_reset.c", "../dmabuf.c",
+               "../drm_import_export.c", "../drm_mm.c",
+               "../dumb_buffer.c", "../prime_busy.c", "../prime_mmap.c",
+               "../prime_mmap_coherency.c", "../prime_self_import.c",
+               "../prime_vgem.c", "../sw_sync.c", "../syncobj_basic.c",
+               "../syncobj_timeline.c", "../syncobj_wait.c",
+               "../vgem_basic.c", "../vgem_slow.c" ],
+    "exclude_files": [ "kms_*", "gem_concurrent_all.c" ],
+    "fields": {
+	"Mega feature": {
+                "_properties_": {
+                    "description": "Contains the mega feature for end to end use case, e. g. the 'sellable' feature."
+                },
+                "Category": {
+                "_properties_": {
+                    "description": "Contains the major group for the tested functionality"
+                },
+
+                "Sub-category": {
+                    "_properties_": {
+                        "description": "Contains the minor group of the functionality"
+                    },
+                    "Functionality": {
+                        "_properties_": {
+                            "description": "Describes the functionality to be tested"
+                        },
+                        "Feature": {
+                            "_properties_": {
+                                "description": "Describes the lowest level feature bucket"
+                            },
+                            "Run type": {
+                                "_properties_": {
+                                    "description": "Defines what category of testlist it belongs"
+                                }
+                            }
+                        }
+                    }
+                }
+            }
+        },
+        "Test category": {
+            "_properties_": {
+                "description": "Defines the test category. Usually used at subtest level."
+            }
+        },
+        "Test requirement": {
+            "_properties_": {
+                "description": "Defines Kernel parameters required for the test to run"
+            }
+        },
+        "Issue": {
+            "_properties_": {
+                "description": "If the test is used to solve an issue, point to the URL containing the issue."
+            }
+        },
+        "GPU excluded platform": {
+            "_properties_": {
+                "description": "Provides a list of GPUs not capable of running the subtest (or the test as a whole)."
+            }
+        },
+        "GPU requirement": {
+            "_properties_": {
+                "description": "Describes any GPU-specific requrirement, like requiring multi-tiles."
+            }
+        },
+        "Depends on" : {
+            "_properties_": {
+                "description": "List other subtests that are required to not be skipped before calling this one."
+            }
+        },
+        "TODO": {
+            "_properties_": {
+                "description": "Point to known missing features at the test or subtest."
+            }
+        },
+        "Description" : {
+            "_properties_": {
+                "description": "Provides a description for the test/subtest."
+            }
+        }
+    }
+}
-- 
2.40.1

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [igt-dev] [PATCH i-g-t 3/4] tests/i915: Improve test documentation
  2023-05-05 12:46 [igt-dev] [PATCH i-g-t 0/4] Better document i915 tests Mauro Carvalho Chehab
  2023-05-05 12:46 ` [igt-dev] [PATCH i-g-t 1/4] scripts/test_list.py: add support to exclude files Mauro Carvalho Chehab
  2023-05-05 12:46 ` [igt-dev] [PATCH i-g-t 2/4] testplan/meson.build: add i915 support for a testplan document Mauro Carvalho Chehab
@ 2023-05-05 12:46 ` Mauro Carvalho Chehab
  2023-05-05 12:46 ` [igt-dev] [PATCH i-g-t 4/4] tests/i915: Enhance " Mauro Carvalho Chehab
                   ` (2 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: Mauro Carvalho Chehab @ 2023-05-05 12:46 UTC (permalink / raw)
  To: igt-dev

From: Mauro Carvalho Chehab <mchehab@kernel.org>

Currently, test documentation inside IGT describe macros and testlists.

There is also some internal documentation mapping features into
buckets, which is used by some Intel CI scripts.

Place them inside i915 comments.

Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
---
 tests/core_auth.c                           |   21 +
 tests/core_getclient.c                      |    8 +
 tests/core_getstats.c                       |    8 +
 tests/core_getversion.c                     |    8 +
 tests/core_hotunplug.c                      |   38 +
 tests/core_setmaster.c                      |   15 +
 tests/core_setmaster_vs_auth.c              |    8 +
 tests/debugfs_test.c                        |   25 +
 tests/device_reset.c                        |   21 +
 tests/dmabuf.c                              |    8 +
 tests/drm_mm.c                              |    8 +
 tests/dumb_buffer.c                         |   18 +
 tests/i915/api_intel_allocator.c            |   40 +
 tests/i915/api_intel_bb.c                   |   63 +
 tests/i915/drm_fdinfo.c                     |   44 +
 tests/i915/gem_bad_reloc.c                  |   17 +
 tests/i915/gem_barrier_race.c               |   10 +
 tests/i915/gem_basic.c                      |   24 +
 tests/i915/gem_blits.c                      |    7 +
 tests/i915/gem_busy.c                       |   36 +
 tests/i915/gem_caching.c                    |   12 +
 tests/i915/gem_ccs.c                        |   33 +
 tests/i915/gem_close.c                      |    9 +
 tests/i915/gem_close_race.c                 |   42 +
 tests/i915/gem_create.c                     |   46 +
 tests/i915/gem_cs_tlb.c                     |    8 +
 tests/i915/gem_ctx_bad_destroy.c            |   14 +
 tests/i915/gem_ctx_create.c                 |   63 +
 tests/i915/gem_ctx_engines.c                |   17 +
 tests/i915/gem_ctx_exec.c                   |   33 +
 tests/i915/gem_ctx_freq.c                   |    7 +
 tests/i915/gem_ctx_isolation.c              |   23 +
 tests/i915/gem_ctx_param.c                  |   84 ++
 tests/i915/gem_ctx_persistence.c            |   69 +
 tests/i915/gem_ctx_shared.c                 |   34 +
 tests/i915/gem_ctx_sseu.c                   |   14 +
 tests/i915/gem_ctx_switch.c                 |  365 +++++
 tests/i915/gem_eio.c                        |   92 ++
 tests/i915/gem_evict_alignment.c            |   17 +
 tests/i915/gem_evict_everything.c           |   61 +
 tests/i915/gem_exec_alignment.c             |   18 +
 tests/i915/gem_exec_async.c                 |   10 +
 tests/i915/gem_exec_await.c                 |    9 +
 tests/i915/gem_exec_balancer.c              |  117 ++
 tests/i915/gem_exec_basic.c                 |   10 +
 tests/i915/gem_exec_big.c                   |   10 +
 tests/i915/gem_exec_capture.c               |   29 +
 tests/i915/gem_exec_create.c                |   24 +
 tests/i915/gem_exec_endless.c               |    7 +
 tests/i915/gem_exec_fair.c                  |   92 ++
 tests/i915/gem_exec_fence.c                 |  230 +++
 tests/i915/gem_exec_flush.c                 | 1496 +++++++++++++++++++
 tests/i915/gem_exec_gttfill.c               |   23 +
 tests/i915/gem_exec_latency.c               |   30 +
 tests/i915/gem_exec_lut_handle.c            |    7 +
 tests/i915/gem_exec_nop.c                   |   55 +
 tests/i915/gem_exec_parallel.c              |   25 +
 tests/i915/gem_exec_params.c                |  103 ++
 tests/i915/gem_exec_reloc.c                 |  593 ++++++++
 tests/i915/gem_exec_schedule.c              |  182 +++
 tests/i915/gem_exec_store.c                 |   21 +
 tests/i915/gem_exec_suspend.c               |   81 +
 tests/i915/gem_exec_whisper.c               |  189 +++
 tests/i915/gem_exercise_blt.c               |   12 +
 tests/i915/gem_fd_exhaustion.c              |    6 +
 tests/i915/gem_fence_thrash.c               |   19 +
 tests/i915/gem_fence_upload.c               |   16 +
 tests/i915/gem_fenced_exec_thrash.c         |   18 +
 tests/i915/gem_flink_basic.c                |   21 +
 tests/i915/gem_flink_race.c                 |   10 +
 tests/i915/gem_gpgpu_fill.c                 |    7 +
 tests/i915/gem_gtt_cpu_tlb.c                |    8 +
 tests/i915/gem_gtt_hog.c                    |    6 +
 tests/i915/gem_gtt_speed.c                  |    6 +
 tests/i915/gem_huc_copy.c                   |   10 +
 tests/i915/gem_linear_blits.c               |   17 +
 tests/i915/gem_lmem_evict.c                 |    9 +
 tests/i915/gem_lmem_swapping.c              |   89 ++
 tests/i915/gem_lut_handle.c                 |    7 +
 tests/i915/gem_madvise.c                    |   23 +
 tests/i915/gem_media_fill.c                 |    8 +
 tests/i915/gem_media_vme.c                  |    8 +
 tests/i915/gem_mmap.c                       |   51 +
 tests/i915/gem_mmap_gtt.c                   |  450 ++++++
 tests/i915/gem_mmap_offset.c                |   36 +
 tests/i915/gem_mmap_wc.c                    |   67 +
 tests/i915/gem_partial_pwrite_pread.c       |   52 +
 tests/i915/gem_pipe_control_store_loop.c    |   12 +
 tests/i915/gem_ppgtt.c                      |   21 +
 tests/i915/gem_pread.c                      |   17 +
 tests/i915/gem_pread_after_blit.c           |   29 +
 tests/i915/gem_pwrite.c                     |   67 +
 tests/i915/gem_pwrite_snooped.c             |    8 +
 tests/i915/gem_pxp.c                        |   79 +
 tests/i915/gem_read_read_speed.c            |   61 +
 tests/i915/gem_readwrite.c                  |   15 +
 tests/i915/gem_reg_read.c                   |   11 +
 tests/i915/gem_render_copy.c                |  120 ++
 tests/i915/gem_render_copy_redux.c          |   17 +
 tests/i915/gem_render_linear_blits.c        |   16 +
 tests/i915/gem_render_tiled_blits.c         |   24 +
 tests/i915/gem_request_retire.c             |    8 +
 tests/i915/gem_reset_stats.c                |  178 +++
 tests/i915/gem_ringfill.c                   |  105 ++
 tests/i915/gem_set_tiling_vs_blt.c          |   15 +
 tests/i915/gem_set_tiling_vs_gtt.c          |    8 +
 tests/i915/gem_set_tiling_vs_pwrite.c       |    8 +
 tests/i915/gem_shrink.c                     |  107 ++
 tests/i915/gem_softpin.c                    |  111 ++
 tests/i915/gem_spin_batch.c                 |   40 +
 tests/i915/gem_streaming_writes.c           |   29 +
 tests/i915/gem_stress.c                     |    7 +
 tests/i915/gem_sync.c                       |  222 +++
 tests/i915/gem_tiled_blits.c                |   17 +
 tests/i915/gem_tiled_fence_blits.c          |   14 +
 tests/i915/gem_tiled_partial_pwrite_pread.c |   12 +
 tests/i915/gem_tiled_pread_basic.c          |    8 +
 tests/i915/gem_tiled_pread_pwrite.c         |    8 +
 tests/i915/gem_tiled_swapping.c             |   10 +
 tests/i915/gem_tiled_wb.c                   |    9 +
 tests/i915/gem_tiled_wc.c                   |    7 +
 tests/i915/gem_tiling_max_stride.c          |    8 +
 tests/i915/gem_unfence_active_buffers.c     |    8 +
 tests/i915/gem_unref_active_buffers.c       |    8 +
 tests/i915/gem_userptr_blits.c              |  280 ++++
 tests/i915/gem_vm_create.c                  |   19 +
 tests/i915/gem_wait.c                       |   49 +
 tests/i915/gem_watchdog.c                   |   11 +
 tests/i915/gem_workarounds.c                |   40 +
 tests/i915/gen3_mixed_blits.c               |    7 +
 tests/i915/gen3_render_linear_blits.c       |    7 +
 tests/i915/gen3_render_mixed_blits.c        |    7 +
 tests/i915/gen3_render_tiledx_blits.c       |    7 +
 tests/i915/gen3_render_tiledy_blits.c       |    7 +
 tests/i915/gen7_exec_parse.c                |   31 +
 tests/i915/gen9_exec_parse.c                |   47 +
 tests/i915/i915_fb_tiling.c                 |    8 +
 tests/i915/i915_getparams_basic.c           |   12 +
 tests/i915/i915_hangman.c                   |   41 +
 tests/i915/i915_hwmon.c                     |   12 +
 tests/i915/i915_module_load.c               |   30 +
 tests/i915/i915_pciid.c                     |    8 +
 tests/i915/i915_pipe_stress.c               |   14 +
 tests/i915/i915_pm_backlight.c              |   25 +
 tests/i915/i915_pm_dc.c                     |   37 +
 tests/i915/i915_pm_freq_api.c               |   11 +
 tests/i915/i915_pm_freq_mult.c              |    9 +
 tests/i915/i915_pm_lpsp.c                   |   12 +
 tests/i915/i915_pm_rc6_residency.c          |   16 +
 tests/i915/i915_pm_rpm.c                    |  185 +++
 tests/i915/i915_pm_rps.c                    |   34 +
 tests/i915/i915_pm_sseu.c                   |    8 +
 tests/i915/i915_power.c                     |    9 +
 tests/i915/i915_query.c                     |   62 +
 tests/i915/i915_selftest.c                  |   16 +
 tests/i915/i915_suspend.c                   |   57 +
 tests/i915/perf.c                           |  144 ++
 tests/i915/perf_pmu.c                       |  138 ++
 tests/i915/sysfs_defaults.c                 |    7 +
 tests/i915/sysfs_heartbeat_interval.c       |   19 +
 tests/i915/sysfs_preempt_timeout.c          |   13 +
 tests/i915/sysfs_timeslice_duration.c       |   15 +
 tests/prime_busy.c                          |   18 +
 tests/prime_mmap.c                          |   29 +
 tests/prime_mmap_coherency.c                |   13 +
 tests/prime_self_import.c                   |   37 +
 tests/prime_vgem.c                          |   99 ++
 tests/sw_sync.c                             |   42 +
 tests/syncobj_basic.c                       |   30 +
 tests/syncobj_timeline.c                    |  381 +++++
 tests/syncobj_wait.c                        |  144 ++
 tests/vgem_basic.c                          |   84 ++
 tests/vgem_slow.c                           |    8 +
 173 files changed, 9570 insertions(+)

diff --git a/tests/core_auth.c b/tests/core_auth.c
index 257f124820a4..ee7fbaabfa92 100644
--- a/tests/core_auth.c
+++ b/tests/core_auth.c
@@ -42,6 +42,27 @@
 #include <sys/poll.h>
 #include <sys/resource.h>
 #include "drm.h"
+/**
+ * TEST: core auth
+ * Description: Call drmGetMagic() and drmAuthMagic() and see if it behaves.
+ * Feature: core
+ *
+ * SUBTEST: basic-auth
+ * Description: Test magic numbers for master and slave.
+ * Run type: BAT
+ *
+ * SUBTEST: getclient-master-drop
+ * Description: Use 2 clients, check second is authenticated even when first dropped.
+ * Run type: FULL
+ *
+ * SUBTEST: getclient-simple
+ * Description: Check drm client is always authenticated.
+ * Run type: FULL
+ *
+ * SUBTEST: many-magics
+ * Description: Test authentication and magic numbers uniqness for rlimit slaves.
+ * Run type: FULL
+ */
 
 #ifndef __linux__
 # include <pthread.h>
diff --git a/tests/core_getclient.c b/tests/core_getclient.c
index 40a1c194de19..1ab56e9f304c 100644
--- a/tests/core_getclient.c
+++ b/tests/core_getclient.c
@@ -31,6 +31,14 @@
 #include <stdlib.h>
 #include <errno.h>
 
+/**
+ * TEST: core getclient
+ * Description: Tests the DRM_IOCTL_GET_CLIENT ioctl.
+ * Feature: core
+ * Run type: FULL
+ *
+ * SUBTEST:
+ */
 
 IGT_TEST_DESCRIPTION("Tests the DRM_IOCTL_GET_CLIENT ioctl.");
 
diff --git a/tests/core_getstats.c b/tests/core_getstats.c
index fde27cdc6485..f2b1abac738e 100644
--- a/tests/core_getstats.c
+++ b/tests/core_getstats.c
@@ -32,6 +32,14 @@
 
 #include <drm.h>
 
+/**
+ * TEST: core getstats
+ * Description: Tests the DRM_IOCTL_GET_STATS ioctl.
+ * Feature: core
+ * Run type: FULL
+ *
+ * SUBTEST:
+ */
 
 /**
  * Checks DRM_IOCTL_GET_STATS.
diff --git a/tests/core_getversion.c b/tests/core_getversion.c
index f6953b313cac..ae6fc8f8d7d9 100644
--- a/tests/core_getversion.c
+++ b/tests/core_getversion.c
@@ -28,6 +28,14 @@
 #include "igt.h"
 #include <string.h>
 #include <sys/ioctl.h>
+/**
+ * TEST: core getversion
+ * Description: Tests the DRM_IOCTL_GET_VERSION ioctl and libdrm's drmGetVersion() interface to it.
+ * Feature: core
+ * Run type: FULL
+ *
+ * SUBTEST:
+ */
 
 IGT_TEST_DESCRIPTION("Tests the DRM_IOCTL_GET_VERSION ioctl and libdrm's "
 		     "drmGetVersion() interface to it.");
diff --git a/tests/core_hotunplug.c b/tests/core_hotunplug.c
index e79eb1ed4c23..f447e3b48af4 100644
--- a/tests/core_hotunplug.c
+++ b/tests/core_hotunplug.c
@@ -39,6 +39,44 @@
 #include "igt_kmod.h"
 #include "igt_sysfs.h"
 #include "sw_sync.h"
+/**
+ * TEST: core hotunplug
+ * Description: Examine behavior of a driver on device hot unplug
+ * Feature: SMI, core
+ *
+ * SUBTEST: hotrebind
+ * Description: Check if the driver can be cleanly rebound to a device with a still open hot unbound driver
+ *   instance
+ * Run type: FULL
+ *
+ * SUBTEST: hotrebind-lateclose
+ * Description: Check if a hot unbound driver instance still open after hot rebind can be cleanly released
+ * Run type: FULL
+ *
+ * SUBTEST: hotreplug
+ * Description: Check if a hot unplugged and still open device can be cleanly restored
+ * Run type: FULL
+ *
+ * SUBTEST: hotreplug-lateclose
+ * Description: Check if an instance of a still open while hot replugged device can be cleanly released
+ * Run type: FULL
+ *
+ * SUBTEST: hotunbind-rebind
+ * Description: Check if the driver can be cleanly unbound from an open device, then released and rebound
+ * Run type: FULL
+ *
+ * SUBTEST: hotunplug-rescan
+ * Description: Check if an open device can be cleanly unplugged, then released and restored
+ * Run type: FULL
+ *
+ * SUBTEST: unbind-rebind
+ * Description: Check if the driver can be cleanly unbound from a device believed to be closed, then rebound
+ * Run type: BAT
+ *
+ * SUBTEST: unplug-rescan
+ * Description: Check if a device believed to be closed can be cleanly unplugged, then restored
+ * Run type: FULL
+ */
 
 IGT_TEST_DESCRIPTION("Examine behavior of a driver on device hot unplug");
 
diff --git a/tests/core_setmaster.c b/tests/core_setmaster.c
index 470f9441dd69..95a131a4d3c9 100644
--- a/tests/core_setmaster.c
+++ b/tests/core_setmaster.c
@@ -38,6 +38,21 @@
 #include <stdio.h>
 #include <string.h>
 #include <sys/stat.h>
+/**
+ * TEST: core setmaster
+ * Description: Check that Drop/SetMaster behaves correctly wrt root/user access
+ * Feature: core
+ * Run type: FULL
+ *
+ * SUBTEST: master-drop-set-root
+ * Description: Ensure that root can Set/DropMaster
+ *
+ * SUBTEST: master-drop-set-shared-fd
+ * Description: Check the Set/DropMaster behaviour on shared fd
+ *
+ * SUBTEST: master-drop-set-user
+ * Description: Ensure first normal user can Set/DropMaster
+ */
 
 IGT_TEST_DESCRIPTION("Check that Drop/SetMaster behaves correctly wrt root/user"
 		     " access");
diff --git a/tests/core_setmaster_vs_auth.c b/tests/core_setmaster_vs_auth.c
index 0b4b8613c6f6..37bb378ab011 100644
--- a/tests/core_setmaster_vs_auth.c
+++ b/tests/core_setmaster_vs_auth.c
@@ -40,6 +40,14 @@
 #include <string.h>
 
 #include "igt_device.h"
+/**
+ * TEST: core setmaster vs auth
+ * Description: Check that drop/setMaster correctly transfer master state
+ * Feature: core
+ * Run type: FULL
+ *
+ * SUBTEST:
+ */
 
 IGT_TEST_DESCRIPTION("Check that drop/setMaster correctly transfer master "
 		     "state");
diff --git a/tests/debugfs_test.c b/tests/debugfs_test.c
index 8c775158f157..39b001671bcc 100644
--- a/tests/debugfs_test.c
+++ b/tests/debugfs_test.c
@@ -29,6 +29,31 @@
 #include <fcntl.h>
 #include <sys/types.h>
 #include <dirent.h>
+/**
+ * TEST: debugfs test
+ * Description: Read entries from debugfs, hwmon and sysfs paths.
+ * Feature: core
+ *
+ * SUBTEST: basic-hwmon
+ * Description: Read all entries from hwmon path
+ * Run type: BAT
+ *
+ * SUBTEST: read_all_entries
+ * Description: Read all entries from debugfs path.
+ * Run type: BAT
+ *
+ * SUBTEST: read_all_entries_display_off
+ * Description: Read all debugfs entries with display on/off.
+ * Run type: FULL
+ *
+ * SUBTEST: read_all_entries_display_on
+ * Description: Read all debugfs entries with display on/off.
+ * Run type: FULL
+ *
+ * SUBTEST: sysfs
+ * Description: Read all entries from sysfs path.
+ * Run type: FULL
+ */
 
 IGT_TEST_DESCRIPTION("Read entries from debugfs, hwmon and sysfs paths.");
 
diff --git a/tests/device_reset.c b/tests/device_reset.c
index 39ee8dca9fa2..0c23aecff595 100644
--- a/tests/device_reset.c
+++ b/tests/device_reset.c
@@ -14,6 +14,27 @@
 #include "igt_pci.h"
 #include "igt_sysfs.h"
 #include "igt_kmod.h"
+/**
+ * TEST: device reset
+ * Description: Examine behavior of a driver on device sysfs reset
+ * Run type: FULL
+ *
+ * SUBTEST: cold-reset-bound
+ * Description: Cold Resets device with bound driver
+ * Feature: reset
+ *
+ * SUBTEST: reset-bound
+ * Description: Resets device with bound driver
+ * Feature: reset
+ *
+ * SUBTEST: unbind-cold-reset-rebind
+ * Description: Unbinds driver from device, initiates cold reset then rebinds driver to device
+ * Feature: reset
+ *
+ * SUBTEST: unbind-reset-rebind
+ * Description: Unbinds driver from device, initiates reset then rebinds driver to device
+ * Feature: reset, sriov-reset
+ */
 
 IGT_TEST_DESCRIPTION("Examine behavior of a driver on device sysfs reset");
 
diff --git a/tests/dmabuf.c b/tests/dmabuf.c
index a72cf3be1377..4bc9b35b619d 100644
--- a/tests/dmabuf.c
+++ b/tests/dmabuf.c
@@ -23,6 +23,14 @@
 
 #include "igt.h"
 #include "igt_kmod.h"
+/**
+ * TEST: dmabuf
+ * Description: Kernel selftests for the dmabuf API
+ * Feature: mapping, prime
+ * Run type: BAT
+ *
+ * SUBTEST: all-tests
+ */
 
 IGT_TEST_DESCRIPTION("Kernel selftests for the dmabuf API");
 
diff --git a/tests/drm_mm.c b/tests/drm_mm.c
index 2052b115cb98..4cc2891ee129 100644
--- a/tests/drm_mm.c
+++ b/tests/drm_mm.c
@@ -23,6 +23,14 @@
 
 #include "igt.h"
 #include "igt_kmod.h"
+/**
+ * TEST: drm mm
+ * Description: Basic sanity check of DRM's range manager (struct drm_mm)
+ * Feature: mapping
+ * Run type: FULL
+ *
+ * SUBTEST: all-tests
+ */
 
 IGT_TEST_DESCRIPTION("Basic sanity check of DRM's range manager (struct drm_mm)");
 
diff --git a/tests/dumb_buffer.c b/tests/dumb_buffer.c
index ded6b809c262..0c7ce714eb6c 100644
--- a/tests/dumb_buffer.c
+++ b/tests/dumb_buffer.c
@@ -49,6 +49,24 @@
 #include "drmtest.h"
 #include "igt_aux.h"
 #include "ioctl_wrappers.h"
+/**
+ * TEST: dumb buffer
+ * Description: This is a test for the generic dumb buffer interface.
+ * Feature: prime
+ * Run type: FULL
+ *
+ * SUBTEST: create-clear
+ *
+ * SUBTEST: create-valid-dumb
+ *
+ * SUBTEST: invalid-bpp
+ *
+ * SUBTEST: map-invalid-size
+ *
+ * SUBTEST: map-uaf
+ *
+ * SUBTEST: map-valid
+ */
 
 IGT_TEST_DESCRIPTION("This is a test for the generic dumb buffer interface.");
 
diff --git a/tests/i915/api_intel_allocator.c b/tests/i915/api_intel_allocator.c
index e9039a214903..4a7cc472c1fa 100644
--- a/tests/i915/api_intel_allocator.c
+++ b/tests/i915/api_intel_allocator.c
@@ -9,6 +9,46 @@
 #include "igt.h"
 #include "igt_aux.h"
 #include "intel_allocator.h"
+/**
+ * TEST: api intel allocator
+ * Feature: igt_core
+ * Run type: FULL
+ *
+ * SUBTEST: alloc-simple
+ *
+ * SUBTEST: default-alignment
+ * Description: For simple allocator check does default alignment is properly handled in open and alloc
+ *   functions
+ *
+ * SUBTEST: execbuf-with-allocator
+ *
+ * SUBTEST: fork-simple-once
+ *
+ * SUBTEST: fork-simple-stress
+ *
+ * SUBTEST: fork-simple-stress-signal
+ *
+ * SUBTEST: gem-pool
+ * Description: Verifies creating and executing bb from gem pool
+ *
+ * SUBTEST: open-vm
+ *
+ * SUBTEST: reloc-allocator
+ *
+ * SUBTEST: reopen
+ *
+ * SUBTEST: reopen-fork
+ *
+ * SUBTEST: reserve-simple
+ *
+ * SUBTEST: simple-allocator
+ *
+ * SUBTEST: standalone
+ *
+ * SUBTEST: two-level-inception
+ *
+ * SUBTEST: two-level-inception-interruptible
+ */
 
 #define OBJ_SIZE 1024
 
diff --git a/tests/i915/api_intel_bb.c b/tests/i915/api_intel_bb.c
index 46633b0385e1..198a29eb4f26 100644
--- a/tests/i915/api_intel_bb.c
+++ b/tests/i915/api_intel_bb.c
@@ -41,6 +41,69 @@
 #include "i915/gem_vm.h"
 #include "i915/i915_crc.h"
 #include "i915/i915_blt.h"
+/**
+ * TEST: api intel bb
+ * Description: intel_bb API check.
+ * Feature: igt_core
+ * Run type: FULL
+ *
+ * SUBTEST: add-remove-objects
+ *
+ * SUBTEST: bb-with-allocator
+ *
+ * SUBTEST: blit-noreloc-keep-cache
+ *
+ * SUBTEST: blit-noreloc-purge-cache
+ *
+ * SUBTEST: blit-reloc-keep-cache
+ *
+ * SUBTEST: blit-reloc-purge-cache
+ *
+ * SUBTEST: crc32
+ * Description: Compare cpu and gpu crc32 sums on input object
+ *
+ * SUBTEST: delta-check
+ *
+ * SUBTEST: destroy-bb
+ *
+ * SUBTEST: full-batch
+ *
+ * SUBTEST: intel-bb-blit-none
+ *
+ * SUBTEST: intel-bb-blit-x
+ *
+ * SUBTEST: intel-bb-blit-y
+ *
+ * SUBTEST: lot-of-buffers
+ *
+ * SUBTEST: misplaced-blitter
+ * Description: Execute intel_bb with set of engines provided by userspace
+ *
+ * SUBTEST: object-noreloc-keep-cache-simple
+ *
+ * SUBTEST: object-noreloc-purge-cache-simple
+ *
+ * SUBTEST: object-reloc-keep-cache
+ *
+ * SUBTEST: object-reloc-purge-cache
+ *
+ * SUBTEST: offset-control
+ *
+ * SUBTEST: purge-bb
+ *
+ * SUBTEST: render
+ *
+ * SUBTEST: render-ccs
+ *
+ * SUBTEST: reset-bb
+ * Description: Ensure reset is possible on fresh bb
+ *
+ * SUBTEST: reset-flags
+ *
+ * SUBTEST: simple-bb
+ *
+ * SUBTEST: simple-bb-ctx
+ */
 
 #define PAGE_SIZE 4096
 
diff --git a/tests/i915/drm_fdinfo.c b/tests/i915/drm_fdinfo.c
index 1b1247553a32..be1d62a35988 100644
--- a/tests/i915/drm_fdinfo.c
+++ b/tests/i915/drm_fdinfo.c
@@ -29,6 +29,50 @@
 #include "i915/gem.h"
 #include "i915/gem_vm.h"
 #include "intel_ctx.h"
+/**
+ * TEST: drm fdinfo
+ * Description: Test the i915 drm fdinfo data
+ * Feature: client_busyness
+ * Run type: FULL
+ *
+ * SUBTEST: all-busy-check-all
+ *
+ * SUBTEST: all-busy-idle-check-all
+ *
+ * SUBTEST: basics
+ *
+ * SUBTEST: busy
+ *
+ * SUBTEST: busy-check-all
+ *
+ * SUBTEST: busy-hang
+ *
+ * SUBTEST: busy-idle
+ *
+ * SUBTEST: busy-idle-check-all
+ *
+ * SUBTEST: idle
+ *
+ * SUBTEST: isolation
+ *
+ * SUBTEST: most-busy-check-all
+ *
+ * SUBTEST: most-busy-idle-check-all
+ *
+ * SUBTEST: virtual-busy
+ *
+ * SUBTEST: virtual-busy-all
+ *
+ * SUBTEST: virtual-busy-hang
+ *
+ * SUBTEST: virtual-busy-hang-all
+ *
+ * SUBTEST: virtual-busy-idle
+ *
+ * SUBTEST: virtual-busy-idle-all
+ *
+ * SUBTEST: virtual-idle
+ */
 
 IGT_TEST_DESCRIPTION("Test the i915 drm fdinfo data");
 
diff --git a/tests/i915/gem_bad_reloc.c b/tests/i915/gem_bad_reloc.c
index 478e78a6660e..b006e1cb0cd3 100644
--- a/tests/i915/gem_bad_reloc.c
+++ b/tests/i915/gem_bad_reloc.c
@@ -41,6 +41,23 @@
 #include "i915/gem.h"
 #include "i915/gem_create.h"
 #include "igt.h"
+/**
+ * TEST: gem bad reloc
+ * Description: Simulates SNA behaviour using negative self-relocations for STATE_BASE_ADDRESS command
+ *   packets.
+ * Feature: cmd_submission
+ * Run type: FULL
+ *
+ * SUBTEST: negative-reloc
+ * Description: SNA behaviour is compressing batch buffer which leads to negative relocation deltas.
+ *   Negative self-relocation happening with real offset 0.
+ *
+ * SUBTEST: negative-reloc-bltcopy
+ * Description: Exercising blitter operation with negative reloc.
+ *
+ * SUBTEST: negative-reloc-lut
+ * Description: Similar to previous test with flags for lut_based_execbuffer.
+ */
 
 IGT_TEST_DESCRIPTION("Simulates SNA behaviour using negative self-relocations"
 		     " for STATE_BASE_ADDRESS command packets.");
diff --git a/tests/i915/gem_barrier_race.c b/tests/i915/gem_barrier_race.c
index f446aab62263..e33e2e6cc10e 100644
--- a/tests/i915/gem_barrier_race.c
+++ b/tests/i915/gem_barrier_race.c
@@ -17,6 +17,16 @@
 #include "i915/gem_create.h"
 #include "i915/gem_engine_topology.h"
 #include "i915/perf.h"
+/**
+ * TEST: gem barrier race
+ * Description: Exercise engine barriers and their interaction with other subsystems
+ * Feature: core
+ * Run type: FULL
+ *
+ * SUBTEST: remote-request
+ * Description: Race intel_context_prepare_remote_request against
+ *   intel_context_active_acquire/release
+ */
 
 IGT_TEST_DESCRIPTION("Exercise engine barriers and their interaction with other subsystems");
 
diff --git a/tests/i915/gem_basic.c b/tests/i915/gem_basic.c
index 3dd790c6c1ac..8605429799aa 100644
--- a/tests/i915/gem_basic.c
+++ b/tests/i915/gem_basic.c
@@ -41,6 +41,30 @@
 #include "igt.h"
 #include "igt_types.h"
 #include "lib/igt_device_scan.h"
+/**
+ * TEST: gem basic
+ * Description: Tests basic gem_create and gem_close IOCTLs
+ *
+ * SUBTEST: bad-close
+ * Description: Verify that gem_close fails with bad params.
+ * Feature: gem_core
+ * Run type: BAT
+ *
+ * SUBTEST: create-close
+ * Description: Verify basic functionality of gem_create and gem_close.
+ * Feature: gem_core
+ * Run type: BAT
+ *
+ * SUBTEST: create-fd-close
+ * Description: Verify that closing drm driver is possible with opened gem object.
+ * Feature: gem_core
+ * Run type: BAT
+ *
+ * SUBTEST: multigpu-create-close
+ * Description: Verify basic functionality of gem_create and gem_close on multi-GPU.
+ * Feature: gem_core, multigpu
+ * Run type: FULL
+ */
 
 IGT_TEST_DESCRIPTION("Tests basic gem_create and gem_close IOCTLs");
 
diff --git a/tests/i915/gem_blits.c b/tests/i915/gem_blits.c
index 5fbb384dbe2e..acc1adc165f3 100644
--- a/tests/i915/gem_blits.c
+++ b/tests/i915/gem_blits.c
@@ -28,6 +28,13 @@
 #include "igt.h"
 #include "igt_x86.h"
 #include "i915/i915_blt.h"
+/**
+ * TEST: gem blits
+ * Feature: blitter
+ * Run type: FULL
+ *
+ * SUBTEST: basic
+ */
 
 #define BCS_SWCTRL 0x22200
 #define BCS_SRC_Y (1 << 0)
diff --git a/tests/i915/gem_busy.c b/tests/i915/gem_busy.c
index 08a500a9ec7a..11a2f7d51a04 100644
--- a/tests/i915/gem_busy.c
+++ b/tests/i915/gem_busy.c
@@ -30,6 +30,42 @@
 #include "igt.h"
 #include "igt_rand.h"
 #include "igt_vgem.h"
+/**
+ * TEST: gem busy
+ * Description: Basic check of busy-ioctl ABI.
+ * Feature: cmd_submission
+ *
+ * SUBTEST: busy
+ * Description: Basic test to check busyness of each engine.
+ * Run type: FULL
+ *
+ * SUBTEST: close-race
+ * Description: Test to check race condition by randomly closing the handle using gem_close.
+ * Run type: FULL
+ *
+ * SUBTEST: extended
+ * Description: Extended test to check busyness of dwstore-capable engines.
+ * Run type: FULL
+ *
+ * SUBTEST: hang
+ * Description: Basic test to check hang state behaviour of engines with increased timeout.
+ * Run type: FULL
+ *
+ * SUBTEST: hang-extended
+ * Description: Extended test to check hang state behaviour of dwstore-capable engines with increased
+ *   timeout.
+ * Run type: FULL
+ *
+ * SUBTEST: parallel
+ * Description: Extended test to check busyness of dwstore-capable engines while doing parallel
+ *   execution.
+ * Run type: FULL
+ *
+ * SUBTEST: semaphore
+ * Description: Test to check busyness of engine on submitting a new batch while engine is busy in executing
+ *   previous batch.
+ * Run type: FULL
+ */
 
 #define PAGE_ALIGN(x) ALIGN(x, 4096)
 
diff --git a/tests/i915/gem_caching.c b/tests/i915/gem_caching.c
index 6e944f0acb7b..d24e6cce059b 100644
--- a/tests/i915/gem_caching.c
+++ b/tests/i915/gem_caching.c
@@ -40,6 +40,18 @@
 #include "i915/gem.h"
 #include "igt.h"
 #include "i915/i915_blt.h"
+/**
+ * TEST: gem caching
+ * Description: Test snoop consistency when touching partial cachelines.
+ * Feature: caching
+ * Run type: FULL
+ *
+ * SUBTEST: read-writes
+ *
+ * SUBTEST: reads
+ *
+ * SUBTEST: writes
+ */
 
 IGT_TEST_DESCRIPTION("Test snoop consistency when touching partial"
 		     " cachelines.");
diff --git a/tests/i915/gem_ccs.c b/tests/i915/gem_ccs.c
index d25e00fc89f3..ff6504b3c1da 100644
--- a/tests/i915/gem_ccs.c
+++ b/tests/i915/gem_ccs.c
@@ -15,6 +15,39 @@
 #include "lib/intel_chipset.h"
 #include "i915/i915_blt.h"
 #include "i915/intel_mocs.h"
+/**
+ * TEST: gem ccs
+ * Description: Exercise gen12 blitter with and without flatccs compression
+ * Run type: FULL
+ *
+ * SUBTEST: block-copy-compressed
+ * Description: Check block-copy flatccs compressed blit
+ * Feature: flat_ccs_mapping
+ *
+ * SUBTEST: block-copy-uncompressed
+ * Description: Check block-copy uncompressed blit
+ * Feature: ccs_uncompressed, flat_ccs_mapping
+ *
+ * SUBTEST: block-multicopy-compressed
+ * Description: Check block-multicopy flatccs compressed blit
+ * Feature: flat_ccs_mapping
+ *
+ * SUBTEST: block-multicopy-inplace
+ * Description: Check block-multicopy flatccs inplace decompression blit
+ * Feature: flat_ccs_mapping
+ *
+ * SUBTEST: ctrl-surf-copy
+ * Description: Check flatccs data can be copied from/to surface
+ * Feature: flat_ccs_mapping
+ *
+ * SUBTEST: ctrl-surf-copy-new-ctx
+ * Description: Check flatccs data are physically tagged and visible in different contexts
+ * Feature: flat_ccs_mapping
+ *
+ * SUBTEST: suspend-resume
+ * Description: Check flatccs data persists after suspend / resume (S0)
+ * Feature: flat_ccs_mapping, suspend
+ */
 
 IGT_TEST_DESCRIPTION("Exercise gen12 blitter with and without flatccs compression");
 
diff --git a/tests/i915/gem_close.c b/tests/i915/gem_close.c
index e1ae701c17a1..212fd8e9062a 100644
--- a/tests/i915/gem_close.c
+++ b/tests/i915/gem_close.c
@@ -25,6 +25,15 @@
 #include "i915/gem_create.h"
 #include "igt.h"
 #include "igt_types.h"
+/**
+ * TEST: gem close
+ * Feature: mapping
+ * Run type: FULL
+ *
+ * SUBTEST: basic
+ *
+ * SUBTEST: many-handles-one-vma
+ */
 
 static int batch_create(int fd)
 {
diff --git a/tests/i915/gem_close_race.c b/tests/i915/gem_close_race.c
index 9c646f4267af..c0f25760cc87 100644
--- a/tests/i915/gem_close_race.c
+++ b/tests/i915/gem_close_race.c
@@ -48,6 +48,48 @@
 #include "igt.h"
 #include "igt_aux.h"
 #include "igt_device_scan.h"
+/**
+ * TEST: gem close race
+ * Description: Test try to race gem_close against workload submission.
+ *
+ * SUBTEST: basic-process
+ * Description: Basic workload submission.
+ * Feature: synchronization
+ * Run type: BAT
+ *
+ * SUBTEST: basic-threads
+ * Description: Share buffer handle across different drm fd's and trying to race gem_close against
+ *   continuous workload with minimum timeout.
+ * Feature: synchronization
+ * Run type: BAT
+ *
+ * SUBTEST: contexts
+ * Description: Share buffer handle across different drm fd's and trying to race gem_close against
+ *   continuous workload in other contexts.
+ * Feature: synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: gem-close-race
+ * Description: Share buffer handle across different drm fd's and trying to race of gem_close against
+ *   continuous workload.
+ * Feature: synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: multigpu-basic-process
+ * Description: Basic workload submission on multi-GPU machine.
+ * Feature: multigpu, synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: multigpu-basic-threads
+ * Description: Run basic-threads race on multi-GPU machine.
+ * Feature: multigpu, synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: process-exit
+ * Description: Test try to race gem_close against submission of continuous workload.
+ * Feature: synchronization
+ * Run type: FULL
+ */
 
 #define OBJECT_SIZE (256 * 1024)
 
diff --git a/tests/i915/gem_create.c b/tests/i915/gem_create.c
index c719ab6c7761..a59fba48d6c1 100644
--- a/tests/i915/gem_create.c
+++ b/tests/i915/gem_create.c
@@ -62,6 +62,52 @@
 #include "i915/gem_mman.h"
 #include "i915/intel_memory_region.h"
 #include "i915_drm.h"
+/**
+ * TEST: gem create
+ * Description: Ensure that basic gem_create and gem_create_ext works and that invalid input combinations
+ *   are rejected.
+ * Feature: mapping
+ * Run type: FULL
+ *
+ * SUBTEST: busy-create
+ * Description: Create buffer objects while GPU is busy.
+ *
+ * SUBTEST: create-clear
+ * Description: Verify that all new objects are clear.
+ *
+ * SUBTEST: create-ext-cpu-access-big
+ * Description: Verify the extreme cases with very large objects and.
+ *   I915_GEM_CREATE_EXT_FLAG_NEEDS_CPU_ACCESS
+ *
+ * SUBTEST: create-ext-cpu-access-sanity-check
+ * Description: Verify the basic functionally and expected ABI contract around.
+ *   I915_GEM_CREATE_EXT_FLAG_NEEDS_CPU_ACCESS
+ *
+ * SUBTEST: create-ext-placement-all
+ * Description: Create objects in every memory region using create_ext.
+ *
+ * SUBTEST: create-ext-placement-each
+ * Description: Create one object with memory pieces in each memory region using create_ext.
+ *
+ * SUBTEST: create-ext-placement-sanity-check
+ * Description: Exercise create_ext placements extension.
+ *
+ * SUBTEST: create-invalid-size
+ * Description: Try to create a gem object of invalid size 0 and check if ioctl returns error.
+ *
+ * SUBTEST: create-massive
+ * Description: Exercise creation of buffer object with impossible size and check for the expected error.
+ *
+ * SUBTEST: create-size-update
+ * Description: Try to create a gem object with size 15 and check actual created size.
+ *
+ * SUBTEST: create-valid-nonaligned
+ * Description: Try to create an object with non-aligned size, check we got one with size aligned up to page
+ *   size and test we can write into the padded extra memory.
+ *
+ * SUBTEST: hog-create
+ * Description: Create buffer objects while GPU is busy.
+ */
 
 IGT_TEST_DESCRIPTION("Ensure that basic gem_create and gem_create_ext works"
 		     " and that invalid input combinations are rejected.");
diff --git a/tests/i915/gem_cs_tlb.c b/tests/i915/gem_cs_tlb.c
index 2117b41e47c1..ab09efa251b3 100644
--- a/tests/i915/gem_cs_tlb.c
+++ b/tests/i915/gem_cs_tlb.c
@@ -52,6 +52,14 @@
 #include "i915/gem.h"
 #include "i915/gem_create.h"
 #include "igt.h"
+/**
+ * TEST: gem cs tlb
+ * Description: Check whether we correctly invalidate the cs tlb.
+ * Feature: mapping
+ * Run type: FULL
+ *
+ * SUBTEST: engines
+ */
 
 IGT_TEST_DESCRIPTION("Check whether we correctly invalidate the cs tlb.");
 
diff --git a/tests/i915/gem_ctx_bad_destroy.c b/tests/i915/gem_ctx_bad_destroy.c
index 50bb9aa07066..90495da8ab2e 100644
--- a/tests/i915/gem_ctx_bad_destroy.c
+++ b/tests/i915/gem_ctx_bad_destroy.c
@@ -34,6 +34,20 @@
 #include <string.h>
 #include <errno.h>
 
+/**
+ * TEST: gem ctx bad destroy
+ * Description: Negative test cases for destroy contexts.
+ * Feature: context
+ * Run type: FULL
+ *
+ * SUBTEST: double-destroy
+ *
+ * SUBTEST: invalid-ctx
+ *
+ * SUBTEST: invalid-default-ctx
+ *
+ * SUBTEST: invalid-pad
+ */
 
 IGT_TEST_DESCRIPTION("Negative test cases for destroy contexts.");
 
diff --git a/tests/i915/gem_ctx_create.c b/tests/i915/gem_ctx_create.c
index 39f070af9439..038f6fa91a9a 100644
--- a/tests/i915/gem_ctx_create.c
+++ b/tests/i915/gem_ctx_create.c
@@ -35,6 +35,69 @@
 #include "igt.h"
 #include "igt_rand.h"
 #include "sw_sync.h"
+/**
+ * TEST: gem ctx create
+ * Description: Test the context create ioctls
+ * Feature: context
+ *
+ * SUBTEST: active
+ * Description: For each engine calculate the average performance of context creation execution and
+ *   exercise context reclaim
+ * Run type: FULL
+ *
+ * SUBTEST: active-all
+ * Description: Calculate the average performance of context creation and it's execution using all engines
+ * Run type: FULL
+ *
+ * SUBTEST: basic
+ * Description: Test random context creation
+ * Run type: BAT
+ *
+ * SUBTEST: basic-files
+ * Description: Exercise implicit per-fd context creation
+ * Run type: BAT
+ *
+ * SUBTEST: ext-param
+ * Description: Verify valid and invalid context extensions
+ * Run type: FULL
+ *
+ * SUBTEST: files
+ * Description: Exercise implicit per-fd context creation on 1 CPU for long duration
+ * Run type: FULL
+ *
+ * SUBTEST: forked-active
+ * Description: For each engine calculate the average performance of context creation and execution on
+ *   multiple parallel processes
+ * Run type: FULL
+ *
+ * SUBTEST: forked-active-all
+ * Description: Calculate the average performance of context creation and it's execution using all engines
+ *   on multiple parallel processes
+ * Run type: FULL
+ *
+ * SUBTEST: forked-files
+ * Description: Exercise implicit per-fd context creation on all CPUs for long duration
+ * Run type: FULL
+ *
+ * SUBTEST: hog
+ * Description: For each engine calculate the average performance of context creation and execution while
+ *   all other engines are hogging the resources
+ * Run type: FULL
+ *
+ * SUBTEST: iris-pipeline
+ * Description: Set, validate and execute particular context params
+ * Run type: FULL
+ *
+ * SUBTEST: maximum-mem
+ * Description: Create contexts upto available RAM size, calculate the average performance of their
+ *   execution on multiple parallel processes
+ * Run type: FULL
+ *
+ * SUBTEST: maximum-swap
+ * Description: Create contexts upto available RAM+SWAP size, calculate the average performance of their
+ *   execution on multiple parallel processes
+ * Run type: FULL
+ */
 
 IGT_TEST_DESCRIPTION("Test the context create ioctls");
 
diff --git a/tests/i915/gem_ctx_engines.c b/tests/i915/gem_ctx_engines.c
index b87a21fa4e58..d15a7b7e5f67 100644
--- a/tests/i915/gem_ctx_engines.c
+++ b/tests/i915/gem_ctx_engines.c
@@ -43,6 +43,23 @@
 #include "igt.h"
 #include "igt_types.h"
 #include "sw_sync.h"
+/**
+ * TEST: gem ctx engines
+ * Feature: context
+ * Run type: FULL
+ *
+ * SUBTEST: execute-allforone
+ *
+ * SUBTEST: execute-one
+ *
+ * SUBTEST: execute-oneforall
+ *
+ * SUBTEST: independent
+ *
+ * SUBTEST: invalid-engines
+ *
+ * SUBTEST: none
+ */
 
 #define engine_class(e, n) ((e)->engines[(n)].engine_class)
 #define engine_instance(e, n) ((e)->engines[(n)].engine_instance)
diff --git a/tests/i915/gem_ctx_exec.c b/tests/i915/gem_ctx_exec.c
index 3d94f01db914..4e37b2642085 100644
--- a/tests/i915/gem_ctx_exec.c
+++ b/tests/i915/gem_ctx_exec.c
@@ -47,6 +47,39 @@
 #include "igt_rand.h"
 #include "igt_sysfs.h"
 #include "sw_sync.h"
+/**
+ * TEST: gem ctx exec
+ * Description: Test context batch buffer execution.
+ * Feature: context
+ *
+ * SUBTEST: basic
+ * Description: Check the basic context batch buffer execution.
+ * Run type: BAT
+ *
+ * SUBTEST: basic-close-race
+ * Description: Race the execution and interrupt handlers along a context, while closing it at a random time.
+ * Run type: FULL
+ *
+ * SUBTEST: basic-invalid-context
+ * Description: Verify that execbuf with invalid context fails.
+ * Run type: FULL
+ *
+ * SUBTEST: basic-nohangcheck
+ * Description: Verify that contexts are automatically shotdown on close, if hangchecking is disabled.
+ * Run type: FULL
+ *
+ * SUBTEST: basic-norecovery
+ * Description: Check the status of context after a hang by setting and unsetting the RECOVERABLE.
+ * Run type: FULL
+ *
+ * SUBTEST: eviction
+ * Description: Check maximum number of buffers it can evict for a context.
+ * Run type: FULL
+ *
+ * SUBTEST: reset-pin-leak
+ * Description: Check if the kernel doesn't leak the vma pin_count for the last context on reset.
+ * Run type: FULL
+ */
 
 IGT_TEST_DESCRIPTION("Test context batch buffer execution.");
 
diff --git a/tests/i915/gem_ctx_freq.c b/tests/i915/gem_ctx_freq.c
index 18e736c73da1..8e432cbdf8f5 100644
--- a/tests/i915/gem_ctx_freq.c
+++ b/tests/i915/gem_ctx_freq.c
@@ -34,6 +34,13 @@
 #include "igt_perf.h"
 #include "igt_sysfs.h"
 #include "sw_sync.h"
+/**
+ * TEST: gem ctx freq
+ * Feature: context
+ * Run type: FULL
+ *
+ * SUBTEST: sysfs
+ */
 
 #define SAMPLE_PERIOD (USEC_PER_SEC / 10)
 #define PMU_TOLERANCE 100
diff --git a/tests/i915/gem_ctx_isolation.c b/tests/i915/gem_ctx_isolation.c
index 2def529ac3b2..2c2da296d301 100644
--- a/tests/i915/gem_ctx_isolation.c
+++ b/tests/i915/gem_ctx_isolation.c
@@ -26,6 +26,29 @@
 #include "igt.h"
 #include "igt_dummyload.h"
 #include "igt_types.h"
+/**
+ * TEST: gem ctx isolation
+ * Feature: context
+ * Run type: FULL
+ *
+ * SUBTEST: clean
+ *
+ * SUBTEST: dirty-create
+ *
+ * SUBTEST: dirty-switch
+ *
+ * SUBTEST: nonpriv
+ *
+ * SUBTEST: nonpriv-switch
+ *
+ * SUBTEST: preservation
+ *
+ * SUBTEST: preservation-S3
+ *
+ * SUBTEST: preservation-S4
+ *
+ * SUBTEST: preservation-reset
+ */
 
 /* MAX_REG must be greater than the maximum register address. */
 #define MAX_REG 0x400000
diff --git a/tests/i915/gem_ctx_param.c b/tests/i915/gem_ctx_param.c
index d119ea74e0a4..45951a5e2b2a 100644
--- a/tests/i915/gem_ctx_param.c
+++ b/tests/i915/gem_ctx_param.c
@@ -31,6 +31,90 @@
 #include "i915/gem.h"
 #include "i915/gem_create.h"
 #include "i915/gem_vm.h"
+/**
+ * TEST: gem ctx param
+ * Description: Basic test for context set/get param input validation.
+ * Run type: FULL
+ *
+ * SUBTEST: basic
+ * Description: Basic test for context get/set param ioctls using valid context
+ * Feature: context
+ *
+ * SUBTEST: basic-default
+ * Description: Basic test for context get/set param ioctls using default context
+ * Feature: context
+ *
+ * SUBTEST: get-priority-new-ctx
+ * Description: Test performed with context param set to priority.
+ *   Verify that priority is default for newly created context
+ * Feature: context
+ *
+ * SUBTEST: invalid-ctx-get
+ * Description: Verify that context get param ioctl using invalid context returns relevant error
+ * Feature: context
+ *
+ * SUBTEST: invalid-ctx-set
+ * Description: Verify that context set param ioctl using invalid context returns relevant error
+ * Feature: context
+ *
+ * SUBTEST: invalid-get-engines
+ * Feature: context
+ *
+ * SUBTEST: invalid-get-no-zeromap
+ * Feature: context
+ *
+ * SUBTEST: invalid-get-ringsize
+ * Feature: context
+ *
+ * SUBTEST: invalid-param-get
+ * Description: Checks that fetching context parameters using an unused param value is erroneous
+ * Feature: context
+ *
+ * SUBTEST: invalid-param-set
+ * Description: Checks that setting context parameters using an unused param value is erroneous
+ * Feature: context
+ *
+ * SUBTEST: invalid-set-no-zeromap
+ * Feature: context
+ *
+ * SUBTEST: invalid-set-ringsize
+ * Feature: context
+ *
+ * SUBTEST: invalid-size-get
+ * Description: Verify that context get param ioctl returns valid size for valid context
+ * Feature: context
+ *
+ * SUBTEST: invalid-size-set
+ * Description: Verify that context set param ioctl using invalid size returns relevant error
+ * Feature: context
+ *
+ * SUBTEST: non-root-set
+ * Description: Verify that context set param ioctl returns relevant error in non root mode
+ * Feature: context
+ *
+ * SUBTEST: root-set
+ * Description: Verify that context set param ioctl works fine in root mode
+ * Feature: context
+ *
+ * SUBTEST: set-priority-invalid-size
+ * Description: Test performed with context param set to priority.
+ *   Verify that relevant error is returned on setting invalid ctx size with default priority
+ * Feature: context
+ *
+ * SUBTEST: set-priority-not-supported
+ * Description: Verify that context set param ioctl returns relevant error if driver doesn't supports
+ *   assigning custom priorities from userspace
+ * Feature: context, no-set-priority
+ *
+ * SUBTEST: set-priority-range
+ * Description: Test performed with context param set to priority.
+ *   Change priority range to test value overflow
+ * Feature: context
+ *
+ * SUBTEST: vm
+ * Description: Tests that multiple contexts can share the same VMA
+ * Feature: context
+ */
 
 IGT_TEST_DESCRIPTION("Basic test for context set/get param input validation.");
 
diff --git a/tests/i915/gem_ctx_persistence.c b/tests/i915/gem_ctx_persistence.c
index 9fb528186162..40281ef4209e 100644
--- a/tests/i915/gem_ctx_persistence.c
+++ b/tests/i915/gem_ctx_persistence.c
@@ -45,6 +45,75 @@
 #include "ioctl_wrappers.h" /* gem_wait()! */
 #include "intel_allocator.h"
 #include "sw_sync.h"
+/**
+ * TEST: gem ctx persistence
+ * Feature: context
+ * Run type: FULL
+ *
+ * SUBTEST: engines-cleanup
+ *
+ * SUBTEST: engines-hang
+ *
+ * SUBTEST: engines-hostile
+ *
+ * SUBTEST: engines-hostile-preempt
+ *
+ * SUBTEST: engines-mixed
+ *
+ * SUBTEST: engines-mixed-process
+ *
+ * SUBTEST: engines-persistence
+ *
+ * SUBTEST: engines-queued
+ *
+ * SUBTEST: file
+ *
+ * SUBTEST: hang
+ *
+ * SUBTEST: heartbeat-close
+ *
+ * SUBTEST: heartbeat-hang
+ *
+ * SUBTEST: heartbeat-hostile
+ *
+ * SUBTEST: heartbeat-many
+ *
+ * SUBTEST: heartbeat-stop
+ *
+ * SUBTEST: hostile
+ *
+ * SUBTEST: idempotent
+ *
+ * SUBTEST: legacy-engines-cleanup
+ *
+ * SUBTEST: legacy-engines-hang
+ *
+ * SUBTEST: legacy-engines-hostile
+ *
+ * SUBTEST: legacy-engines-hostile-preempt
+ *
+ * SUBTEST: legacy-engines-mixed
+ *
+ * SUBTEST: legacy-engines-mixed-process
+ *
+ * SUBTEST: legacy-engines-persistence
+ *
+ * SUBTEST: legacy-engines-queued
+ *
+ * SUBTEST: many-contexts
+ *
+ * SUBTEST: process
+ *
+ * SUBTEST: processes
+ *
+ * SUBTEST: saturated-hostile
+ *
+ * SUBTEST: saturated-hostile-nopreempt
+ *
+ * SUBTEST: smoketest
+ *
+ * SUBTEST: userptr
+ */
 
 #define RESET_TIMEOUT_MS 2 * MSEC_PER_SEC; /* default: 640ms */
 static unsigned long reset_timeout_ms = RESET_TIMEOUT_MS;
diff --git a/tests/i915/gem_ctx_shared.c b/tests/i915/gem_ctx_shared.c
index 3d73db581c4e..078557bd1234 100644
--- a/tests/i915/gem_ctx_shared.c
+++ b/tests/i915/gem_ctx_shared.c
@@ -47,6 +47,40 @@
 #include "igt_vgem.h"
 #include "sw_sync.h"
 #include "sync_file.h"
+/**
+ * TEST: gem ctx shared
+ * Description: Test shared contexts.
+ * Feature: context
+ * Run type: FULL
+ *
+ * SUBTEST: Q-in-order
+ *
+ * SUBTEST: Q-independent
+ *
+ * SUBTEST: Q-out-order
+ *
+ * SUBTEST: Q-promotion
+ *
+ * SUBTEST: Q-smoketest
+ *
+ * SUBTEST: Q-smoketest-all
+ *
+ * SUBTEST: create-shared-gtt
+ *
+ * SUBTEST: detached-shared-gtt
+ *
+ * SUBTEST: disjoint-timelines
+ *
+ * SUBTEST: exec-shared-gtt
+ *
+ * SUBTEST: exec-single-timeline
+ *
+ * SUBTEST: exhaust-shared-gtt
+ *
+ * SUBTEST: exhaust-shared-gtt-lrc
+ *
+ * SUBTEST: single-timeline
+ */
 
 #define LO 0
 #define HI 1
diff --git a/tests/i915/gem_ctx_sseu.c b/tests/i915/gem_ctx_sseu.c
index 7685511f0734..78748c24d055 100644
--- a/tests/i915/gem_ctx_sseu.c
+++ b/tests/i915/gem_ctx_sseu.c
@@ -44,6 +44,20 @@
 #include "igt_perf.h"
 #include "igt_sysfs.h"
 #include "ioctl_wrappers.h"
+/**
+ * TEST: gem ctx sseu
+ * Description: Test context render powergating programming.
+ * Feature: pm_sseu
+ * Run type: FULL
+ *
+ * SUBTEST: engines
+ *
+ * SUBTEST: invalid-args
+ *
+ * SUBTEST: invalid-sseu
+ *
+ * SUBTEST: mmap-args
+ */
 
 IGT_TEST_DESCRIPTION("Test context render powergating programming.");
 
diff --git a/tests/i915/gem_ctx_switch.c b/tests/i915/gem_ctx_switch.c
index 4e46b7634858..b0066ab27abd 100644
--- a/tests/i915/gem_ctx_switch.c
+++ b/tests/i915/gem_ctx_switch.c
@@ -45,6 +45,371 @@
 #include "i915/gem_ring.h"
 #include "i915/gem_vm.h"
 #include "igt.h"
+/**
+ * TEST: gem ctx switch
+ * Feature: context
+ * Run type: FULL
+ *
+ * SUBTEST: all-heavy
+ *
+ * SUBTEST: all-light
+ *
+ * SUBTEST: bcs0
+ *
+ * SUBTEST: bcs0-forked
+ *
+ * SUBTEST: bcs0-forked-heavy
+ *
+ * SUBTEST: bcs0-forked-heavy-interruptible
+ *
+ * SUBTEST: bcs0-forked-heavy-queue
+ *
+ * SUBTEST: bcs0-forked-heavy-queue-interruptible
+ *
+ * SUBTEST: bcs0-forked-interruptible
+ *
+ * SUBTEST: bcs0-forked-queue
+ *
+ * SUBTEST: bcs0-forked-queue-interruptible
+ *
+ * SUBTEST: bcs0-heavy
+ *
+ * SUBTEST: bcs0-heavy-interruptible
+ *
+ * SUBTEST: bcs0-heavy-queue
+ *
+ * SUBTEST: bcs0-heavy-queue-interruptible
+ *
+ * SUBTEST: bcs0-interruptible
+ *
+ * SUBTEST: bcs0-queue
+ *
+ * SUBTEST: bcs0-queue-interruptible
+ *
+ * SUBTEST: legacy-blt
+ *
+ * SUBTEST: legacy-blt-forked
+ *
+ * SUBTEST: legacy-blt-forked-heavy
+ *
+ * SUBTEST: legacy-blt-forked-heavy-interruptible
+ *
+ * SUBTEST: legacy-blt-forked-heavy-queue
+ *
+ * SUBTEST: legacy-blt-forked-heavy-queue-interruptible
+ *
+ * SUBTEST: legacy-blt-forked-interruptible
+ *
+ * SUBTEST: legacy-blt-forked-queue
+ *
+ * SUBTEST: legacy-blt-forked-queue-interruptible
+ *
+ * SUBTEST: legacy-blt-heavy
+ *
+ * SUBTEST: legacy-blt-heavy-interruptible
+ *
+ * SUBTEST: legacy-blt-heavy-queue
+ *
+ * SUBTEST: legacy-blt-heavy-queue-interruptible
+ *
+ * SUBTEST: legacy-blt-interruptible
+ *
+ * SUBTEST: legacy-blt-queue
+ *
+ * SUBTEST: legacy-blt-queue-interruptible
+ *
+ * SUBTEST: legacy-bsd1
+ *
+ * SUBTEST: legacy-bsd1-forked
+ *
+ * SUBTEST: legacy-bsd1-forked-heavy
+ *
+ * SUBTEST: legacy-bsd1-forked-heavy-interruptible
+ *
+ * SUBTEST: legacy-bsd1-forked-heavy-queue
+ *
+ * SUBTEST: legacy-bsd1-forked-heavy-queue-interruptible
+ *
+ * SUBTEST: legacy-bsd1-forked-interruptible
+ *
+ * SUBTEST: legacy-bsd1-forked-queue
+ *
+ * SUBTEST: legacy-bsd1-forked-queue-interruptible
+ *
+ * SUBTEST: legacy-bsd1-heavy
+ *
+ * SUBTEST: legacy-bsd1-heavy-interruptible
+ *
+ * SUBTEST: legacy-bsd1-heavy-queue
+ *
+ * SUBTEST: legacy-bsd1-heavy-queue-interruptible
+ *
+ * SUBTEST: legacy-bsd1-interruptible
+ *
+ * SUBTEST: legacy-bsd1-queue
+ *
+ * SUBTEST: legacy-bsd1-queue-interruptible
+ *
+ * SUBTEST: legacy-bsd2
+ *
+ * SUBTEST: legacy-bsd2-forked
+ *
+ * SUBTEST: legacy-bsd2-forked-heavy
+ *
+ * SUBTEST: legacy-bsd2-forked-heavy-interruptible
+ *
+ * SUBTEST: legacy-bsd2-forked-heavy-queue
+ *
+ * SUBTEST: legacy-bsd2-forked-heavy-queue-interruptible
+ *
+ * SUBTEST: legacy-bsd2-forked-interruptible
+ *
+ * SUBTEST: legacy-bsd2-forked-queue
+ *
+ * SUBTEST: legacy-bsd2-forked-queue-interruptible
+ *
+ * SUBTEST: legacy-bsd2-heavy
+ *
+ * SUBTEST: legacy-bsd2-heavy-interruptible
+ *
+ * SUBTEST: legacy-bsd2-heavy-queue
+ *
+ * SUBTEST: legacy-bsd2-heavy-queue-interruptible
+ *
+ * SUBTEST: legacy-bsd2-interruptible
+ *
+ * SUBTEST: legacy-bsd2-queue
+ *
+ * SUBTEST: legacy-bsd2-queue-interruptible
+ *
+ * SUBTEST: legacy-default
+ *
+ * SUBTEST: legacy-default-forked
+ *
+ * SUBTEST: legacy-default-forked-heavy
+ *
+ * SUBTEST: legacy-default-forked-heavy-interruptible
+ *
+ * SUBTEST: legacy-default-forked-heavy-queue
+ *
+ * SUBTEST: legacy-default-forked-heavy-queue-interruptible
+ *
+ * SUBTEST: legacy-default-forked-interruptible
+ *
+ * SUBTEST: legacy-default-forked-queue
+ *
+ * SUBTEST: legacy-default-forked-queue-interruptible
+ *
+ * SUBTEST: legacy-default-heavy
+ *
+ * SUBTEST: legacy-default-heavy-interruptible
+ *
+ * SUBTEST: legacy-default-heavy-queue
+ *
+ * SUBTEST: legacy-default-heavy-queue-interruptible
+ *
+ * SUBTEST: legacy-default-interruptible
+ *
+ * SUBTEST: legacy-default-queue
+ *
+ * SUBTEST: legacy-default-queue-interruptible
+ *
+ * SUBTEST: legacy-render
+ *
+ * SUBTEST: legacy-render-forked
+ *
+ * SUBTEST: legacy-render-forked-heavy
+ *
+ * SUBTEST: legacy-render-forked-heavy-interruptible
+ *
+ * SUBTEST: legacy-render-forked-heavy-queue
+ *
+ * SUBTEST: legacy-render-forked-heavy-queue-interruptible
+ *
+ * SUBTEST: legacy-render-forked-interruptible
+ *
+ * SUBTEST: legacy-render-forked-queue
+ *
+ * SUBTEST: legacy-render-forked-queue-interruptible
+ *
+ * SUBTEST: legacy-render-heavy
+ *
+ * SUBTEST: legacy-render-heavy-interruptible
+ *
+ * SUBTEST: legacy-render-heavy-queue
+ *
+ * SUBTEST: legacy-render-heavy-queue-interruptible
+ *
+ * SUBTEST: legacy-render-interruptible
+ *
+ * SUBTEST: legacy-render-queue
+ *
+ * SUBTEST: legacy-render-queue-interruptible
+ *
+ * SUBTEST: legacy-vebox
+ *
+ * SUBTEST: legacy-vebox-forked
+ *
+ * SUBTEST: legacy-vebox-forked-heavy
+ *
+ * SUBTEST: legacy-vebox-forked-heavy-interruptible
+ *
+ * SUBTEST: legacy-vebox-forked-heavy-queue
+ *
+ * SUBTEST: legacy-vebox-forked-heavy-queue-interruptible
+ *
+ * SUBTEST: legacy-vebox-forked-interruptible
+ *
+ * SUBTEST: legacy-vebox-forked-queue
+ *
+ * SUBTEST: legacy-vebox-forked-queue-interruptible
+ *
+ * SUBTEST: legacy-vebox-heavy
+ *
+ * SUBTEST: legacy-vebox-heavy-interruptible
+ *
+ * SUBTEST: legacy-vebox-heavy-queue
+ *
+ * SUBTEST: legacy-vebox-heavy-queue-interruptible
+ *
+ * SUBTEST: legacy-vebox-interruptible
+ *
+ * SUBTEST: legacy-vebox-queue
+ *
+ * SUBTEST: legacy-vebox-queue-interruptible
+ *
+ * SUBTEST: queue-heavy
+ *
+ * SUBTEST: queue-light
+ *
+ * SUBTEST: rcs0
+ *
+ * SUBTEST: rcs0-forked
+ *
+ * SUBTEST: rcs0-forked-heavy
+ *
+ * SUBTEST: rcs0-forked-heavy-interruptible
+ *
+ * SUBTEST: rcs0-forked-heavy-queue
+ *
+ * SUBTEST: rcs0-forked-heavy-queue-interruptible
+ *
+ * SUBTEST: rcs0-forked-interruptible
+ *
+ * SUBTEST: rcs0-forked-queue
+ *
+ * SUBTEST: rcs0-forked-queue-interruptible
+ *
+ * SUBTEST: rcs0-heavy
+ *
+ * SUBTEST: rcs0-heavy-interruptible
+ *
+ * SUBTEST: rcs0-heavy-queue
+ *
+ * SUBTEST: rcs0-heavy-queue-interruptible
+ *
+ * SUBTEST: rcs0-interruptible
+ *
+ * SUBTEST: rcs0-queue
+ *
+ * SUBTEST: rcs0-queue-interruptible
+ *
+ * SUBTEST: vcs0
+ *
+ * SUBTEST: vcs0-forked
+ *
+ * SUBTEST: vcs0-forked-heavy
+ *
+ * SUBTEST: vcs0-forked-heavy-interruptible
+ *
+ * SUBTEST: vcs0-forked-heavy-queue
+ *
+ * SUBTEST: vcs0-forked-heavy-queue-interruptible
+ *
+ * SUBTEST: vcs0-forked-interruptible
+ *
+ * SUBTEST: vcs0-forked-queue
+ *
+ * SUBTEST: vcs0-forked-queue-interruptible
+ *
+ * SUBTEST: vcs0-heavy
+ *
+ * SUBTEST: vcs0-heavy-interruptible
+ *
+ * SUBTEST: vcs0-heavy-queue
+ *
+ * SUBTEST: vcs0-heavy-queue-interruptible
+ *
+ * SUBTEST: vcs0-interruptible
+ *
+ * SUBTEST: vcs0-queue
+ *
+ * SUBTEST: vcs0-queue-interruptible
+ *
+ * SUBTEST: vcs1
+ *
+ * SUBTEST: vcs1-forked
+ *
+ * SUBTEST: vcs1-forked-heavy
+ *
+ * SUBTEST: vcs1-forked-heavy-interruptible
+ *
+ * SUBTEST: vcs1-forked-heavy-queue
+ *
+ * SUBTEST: vcs1-forked-heavy-queue-interruptible
+ *
+ * SUBTEST: vcs1-forked-interruptible
+ *
+ * SUBTEST: vcs1-forked-queue
+ *
+ * SUBTEST: vcs1-forked-queue-interruptible
+ *
+ * SUBTEST: vcs1-heavy
+ *
+ * SUBTEST: vcs1-heavy-interruptible
+ *
+ * SUBTEST: vcs1-heavy-queue
+ *
+ * SUBTEST: vcs1-heavy-queue-interruptible
+ *
+ * SUBTEST: vcs1-interruptible
+ *
+ * SUBTEST: vcs1-queue
+ *
+ * SUBTEST: vcs1-queue-interruptible
+ *
+ * SUBTEST: vecs0
+ *
+ * SUBTEST: vecs0-forked
+ *
+ * SUBTEST: vecs0-forked-heavy
+ *
+ * SUBTEST: vecs0-forked-heavy-interruptible
+ *
+ * SUBTEST: vecs0-forked-heavy-queue
+ *
+ * SUBTEST: vecs0-forked-heavy-queue-interruptible
+ *
+ * SUBTEST: vecs0-forked-interruptible
+ *
+ * SUBTEST: vecs0-forked-queue
+ *
+ * SUBTEST: vecs0-forked-queue-interruptible
+ *
+ * SUBTEST: vecs0-heavy
+ *
+ * SUBTEST: vecs0-heavy-interruptible
+ *
+ * SUBTEST: vecs0-heavy-queue
+ *
+ * SUBTEST: vecs0-heavy-queue-interruptible
+ *
+ * SUBTEST: vecs0-interruptible
+ *
+ * SUBTEST: vecs0-queue
+ *
+ * SUBTEST: vecs0-queue-interruptible
+ */
 
 #define INTERRUPTIBLE 0x1
 #define QUEUE 0x2
diff --git a/tests/i915/gem_eio.c b/tests/i915/gem_eio.c
index 8dbaa7a75903..e1be2307dccb 100644
--- a/tests/i915/gem_eio.c
+++ b/tests/i915/gem_eio.c
@@ -52,6 +52,98 @@
 #include "igt_stats.h"
 #include "igt_sysfs.h"
 #include "sw_sync.h"
+/**
+ * TEST: gem eio
+ * Description: Test that specific ioctls report a wedged GPU (EIO).
+ * Run type: FULL
+ *
+ * SUBTEST: banned
+ * Feature: reset
+ *
+ * SUBTEST: context-create
+ * Feature: reset
+ *
+ * SUBTEST: create
+ * Description: Validate i915_gem_create_ioctl, while gpu is wedged for fb scanout.
+ * Feature: reset
+ *
+ * SUBTEST: create-ext
+ * Description: Validate i915_gem_create_ext_ioctl and checks if returns clear backing store while gpu is
+ *   wedged for fb scanout.
+ * Feature: reset
+ *
+ * SUBTEST: execbuf
+ * Feature: reset
+ *
+ * SUBTEST: hibernate
+ * Feature: hibernate, reset
+ *
+ * SUBTEST: in-flight-10ms
+ * Feature: reset
+ *
+ * SUBTEST: in-flight-1us
+ * Feature: reset
+ *
+ * SUBTEST: in-flight-contexts-10ms
+ * Feature: reset
+ *
+ * SUBTEST: in-flight-contexts-1us
+ * Feature: reset
+ *
+ * SUBTEST: in-flight-contexts-immediate
+ * Feature: reset
+ *
+ * SUBTEST: in-flight-external
+ * Feature: reset
+ *
+ * SUBTEST: in-flight-immediate
+ * Feature: reset
+ *
+ * SUBTEST: in-flight-internal-10ms
+ * Feature: reset
+ *
+ * SUBTEST: in-flight-internal-1us
+ * Feature: reset
+ *
+ * SUBTEST: in-flight-internal-immediate
+ * Feature: reset
+ *
+ * SUBTEST: in-flight-suspend
+ * Feature: reset
+ *
+ * SUBTEST: kms
+ * Feature: kms_gem_interop, reset
+ *
+ * SUBTEST: reset-stress
+ * Feature: reset
+ *
+ * SUBTEST: suspend
+ * Feature: reset, suspend
+ *
+ * SUBTEST: throttle
+ * Feature: reset
+ *
+ * SUBTEST: unwedge-stress
+ * Feature: reset
+ *
+ * SUBTEST: wait-10ms
+ * Feature: reset
+ *
+ * SUBTEST: wait-1us
+ * Feature: reset
+ *
+ * SUBTEST: wait-immediate
+ * Feature: reset
+ *
+ * SUBTEST: wait-wedge-10ms
+ * Feature: reset
+ *
+ * SUBTEST: wait-wedge-1us
+ * Feature: reset
+ *
+ * SUBTEST: wait-wedge-immediate
+ * Feature: reset
+ */
 
 IGT_TEST_DESCRIPTION("Test that specific ioctls report a wedged GPU (EIO).");
 
diff --git a/tests/i915/gem_evict_alignment.c b/tests/i915/gem_evict_alignment.c
index 0b560ab03ccf..f04f24972eb7 100644
--- a/tests/i915/gem_evict_alignment.c
+++ b/tests/i915/gem_evict_alignment.c
@@ -47,6 +47,23 @@
 #include "i915/gem.h"
 #include "i915/gem_create.h"
 #include "igt.h"
+/**
+ * TEST: gem evict alignment
+ * Description: Run a couple of big batches to force the unbind on misalignment code.
+ * Run type: FULL
+ *
+ * SUBTEST: major-hang
+ *
+ * SUBTEST: major-interruptible
+ *
+ * SUBTEST: major-normal
+ *
+ * SUBTEST: minor-hang
+ *
+ * SUBTEST: minor-interruptible
+ *
+ * SUBTEST: minor-normal
+ */
 
 IGT_TEST_DESCRIPTION("Run a couple of big batches to force the unbind on"
 		     " misalignment code.");
diff --git a/tests/i915/gem_evict_everything.c b/tests/i915/gem_evict_everything.c
index 120f890728df..87f854bf88cf 100644
--- a/tests/i915/gem_evict_everything.c
+++ b/tests/i915/gem_evict_everything.c
@@ -48,6 +48,67 @@
 #include "igt.h"
 
 #include "eviction_common.c"
+/**
+ * TEST: gem evict everything
+ * Description: Run a couple of big batches to force the eviction code.
+ * Run type: FULL
+ *
+ * SUBTEST: forked-interruptible
+ *
+ * SUBTEST: forked-mempressure-interruptible
+ *
+ * SUBTEST: forked-mempressure-normal
+ *
+ * SUBTEST: forked-multifd-interruptible
+ *
+ * SUBTEST: forked-multifd-mempressure-interruptible
+ *
+ * SUBTEST: forked-multifd-mempressure-normal
+ *
+ * SUBTEST: forked-multifd-normal
+ *
+ * SUBTEST: forked-normal
+ *
+ * SUBTEST: forked-swapping-interruptible
+ *
+ * SUBTEST: forked-swapping-mempressure-interruptible
+ *
+ * SUBTEST: forked-swapping-mempressure-normal
+ *
+ * SUBTEST: forked-swapping-multifd-interruptible
+ *
+ * SUBTEST: forked-swapping-multifd-mempressure-interruptible
+ *
+ * SUBTEST: forked-swapping-multifd-mempressure-normal
+ *
+ * SUBTEST: forked-swapping-multifd-normal
+ *
+ * SUBTEST: forked-swapping-normal
+ *
+ * SUBTEST: major-hang
+ *
+ * SUBTEST: major-interruptible
+ *
+ * SUBTEST: major-normal
+ *
+ * SUBTEST: minor-hang
+ *
+ * SUBTEST: minor-interruptible
+ *
+ * SUBTEST: minor-normal
+ *
+ * SUBTEST: mlocked-hang
+ *
+ * SUBTEST: mlocked-interruptible
+ *
+ * SUBTEST: mlocked-normal
+ *
+ * SUBTEST: swapping-hang
+ *
+ * SUBTEST: swapping-interruptible
+ *
+ * SUBTEST: swapping-normal
+ */
 
 IGT_TEST_DESCRIPTION("Run a couple of big batches to force the eviction"
 		     " code.");
diff --git a/tests/i915/gem_exec_alignment.c b/tests/i915/gem_exec_alignment.c
index a9fcd2a747d1..32db9840a344 100644
--- a/tests/i915/gem_exec_alignment.c
+++ b/tests/i915/gem_exec_alignment.c
@@ -45,6 +45,24 @@
 #include "i915/gem_create.h"
 #include "igt.h"
 #include "igt_types.h"
+/**
+ * TEST: gem exec alignment
+ * Description: Exercises the basic execbuffer using object alignments
+ * Feature: cmd_submission
+ * Run type: FULL
+ *
+ * SUBTEST: forked
+ *
+ * SUBTEST: many
+ *
+ * SUBTEST: pi
+ *
+ * SUBTEST: pi-isolated
+ *
+ * SUBTEST: pi-shared
+ *
+ * SUBTEST: single
+ */
 
 IGT_TEST_DESCRIPTION("Exercises the basic execbuffer using object alignments");
 
diff --git a/tests/i915/gem_exec_async.c b/tests/i915/gem_exec_async.c
index 173bc4648a5a..1153c0bf2e30 100644
--- a/tests/i915/gem_exec_async.c
+++ b/tests/i915/gem_exec_async.c
@@ -24,6 +24,16 @@
 #include "i915/gem.h"
 #include "i915/gem_create.h"
 #include "igt.h"
+/**
+ * TEST: gem exec async
+ * Description: Check that we can issue concurrent writes across the engines.
+ * Feature: cmd_submission
+ * Run type: FULL
+ *
+ * SUBTEST: concurrent-writes
+ *
+ * SUBTEST: forked-writes
+ */
 
 IGT_TEST_DESCRIPTION("Check that we can issue concurrent writes across the engines.");
 
diff --git a/tests/i915/gem_exec_await.c b/tests/i915/gem_exec_await.c
index 4935cf395b2e..c7f949c9cd2b 100644
--- a/tests/i915/gem_exec_await.c
+++ b/tests/i915/gem_exec_await.c
@@ -31,6 +31,15 @@
 #include "igt_rand.h"
 #include "igt_sysfs.h"
 #include "igt_vgem.h"
+/**
+ * TEST: gem exec await
+ * Feature: cmd_submission
+ * Run type: FULL
+ *
+ * SUBTEST: wide-all
+ *
+ * SUBTEST: wide-contexts
+ */
 
 static double elapsed(const struct timespec *start, const struct timespec *end)
 {
diff --git a/tests/i915/gem_exec_balancer.c b/tests/i915/gem_exec_balancer.c
index 1c655e583c51..d1d92e6ba689 100644
--- a/tests/i915/gem_exec_balancer.c
+++ b/tests/i915/gem_exec_balancer.c
@@ -38,6 +38,123 @@
 #include "igt_sysfs.h"
 #include "igt_types.h"
 #include "sw_sync.h"
+/**
+ * TEST: gem exec balancer
+ * Description: Exercise in-kernel load-balancing
+ * Run type: FULL
+ *
+ * SUBTEST: bonded-chain
+ * Feature: cmd_submission, media_scalability
+ *
+ * SUBTEST: bonded-dual
+ * Feature: cmd_submission, media_scalability
+ *
+ * SUBTEST: bonded-false-hang
+ * Feature: cmd_submission, media_scalability
+ *
+ * SUBTEST: bonded-pair
+ * Feature: cmd_submission, media_scalability
+ *
+ * SUBTEST: bonded-semaphore
+ * Feature: cmd_submission, media_scalability, multictx
+ *
+ * SUBTEST: bonded-sync
+ * Feature: cmd_submission, media_scalability
+ *
+ * SUBTEST: bonded-true-hang
+ * Feature: cmd_submission, media_scalability
+ *
+ * SUBTEST: busy
+ * Feature: cmd_submission, media_scalability
+ *
+ * SUBTEST: fairslice
+ * Feature: cmd_submission, media_scalability
+ *
+ * SUBTEST: full
+ * Feature: cmd_submission, media_scalability, multictx
+ *
+ * SUBTEST: full-late
+ * Feature: cmd_submission, media_scalability, multictx
+ *
+ * SUBTEST: full-late-pulse
+ * Feature: cmd_submission, media_scalability, multictx
+ *
+ * SUBTEST: full-pulse
+ * Feature: cmd_submission, media_scalability, multictx
+ *
+ * SUBTEST: hang
+ * Feature: cmd_submission, media_scalability
+ *
+ * SUBTEST: hog
+ * Feature: cmd_submission, media_scalability
+ *
+ * SUBTEST: indices
+ * Feature: cmd_submission, media_scalability, multictx
+ *
+ * SUBTEST: individual
+ * Feature: cmd_submission, media_scalability
+ *
+ * SUBTEST: invalid-balancer
+ * Feature: cmd_submission, media_scalability
+ *
+ * SUBTEST: invalid-bonds
+ * Feature: cmd_submission, media_scalability
+ *
+ * SUBTEST: nohangcheck
+ * Feature: cmd_submission, media_scalability
+ *
+ * SUBTEST: noheartbeat
+ * Feature: cmd_submission, media_scalability
+ *
+ * SUBTEST: nop
+ * Feature: cmd_submission, media_scalability
+ *
+ * SUBTEST: parallel
+ * Feature: cmd_submission, media_scalability
+ *
+ * SUBTEST: parallel-balancer
+ * Feature: cmd_submission, media_scalability
+ *
+ * SUBTEST: parallel-bb-first
+ * Feature: cmd_submission, media_scalability
+ *
+ * SUBTEST: parallel-contexts
+ * Feature: cmd_submission, media_scalability
+ *
+ * SUBTEST: parallel-dmabuf-import-out-fence
+ * Description: Regression test to check that dmabuf imported sync file can handle fence array
+ * Feature: cmd_submission, media_scalability
+ *
+ * SUBTEST: parallel-keep-in-fence
+ * Feature: cmd_submission, media_scalability
+ *
+ * SUBTEST: parallel-keep-submit-fence
+ * Feature: cmd_submission, media_scalability
+ *
+ * SUBTEST: parallel-ordering
+ * Feature: cmd_submission, media_scalability
+ *
+ * SUBTEST: parallel-out-fence
+ * Feature: cmd_submission, media_scalability
+ *
+ * SUBTEST: persistence
+ * Feature: cmd_submission, media_scalability
+ *
+ * SUBTEST: semaphore
+ * Feature: cmd_submission, media_scalability, multictx
+ *
+ * SUBTEST: sequential
+ * Feature: cmd_submission, media_scalability
+ *
+ * SUBTEST: sliced
+ * Feature: cmd_submission, media_scalability
+ *
+ * SUBTEST: smoke
+ * Feature: cmd_submission, media_scalability
+ *
+ * SUBTEST: waits
+ * Feature: cmd_submission, media_scalability
+ */
 
 IGT_TEST_DESCRIPTION("Exercise in-kernel load-balancing");
 
diff --git a/tests/i915/gem_exec_basic.c b/tests/i915/gem_exec_basic.c
index ca4fc7b961df..94a55f849a61 100644
--- a/tests/i915/gem_exec_basic.c
+++ b/tests/i915/gem_exec_basic.c
@@ -25,6 +25,16 @@
 #include "igt_collection.h"
 
 #include "i915/gem_create.h"
+/**
+ * TEST: gem exec basic
+ * Description: Basic sanity check of execbuf-ioctl rings.
+ * Feature: cmd_submission
+ * Run type: BAT
+ *
+ * SUBTEST: basic
+ * Description: Check basic functionality of GEM_EXECBUFFER2 ioctl on every ring and iterating over memory
+ *   regions.
+ */
 
 IGT_TEST_DESCRIPTION("Basic sanity check of execbuf-ioctl rings.");
 
diff --git a/tests/i915/gem_exec_big.c b/tests/i915/gem_exec_big.c
index 4619bda81981..7f07cf6c69db 100644
--- a/tests/i915/gem_exec_big.c
+++ b/tests/i915/gem_exec_big.c
@@ -48,6 +48,16 @@
 #include "i915/gem.h"
 #include "i915/gem_create.h"
 #include "igt.h"
+/**
+ * TEST: gem exec big
+ * Description: Run a large nop batch to stress test the error capture code.
+ * Feature: cmd_submission
+ * Run type: FULL
+ *
+ * SUBTEST: exhaustive
+ *
+ * SUBTEST: single
+ */
 
 IGT_TEST_DESCRIPTION("Run a large nop batch to stress test the error capture"
 		     " code.");
diff --git a/tests/i915/gem_exec_capture.c b/tests/i915/gem_exec_capture.c
index 9c391192d952..9dd8320d1066 100644
--- a/tests/i915/gem_exec_capture.c
+++ b/tests/i915/gem_exec_capture.c
@@ -31,6 +31,35 @@
 #include "igt_device.h"
 #include "igt_rand.h"
 #include "igt_sysfs.h"
+/**
+ * TEST: gem exec capture
+ * Description: Check that we capture the user specified objects on a hang
+ * Feature: cmd_submission
+ * Run type: FULL
+ *
+ * SUBTEST: capture
+ *
+ * SUBTEST: capture-invisible
+ * Description: Check that the kernel doesn't crash if the pages can't be copied from the CPU during error
+ *   capture.
+ *
+ * SUBTEST: capture-recoverable
+ * Description: Verify that the kernel rejects EXEC_OBJECT_CAPTURE with recoverable contexts.
+ *
+ * SUBTEST: many-256M-incremental
+ *
+ * SUBTEST: many-2M-incremental
+ *
+ * SUBTEST: many-2M-zero
+ *
+ * SUBTEST: many-4K-incremental
+ *
+ * SUBTEST: many-4K-zero
+ *
+ * SUBTEST: pi
+ *
+ * SUBTEST: userptr
+ */
 
 #define MAX_RESET_TIME	600
 
diff --git a/tests/i915/gem_exec_create.c b/tests/i915/gem_exec_create.c
index 449aa5b2e905..208faef31ff8 100644
--- a/tests/i915/gem_exec_create.c
+++ b/tests/i915/gem_exec_create.c
@@ -46,6 +46,30 @@
 
 #include "i915_drm.h"
 #include "i915/intel_memory_region.h"
+/**
+ * TEST: gem exec create
+ * Description: This test overloads the driver with transient active objects and checks if we don't kill the
+ *   system under the memory pressure some of the symptoms this test look for include mysterious
+ *   hangs.
+ * Feature: cmd_submission
+ *
+ * SUBTEST: basic
+ * Description: Check if we kill system by overloading it with active objects iterating over all engines.
+ * Run type: BAT
+ *
+ * SUBTEST: forked
+ * Description: Concurrently overloads system with active objects and checks if we kill system.
+ * Run type: FULL
+ *
+ * SUBTEST: legacy
+ * Description: Check if we kill the system by overloading it with active objects iterating over legacy
+ *   engines.
+ * Run type: FULL
+ *
+ * SUBTEST: madvise
+ * Description: This test does a forced reclaim, behaving like a bad application leaking its bo cache.
+ * Run type: FULL
+ */
 
 IGT_TEST_DESCRIPTION("This test overloads the driver with transient active objects"
 		     " and checks if we don't kill the system under the memory pressure"
diff --git a/tests/i915/gem_exec_endless.c b/tests/i915/gem_exec_endless.c
index 77719de83b67..25ad16898761 100644
--- a/tests/i915/gem_exec_endless.c
+++ b/tests/i915/gem_exec_endless.c
@@ -30,6 +30,13 @@
 #include "igt_sysfs.h"
 #include "igt_types.h"
 #include "sw_sync.h"
+/**
+ * TEST: gem exec endless
+ * Feature: cmd_submission
+ * Run type: FULL
+ *
+ * SUBTEST: dispatch
+ */
 
 #define MAX_ENGINES 64
 
diff --git a/tests/i915/gem_exec_fair.c b/tests/i915/gem_exec_fair.c
index 8208ab404e80..5268efdc8ce2 100644
--- a/tests/i915/gem_exec_fair.c
+++ b/tests/i915/gem_exec_fair.c
@@ -26,6 +26,98 @@
 #include "igt_vgem.h"
 #include "ioctl_wrappers.h"
 #include "sw_sync.h"
+/**
+ * TEST: gem exec fair
+ * Description: Check that GPU time and execution order is fairly distributed across clients
+ * Feature: cmd_submission
+ * Run type: FULL
+ *
+ * SUBTEST: basic-deadline
+ *
+ * SUBTEST: basic-flow
+ *
+ * SUBTEST: basic-none
+ *
+ * SUBTEST: basic-none-rrul
+ *
+ * SUBTEST: basic-none-share
+ *
+ * SUBTEST: basic-none-solo
+ *
+ * SUBTEST: basic-none-vip
+ *
+ * SUBTEST: basic-pace
+ *
+ * SUBTEST: basic-pace-share
+ *
+ * SUBTEST: basic-pace-solo
+ *
+ * SUBTEST: basic-sync
+ *
+ * SUBTEST: basic-throttle
+ *
+ * SUBTEST: deadline-prio
+ *
+ * SUBTEST: fair-flow
+ *
+ * SUBTEST: fair-flow-ping
+ *
+ * SUBTEST: fair-flow-share
+ *
+ * SUBTEST: fair-flow-solo
+ *
+ * SUBTEST: fair-half
+ *
+ * SUBTEST: fair-half-solo
+ *
+ * SUBTEST: fair-next
+ *
+ * SUBTEST: fair-next-ping
+ *
+ * SUBTEST: fair-next-share
+ *
+ * SUBTEST: fair-next-solo
+ *
+ * SUBTEST: fair-none
+ *
+ * SUBTEST: fair-none-ping
+ *
+ * SUBTEST: fair-none-rrul
+ *
+ * SUBTEST: fair-none-share
+ *
+ * SUBTEST: fair-none-solo
+ *
+ * SUBTEST: fair-none-vip
+ *
+ * SUBTEST: fair-pace
+ *
+ * SUBTEST: fair-pace-ping
+ *
+ * SUBTEST: fair-pace-share
+ *
+ * SUBTEST: fair-pace-solo
+ *
+ * SUBTEST: fair-spare
+ *
+ * SUBTEST: fair-spare-solo
+ *
+ * SUBTEST: fair-sync
+ *
+ * SUBTEST: fair-sync-solo
+ *
+ * SUBTEST: fair-sync-vip
+ *
+ * SUBTEST: fair-throttle
+ *
+ * SUBTEST: fair-throttle-rrul
+ *
+ * SUBTEST: fair-throttle-share
+ *
+ * SUBTEST: fair-throttle-solo
+ *
+ * SUBTEST: fair-throttle-vip
+ */
 
 IGT_TEST_DESCRIPTION("Check that GPU time and execution order is fairly distributed across clients");
 
diff --git a/tests/i915/gem_exec_fence.c b/tests/i915/gem_exec_fence.c
index c2d874f84b91..90ce16cadd59 100644
--- a/tests/i915/gem_exec_fence.c
+++ b/tests/i915/gem_exec_fence.c
@@ -35,6 +35,236 @@
 #include "igt_vgem.h"
 #include "intel_ctx.h"
 #include "sw_sync.h"
+/**
+ * TEST: gem exec fence
+ * Description: Check that execbuf waits for explicit fences
+ *
+ * SUBTEST: await-hang
+ * Description: Check for explicit fence with async wait on each engine with a pending gpu hang.
+ * Feature: cmd_submission, synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: basic-await
+ * Description: Basic check for explicit fence with async wait on each engine.
+ * Feature: cmd_submission, multitile, synchronization
+ * Run type: BAT
+ *
+ * SUBTEST: basic-busy
+ * Description: Basic check for explicit fence on each busy engine.
+ * Feature: cmd_submission, multitile, synchronization
+ * Run type: BAT
+ *
+ * SUBTEST: basic-busy-all
+ * Description: Basic check for composite fence on all busy engines.
+ * Feature: cmd_submission, multitile, synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: basic-wait
+ * Description: Basic check for explicit fence with additinal wait time on each busy engine.
+ * Feature: cmd_submission, multitile, synchronization
+ * Run type: BAT
+ *
+ * SUBTEST: basic-wait-all
+ * Description: Basic check for composite fence with additional wait on all busy engines.
+ * Feature: cmd_submission, multitile, synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: busy-hang
+ * Description: Check for explicit fence on each busy engine with a pending gpu hang.
+ * Feature: cmd_submission, synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: busy-hang-all
+ * Description: Check for composite fence on all busy engines with a pending gpu hang.
+ * Feature: cmd_submission, synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: concurrent
+ * Description: Check blocking bonded fences on each engine.
+ * Feature: cmd_submission, synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: expired-history
+ * Description: Verifies long history of fences are expired.
+ * Feature: cmd_submission, synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: invalid-fence-array
+ * Description: Verifies invalid fence-array pointers are rejected.
+ * Feature: cmd_submission, synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: invalid-timeline-fence-array
+ * Description: Verifies invalid execbuf parameters in drm_i915_gem_execbuffer_ext_timeline_fences
+ *   are rejected
+ * Feature: cmd_submission, synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: keep-in-fence
+ * Description: Check in-fence is not overwritten with out-fence on each engine.
+ * Feature: cmd_submission, multitile, synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: long-history
+ * Description: Verifies accumulation of long history of fences.
+ * Feature: cmd_submission, synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: nb-await
+ * Description: Check for explicit fence with non-blocking wait on each engine.
+ * Feature: cmd_submission, multitile, synchronization
+ * Run type: BAT
+ *
+ * SUBTEST: nb-await-hang
+ * Description: Check for explicit fence with non-blocking async wait on each engine with a pending gpu hang.
+ * Feature: cmd_submission, multitile, synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: parallel
+ * Description: Check for EXEC_FENCE_SUBMIT in parallel execution scenarios on each engine.
+ * Feature: cmd_submission, multitile, synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: submit
+ * Description: Check timeslicing on submit-fence.
+ * Feature: cmd_submission, synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: submit-chain
+ * Description: Check launching a chain of spinners across all engines using submit-fence.
+ * Feature: cmd_submission, synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: submit3
+ * Description: Check timeslicing on submit-fence by submitting coupled batches.
+ * Feature: cmd_submission, synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: submit67
+ * Description: Check timeslicing on submit-fence by submitting more coupled batches than can possibly fit
+ *   into the ELSP.
+ * Feature: cmd_submission, synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: syncobj-backward-timeline-chain-engines
+ * Description: Engine chaining tests to verify ordering of timeline syncobjs with backward timeline
+ *   points.
+ * Feature: cmd_submission, synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: syncobj-channel
+ * Description: Verifies two clients racing for syncobj using channel.
+ * Feature: cmd_submission, synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: syncobj-export
+ * Description: Verify exporting of fence-array syncobj signaled by i915.
+ * Feature: cmd_submission, synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: syncobj-import
+ * Description: Verifies creating of a syncobj from explicit fence.
+ * Feature: cmd_submission, synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: syncobj-invalid-flags
+ * Description: Verifies that invalid fence flags in fence-array are rejected.
+ * Feature: cmd_submission, synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: syncobj-invalid-wait
+ * Description: Verifies that submitting an execbuf with a wait on a syncobj that doesn't exists is rejected.
+ * Feature: cmd_submission, synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: syncobj-repeat
+ * Description: Verifies that waiting & signaling a same fence-array syncobj within the same execbuf works.
+ * Feature: cmd_submission, synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: syncobj-signal
+ * Description: Verifies proper signaling of a fence-array syncobj through execbuf.
+ * Feature: cmd_submission, synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: syncobj-stationary-timeline-chain-engines
+ * Description: Engine chaining tests to verify ordering of timeline syncobj with stationary timeline
+ *   points.
+ * Feature: cmd_submission, synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: syncobj-timeline-chain-engines
+ * Description: Engine chaining tests to verify ordering of timeline syncobjs through execbuf.
+ * Feature: cmd_submission, synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: syncobj-timeline-export
+ * Description: Verify exporting of timeline syncobj signaled by i915
+ * Feature: cmd_submission, synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: syncobj-timeline-invalid-flags
+ * Description: Verifies that invalid fence flags in drm_i915_gem_execbuffer_ext_timeline_fences are
+ *   rejected
+ * Feature: cmd_submission, synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: syncobj-timeline-invalid-wait
+ * Description: Verifies that submitting an execbuf with a wait on a timeline syncobj point that does not
+ *   exists is rejected
+ * Feature: cmd_submission, synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: syncobj-timeline-multiple-ext-nodes
+ * Description: Verify that passing multiple execbuffer_ext nodes works
+ * Feature: cmd_submission, synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: syncobj-timeline-repeat
+ * Description: Verifies that waiting & signaling a same timeline syncobj point within the same execbuf
+ *   fworks
+ * Feature: cmd_submission, synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: syncobj-timeline-signal
+ * Description: Verifies proper signaling of a timeline syncobj through execbuf
+ * Feature: cmd_submission, synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: syncobj-timeline-unused-fence
+ * Description: Verifies that a timeline syncobj passed into
+ *   drm_i915_gem_execbuffer_ext_timeline_fences but with no signal/wait flag is left
+ *   untouched
+ * Feature: cmd_submission, synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: syncobj-timeline-wait
+ * Description: Verifies that waiting on a timeline syncobj point between engines works
+ * Feature: cmd_submission, synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: syncobj-unused-fence
+ * Description: Verifies that a syncobj passed into execbuf but with no signal/wait flag is left untouched.
+ * Feature: cmd_submission, synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: syncobj-wait
+ * Description: Verifies that waiting on a timeline syncobj point between engines works.
+ * Feature: cmd_submission, synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: wait-hang
+ * Description: Check for explicit fence with additional wait time on each busy engine with a pending gpu
+ *   hang.
+ * Feature: cmd_submission, synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: wait-hang-all
+ * Description: Check for composite fence with additional wait on all busy engines and with a pending gpu
+ *   hang.
+ * Feature: cmd_submission, synchronization
+ * Run type: FULL
+ */
 
 IGT_TEST_DESCRIPTION("Check that execbuf waits for explicit fences");
 
diff --git a/tests/i915/gem_exec_flush.c b/tests/i915/gem_exec_flush.c
index 42ddbc529ec6..e213bda5edb3 100644
--- a/tests/i915/gem_exec_flush.c
+++ b/tests/i915/gem_exec_flush.c
@@ -28,6 +28,1502 @@
 #include "i915/gem_ring.h"
 #include "igt.h"
 #include "igt_x86.h"
+/**
+ * TEST: gem exec flush
+ * Description: Basic check of flushing after batches
+ * Run type: FULL
+ *
+ * SUBTEST: basic-batch-kernel-default-cmd
+ * Feature: cmd_submission, command_parser
+ *
+ * SUBTEST: basic-batch-kernel-default-uc
+ * Feature: cmd_submission
+ *
+ * SUBTEST: basic-batch-kernel-default-wb
+ * Feature: cmd_submission
+ *
+ * SUBTEST: basic-uc-pro-default
+ * Feature: cmd_submission
+ *
+ * SUBTEST: basic-uc-prw-default
+ * Feature: cmd_submission
+ *
+ * SUBTEST: basic-uc-ro-default
+ * Feature: cmd_submission
+ *
+ * SUBTEST: basic-uc-rw-default
+ * Feature: cmd_submission
+ *
+ * SUBTEST: basic-uc-set-default
+ * Feature: cmd_submission
+ *
+ * SUBTEST: basic-wb-pro-default
+ * Feature: cmd_submission
+ *
+ * SUBTEST: basic-wb-prw-default
+ * Feature: cmd_submission
+ *
+ * SUBTEST: basic-wb-ro-before-default
+ * Feature: cmd_submission
+ *
+ * SUBTEST: basic-wb-ro-default
+ * Feature: cmd_submission
+ *
+ * SUBTEST: basic-wb-rw-before-default
+ * Feature: cmd_submission
+ *
+ * SUBTEST: basic-wb-rw-default
+ * Feature: cmd_submission
+ *
+ * SUBTEST: basic-wb-set-default
+ * Feature: cmd_submission
+ *
+ * SUBTEST: batch-cpu-blt-cmd
+ * Feature: cmd_submission, command_parser
+ *
+ * SUBTEST: batch-cpu-blt-uc
+ * Feature: cmd_submission
+ *
+ * SUBTEST: batch-cpu-blt-wb
+ * Feature: cmd_submission
+ *
+ * SUBTEST: batch-cpu-bsd-cmd
+ * Feature: cmd_submission, command_parser
+ *
+ * SUBTEST: batch-cpu-bsd-uc
+ * Feature: cmd_submission
+ *
+ * SUBTEST: batch-cpu-bsd-wb
+ * Feature: cmd_submission
+ *
+ * SUBTEST: batch-cpu-bsd1-cmd
+ * Feature: cmd_submission, command_parser
+ *
+ * SUBTEST: batch-cpu-bsd1-uc
+ * Feature: cmd_submission
+ *
+ * SUBTEST: batch-cpu-bsd1-wb
+ * Feature: cmd_submission
+ *
+ * SUBTEST: batch-cpu-bsd2-cmd
+ * Feature: cmd_submission, command_parser
+ *
+ * SUBTEST: batch-cpu-bsd2-uc
+ * Feature: cmd_submission
+ *
+ * SUBTEST: batch-cpu-bsd2-wb
+ * Feature: cmd_submission
+ *
+ * SUBTEST: batch-cpu-default-cmd
+ * Feature: cmd_submission, command_parser
+ *
+ * SUBTEST: batch-cpu-default-uc
+ * Feature: cmd_submission
+ *
+ * SUBTEST: batch-cpu-default-wb
+ * Feature: cmd_submission
+ *
+ * SUBTEST: batch-cpu-render-cmd
+ * Feature: cmd_submission, command_parser
+ *
+ * SUBTEST: batch-cpu-render-uc
+ * Feature: cmd_submission
+ *
+ * SUBTEST: batch-cpu-render-wb
+ * Feature: cmd_submission
+ *
+ * SUBTEST: batch-cpu-vebox-cmd
+ * Feature: cmd_submission, command_parser
+ *
+ * SUBTEST: batch-cpu-vebox-uc
+ * Feature: cmd_submission
+ *
+ * SUBTEST: batch-cpu-vebox-wb
+ * Feature: cmd_submission
+ *
+ * SUBTEST: batch-gtt-blt-cmd
+ * Feature: cmd_submission, command_parser
+ *
+ * SUBTEST: batch-gtt-blt-uc
+ * Feature: cmd_submission
+ *
+ * SUBTEST: batch-gtt-blt-wb
+ * Feature: cmd_submission
+ *
+ * SUBTEST: batch-gtt-bsd-cmd
+ * Feature: cmd_submission, command_parser
+ *
+ * SUBTEST: batch-gtt-bsd-uc
+ * Feature: cmd_submission
+ *
+ * SUBTEST: batch-gtt-bsd-wb
+ * Feature: cmd_submission
+ *
+ * SUBTEST: batch-gtt-bsd1-cmd
+ * Feature: cmd_submission, command_parser
+ *
+ * SUBTEST: batch-gtt-bsd1-uc
+ * Feature: cmd_submission
+ *
+ * SUBTEST: batch-gtt-bsd1-wb
+ * Feature: cmd_submission
+ *
+ * SUBTEST: batch-gtt-bsd2-cmd
+ * Feature: cmd_submission, command_parser
+ *
+ * SUBTEST: batch-gtt-bsd2-uc
+ * Feature: cmd_submission
+ *
+ * SUBTEST: batch-gtt-bsd2-wb
+ * Feature: cmd_submission
+ *
+ * SUBTEST: batch-gtt-default-cmd
+ * Feature: cmd_submission, command_parser
+ *
+ * SUBTEST: batch-gtt-default-uc
+ * Feature: cmd_submission
+ *
+ * SUBTEST: batch-gtt-default-wb
+ * Feature: cmd_submission
+ *
+ * SUBTEST: batch-gtt-render-cmd
+ * Feature: cmd_submission, command_parser
+ *
+ * SUBTEST: batch-gtt-render-uc
+ * Feature: cmd_submission
+ *
+ * SUBTEST: batch-gtt-render-wb
+ * Feature: cmd_submission
+ *
+ * SUBTEST: batch-gtt-vebox-cmd
+ * Feature: cmd_submission, command_parser
+ *
+ * SUBTEST: batch-gtt-vebox-uc
+ * Feature: cmd_submission
+ *
+ * SUBTEST: batch-gtt-vebox-wb
+ * Feature: cmd_submission
+ *
+ * SUBTEST: batch-kernel-blt-cmd
+ * Feature: cmd_submission, command_parser
+ *
+ * SUBTEST: batch-kernel-blt-uc
+ * Feature: cmd_submission
+ *
+ * SUBTEST: batch-kernel-blt-wb
+ * Feature: cmd_submission
+ *
+ * SUBTEST: batch-kernel-bsd-cmd
+ * Feature: cmd_submission, command_parser
+ *
+ * SUBTEST: batch-kernel-bsd-uc
+ * Feature: cmd_submission
+ *
+ * SUBTEST: batch-kernel-bsd-wb
+ * Feature: cmd_submission
+ *
+ * SUBTEST: batch-kernel-bsd1-cmd
+ * Feature: cmd_submission, command_parser
+ *
+ * SUBTEST: batch-kernel-bsd1-uc
+ * Feature: cmd_submission
+ *
+ * SUBTEST: batch-kernel-bsd1-wb
+ * Feature: cmd_submission
+ *
+ * SUBTEST: batch-kernel-bsd2-cmd
+ * Feature: cmd_submission, command_parser
+ *
+ * SUBTEST: batch-kernel-bsd2-uc
+ * Feature: cmd_submission
+ *
+ * SUBTEST: batch-kernel-bsd2-wb
+ * Feature: cmd_submission
+ *
+ * SUBTEST: batch-kernel-render-cmd
+ * Feature: cmd_submission, command_parser
+ *
+ * SUBTEST: batch-kernel-render-uc
+ * Feature: cmd_submission
+ *
+ * SUBTEST: batch-kernel-render-wb
+ * Feature: cmd_submission
+ *
+ * SUBTEST: batch-kernel-vebox-cmd
+ * Feature: cmd_submission, command_parser
+ *
+ * SUBTEST: batch-kernel-vebox-uc
+ * Feature: cmd_submission
+ *
+ * SUBTEST: batch-kernel-vebox-wb
+ * Feature: cmd_submission
+ *
+ * SUBTEST: batch-user-blt-cmd
+ * Feature: cmd_submission, command_parser
+ *
+ * SUBTEST: batch-user-blt-uc
+ * Feature: cmd_submission
+ *
+ * SUBTEST: batch-user-blt-wb
+ * Feature: cmd_submission
+ *
+ * SUBTEST: batch-user-bsd-cmd
+ * Feature: cmd_submission, command_parser
+ *
+ * SUBTEST: batch-user-bsd-uc
+ * Feature: cmd_submission
+ *
+ * SUBTEST: batch-user-bsd-wb
+ * Feature: cmd_submission
+ *
+ * SUBTEST: batch-user-bsd1-cmd
+ * Feature: cmd_submission, command_parser
+ *
+ * SUBTEST: batch-user-bsd1-uc
+ * Feature: cmd_submission
+ *
+ * SUBTEST: batch-user-bsd1-wb
+ * Feature: cmd_submission
+ *
+ * SUBTEST: batch-user-bsd2-cmd
+ * Feature: cmd_submission, command_parser
+ *
+ * SUBTEST: batch-user-bsd2-uc
+ * Feature: cmd_submission
+ *
+ * SUBTEST: batch-user-bsd2-wb
+ * Feature: cmd_submission
+ *
+ * SUBTEST: batch-user-default-cmd
+ * Feature: cmd_submission, command_parser
+ *
+ * SUBTEST: batch-user-default-uc
+ * Feature: cmd_submission
+ *
+ * SUBTEST: batch-user-default-wb
+ * Feature: cmd_submission
+ *
+ * SUBTEST: batch-user-render-cmd
+ * Feature: cmd_submission, command_parser
+ *
+ * SUBTEST: batch-user-render-uc
+ * Feature: cmd_submission
+ *
+ * SUBTEST: batch-user-render-wb
+ * Feature: cmd_submission
+ *
+ * SUBTEST: batch-user-vebox-cmd
+ * Feature: cmd_submission, command_parser
+ *
+ * SUBTEST: batch-user-vebox-uc
+ * Feature: cmd_submission
+ *
+ * SUBTEST: batch-user-vebox-wb
+ * Feature: cmd_submission
+ *
+ * SUBTEST: batch-wc-blt-cmd
+ * Feature: cmd_submission, command_parser
+ *
+ * SUBTEST: batch-wc-blt-uc
+ * Feature: cmd_submission
+ *
+ * SUBTEST: batch-wc-blt-wb
+ * Feature: cmd_submission
+ *
+ * SUBTEST: batch-wc-bsd-cmd
+ * Feature: cmd_submission, command_parser
+ *
+ * SUBTEST: batch-wc-bsd-uc
+ * Feature: cmd_submission
+ *
+ * SUBTEST: batch-wc-bsd-wb
+ * Feature: cmd_submission
+ *
+ * SUBTEST: batch-wc-bsd1-cmd
+ * Feature: cmd_submission, command_parser
+ *
+ * SUBTEST: batch-wc-bsd1-uc
+ * Feature: cmd_submission
+ *
+ * SUBTEST: batch-wc-bsd1-wb
+ * Feature: cmd_submission
+ *
+ * SUBTEST: batch-wc-bsd2-cmd
+ * Feature: cmd_submission, command_parser
+ *
+ * SUBTEST: batch-wc-bsd2-uc
+ * Feature: cmd_submission
+ *
+ * SUBTEST: batch-wc-bsd2-wb
+ * Feature: cmd_submission
+ *
+ * SUBTEST: batch-wc-default-cmd
+ * Feature: cmd_submission, command_parser
+ *
+ * SUBTEST: batch-wc-default-uc
+ * Feature: cmd_submission
+ *
+ * SUBTEST: batch-wc-default-wb
+ * Feature: cmd_submission
+ *
+ * SUBTEST: batch-wc-render-cmd
+ * Feature: cmd_submission, command_parser
+ *
+ * SUBTEST: batch-wc-render-uc
+ * Feature: cmd_submission
+ *
+ * SUBTEST: batch-wc-render-wb
+ * Feature: cmd_submission
+ *
+ * SUBTEST: batch-wc-vebox-cmd
+ * Feature: cmd_submission, command_parser
+ *
+ * SUBTEST: batch-wc-vebox-uc
+ * Feature: cmd_submission
+ *
+ * SUBTEST: batch-wc-vebox-wb
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-pro-blt
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-pro-blt-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-pro-bsd
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-pro-bsd-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-pro-bsd1
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-pro-bsd1-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-pro-bsd2
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-pro-bsd2-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-pro-default
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-pro-default-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-pro-render
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-pro-render-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-pro-vebox
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-pro-vebox-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-prw-blt
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-prw-blt-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-prw-bsd
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-prw-bsd-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-prw-bsd1
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-prw-bsd1-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-prw-bsd2
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-prw-bsd2-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-prw-default
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-prw-default-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-prw-render
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-prw-render-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-prw-vebox
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-prw-vebox-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-ro-before-blt
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-ro-before-blt-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-ro-before-bsd
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-ro-before-bsd-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-ro-before-bsd1
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-ro-before-bsd1-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-ro-before-bsd2
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-ro-before-bsd2-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-ro-before-default
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-ro-before-default-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-ro-before-render
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-ro-before-render-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-ro-before-vebox
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-ro-before-vebox-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-ro-blt
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-ro-blt-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-ro-bsd
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-ro-bsd-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-ro-bsd1
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-ro-bsd1-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-ro-bsd2
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-ro-bsd2-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-ro-default
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-ro-default-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-ro-render
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-ro-render-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-ro-vebox
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-ro-vebox-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-rw-before-blt
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-rw-before-blt-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-rw-before-bsd
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-rw-before-bsd-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-rw-before-bsd1
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-rw-before-bsd1-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-rw-before-bsd2
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-rw-before-bsd2-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-rw-before-default
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-rw-before-default-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-rw-before-render
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-rw-before-render-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-rw-before-vebox
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-rw-before-vebox-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-rw-blt
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-rw-blt-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-rw-bsd
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-rw-bsd-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-rw-bsd1
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-rw-bsd1-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-rw-bsd2
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-rw-bsd2-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-rw-default
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-rw-default-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-rw-render
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-rw-render-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-rw-vebox
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-rw-vebox-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-set-blt
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-set-blt-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-set-bsd
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-set-bsd-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-set-bsd1
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-set-bsd1-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-set-bsd2
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-set-bsd2-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-set-default
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-set-default-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-set-render
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-set-render-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-set-vebox
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-set-vebox-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-pro-blt
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-pro-blt-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-pro-bsd
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-pro-bsd-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-pro-bsd1
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-pro-bsd1-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-pro-bsd2
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-pro-bsd2-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-pro-default-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-pro-render
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-pro-render-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-pro-vebox
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-pro-vebox-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-prw-blt
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-prw-blt-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-prw-bsd
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-prw-bsd-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-prw-bsd1
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-prw-bsd1-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-prw-bsd2
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-prw-bsd2-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-prw-default-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-prw-render
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-prw-render-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-prw-vebox
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-prw-vebox-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-ro-before-blt
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-ro-before-blt-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-ro-before-bsd
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-ro-before-bsd-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-ro-before-bsd1
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-ro-before-bsd1-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-ro-before-bsd2
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-ro-before-bsd2-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-ro-before-default
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-ro-before-default-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-ro-before-render
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-ro-before-render-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-ro-before-vebox
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-ro-before-vebox-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-ro-blt
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-ro-blt-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-ro-bsd
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-ro-bsd-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-ro-bsd1
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-ro-bsd1-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-ro-bsd2
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-ro-bsd2-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-ro-default-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-ro-render
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-ro-render-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-ro-vebox
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-ro-vebox-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-rw-before-blt
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-rw-before-blt-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-rw-before-bsd
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-rw-before-bsd-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-rw-before-bsd1
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-rw-before-bsd1-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-rw-before-bsd2
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-rw-before-bsd2-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-rw-before-default
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-rw-before-default-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-rw-before-render
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-rw-before-render-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-rw-before-vebox
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-rw-before-vebox-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-rw-blt
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-rw-blt-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-rw-bsd
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-rw-bsd-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-rw-bsd1
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-rw-bsd1-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-rw-bsd2
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-rw-bsd2-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-rw-default-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-rw-render
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-rw-render-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-rw-vebox
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-rw-vebox-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-set-blt
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-set-blt-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-set-bsd
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-set-bsd-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-set-bsd1
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-set-bsd1-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-set-bsd2
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-set-bsd2-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-set-default-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-set-render
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-set-render-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-set-vebox
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-set-vebox-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-pro-blt
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-pro-blt-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-pro-bsd
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-pro-bsd-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-pro-bsd1
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-pro-bsd1-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-pro-bsd2
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-pro-bsd2-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-pro-default-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-pro-render
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-pro-render-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-pro-vebox
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-pro-vebox-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-prw-blt
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-prw-blt-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-prw-bsd
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-prw-bsd-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-prw-bsd1
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-prw-bsd1-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-prw-bsd2
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-prw-bsd2-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-prw-default-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-prw-render
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-prw-render-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-prw-vebox
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-prw-vebox-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-ro-before-blt
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-ro-before-blt-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-ro-before-bsd
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-ro-before-bsd-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-ro-before-bsd1
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-ro-before-bsd1-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-ro-before-bsd2
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-ro-before-bsd2-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-ro-before-default-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-ro-before-render
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-ro-before-render-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-ro-before-vebox
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-ro-before-vebox-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-ro-blt
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-ro-blt-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-ro-bsd
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-ro-bsd-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-ro-bsd1
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-ro-bsd1-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-ro-bsd2
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-ro-bsd2-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-ro-default-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-ro-render
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-ro-render-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-ro-vebox
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-ro-vebox-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-rw-before-blt
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-rw-before-blt-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-rw-before-bsd
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-rw-before-bsd-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-rw-before-bsd1
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-rw-before-bsd1-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-rw-before-bsd2
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-rw-before-bsd2-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-rw-before-default-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-rw-before-render
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-rw-before-render-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-rw-before-vebox
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-rw-before-vebox-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-rw-blt
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-rw-blt-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-rw-bsd
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-rw-bsd-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-rw-bsd1
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-rw-bsd1-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-rw-bsd2
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-rw-bsd2-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-rw-default-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-rw-render
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-rw-render-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-rw-vebox
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-rw-vebox-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-set-blt
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-set-blt-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-set-bsd
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-set-bsd-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-set-bsd1
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-set-bsd1-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-set-bsd2
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-set-bsd2-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-set-default-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-set-render
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-set-render-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-set-vebox
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-set-vebox-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-pro-blt
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-pro-blt-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-pro-bsd
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-pro-bsd-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-pro-bsd1
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-pro-bsd1-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-pro-bsd2
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-pro-bsd2-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-pro-default
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-pro-default-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-pro-render
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-pro-render-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-pro-vebox
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-pro-vebox-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-prw-blt
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-prw-blt-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-prw-bsd
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-prw-bsd-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-prw-bsd1
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-prw-bsd1-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-prw-bsd2
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-prw-bsd2-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-prw-default
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-prw-default-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-prw-render
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-prw-render-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-prw-vebox
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-prw-vebox-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-ro-before-blt
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-ro-before-blt-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-ro-before-bsd
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-ro-before-bsd-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-ro-before-bsd1
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-ro-before-bsd1-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-ro-before-bsd2
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-ro-before-bsd2-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-ro-before-default
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-ro-before-default-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-ro-before-render
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-ro-before-render-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-ro-before-vebox
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-ro-before-vebox-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-ro-blt
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-ro-blt-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-ro-bsd
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-ro-bsd-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-ro-bsd1
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-ro-bsd1-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-ro-bsd2
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-ro-bsd2-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-ro-default
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-ro-default-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-ro-render
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-ro-render-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-ro-vebox
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-ro-vebox-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-rw-before-blt
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-rw-before-blt-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-rw-before-bsd
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-rw-before-bsd-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-rw-before-bsd1
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-rw-before-bsd1-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-rw-before-bsd2
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-rw-before-bsd2-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-rw-before-default
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-rw-before-default-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-rw-before-render
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-rw-before-render-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-rw-before-vebox
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-rw-before-vebox-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-rw-blt
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-rw-blt-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-rw-bsd
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-rw-bsd-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-rw-bsd1
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-rw-bsd1-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-rw-bsd2
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-rw-bsd2-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-rw-default
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-rw-default-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-rw-render
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-rw-render-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-rw-vebox
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-rw-vebox-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-set-blt
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-set-blt-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-set-bsd
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-set-bsd-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-set-bsd1
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-set-bsd1-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-set-bsd2
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-set-bsd2-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-set-default
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-set-default-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-set-render
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-set-render-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-set-vebox
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-set-vebox-interruptible
+ * Feature: cmd_submission
+ */
 
 IGT_TEST_DESCRIPTION("Basic check of flushing after batches");
 
diff --git a/tests/i915/gem_exec_gttfill.c b/tests/i915/gem_exec_gttfill.c
index d6c8f21920a6..496ad6e8bb16 100644
--- a/tests/i915/gem_exec_gttfill.c
+++ b/tests/i915/gem_exec_gttfill.c
@@ -26,6 +26,29 @@
 #include "igt.h"
 #include "igt_device_scan.h"
 #include "igt_rand.h"
+/**
+ * TEST: gem exec gttfill
+ * Description: Fill the GTT with batches.
+ *
+ * SUBTEST: all-engines
+ * Description: Stress test check behaviour/correctness of handling batches to fill gtt
+ * Feature: cmd_submission, gtt
+ * Run type: FULL
+ *
+ * SUBTEST: basic
+ * Description: Checks if it can handle enough batches to fill gtt
+ * Feature: cmd_submission, gtt
+ * Run type: BAT
+ *
+ * SUBTEST: engines
+ * Description: Checks the correctness of handling enough batches to fill gtt for each engine
+ * Feature: cmd_submission, gtt
+ * Run type: FULL
+ *
+ * SUBTEST: multigpu-basic
+ * Feature: cmd_submission, gtt, multigpu
+ * Run type: FULL
+ */
 
 IGT_TEST_DESCRIPTION("Fill the GTT with batches.");
 
diff --git a/tests/i915/gem_exec_latency.c b/tests/i915/gem_exec_latency.c
index 4838a70820a3..9a9e43babe4d 100644
--- a/tests/i915/gem_exec_latency.c
+++ b/tests/i915/gem_exec_latency.c
@@ -48,6 +48,36 @@
 
 #include "i915/gem.h"
 #include "i915/gem_create.h"
+/**
+ * TEST: gem exec latency
+ * Run type: FULL
+ *
+ * SUBTEST: context-preempt
+ *
+ * SUBTEST: context-switch
+ *
+ * SUBTEST: dispatch
+ *
+ * SUBTEST: dispatch-queued
+ *
+ * SUBTEST: execution-latency
+ *
+ * SUBTEST: live-dispatch
+ *
+ * SUBTEST: live-dispatch-queued
+ *
+ * SUBTEST: poll
+ *
+ * SUBTEST: preemption
+ *
+ * SUBTEST: rthog-submit
+ *
+ * SUBTEST: synchronisation
+ *
+ * SUBTEST: synchronisation-queued
+ *
+ * SUBTEST: wakeup-latency
+ */
 
 #define ENGINE_FLAGS  (I915_EXEC_RING_MASK | I915_EXEC_BSD_MASK)
 
diff --git a/tests/i915/gem_exec_lut_handle.c b/tests/i915/gem_exec_lut_handle.c
index 064308666773..c5e8f1d72fd8 100644
--- a/tests/i915/gem_exec_lut_handle.c
+++ b/tests/i915/gem_exec_lut_handle.c
@@ -40,6 +40,13 @@
 #include "i915/gem.h"
 #include "i915/gem_create.h"
 #include "igt.h"
+/**
+ * TEST: gem exec lut handle
+ * Description: Exercises the basic execbuffer using the handle LUT interface.
+ * Run type: FULL
+ *
+ * SUBTEST:
+ */
 
 IGT_TEST_DESCRIPTION("Exercises the basic execbuffer using the handle LUT"
 		     " interface.");
diff --git a/tests/i915/gem_exec_nop.c b/tests/i915/gem_exec_nop.c
index 497f57f0827b..1d44456d06fa 100644
--- a/tests/i915/gem_exec_nop.c
+++ b/tests/i915/gem_exec_nop.c
@@ -48,6 +48,61 @@
 #include "igt_sysfs.h"
 #include "intel_ctx.h"
 
+/**
+ * TEST: gem exec nop
+ * Run type: FULL
+ *
+ * SUBTEST: basic-parallel
+ * Feature: cmd_submission
+ *
+ * SUBTEST: basic-sequential
+ * Feature: cmd_submission
+ *
+ * SUBTEST: basic-series
+ * Feature: cmd_submission
+ *
+ * SUBTEST: context-sequential
+ * Feature: cmd_submission
+ *
+ * SUBTEST: forked-sequential
+ * Feature: cmd_submission
+ *
+ * SUBTEST: headless
+ * Feature: cmd_submission
+ *
+ * SUBTEST: independent
+ * Feature: cmd_submission
+ *
+ * SUBTEST: multiple
+ * Feature: cmd_submission
+ *
+ * SUBTEST: parallel
+ * Feature: cmd_submission
+ *
+ * SUBTEST: poll
+ * Feature: cmd_submission
+ *
+ * SUBTEST: poll-sequential
+ * Feature: cmd_submission
+ *
+ * SUBTEST: preempt
+ * Feature: cmd_submission, multitile
+ *
+ * SUBTEST: sequential
+ * Feature: cmd_submission
+ *
+ * SUBTEST: series
+ * Feature: cmd_submission
+ *
+ * SUBTEST: signal
+ * Feature: cmd_submission, multitile
+ *
+ * SUBTEST: signal-all
+ * Feature: cmd_submission, multitile
+ *
+ * SUBTEST: single
+ * Feature: cmd_submission
+ */
 
 #define ENGINE_FLAGS  (I915_EXEC_RING_MASK | I915_EXEC_BSD_MASK)
 
diff --git a/tests/i915/gem_exec_parallel.c b/tests/i915/gem_exec_parallel.c
index 705b22cb9f8f..0e42aa364ca7 100644
--- a/tests/i915/gem_exec_parallel.c
+++ b/tests/i915/gem_exec_parallel.c
@@ -33,6 +33,31 @@
 #include "i915/gem_create.h"
 #include "igt.h"
 #include "igt_gt.h"
+/**
+ * TEST: gem exec parallel
+ * Description: Exercise filling buffers by many clients working in parallel.
+ * Feature: cmd_submission
+ *
+ * SUBTEST: basic
+ * Description: Check basic functionality per engine.
+ * Run type: FULL
+ *
+ * SUBTEST: contexts
+ * Description: Check with many contexts.
+ * Run type: FULL
+ *
+ * SUBTEST: engines
+ * Description: Check with engines working in parallel.
+ * Run type: BAT
+ *
+ * SUBTEST: fds
+ * Description: Check with many fds.
+ * Run type: FULL
+ *
+ * SUBTEST: userptr
+ * Description: Check basic userptr thrashing.
+ * Run type: FULL
+ */
 
 IGT_TEST_DESCRIPTION("Exercise filling buffers by many clients working in parallel.");
 
diff --git a/tests/i915/gem_exec_params.c b/tests/i915/gem_exec_params.c
index d0805d330f7a..bd7ec2cd1f39 100644
--- a/tests/i915/gem_exec_params.c
+++ b/tests/i915/gem_exec_params.c
@@ -44,6 +44,109 @@
 #include "igt.h"
 #include "igt_device.h"
 #include "sw_sync.h"
+/**
+ * TEST: gem exec params
+ * Run type: FULL
+ *
+ * SUBTEST: DR1-dirt
+ * Feature: cmd_submission
+ *
+ * SUBTEST: DR4-dirt
+ * Feature: cmd_submission
+ *
+ * SUBTEST: batch-first
+ * Feature: cmd_submission
+ *
+ * SUBTEST: cliprects-invalid
+ * Feature: cmd_submission
+ *
+ * SUBTEST: cliprects_ptr-dirt
+ * Feature: cmd_submission
+ *
+ * SUBTEST: invalid-batch-start-offset
+ * Feature: cmd_submission
+ *
+ * SUBTEST: invalid-bsd-ring
+ * Feature: cmd_submission
+ *
+ * SUBTEST: invalid-bsd1-flag-on-blt
+ * Feature: cmd_submission
+ *
+ * SUBTEST: invalid-bsd1-flag-on-render
+ * Feature: cmd_submission
+ *
+ * SUBTEST: invalid-bsd1-flag-on-vebox
+ * Feature: cmd_submission
+ *
+ * SUBTEST: invalid-bsd2-flag-on-blt
+ * Feature: cmd_submission
+ *
+ * SUBTEST: invalid-bsd2-flag-on-render
+ * Feature: cmd_submission
+ *
+ * SUBTEST: invalid-bsd2-flag-on-vebox
+ * Feature: cmd_submission
+ *
+ * SUBTEST: invalid-fence-in
+ * Feature: cmd_submission
+ *
+ * SUBTEST: invalid-fence-in-submit
+ * Feature: cmd_submission
+ *
+ * SUBTEST: invalid-flag
+ * Feature: cmd_submission
+ *
+ * SUBTEST: invalid-ring
+ * Feature: cmd_submission
+ *
+ * SUBTEST: invalid-ring2
+ * Feature: cmd_submission
+ *
+ * SUBTEST: larger-than-life-batch
+ * Feature: cmd_submission
+ *
+ * SUBTEST: mmapped
+ * Feature: cmd_submission
+ *
+ * SUBTEST: no-blt
+ * Feature: cmd_submission
+ *
+ * SUBTEST: no-bsd
+ * Feature: cmd_submission
+ *
+ * SUBTEST: no-vebox
+ * Feature: cmd_submission
+ *
+ * SUBTEST: readonly
+ * Feature: cmd_submission
+ *
+ * SUBTEST: rel-constants-invalid
+ * Feature: cmd_submission
+ *
+ * SUBTEST: rel-constants-invalid-rel-gen5
+ * Feature: cmd_submission
+ *
+ * SUBTEST: rel-constants-invalid-ring
+ * Feature: cmd_submission
+ *
+ * SUBTEST: rs-invalid
+ * Feature: cmd_submission
+ *
+ * SUBTEST: rsvd2-dirt
+ * Feature: cmd_submission
+ *
+ * SUBTEST: secure-non-master
+ * Feature: cmd_submission, obsolete
+ *
+ * SUBTEST: secure-non-root
+ * Feature: cmd_submission, obsolete
+ *
+ * SUBTEST: sol-reset-invalid
+ * Feature: cmd_submission
+ *
+ * SUBTEST: sol-reset-not-gen7
+ * Feature: cmd_submission
+ */
 
 #define ALIGNMENT (1 << 22)
 
diff --git a/tests/i915/gem_exec_reloc.c b/tests/i915/gem_exec_reloc.c
index 3ce89ca64962..c591f374dff2 100644
--- a/tests/i915/gem_exec_reloc.c
+++ b/tests/i915/gem_exec_reloc.c
@@ -31,6 +31,599 @@
 #include "igt_dummyload.h"
 #include "igt_kms.h"
 #include "sw_sync.h"
+/**
+ * TEST: gem exec reloc
+ * Description: Basic sanity check of execbuf-ioctl relocations.
+ * Run type: FULL
+ *
+ * SUBTEST: basic-active
+ * Feature: cmd_submission
+ *
+ * SUBTEST: basic-concurrent0
+ * Feature: cmd_submission
+ *
+ * SUBTEST: basic-concurrent16
+ * Feature: cmd_submission
+ *
+ * SUBTEST: basic-cpu
+ * Feature: cmd_submission
+ *
+ * SUBTEST: basic-cpu-active
+ * Feature: cmd_submission
+ *
+ * SUBTEST: basic-cpu-gtt
+ * Feature: cmd_submission, gtt
+ *
+ * SUBTEST: basic-cpu-gtt-active
+ * Feature: cmd_submission, gtt
+ *
+ * SUBTEST: basic-cpu-gtt-noreloc
+ * Feature: cmd_submission, gtt
+ *
+ * SUBTEST: basic-cpu-noreloc
+ * Feature: cmd_submission
+ *
+ * SUBTEST: basic-cpu-read
+ * Feature: cmd_submission
+ *
+ * SUBTEST: basic-cpu-read-active
+ * Feature: cmd_submission
+ *
+ * SUBTEST: basic-cpu-read-noreloc
+ * Feature: cmd_submission
+ *
+ * SUBTEST: basic-cpu-wc
+ * Feature: cmd_submission
+ *
+ * SUBTEST: basic-cpu-wc-active
+ * Feature: cmd_submission
+ *
+ * SUBTEST: basic-cpu-wc-noreloc
+ * Feature: cmd_submission
+ *
+ * SUBTEST: basic-gtt
+ * Feature: cmd_submission, gtt
+ *
+ * SUBTEST: basic-gtt-active
+ * Feature: cmd_submission, gtt
+ *
+ * SUBTEST: basic-gtt-cpu
+ * Feature: cmd_submission, gtt
+ *
+ * SUBTEST: basic-gtt-cpu-active
+ * Feature: cmd_submission, gtt
+ *
+ * SUBTEST: basic-gtt-cpu-noreloc
+ * Feature: cmd_submission, gtt
+ *
+ * SUBTEST: basic-gtt-noreloc
+ * Feature: cmd_submission, gtt
+ *
+ * SUBTEST: basic-gtt-read
+ * Feature: cmd_submission, gtt
+ *
+ * SUBTEST: basic-gtt-read-active
+ * Feature: cmd_submission, gtt
+ *
+ * SUBTEST: basic-gtt-read-noreloc
+ * Feature: cmd_submission, gtt
+ *
+ * SUBTEST: basic-gtt-wc
+ * Feature: cmd_submission, gtt
+ *
+ * SUBTEST: basic-gtt-wc-active
+ * Feature: cmd_submission, gtt
+ *
+ * SUBTEST: basic-gtt-wc-noreloc
+ * Feature: cmd_submission, gtt
+ *
+ * SUBTEST: basic-range
+ * Feature: cmd_submission
+ *
+ * SUBTEST: basic-range-active
+ * Feature: cmd_submission
+ *
+ * SUBTEST: basic-scanout
+ * Feature: cmd_submission
+ *
+ * SUBTEST: basic-softpin
+ * Feature: cmd_submission
+ *
+ * SUBTEST: basic-wc
+ * Feature: cmd_submission
+ *
+ * SUBTEST: basic-wc-active
+ * Feature: cmd_submission
+ *
+ * SUBTEST: basic-wc-cpu
+ * Feature: cmd_submission
+ *
+ * SUBTEST: basic-wc-cpu-active
+ * Feature: cmd_submission
+ *
+ * SUBTEST: basic-wc-cpu-noreloc
+ * Feature: cmd_submission
+ *
+ * SUBTEST: basic-wc-gtt
+ * Feature: cmd_submission, gtt
+ *
+ * SUBTEST: basic-wc-gtt-active
+ * Feature: cmd_submission, gtt
+ *
+ * SUBTEST: basic-wc-gtt-noreloc
+ * Feature: cmd_submission, gtt
+ *
+ * SUBTEST: basic-wc-noreloc
+ * Feature: cmd_submission
+ *
+ * SUBTEST: basic-wc-read
+ * Feature: cmd_submission
+ *
+ * SUBTEST: basic-wc-read-active
+ * Feature: cmd_submission
+ *
+ * SUBTEST: basic-wc-read-noreloc
+ * Feature: cmd_submission
+ *
+ * SUBTEST: basic-write-cpu
+ * Feature: cmd_submission
+ *
+ * SUBTEST: basic-write-cpu-active
+ * Feature: cmd_submission
+ *
+ * SUBTEST: basic-write-cpu-noreloc
+ * Feature: cmd_submission
+ *
+ * SUBTEST: basic-write-gtt
+ * Feature: cmd_submission, gtt
+ *
+ * SUBTEST: basic-write-gtt-active
+ * Feature: cmd_submission, gtt
+ *
+ * SUBTEST: basic-write-gtt-noreloc
+ * Feature: cmd_submission, gtt
+ *
+ * SUBTEST: basic-write-read
+ * Feature: cmd_submission
+ *
+ * SUBTEST: basic-write-read-active
+ * Feature: cmd_submission
+ *
+ * SUBTEST: basic-write-read-noreloc
+ * Feature: cmd_submission
+ *
+ * SUBTEST: basic-write-wc
+ * Feature: cmd_submission
+ *
+ * SUBTEST: basic-write-wc-active
+ * Feature: cmd_submission
+ *
+ * SUBTEST: basic-write-wc-noreloc
+ * Feature: cmd_submission
+ *
+ * SUBTEST: cpu-12
+ * Feature: cmd_submission
+ *
+ * SUBTEST: cpu-13
+ * Feature: cmd_submission
+ *
+ * SUBTEST: cpu-14
+ * Feature: cmd_submission
+ *
+ * SUBTEST: cpu-15
+ * Feature: cmd_submission
+ *
+ * SUBTEST: cpu-16
+ * Feature: cmd_submission
+ *
+ * SUBTEST: cpu-17
+ * Feature: cmd_submission
+ *
+ * SUBTEST: cpu-18
+ * Feature: cmd_submission
+ *
+ * SUBTEST: cpu-19
+ * Feature: cmd_submission
+ *
+ * SUBTEST: cpu-20
+ * Feature: cmd_submission
+ *
+ * SUBTEST: cpu-21
+ * Feature: cmd_submission
+ *
+ * SUBTEST: cpu-22
+ * Feature: cmd_submission
+ *
+ * SUBTEST: cpu-23
+ * Feature: cmd_submission
+ *
+ * SUBTEST: cpu-24
+ * Feature: cmd_submission
+ *
+ * SUBTEST: cpu-25
+ * Feature: cmd_submission
+ *
+ * SUBTEST: cpu-26
+ * Feature: cmd_submission
+ *
+ * SUBTEST: cpu-27
+ * Feature: cmd_submission
+ *
+ * SUBTEST: cpu-28
+ * Feature: cmd_submission
+ *
+ * SUBTEST: cpu-29
+ * Feature: cmd_submission
+ *
+ * SUBTEST: cpu-30
+ * Feature: cmd_submission
+ *
+ * SUBTEST: cpu-31
+ * Feature: cmd_submission
+ *
+ * SUBTEST: cpu-32
+ * Feature: cmd_submission
+ *
+ * SUBTEST: cpu-gtt-hang
+ * Feature: cmd_submission, gtt
+ *
+ * SUBTEST: cpu-gtt-interruptible
+ * Feature: cmd_submission, gtt
+ *
+ * SUBTEST: cpu-hang
+ * Feature: cmd_submission
+ *
+ * SUBTEST: cpu-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: cpu-read-hang
+ * Feature: cmd_submission
+ *
+ * SUBTEST: cpu-read-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: cpu-wc-hang
+ * Feature: cmd_submission
+ *
+ * SUBTEST: cpu-wc-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: gpu
+ * Feature: cmd_submission
+ *
+ * SUBTEST: gtt-12
+ * Feature: cmd_submission, gtt
+ *
+ * SUBTEST: gtt-13
+ * Feature: cmd_submission, gtt
+ *
+ * SUBTEST: gtt-14
+ * Feature: cmd_submission, gtt
+ *
+ * SUBTEST: gtt-15
+ * Feature: cmd_submission, gtt
+ *
+ * SUBTEST: gtt-16
+ * Feature: cmd_submission, gtt
+ *
+ * SUBTEST: gtt-17
+ * Feature: cmd_submission, gtt
+ *
+ * SUBTEST: gtt-18
+ * Feature: cmd_submission, gtt
+ *
+ * SUBTEST: gtt-19
+ * Feature: cmd_submission, gtt
+ *
+ * SUBTEST: gtt-20
+ * Feature: cmd_submission, gtt
+ *
+ * SUBTEST: gtt-21
+ * Feature: cmd_submission, gtt
+ *
+ * SUBTEST: gtt-22
+ * Feature: cmd_submission, gtt
+ *
+ * SUBTEST: gtt-23
+ * Feature: cmd_submission, gtt
+ *
+ * SUBTEST: gtt-24
+ * Feature: cmd_submission, gtt
+ *
+ * SUBTEST: gtt-25
+ * Feature: cmd_submission, gtt
+ *
+ * SUBTEST: gtt-26
+ * Feature: cmd_submission, gtt
+ *
+ * SUBTEST: gtt-27
+ * Feature: cmd_submission, gtt
+ *
+ * SUBTEST: gtt-28
+ * Feature: cmd_submission, gtt
+ *
+ * SUBTEST: gtt-29
+ * Feature: cmd_submission, gtt
+ *
+ * SUBTEST: gtt-30
+ * Feature: cmd_submission, gtt
+ *
+ * SUBTEST: gtt-31
+ * Feature: cmd_submission, gtt
+ *
+ * SUBTEST: gtt-32
+ * Feature: cmd_submission, gtt
+ *
+ * SUBTEST: gtt-cpu-hang
+ * Feature: cmd_submission, gtt
+ *
+ * SUBTEST: gtt-cpu-interruptible
+ * Feature: cmd_submission, gtt
+ *
+ * SUBTEST: gtt-hang
+ * Feature: cmd_submission, gtt
+ *
+ * SUBTEST: gtt-interruptible
+ * Feature: cmd_submission, gtt
+ *
+ * SUBTEST: gtt-read-hang
+ * Feature: cmd_submission, gtt
+ *
+ * SUBTEST: gtt-read-interruptible
+ * Feature: cmd_submission, gtt
+ *
+ * SUBTEST: gtt-wc-hang
+ * Feature: cmd_submission, gtt
+ *
+ * SUBTEST: gtt-wc-interruptible
+ * Feature: cmd_submission, gtt
+ *
+ * SUBTEST: invalid-domains
+ * Feature: cmd_submission
+ *
+ * SUBTEST: mmap-12
+ * Feature: cmd_submission
+ *
+ * SUBTEST: mmap-13
+ * Feature: cmd_submission
+ *
+ * SUBTEST: mmap-14
+ * Feature: cmd_submission
+ *
+ * SUBTEST: mmap-15
+ * Feature: cmd_submission
+ *
+ * SUBTEST: mmap-16
+ * Feature: cmd_submission
+ *
+ * SUBTEST: mmap-17
+ * Feature: cmd_submission
+ *
+ * SUBTEST: mmap-18
+ * Feature: cmd_submission
+ *
+ * SUBTEST: mmap-19
+ * Feature: cmd_submission
+ *
+ * SUBTEST: mmap-20
+ * Feature: cmd_submission
+ *
+ * SUBTEST: mmap-21
+ * Feature: cmd_submission
+ *
+ * SUBTEST: mmap-22
+ * Feature: cmd_submission
+ *
+ * SUBTEST: mmap-23
+ * Feature: cmd_submission
+ *
+ * SUBTEST: mmap-24
+ * Feature: cmd_submission
+ *
+ * SUBTEST: mmap-25
+ * Feature: cmd_submission
+ *
+ * SUBTEST: mmap-26
+ * Feature: cmd_submission
+ *
+ * SUBTEST: mmap-27
+ * Feature: cmd_submission
+ *
+ * SUBTEST: mmap-28
+ * Feature: cmd_submission
+ *
+ * SUBTEST: mmap-29
+ * Feature: cmd_submission
+ *
+ * SUBTEST: mmap-30
+ * Feature: cmd_submission
+ *
+ * SUBTEST: mmap-31
+ * Feature: cmd_submission
+ *
+ * SUBTEST: mmap-32
+ * Feature: cmd_submission
+ *
+ * SUBTEST: range-hang
+ * Feature: cmd_submission
+ *
+ * SUBTEST: range-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: readonly-12
+ * Feature: cmd_submission
+ *
+ * SUBTEST: readonly-13
+ * Feature: cmd_submission
+ *
+ * SUBTEST: readonly-14
+ * Feature: cmd_submission
+ *
+ * SUBTEST: readonly-15
+ * Feature: cmd_submission
+ *
+ * SUBTEST: readonly-16
+ * Feature: cmd_submission
+ *
+ * SUBTEST: readonly-17
+ * Feature: cmd_submission
+ *
+ * SUBTEST: readonly-18
+ * Feature: cmd_submission
+ *
+ * SUBTEST: readonly-19
+ * Feature: cmd_submission
+ *
+ * SUBTEST: readonly-20
+ * Feature: cmd_submission
+ *
+ * SUBTEST: readonly-21
+ * Feature: cmd_submission
+ *
+ * SUBTEST: readonly-22
+ * Feature: cmd_submission
+ *
+ * SUBTEST: readonly-23
+ * Feature: cmd_submission
+ *
+ * SUBTEST: readonly-24
+ * Feature: cmd_submission
+ *
+ * SUBTEST: readonly-25
+ * Feature: cmd_submission
+ *
+ * SUBTEST: readonly-26
+ * Feature: cmd_submission
+ *
+ * SUBTEST: readonly-27
+ * Feature: cmd_submission
+ *
+ * SUBTEST: readonly-28
+ * Feature: cmd_submission
+ *
+ * SUBTEST: readonly-29
+ * Feature: cmd_submission
+ *
+ * SUBTEST: readonly-30
+ * Feature: cmd_submission
+ *
+ * SUBTEST: readonly-31
+ * Feature: cmd_submission
+ *
+ * SUBTEST: readonly-32
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-12
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-13
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-14
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-15
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-16
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-17
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-18
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-19
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-20
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-21
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-22
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-23
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-24
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-25
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-26
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-27
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-28
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-29
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-30
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-31
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-32
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-cpu-hang
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-cpu-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-gtt-hang
+ * Feature: cmd_submission, gtt
+ *
+ * SUBTEST: wc-gtt-interruptible
+ * Feature: cmd_submission, gtt
+ *
+ * SUBTEST: wc-hang
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-read-hang
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-read-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: write-cpu-hang
+ * Feature: cmd_submission
+ *
+ * SUBTEST: write-cpu-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: write-gtt-hang
+ * Feature: cmd_submission, gtt
+ *
+ * SUBTEST: write-gtt-interruptible
+ * Feature: cmd_submission, gtt
+ *
+ * SUBTEST: write-read-hang
+ * Feature: cmd_submission
+ *
+ * SUBTEST: write-read-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: write-wc-hang
+ * Feature: cmd_submission
+ *
+ * SUBTEST: write-wc-interruptible
+ * Feature: cmd_submission
+ */
 
 IGT_TEST_DESCRIPTION("Basic sanity check of execbuf-ioctl relocations.");
 
diff --git a/tests/i915/gem_exec_schedule.c b/tests/i915/gem_exec_schedule.c
index ab1dd7749baf..d17d07893f07 100644
--- a/tests/i915/gem_exec_schedule.c
+++ b/tests/i915/gem_exec_schedule.c
@@ -44,6 +44,188 @@
 #include "igt_vgem.h"
 #include "intel_ctx.h"
 #include "sw_sync.h"
+/**
+ * TEST: gem exec schedule
+ * Description: Check that we can control the order of execution
+ * Run type: FULL
+ *
+ * SUBTEST: deep
+ * Feature: cmd_submission
+ *
+ * SUBTEST: fairslice
+ * Feature: cmd_submission
+ *
+ * SUBTEST: fairslice-all
+ * Feature: cmd_submission
+ *
+ * SUBTEST: fifo
+ * Feature: cmd_submission
+ *
+ * SUBTEST: implicit-boths
+ * Feature: cmd_submission
+ *
+ * SUBTEST: implicit-read-write
+ * Feature: cmd_submission
+ *
+ * SUBTEST: implicit-write-read
+ * Feature: cmd_submission
+ *
+ * SUBTEST: in-order
+ * Feature: cmd_submission
+ *
+ * SUBTEST: independent
+ * Feature: cmd_submission
+ *
+ * SUBTEST: lateslice
+ * Feature: cmd_submission
+ *
+ * SUBTEST: manyslice
+ * Feature: cmd_submission
+ *
+ * SUBTEST: noreorder
+ * Feature: cmd_submission
+ *
+ * SUBTEST: noreorder-corked
+ * Feature: cmd_submission
+ *
+ * SUBTEST: noreorder-priority
+ * Feature: cmd_submission
+ *
+ * SUBTEST: out-order
+ * Feature: cmd_submission
+ *
+ * SUBTEST: pi-common
+ * Feature: cmd_submission
+ *
+ * SUBTEST: pi-distinct-iova
+ * Feature: cmd_submission
+ *
+ * SUBTEST: pi-ringfull
+ * Feature: cmd_submission
+ *
+ * SUBTEST: pi-shared-iova
+ * Feature: cmd_submission
+ *
+ * SUBTEST: pi-userfault
+ * Feature: cmd_submission
+ *
+ * SUBTEST: preempt
+ * Feature: cmd_submission
+ *
+ * SUBTEST: preempt-contexts
+ * Feature: cmd_submission, multictx
+ *
+ * SUBTEST: preempt-engines
+ * Feature: cmd_submission, multictx
+ *
+ * SUBTEST: preempt-hang
+ * Feature: cmd_submission, multictx
+ *
+ * SUBTEST: preempt-other
+ * Feature: cmd_submission, multictx
+ *
+ * SUBTEST: preempt-other-chain
+ * Feature: cmd_submission, multictx
+ *
+ * SUBTEST: preempt-queue
+ * Feature: cmd_submission, multictx
+ *
+ * SUBTEST: preempt-queue-chain
+ * Feature: cmd_submission, multictx
+ *
+ * SUBTEST: preempt-queue-contexts
+ * Feature: cmd_submission, multictx
+ *
+ * SUBTEST: preempt-queue-contexts-chain
+ * Feature: cmd_submission, multictx
+ *
+ * SUBTEST: preempt-self
+ * Feature: cmd_submission, multictx
+ *
+ * SUBTEST: preempt-user
+ * Feature: cmd_submission, multictx
+ *
+ * SUBTEST: preemptive-hang
+ * Feature: cmd_submission
+ *
+ * SUBTEST: promotion
+ * Feature: cmd_submission
+ *
+ * SUBTEST: reorder-wide
+ * Feature: cmd_submission
+ *
+ * SUBTEST: semaphore-codependency
+ * Feature: cmd_submission
+ *
+ * SUBTEST: semaphore-noskip
+ * Feature: cmd_submission
+ *
+ * SUBTEST: semaphore-power
+ * Feature: cmd_submission
+ *
+ * SUBTEST: semaphore-resolve
+ * Feature: cmd_submission
+ *
+ * SUBTEST: semaphore-user
+ * Feature: cmd_submission
+ *
+ * SUBTEST: smoketest
+ * Feature: cmd_submission
+ *
+ * SUBTEST: smoketest-all
+ * Feature: cmd_submission
+ *
+ * SUBTEST: submit-early-slice
+ * Feature: cmd_submission
+ *
+ * SUBTEST: submit-golden-slice
+ * Feature: cmd_submission
+ *
+ * SUBTEST: submit-late-slice
+ * Feature: cmd_submission
+ *
+ * SUBTEST: thriceslice
+ * Feature: cmd_submission
+ *
+ * SUBTEST: timeslicing
+ * Feature: cmd_submission
+ *
+ * SUBTEST: u-fairslice
+ * Feature: cmd_submission
+ *
+ * SUBTEST: u-fairslice-all
+ * Feature: cmd_submission
+ *
+ * SUBTEST: u-independent
+ * Feature: cmd_submission
+ *
+ * SUBTEST: u-lateslice
+ * Feature: cmd_submission
+ *
+ * SUBTEST: u-semaphore-codependency
+ * Feature: cmd_submission
+ *
+ * SUBTEST: u-semaphore-noskip
+ * Feature: cmd_submission
+ *
+ * SUBTEST: u-semaphore-resolve
+ * Feature: cmd_submission
+ *
+ * SUBTEST: u-semaphore-user
+ * Feature: cmd_submission
+ *
+ * SUBTEST: u-submit-early-slice
+ * Feature: cmd_submission
+ *
+ * SUBTEST: u-submit-golden-slice
+ * Feature: cmd_submission
+ *
+ * SUBTEST: u-submit-late-slice
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wide
+ * Feature: cmd_submission
+ */
 
 #define LO 0
 #define HI 1
diff --git a/tests/i915/gem_exec_store.c b/tests/i915/gem_exec_store.c
index 7d23bcd5b420..19c1a060e3b0 100644
--- a/tests/i915/gem_exec_store.c
+++ b/tests/i915/gem_exec_store.c
@@ -34,6 +34,27 @@
 #include "igt.h"
 #include "igt_device.h"
 #include "igt_gt.h"
+/**
+ * TEST: gem exec store
+ * Description: Exercise store dword functionality using execbuf-ioctl
+ * Feature: cmd_submission
+ *
+ * SUBTEST: basic
+ * Description: Verify that all capable engines can store dwords to a common buffer object
+ * Run type: BAT
+ *
+ * SUBTEST: cachelines
+ * Description: Verify that each capable engine can store a dword to different cachelines of a buffer object
+ * Run type: FULL
+ *
+ * SUBTEST: dword
+ * Description: Verify that each capable engine can store a dword to a buffer object
+ * Run type: FULL
+ *
+ * SUBTEST: pages
+ * Description: Verify that each capable engine can store a dword to various page-sized buffer objects
+ * Run type: FULL
+ */
 
 IGT_TEST_DESCRIPTION("Exercise store dword functionality using execbuf-ioctl");
 
diff --git a/tests/i915/gem_exec_suspend.c b/tests/i915/gem_exec_suspend.c
index 8d56093faa00..de1864224438 100644
--- a/tests/i915/gem_exec_suspend.c
+++ b/tests/i915/gem_exec_suspend.c
@@ -36,6 +36,87 @@
 #include "igt_dummyload.h"
 #include "igt_gt.h"
 #include "igt_sysfs.h"
+/**
+ * TEST: gem exec suspend
+ * Description: Exercise simple execbufs runs across various suspend/resume cycles.
+ * Feature: cmd_submission, suspend
+ *
+ * SUBTEST: basic
+ * Description: Check basic functionality without any suspend/resume cycle.
+ * Run type: FULL
+ *
+ * SUBTEST: basic-S0
+ * Description: Check with suspend-to-idle target state.
+ * Run type: FULL
+ *
+ * SUBTEST: basic-S3
+ * Description: Check full cycle of suspend-to-mem.
+ * Run type: FULL
+ *
+ * SUBTEST: basic-S3-devices
+ * Description: Check with suspend-to-mem with devices only.
+ * Run type: FULL
+ *
+ * SUBTEST: basic-S4
+ * Description: Check full cycle of suspend-to-disk.
+ * Run type: FULL
+ *
+ * SUBTEST: basic-S4-devices
+ * Description: Check with suspend-to-disk with devices only.
+ * Run type: FULL
+ *
+ * SUBTEST: cached
+ * Description: Check without suspend/resume cycle state with cached object.
+ * Run type: FULL
+ *
+ * SUBTEST: cached-S3
+ * Description: Check suspend-to-mem state with cached object.
+ * Run type: FULL
+ *
+ * SUBTEST: cached-S4
+ * Description: Check suspend-to-disk state with cached object.
+ * Run type: FULL
+ *
+ * SUBTEST: fixed
+ * Description: Check without suspend/resume cycle state with fixed object.
+ * Run type: FULL
+ *
+ * SUBTEST: fixed-S3
+ * Description: Check suspend-to-mem state with fixed object.
+ * Run type: FULL
+ *
+ * SUBTEST: fixed-S4
+ * Description: Check suspend-to-disk state with fixed object.
+ * Run type: FULL
+ *
+ * SUBTEST: hang-S3
+ * Description: Check full cycle of suspend-to-mem with a pending GPU hang.
+ * Run type: FULL
+ *
+ * SUBTEST: hang-S4
+ * Description: Check full cycle of suspend-to-disk with a pending GPU hang.
+ * Run type: FULL
+ *
+ * SUBTEST: power-S0
+ * Description: Check power consumption during idle state.
+ * Run type: FULL
+ *
+ * SUBTEST: power-S3
+ * Description: Check power consumption during suspend-to-mem state.
+ * Run type: FULL
+ *
+ * SUBTEST: uncached
+ * Description: Check without suspend/resume cycle state with uncached object.
+ * Run type: FULL
+ *
+ * SUBTEST: uncached-S3
+ * Description: Check suspend-to-mem state with uncached object.
+ * Run type: FULL
+ *
+ * SUBTEST: uncached-S4
+ * Description: Check suspend-to-disk state with uncached object.
+ * Run type: FULL
+ */
 
 IGT_TEST_DESCRIPTION("Exercise simple execbufs runs across various suspend/resume cycles.");
 
diff --git a/tests/i915/gem_exec_whisper.c b/tests/i915/gem_exec_whisper.c
index 29d96cdcaa8e..3a1ca995c9c5 100644
--- a/tests/i915/gem_exec_whisper.c
+++ b/tests/i915/gem_exec_whisper.c
@@ -37,6 +37,195 @@
 #include "igt_rand.h"
 #include "igt_sysfs.h"
 #include "intel_ctx.h"
+/**
+ * TEST: gem exec whisper
+ * Feature: cmd_submission
+ * Run type: FULL
+ *
+ * SUBTEST: basic-contexts
+ *
+ * SUBTEST: basic-contexts-all
+ *
+ * SUBTEST: basic-contexts-forked
+ *
+ * SUBTEST: basic-contexts-forked-all
+ *
+ * SUBTEST: basic-contexts-priority
+ *
+ * SUBTEST: basic-contexts-priority-all
+ *
+ * SUBTEST: basic-fds
+ *
+ * SUBTEST: basic-fds-all
+ *
+ * SUBTEST: basic-fds-forked
+ *
+ * SUBTEST: basic-fds-forked-all
+ *
+ * SUBTEST: basic-fds-priority
+ *
+ * SUBTEST: basic-fds-priority-all
+ *
+ * SUBTEST: basic-forked
+ *
+ * SUBTEST: basic-forked-all
+ *
+ * SUBTEST: basic-normal
+ *
+ * SUBTEST: basic-normal-all
+ *
+ * SUBTEST: basic-queues
+ *
+ * SUBTEST: basic-queues-all
+ *
+ * SUBTEST: basic-queues-forked
+ *
+ * SUBTEST: basic-queues-forked-all
+ *
+ * SUBTEST: basic-queues-priority
+ *
+ * SUBTEST: basic-queues-priority-all
+ *
+ * SUBTEST: basic-sync
+ *
+ * SUBTEST: basic-sync-all
+ *
+ * SUBTEST: chain
+ *
+ * SUBTEST: chain-all
+ *
+ * SUBTEST: chain-forked
+ *
+ * SUBTEST: chain-forked-all
+ *
+ * SUBTEST: chain-interruptible
+ *
+ * SUBTEST: chain-interruptible-all
+ *
+ * SUBTEST: chain-sync
+ *
+ * SUBTEST: chain-sync-all
+ *
+ * SUBTEST: contexts-chain
+ *
+ * SUBTEST: contexts-chain-all
+ *
+ * SUBTEST: contexts-engine
+ *
+ * SUBTEST: contexts-forked-engine
+ *
+ * SUBTEST: contexts-interruptible
+ *
+ * SUBTEST: contexts-interruptible-all
+ *
+ * SUBTEST: contexts-interruptible-engine
+ *
+ * SUBTEST: contexts-priority-engine
+ *
+ * SUBTEST: contexts-sync
+ *
+ * SUBTEST: contexts-sync-all
+ *
+ * SUBTEST: contexts-sync-engine
+ *
+ * SUBTEST: fds-chain
+ *
+ * SUBTEST: fds-chain-all
+ *
+ * SUBTEST: fds-engine
+ *
+ * SUBTEST: fds-forked-engine
+ *
+ * SUBTEST: fds-interruptible
+ *
+ * SUBTEST: fds-interruptible-all
+ *
+ * SUBTEST: fds-interruptible-engine
+ *
+ * SUBTEST: fds-priority-engine
+ *
+ * SUBTEST: fds-sync
+ *
+ * SUBTEST: fds-sync-all
+ *
+ * SUBTEST: fds-sync-engine
+ *
+ * SUBTEST: forked-engine
+ *
+ * SUBTEST: hang-chain
+ *
+ * SUBTEST: hang-chain-forked
+ *
+ * SUBTEST: hang-chain-sync
+ *
+ * SUBTEST: hang-contexts
+ *
+ * SUBTEST: hang-contexts-chain
+ *
+ * SUBTEST: hang-contexts-forked
+ *
+ * SUBTEST: hang-contexts-priority
+ *
+ * SUBTEST: hang-contexts-sync
+ *
+ * SUBTEST: hang-fds
+ *
+ * SUBTEST: hang-fds-chain
+ *
+ * SUBTEST: hang-fds-forked
+ *
+ * SUBTEST: hang-fds-priority
+ *
+ * SUBTEST: hang-fds-sync
+ *
+ * SUBTEST: hang-forked
+ *
+ * SUBTEST: hang-normal
+ *
+ * SUBTEST: hang-queues
+ *
+ * SUBTEST: hang-queues-chain
+ *
+ * SUBTEST: hang-queues-forked
+ *
+ * SUBTEST: hang-queues-priority
+ *
+ * SUBTEST: hang-queues-sync
+ *
+ * SUBTEST: hang-sync
+ *
+ * SUBTEST: interruptible
+ *
+ * SUBTEST: interruptible-all
+ *
+ * SUBTEST: interruptible-engine
+ *
+ * SUBTEST: normal-engine
+ *
+ * SUBTEST: queues-chain
+ *
+ * SUBTEST: queues-chain-all
+ *
+ * SUBTEST: queues-engine
+ *
+ * SUBTEST: queues-forked-engine
+ *
+ * SUBTEST: queues-interruptible
+ *
+ * SUBTEST: queues-interruptible-all
+ *
+ * SUBTEST: queues-interruptible-engine
+ *
+ * SUBTEST: queues-priority-engine
+ *
+ * SUBTEST: queues-sync
+ *
+ * SUBTEST: queues-sync-all
+ *
+ * SUBTEST: queues-sync-engine
+ *
+ * SUBTEST: sync-engine
+ */
 
 #define ENGINE_MASK  (I915_EXEC_RING_MASK | I915_EXEC_BSD_MASK)
 
diff --git a/tests/i915/gem_exercise_blt.c b/tests/i915/gem_exercise_blt.c
index fb11fb925c17..af86d5edc2ab 100644
--- a/tests/i915/gem_exercise_blt.c
+++ b/tests/i915/gem_exercise_blt.c
@@ -10,6 +10,18 @@
 #include "lib/intel_chipset.h"
 #include "i915/i915_blt.h"
 #include "i915/intel_mocs.h"
+/**
+ * TEST: gem exercise blt
+ * Description: Exercise blitter commands
+ * Feature: blitter
+ * Run type: FULL
+ *
+ * SUBTEST: fast-copy
+ * Description: Check fast-copy blit
+ *
+ * SUBTEST: fast-copy-emit
+ * Description: Check multiple fast-copy in one batch
+ */
 
 IGT_TEST_DESCRIPTION("Exercise blitter commands");
 
diff --git a/tests/i915/gem_fd_exhaustion.c b/tests/i915/gem_fd_exhaustion.c
index a6463685e1c7..75485c1cbef3 100644
--- a/tests/i915/gem_fd_exhaustion.c
+++ b/tests/i915/gem_fd_exhaustion.c
@@ -34,6 +34,12 @@
 #include <limits.h>
 
 #include "i915/gem_create.h"
+/**
+ * TEST: gem fd exhaustion
+ * Run type: FULL
+ *
+ * SUBTEST:
+ */
 
 igt_simple_main
 {
diff --git a/tests/i915/gem_fence_thrash.c b/tests/i915/gem_fence_thrash.c
index 89a5ae29d295..f8ac29dd78f7 100644
--- a/tests/i915/gem_fence_thrash.c
+++ b/tests/i915/gem_fence_thrash.c
@@ -43,6 +43,25 @@
 #include "i915/gem_create.h"
 #include "igt.h"
 #include "igt_x86.h"
+/**
+ * TEST: gem fence thrash
+ * Feature: gtt, synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: bo-copy
+ *
+ * SUBTEST: bo-write-verify-none
+ *
+ * SUBTEST: bo-write-verify-threaded-none
+ *
+ * SUBTEST: bo-write-verify-threaded-x
+ *
+ * SUBTEST: bo-write-verify-threaded-y
+ *
+ * SUBTEST: bo-write-verify-x
+ *
+ * SUBTEST: bo-write-verify-y
+ */
 
 #define PAGE_SIZE 4096
 #define CACHELINE 64
diff --git a/tests/i915/gem_fence_upload.c b/tests/i915/gem_fence_upload.c
index 67487d671970..b239c0e7872d 100644
--- a/tests/i915/gem_fence_upload.c
+++ b/tests/i915/gem_fence_upload.c
@@ -41,6 +41,22 @@
 #include "drm.h"
 #include "i915_drm.h"
 #include "i915/gem_create.h"
+/**
+ * TEST: gem fence upload
+ * Run type: FULL
+ *
+ * SUBTEST: performance
+ *
+ * SUBTEST: thread-contention
+ *
+ * SUBTEST: thread-performance-both
+ *
+ * SUBTEST: thread-performance-read
+ *
+ * SUBTEST: thread-performance-write
+ *
+ * SUBTEST: wc-contention
+ */
 
 #define OBJECT_SIZE (1024*1024) /* restricted to 1MiB alignment on i915 fences */
 
diff --git a/tests/i915/gem_fenced_exec_thrash.c b/tests/i915/gem_fenced_exec_thrash.c
index a9597d801505..f22f16f683cb 100644
--- a/tests/i915/gem_fenced_exec_thrash.c
+++ b/tests/i915/gem_fenced_exec_thrash.c
@@ -33,6 +33,24 @@
 #include "i915/gem.h"
 #include "i915/gem_create.h"
 #include "igt.h"
+/**
+ * TEST: gem fenced exec thrash
+ * Description: Test execbuf fence accounting.
+ * Feature: gtt, synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: 2-spare-fences
+ *
+ * SUBTEST: no-spare-fences
+ *
+ * SUBTEST: no-spare-fences-busy
+ *
+ * SUBTEST: no-spare-fences-busy-interruptible
+ *
+ * SUBTEST: no-spare-fences-interruptible
+ *
+ * SUBTEST: too-many-fences
+ */
 
 IGT_TEST_DESCRIPTION("Test execbuf fence accounting.");
 
diff --git a/tests/i915/gem_flink_basic.c b/tests/i915/gem_flink_basic.c
index 2620bc55daf0..7feabf61a303 100644
--- a/tests/i915/gem_flink_basic.c
+++ b/tests/i915/gem_flink_basic.c
@@ -38,6 +38,27 @@
 
 #include "igt.h"
 #include "igt_types.h"
+/**
+ * TEST: gem flink basic
+ * Description: Tests for flink - a way to export a gem object by name
+ * Feature: xorg_dri2
+ * Run type: BAT
+ *
+ * SUBTEST: bad-flink
+ * Description: Verify that GEM_FLINK ioctl with invalid gem object fails.
+ *
+ * SUBTEST: bad-open
+ * Description: Verify that GEM_OPEN ioctl with invalid flink name fails.
+ *
+ * SUBTEST: basic
+ * Description: Check if gem object can be exported to global namespace and then opened.
+ *
+ * SUBTEST: double-flink
+ * Description: Tests that multiple flinks for the same gem object share the same name.
+ *
+ * SUBTEST: flink-lifetime
+ * Description: Tests flink lifetime by referencing from multiple descriptors.
+ */
 
 IGT_TEST_DESCRIPTION("Tests for flink - a way to export a gem object by name");
 
diff --git a/tests/i915/gem_flink_race.c b/tests/i915/gem_flink_race.c
index 70e133d708c0..5ebf1969b992 100644
--- a/tests/i915/gem_flink_race.c
+++ b/tests/i915/gem_flink_race.c
@@ -35,6 +35,16 @@
 #include "i915/gem_create.h"
 #include "igt.h"
 #include "igt_stats.h"
+/**
+ * TEST: gem flink race
+ * Description: Check for flink/open vs. gem close races.
+ * Feature: xorg_dri2
+ * Run type: FULL
+ *
+ * SUBTEST: flink_close
+ *
+ * SUBTEST: flink_name
+ */
 
 IGT_TEST_DESCRIPTION("Check for flink/open vs. gem close races.");
 
diff --git a/tests/i915/gem_gpgpu_fill.c b/tests/i915/gem_gpgpu_fill.c
index 74a227f678e7..f350e9fbb6d0 100644
--- a/tests/i915/gem_gpgpu_fill.c
+++ b/tests/i915/gem_gpgpu_fill.c
@@ -48,6 +48,13 @@
 #include "igt_collection.h"
 #include "intel_bufops.h"
 #include "i915/intel_memory_region.h"
+/**
+ * TEST: gem gpgpu fill
+ * Feature: compute
+ * Run type: FULL
+ *
+ * SUBTEST: basic
+ */
 
 #define WIDTH 64
 #define HEIGHT 64
diff --git a/tests/i915/gem_gtt_cpu_tlb.c b/tests/i915/gem_gtt_cpu_tlb.c
index 8000e58cc5d3..4f4af6a7b9b5 100644
--- a/tests/i915/gem_gtt_cpu_tlb.c
+++ b/tests/i915/gem_gtt_cpu_tlb.c
@@ -43,6 +43,14 @@
 
 #include "drm.h"
 #include "i915/gem_create.h"
+/**
+ * TEST: gem gtt cpu tlb
+ * Description: Check whether gtt tlbs for cpu access are correctly invalidated.
+ * Feature: gtt, mapping
+ * Run type: FULL
+ *
+ * SUBTEST:
+ */
 
 IGT_TEST_DESCRIPTION("Check whether gtt tlbs for cpu access are correctly"
 		     " invalidated.");
diff --git a/tests/i915/gem_gtt_hog.c b/tests/i915/gem_gtt_hog.c
index 15a6139ea152..4c8158c6d85a 100644
--- a/tests/i915/gem_gtt_hog.c
+++ b/tests/i915/gem_gtt_hog.c
@@ -42,6 +42,12 @@
 #include "i915/gem.h"
 #include "i915/gem_create.h"
 #include "igt.h"
+/**
+ * TEST: gem gtt hog
+ * Run type: FULL
+ *
+ * SUBTEST:
+ */
 
 static const uint32_t canary = 0xdeadbeef;
 
diff --git a/tests/i915/gem_gtt_speed.c b/tests/i915/gem_gtt_speed.c
index 272091fdbf31..a0e37b19e6ad 100644
--- a/tests/i915/gem_gtt_speed.c
+++ b/tests/i915/gem_gtt_speed.c
@@ -42,6 +42,12 @@
 
 #include "drm.h"
 #include "i915/gem_create.h"
+/**
+ * TEST: gem gtt speed
+ * Run type: FULL
+ *
+ * SUBTEST:
+ */
 
 #define OBJECT_SIZE 16384
 
diff --git a/tests/i915/gem_huc_copy.c b/tests/i915/gem_huc_copy.c
index ea32b705ab7c..13298698452f 100644
--- a/tests/i915/gem_huc_copy.c
+++ b/tests/i915/gem_huc_copy.c
@@ -35,6 +35,16 @@
 #include "drm.h"
 #include "i915/gem.h"
 #include "i915/gem_create.h"
+/**
+ * TEST: gem huc copy
+ * Description: A very simple workload for the HuC.
+ * Feature: huc
+ * Run type: BAT
+ *
+ * SUBTEST: huc-copy
+ * Description: Make sure that Huc firmware worksby copying a char array using Hucand verifying the copied
+ *   result
+ */
 
 IGT_TEST_DESCRIPTION("A very simple workload for the HuC.");
 
diff --git a/tests/i915/gem_linear_blits.c b/tests/i915/gem_linear_blits.c
index 4899af585355..4c3576503ca3 100644
--- a/tests/i915/gem_linear_blits.c
+++ b/tests/i915/gem_linear_blits.c
@@ -49,6 +49,23 @@
 #include "igt.h"
 #include "igt_types.h"
 #include "i915/i915_blt.h"
+/**
+ * TEST: gem linear blits
+ * Description: Test doing many blits with a working set larger than the aperture size.
+ * Feature: blitter
+ *
+ * SUBTEST: basic
+ * Description: Basic blitter functionality check with 2 buffers
+ * Run type: BAT
+ *
+ * SUBTEST: interruptible
+ * Description: Test with interrupts in between the parent process
+ * Run type: FULL
+ *
+ * SUBTEST: normal
+ * Description: The intent is to push beyond the working GTT size to force the driver to rebind the buffers
+ * Run type: FULL
+ */
 
 IGT_TEST_DESCRIPTION("Test doing many blits with a working set larger than the"
 		     " aperture size.");
diff --git a/tests/i915/gem_lmem_evict.c b/tests/i915/gem_lmem_evict.c
index 71a066de3104..9a8974b3ce09 100644
--- a/tests/i915/gem_lmem_evict.c
+++ b/tests/i915/gem_lmem_evict.c
@@ -7,6 +7,15 @@
 #include "igt_kmod.h"
 #include "i915/gem_create.h"
 #include "i915/gem.h"
+/**
+ * TEST: gem lmem evict
+ * Description: Force tiny lmem size for easily testing eviction scenarios.
+ * Feature: local_memory
+ * Run type: FULL
+ *
+ * SUBTEST: dontneed-evict-race
+ * Description: Regression test to verify that madvise will sync against busy dma-resv object for lmem
+ */
 
 IGT_TEST_DESCRIPTION("Force tiny lmem size for easily testing eviction scenarios.");
 
diff --git a/tests/i915/gem_lmem_swapping.c b/tests/i915/gem_lmem_swapping.c
index 55b044ecdd63..c3be8c53f20f 100644
--- a/tests/i915/gem_lmem_swapping.c
+++ b/tests/i915/gem_lmem_swapping.c
@@ -24,6 +24,95 @@
 #include "drm.h"
 #include "i915/i915_blt.h"
 #include "i915/intel_mocs.h"
+/**
+ * TEST: gem lmem swapping
+ * Description: Exercise local memory swapping.
+ * Feature: local_memory
+ *
+ * SUBTEST: basic
+ * Description: Exercise local memory swapping to system memory
+ * Run type: BAT
+ *
+ * SUBTEST: heavy-multi
+ * Description: Exercise local memory swapping to system memory
+ * Run type: FULL
+ *
+ * SUBTEST: heavy-random
+ * Description: Exercise local memory swapping to system memory
+ * Run type: FULL
+ *
+ * SUBTEST: heavy-verify-multi
+ * Description: Exercise local memory swapping to system memory
+ * Run type: FULL
+ *
+ * SUBTEST: heavy-verify-multi-ccs
+ * Description: Exercise local memory swapping to system memory
+ * Run type: FULL
+ *
+ * SUBTEST: heavy-verify-random
+ * Description: Exercise local memory swapping to system memory
+ * Run type: FULL
+ *
+ * SUBTEST: heavy-verify-random-ccs
+ * Description: Exercise local memory swapping to system memory
+ * Run type: FULL
+ *
+ * SUBTEST: massive
+ * Description: Exercise local memory swapping to system memory
+ * Run type: FULL
+ *
+ * SUBTEST: massive-random
+ * Description: Exercise local memory swapping to system memory
+ * Run type: FULL
+ *
+ * SUBTEST: parallel-multi
+ * Description: Exercise local memory swapping to system memory
+ * Run type: FULL
+ *
+ * SUBTEST: parallel-random
+ * Description: Exercise local memory swapping to system memory
+ * Run type: FULL
+ *
+ * SUBTEST: parallel-random-engines
+ * Description: Exercise local memory swapping to system memory
+ * Run type: BAT
+ *
+ * SUBTEST: parallel-random-verify
+ * Description: Exercise local memory swapping to system memory
+ * Run type: FULL
+ *
+ * SUBTEST: parallel-random-verify-ccs
+ * Description: Exercise local memory swapping to system memory
+ * Run type: FULL
+ *
+ * SUBTEST: random
+ * Description: Exercise local memory swapping to system memory
+ * Run type: FULL
+ *
+ * SUBTEST: random-engines
+ * Description: Exercise local memory swapping to system memory
+ * Run type: BAT
+ *
+ * SUBTEST: smem-oom
+ * Description: Exercise local memory swapping during exhausting system memory
+ * Run type: FULL
+ *
+ * SUBTEST: verify
+ * Description: Exercise local memory swapping to system memory
+ * Run type: FULL
+ *
+ * SUBTEST: verify-ccs
+ * Description: Exercise local memory swapping to system memory
+ * Run type: FULL
+ *
+ * SUBTEST: verify-random
+ * Description: Exercise local memory swapping to system memory
+ * Run type: BAT
+ *
+ * SUBTEST: verify-random-ccs
+ * Description: Exercise local memory swapping to system memory
+ * Run type: FULL
+ */
 
 IGT_TEST_DESCRIPTION("Exercise local memory swapping.");
 
diff --git a/tests/i915/gem_lut_handle.c b/tests/i915/gem_lut_handle.c
index 32f76aaa07f2..cdd56a5d842a 100644
--- a/tests/i915/gem_lut_handle.c
+++ b/tests/i915/gem_lut_handle.c
@@ -39,6 +39,13 @@
 
 #include "drm.h"
 #include "i915/gem_create.h"
+/**
+ * TEST: gem lut handle
+ * Description: Exercises the basic execbuffer using the handle LUT interface.
+ * Run type: FULL
+ *
+ * SUBTEST:
+ */
 
 IGT_TEST_DESCRIPTION("Exercises the basic execbuffer using the handle LUT"
 		     " interface.");
diff --git a/tests/i915/gem_madvise.c b/tests/i915/gem_madvise.c
index 2502d84c7738..19f347c9c89a 100644
--- a/tests/i915/gem_madvise.c
+++ b/tests/i915/gem_madvise.c
@@ -38,6 +38,29 @@
 
 #include "drm.h"
 #include "i915/gem_create.h"
+/**
+ * TEST: gem madvise
+ * Description: Checks that the kernel reports EFAULT when trying to use purged bo.
+ * Run type: FULL
+ *
+ * SUBTEST: dontneed-after-mmap
+ * Description: Check signal for Segmentation Fault and bus error after obtaining a purgeable object and
+ *   calling for sighandler.
+ * Feature: caching, mapping
+ *
+ * SUBTEST: dontneed-before-exec
+ * Description: Check if EXECBUFFER2 reports EFAULT when trying to submit purged bo for GPU.
+ * Feature: caching, gtt, mapping
+ *
+ * SUBTEST: dontneed-before-mmap
+ * Description: Check signal for Segmentation Fault and bus error before obtaining a purgeable object and
+ *   calling for sighandler.
+ * Feature: caching, mapping
+ *
+ * SUBTEST: dontneed-before-pwrite
+ * Description: Check if PWRITE reports EFAULT when trying to use purged bo for write operation.
+ * Feature: caching, gtt, mapping
+ */
 
 IGT_TEST_DESCRIPTION("Checks that the kernel reports EFAULT when trying to use"
 		     " purged bo.");
diff --git a/tests/i915/gem_media_fill.c b/tests/i915/gem_media_fill.c
index e418047c2e74..07e7b3ccba63 100644
--- a/tests/i915/gem_media_fill.c
+++ b/tests/i915/gem_media_fill.c
@@ -45,6 +45,14 @@
 #include "drm.h"
 #include "i915/gem.h"
 #include "igt.h"
+/**
+ * TEST: gem media fill
+ * Description: Basic test for the media_fill() function, a very simple workload for the Media pipeline.
+ * Feature: media
+ * Run type: FULL
+ *
+ * SUBTEST: media-fill
+ */
 
 IGT_TEST_DESCRIPTION("Basic test for the media_fill() function, a very simple"
 		     " workload for the Media pipeline.");
diff --git a/tests/i915/gem_media_vme.c b/tests/i915/gem_media_vme.c
index 3ea70386cfea..38ebd157d9fd 100644
--- a/tests/i915/gem_media_vme.c
+++ b/tests/i915/gem_media_vme.c
@@ -35,6 +35,14 @@
 #include "drm.h"
 #include "i915/gem.h"
 #include "igt.h"
+/**
+ * TEST: gem media vme
+ * Description: A very simple workload for the VME media block.
+ * Feature: media
+ * Run type: FULL
+ *
+ * SUBTEST:
+ */
 
 IGT_TEST_DESCRIPTION("A very simple workload for the VME media block.");
 
diff --git a/tests/i915/gem_mmap.c b/tests/i915/gem_mmap.c
index 61f862a8e275..0ba9fe6f1d1a 100644
--- a/tests/i915/gem_mmap.c
+++ b/tests/i915/gem_mmap.c
@@ -38,6 +38,57 @@
 
 #include "drm.h"
 #include "i915/gem_create.h"
+/**
+ * TEST: gem mmap
+ * Description: Basic MMAP IOCTL tests for memory regions.
+ * Feature: mapping
+ *
+ * SUBTEST: bad-object
+ * Description: Verify mapping to invalid gem objects won't be created.
+ * Run type: FULL
+ *
+ * SUBTEST: bad-offset
+ * Description: Verify mapping to gem object with invalid offset won't be created.
+ * Run type: FULL
+ *
+ * SUBTEST: bad-size
+ * Description: Verify mapping to gem object with invalid size won't be created.
+ * Run type: FULL
+ *
+ * SUBTEST: basic
+ * Description: Test basics of newly mapped gem object like default content, write and read coherency,
+ *   mapping existence after gem_close and unmapping.
+ * Run type: BAT
+ *
+ * SUBTEST: basic-small-bo
+ * Description: Test the write read coherency and simultaneous access of different pages of a small buffer
+ *   object.
+ * Run type: FULL
+ *
+ * SUBTEST: big-bo
+ * Description: Test the write read coherency and simultaneous access of different pages of a big buffer
+ *   object.
+ * Run type: FULL
+ *
+ * SUBTEST: huge-bo
+ * Description: Test the write read coherency and simultaneous access of different pages of a huge buffer
+ *   object.
+ * Run type: FULL
+ *
+ * SUBTEST: pf-nonblock
+ * Description: Verify that GTT page faults are asynchronous to GPU rendering and completes within a
+ *   specific time.
+ * Run type: FULL
+ *
+ * SUBTEST: short-mmap
+ * Description: Map small buffer object though direct CPU access, bypassing GPU.
+ * Run type: FULL
+ *
+ * SUBTEST: swap-bo
+ * Description: Test the write read coherency and simultaneous access of different pages while swapping
+ *   buffer object.
+ * Run type: FULL
+ */
 
 IGT_TEST_DESCRIPTION("Basic MMAP IOCTL tests for memory regions.");
 
diff --git a/tests/i915/gem_mmap_gtt.c b/tests/i915/gem_mmap_gtt.c
index c14ab50eeee7..35737d89d600 100644
--- a/tests/i915/gem_mmap_gtt.c
+++ b/tests/i915/gem_mmap_gtt.c
@@ -47,6 +47,456 @@
 #include "igt_sysfs.h"
 #include "igt_x86.h"
 #include "sw_sync.h"
+/**
+ * TEST: gem mmap gtt
+ * Description: Ensure that all operations around MMAP_GTT ioctl works.
+ *
+ * SUBTEST: bad-object
+ * Description: Verify mapping to invalid gem objects fails.
+ * Feature: gtt
+ * Run type: FULL
+ *
+ * SUBTEST: basic
+ * Description: Basic checks of GEM_MMAP_GTT ioctl.
+ * Feature: gtt
+ * Run type: BAT
+ *
+ * SUBTEST: basic-copy
+ * Description: Test copy between two GTT mmappings.
+ * Feature: gtt
+ * Run type: FULL
+ *
+ * SUBTEST: basic-read
+ * Description: Test to read content from GTT mmapped object.
+ * Feature: gtt
+ * Run type: FULL
+ *
+ * SUBTEST: basic-read-write
+ * Description: Check basic read->write order of a GTT mmapped bo.
+ * Feature: gtt
+ * Run type: FULL
+ *
+ * SUBTEST: basic-read-write-distinct
+ * Description: Check distinct read->write order of a GTT mmapped bo.
+ * Feature: gtt
+ * Run type: FULL
+ *
+ * SUBTEST: basic-short
+ * Description: Test mmaping less than the full object.
+ * Feature: gtt
+ * Run type: FULL
+ *
+ * SUBTEST: basic-small-bo
+ * Description: Check mmap access to a small buffer object by CPU directly and through GTT in sequence.
+ * Feature: gtt
+ * Run type: FULL
+ *
+ * SUBTEST: basic-small-bo-tiledX
+ * Description: Check mmap access to a small X-tiled buffer object by CPU directly and through GTT in
+ *   sequence.
+ * Feature: gtt
+ * Run type: FULL
+ *
+ * SUBTEST: basic-small-bo-tiledY
+ * Description: Check mmap access to a small Y-tiled buffer object by CPU directly and through GTT in
+ *   sequence.
+ * Feature: gtt
+ * Run type: FULL
+ *
+ * SUBTEST: basic-small-copy
+ * Description: Check page by page copying between two GTT mmapped normal-small bo's.
+ * Feature: gtt
+ * Run type: FULL
+ *
+ * SUBTEST: basic-small-copy-XY
+ * Description: Check page by page copying between two GTT mmapped tiled-small bo's.
+ * Feature: gtt
+ * Run type: FULL
+ *
+ * SUBTEST: basic-small-copy-odd
+ * Description: Check page by page copying between two GTT mmapped odd tiled-small bo's.
+ * Feature: gtt
+ * Run type: FULL
+ *
+ * SUBTEST: basic-wc
+ * Description: Check the performance of WC writes with WC reads of GTT and WC writes of GTT with WB writes of.
+ *   CPU.
+ * Feature: gtt
+ * Run type: FULL
+ *
+ * SUBTEST: basic-write
+ * Description: Test to write content to GTT mmapped object.
+ * Feature: gtt
+ * Run type: FULL
+ *
+ * SUBTEST: basic-write-cpu-read-gtt
+ * Description: Check coherency between GTT and CPU mmappings with LLC.
+ * Feature: gtt
+ * Run type: FULL
+ *
+ * SUBTEST: basic-write-gtt
+ * Description: Test creates a prefault object into GTT and writes into it from another GTT mmapped.
+ * Feature: gtt
+ * Run type: FULL
+ *
+ * SUBTEST: basic-write-read
+ * Description: Check basic write->read order of a GTT mmapped bo.
+ * Feature: gtt
+ * Run type: FULL
+ *
+ * SUBTEST: basic-write-read-distinct
+ * Description: Check distinct write->read order of a GTT mmapped bo.
+ * Feature: gtt
+ * Run type: FULL
+ *
+ * SUBTEST: big-bo
+ * Description: Check mmap access to a big buffer object by CPU directly and through GTT in sequence.
+ * Feature: gtt
+ * Run type: FULL
+ *
+ * SUBTEST: big-bo-tiledX
+ * Description: Check mmap access to a big X-tiled buffer object by CPU directly and through GTT in sequence.
+ * Feature: gtt
+ * Run type: FULL
+ *
+ * SUBTEST: big-bo-tiledY
+ * Description: Check mmap access to a big Y-tiled buffer object by CPU directly and through GTT in sequence.
+ * Feature: gtt
+ * Run type: FULL
+ *
+ * SUBTEST: big-copy
+ * Description: Check page by page copying between two GTT mmapped normal-big bo's.
+ * Feature: gtt
+ * Run type: FULL
+ *
+ * SUBTEST: big-copy-XY
+ * Description: Check page by page copying between two GTT mmapped tiled-big bo's.
+ * Feature: gtt
+ * Run type: FULL
+ *
+ * SUBTEST: big-copy-odd
+ * Description: Check page by page copying between two GTT mmapped odd tiled-big bo's.
+ * Feature: gtt
+ * Run type: FULL
+ *
+ * SUBTEST: clflush
+ * Description: Check the userspace clflushing of the GTT mmap.
+ * Feature: gtt
+ * Run type: FULL
+ *
+ * SUBTEST: close-race
+ * Description: Test to check that a few threads opening and closing handles cause explosion in other threads
+ *   in the process of mmaping that handle.
+ * Feature: gtt
+ * Run type: FULL
+ *
+ * SUBTEST: coherency
+ * Description: Check whether a write through the GTT is immediately visible to the CPU.
+ * Feature: gtt
+ * Run type: FULL
+ *
+ * SUBTEST: cpuset-basic-small-copy
+ * Description: Add forked contention with lighter variant (single cpu) and check page by page copying
+ *   between two GTT mmapped normal-small bo's.
+ * Feature: gtt
+ * Run type: FULL
+ *
+ * SUBTEST: cpuset-basic-small-copy-XY
+ * Description: Add forked contention with lighter variant (single cpu) and check page by page copying
+ *   between two GTT mmapped tiled-small bo's.
+ * Feature: gtt
+ * Run type: FULL
+ *
+ * SUBTEST: cpuset-basic-small-copy-odd
+ * Description: Add forked contention with lighter variant (single cpu) and check page by page copying
+ *   between two GTT mmapped odd tiled-small bo's.
+ * Feature: gtt
+ * Run type: FULL
+ *
+ * SUBTEST: cpuset-big-copy
+ * Description: Add forked contention with lighter variant (single cpu) and check page by page copying
+ *   between two GTT mmapped normal-big bo's.
+ * Feature: gtt
+ * Run type: FULL
+ *
+ * SUBTEST: cpuset-big-copy-XY
+ * Description: Add forked contention with lighter variant (single cpu) and check page by page copying
+ *   between two GTT mmapped tiled-big bo's.
+ * Feature: gtt
+ * Run type: FULL
+ *
+ * SUBTEST: cpuset-big-copy-odd
+ * Description: Add forked contention with lighter variant (single cpu) and check page by page copying
+ *   between two GTT mmapped odd tiled-big bo's.
+ * Feature: gtt
+ * Run type: FULL
+ *
+ * SUBTEST: cpuset-huge-copy
+ * Description: Add forked contention with lighter variant (single cpu) and check page by page copying
+ *   between two GTT mmapped normal-huge bo's.
+ * Feature: gtt
+ * Run type: FULL
+ *
+ * SUBTEST: cpuset-huge-copy-XY
+ * Description: Add forked contention with lighter variant (single cpu) and check page by page copying
+ *   between two GTT mmapped tiled-huge bo's.
+ * Feature: gtt
+ * Run type: FULL
+ *
+ * SUBTEST: cpuset-huge-copy-odd
+ * Description: Add forked contention with lighter variant (single cpu) and check page by page copying
+ *   between two GTT mmapped odd tiled-huge bo's.
+ * Feature: gtt
+ * Run type: FULL
+ *
+ * SUBTEST: cpuset-medium-copy
+ * Description: Add forked contention with lighter variant (single cpu) and check page by page copying
+ *   between two GTT mmapped normal-medium bo's.
+ * Feature: gtt
+ * Run type: FULL
+ *
+ * SUBTEST: cpuset-medium-copy-XY
+ * Description: Add forked contention with lighter variant (single cpu) and check page by page copying
+ *   between two GTT mmapped tiled-medium bo's.
+ * Feature: gtt
+ * Run type: FULL
+ *
+ * SUBTEST: cpuset-medium-copy-odd
+ * Description: Add forked contention with lighter variant (single cpu) and check page by page copying
+ *   between two GTT mmapped odd tiled-medium bo's.
+ * Feature: gtt
+ * Run type: FULL
+ *
+ * SUBTEST: cpuset-swap-copy
+ * Description: Add forked contention with lighter variant (single cpu) and check page by page copying
+ *   between two GTT mmapped normal-huge bo's larger than physical memory and resulting in
+ *   thrashing of swap space.
+ * Feature: gtt
+ * Run type: FULL
+ *
+ * SUBTEST: cpuset-swap-copy-XY
+ * Description: Add forked contention with lighter variant (single cpu) and check page by page copying
+ *   between two GTT mmapped tiled-huge bo's larger than physical memory and resulting in
+ *   thrashing of swap space.
+ * Feature: gtt
+ * Run type: FULL
+ *
+ * SUBTEST: cpuset-swap-copy-odd
+ * Description: Add forked contention with lighter variant (single cpu) and check page by page copying
+ *   between two GTT mmapped odd tiled-huge bo's larger than physical memory and resulting in
+ *   thrashing of swap space.
+ * Feature: gtt
+ * Run type: FULL
+ *
+ * SUBTEST: fault-concurrent
+ * Description: Excercise concurrent pagefaulting of a GTT mmaped bo.
+ * Feature: gtt
+ * Run type: FULL
+ *
+ * SUBTEST: fault-concurrent-X
+ * Description: Excercise concurrent pagefaulting of a X-tiled GTT mmaped bo.
+ * Feature: gtt
+ * Run type: FULL
+ *
+ * SUBTEST: fault-concurrent-Y
+ * Description: Excercise concurrent pagefaulting of a Y-tiled GTT mmaped bo.
+ * Feature: gtt
+ * Run type: FULL
+ *
+ * SUBTEST: flink-race
+ * Description: Test to check that a few threads opening and closing flink handles cause explosion in other
+ *   threads in the process of mmaping that handle.
+ * Feature: gtt, xorg_dri2
+ * Run type: FULL
+ *
+ * SUBTEST: forked-basic-small-copy
+ * Description: Add forked contention and check page by page copying between two GTT mmapped normal-small
+ *   bo's.
+ * Feature: gtt
+ * Run type: FULL
+ *
+ * SUBTEST: forked-basic-small-copy-XY
+ * Description: Add forked contention and check page by page copying between two GTT mmapped tiled-small
+ *   bo's.
+ * Feature: gtt
+ * Run type: FULL
+ *
+ * SUBTEST: forked-basic-small-copy-odd
+ * Description: Add forked contention and check page by page copying between two GTT mmapped odd tiled-small
+ *   bo's.
+ * Feature: gtt
+ * Run type: FULL
+ *
+ * SUBTEST: forked-big-copy
+ * Description: Add forked contention and check page by page copying between two GTT mmapped normal-big
+ *   bo's.
+ * Feature: gtt
+ * Run type: FULL
+ *
+ * SUBTEST: forked-big-copy-XY
+ * Description: Add forked contention and check page by page copying between two GTT mmapped tiled-big bo's.
+ * Feature: gtt
+ * Run type: FULL
+ *
+ * SUBTEST: forked-big-copy-odd
+ * Description: Add forked contention and check page by page copying between two GTT mmapped odd tiled-big
+ *   bo's.
+ * Feature: gtt
+ * Run type: FULL
+ *
+ * SUBTEST: forked-huge-copy
+ * Description: Add forked contention and check page by page copying between two GTT mmapped normal-huge
+ *   bo's.
+ * Feature: gtt
+ * Run type: FULL
+ *
+ * SUBTEST: forked-huge-copy-XY
+ * Description: Add forked contention and check page by page copying between two GTT mmapped tiled-huge
+ *   bo's.
+ * Feature: gtt
+ * Run type: FULL
+ *
+ * SUBTEST: forked-huge-copy-odd
+ * Description: Add forked contention and check page by page copying between two GTT mmapped odd tiled-huge
+ *   bo's.
+ * Feature: gtt
+ * Run type: FULL
+ *
+ * SUBTEST: forked-medium-copy
+ * Description: Add forked contention and check page by page copying between two GTT mmapped normal-medium
+ *   bo's.
+ * Feature: gtt
+ * Run type: FULL
+ *
+ * SUBTEST: forked-medium-copy-XY
+ * Description: Add forked contention and check page by page copying between two GTT mmapped tiled-medium
+ *   bo's.
+ * Feature: gtt
+ * Run type: FULL
+ *
+ * SUBTEST: forked-medium-copy-odd
+ * Description: Add forked contention and check page by page copying between two GTT mmapped odd
+ *   tiled-medium bo's.
+ * Feature: gtt
+ * Run type: FULL
+ *
+ * SUBTEST: forked-swap-copy
+ * Description: Add forked contention and check page by page copying between two GTT mmapped normal-huge
+ *   bo's larger than physical memory and resulting in thrashing of swap space.
+ * Feature: gtt
+ * Run type: FULL
+ *
+ * SUBTEST: forked-swap-copy-XY
+ * Description: Add forked contention and check page by page copying between two GTT mmapped tiled-huge bo's
+ *   larger than physical memory and resulting in thrashing of swap space.
+ * Feature: gtt
+ * Run type: FULL
+ *
+ * SUBTEST: forked-swap-copy-odd
+ * Description: Add forked contention and check page by page copying between two GTT mmapped odd tiled-huge
+ *   bo's larger than physical memory and resulting in thrashing of swap space.
+ * Feature: gtt
+ * Run type: FULL
+ *
+ * SUBTEST: hang
+ * Description: Check read/writes across a GPU reset.
+ * Feature: gtt
+ * Run type: FULL
+ *
+ * SUBTEST: hang-busy
+ * Description: Exercise the GTT mmap revocation for a reset on a busy object.
+ * Feature: gtt
+ * Run type: FULL
+ *
+ * SUBTEST: hang-user
+ * Description: Mix a busy hang with GTT and userptr.
+ * Feature: gtt
+ * Run type: FULL
+ *
+ * SUBTEST: huge-bo
+ * Description: Check mmap access to a huge buffer object by CPU directly and through GTT in sequence.
+ * Feature: gtt
+ * Run type: FULL
+ *
+ * SUBTEST: huge-bo-tiledX
+ * Description: Check mmap access to a huge X-tiled buffer object by CPU directly and through GTT in sequence.
+ * Feature: gtt
+ * Run type: FULL
+ *
+ * SUBTEST: huge-bo-tiledY
+ * Description: Check mmap access to a huge Y-tiled buffer object by CPU directly and through GTT in sequence.
+ * Feature: gtt
+ * Run type: FULL
+ *
+ * SUBTEST: huge-copy
+ * Description: Check page by page copying between two GTT mmapped normal-huge bo's.
+ * Feature: gtt
+ * Run type: FULL
+ *
+ * SUBTEST: huge-copy-XY
+ * Description: Check page by page copying between two GTT mmapped tiled-huge bo's.
+ * Feature: gtt
+ * Run type: FULL
+ *
+ * SUBTEST: huge-copy-odd
+ * Description: Check page by page copying between two GTT mmapped odd tiled-huge bo's.
+ * Feature: gtt
+ * Run type: FULL
+ *
+ * SUBTEST: isolation
+ * Description: Test mmap_offset lifetime, closing the object on another file should not affect the local
+ *   mmap_offset.
+ * Feature: gtt
+ * Run type: FULL
+ *
+ * SUBTEST: medium-copy
+ * Description: Check page by page copying between two GTT mmapped normal-medium bo's.
+ * Feature: gtt
+ * Run type: FULL
+ *
+ * SUBTEST: medium-copy-XY
+ * Description: Check page by page copying between two GTT mmapped tiled-medium bo's.
+ * Feature: gtt
+ * Run type: FULL
+ *
+ * SUBTEST: medium-copy-odd
+ * Description: Check page by page copying between two GTT mmapped odd tiled-medium bo's.
+ * Feature: gtt
+ * Run type: FULL
+ *
+ * SUBTEST: pf-nonblock
+ * Description: Check that the initial pagefault is non-blocking.
+ * Feature: gtt
+ * Run type: FULL
+ *
+ * SUBTEST: ptrace
+ * Description: Inspect a GTT mmap using ptrace().
+ * Feature: gtt
+ * Run type: FULL
+ *
+ * SUBTEST: swap-copy
+ * Description: Check page by page copying between two GTT mmapped normal-huge bo's larger than physical
+ *   memory and resulting in thrashing of swap space.
+ * Feature: gtt
+ * Run type: FULL
+ *
+ * SUBTEST: swap-copy-XY
+ * Description: Check page by page copying between two GTT mmapped tiled-huge bo's larger than physical
+ *   memory and resulting in thrashing of swap space.
+ * Feature: gtt
+ * Run type: FULL
+ *
+ * SUBTEST: swap-copy-odd
+ * Description: Check page by page copying between two GTT mmapped odd tiled-huge bo's larger than physical
+ *   memory and resulting in thrashing of swap space.
+ * Feature: gtt
+ * Run type: FULL
+ *
+ * SUBTEST: zero-extend
+ * Description: Test MMAP_GTT extension validity.
+ * Feature: gtt
+ * Run type: FULL
+ */
 
 #ifndef PAGE_SIZE
 #define PAGE_SIZE 4096
diff --git a/tests/i915/gem_mmap_offset.c b/tests/i915/gem_mmap_offset.c
index 962fc1b739ea..c02ee70e3298 100644
--- a/tests/i915/gem_mmap_offset.c
+++ b/tests/i915/gem_mmap_offset.c
@@ -38,6 +38,42 @@
 #include "i915/intel_memory_region.h"
 #include "igt.h"
 #include "igt_x86.h"
+/**
+ * TEST: gem mmap offset
+ * Description: Basic MMAP_OFFSET IOCTL tests for mem regions
+ * Feature: mapping
+ * Run type: FULL
+ *
+ * SUBTEST: bad-extensions
+ *
+ * SUBTEST: bad-flags
+ *
+ * SUBTEST: bad-object
+ * Description: Verify mapping to invalid gem objects won't be created
+ *
+ * SUBTEST: basic-uaf
+ * Description: Check buffer object mapping persists after gem_close
+ *
+ * SUBTEST: blt-coherency
+ *
+ * SUBTEST: clear
+ *
+ * SUBTEST: close-race
+ * Description: Check race between close and mmap offset between threads
+ *
+ * SUBTEST: isolation
+ *
+ * SUBTEST: oob-read
+ * Description: Check for out-of-bound access in vm_access
+ *
+ * SUBTEST: open-flood
+ *
+ * SUBTEST: perf
+ *
+ * SUBTEST: pf-nonblock
+ *
+ * SUBTEST: ptrace
+ */
 
 IGT_TEST_DESCRIPTION("Basic MMAP_OFFSET IOCTL tests for mem regions\n");
 
diff --git a/tests/i915/gem_mmap_wc.c b/tests/i915/gem_mmap_wc.c
index 6dc7bae49548..ce1c190838af 100644
--- a/tests/i915/gem_mmap_wc.c
+++ b/tests/i915/gem_mmap_wc.c
@@ -39,6 +39,73 @@
 
 #include "drm.h"
 #include "i915/gem_create.h"
+/**
+ * TEST: gem mmap wc
+ * Run type: FULL
+ *
+ * SUBTEST: bad-object
+ * Feature: caching, mapping
+ *
+ * SUBTEST: bad-offset
+ * Feature: caching, mapping
+ *
+ * SUBTEST: bad-size
+ * Feature: caching, mapping
+ *
+ * SUBTEST: close
+ * Feature: caching, mapping
+ *
+ * SUBTEST: coherency
+ * Feature: caching, mapping
+ *
+ * SUBTEST: copy
+ * Feature: caching, mapping
+ *
+ * SUBTEST: fault-concurrent
+ * Feature: caching, mapping
+ *
+ * SUBTEST: invalid-flags
+ * Feature: caching, mapping
+ *
+ * SUBTEST: pf-nonblock
+ * Feature: caching, mapping
+ *
+ * SUBTEST: read
+ * Feature: caching, mapping
+ *
+ * SUBTEST: read-write
+ * Feature: caching, mapping
+ *
+ * SUBTEST: read-write-distinct
+ * Feature: caching, mapping
+ *
+ * SUBTEST: set-cache-level
+ * Feature: caching, mapping
+ *
+ * SUBTEST: write
+ * Feature: caching, mapping
+ *
+ * SUBTEST: write-cpu-read-wc
+ * Feature: caching, mapping
+ *
+ * SUBTEST: write-cpu-read-wc-unflushed
+ * Feature: caching, mapping
+ *
+ * SUBTEST: write-gtt-read-wc
+ * Feature: caching, gtt, mapping
+ *
+ * SUBTEST: write-prefaulted
+ * Feature: caching, mapping
+ *
+ * SUBTEST: write-read
+ * Feature: caching, mapping
+ *
+ * SUBTEST: write-read-distinct
+ * Feature: caching, mapping
+ *
+ * SUBTEST: write-wc-read-gtt
+ * Feature: caching, gtt, mapping
+ */
 
 static int OBJECT_SIZE = 16*1024*1024;
 
diff --git a/tests/i915/gem_partial_pwrite_pread.c b/tests/i915/gem_partial_pwrite_pread.c
index 474149d48f42..debc0425164d 100644
--- a/tests/i915/gem_partial_pwrite_pread.c
+++ b/tests/i915/gem_partial_pwrite_pread.c
@@ -38,6 +38,58 @@
 
 #include "i915/gem.h"
 #include "igt.h"
+/**
+ * TEST: gem partial pwrite pread
+ * Description: Test pwrite/pread consistency when touching partial cachelines.
+ * Feature: caching, mapping
+ * Run type: FULL
+ *
+ * SUBTEST: reads
+ * Description: Verify if pread is consistent while accessing partial cachelines with default caching
+ *   level
+ *
+ * SUBTEST: reads-display
+ * Description: Verify if pread is consistent while accessing partial cachelines with display caching
+ *   level
+ *
+ * SUBTEST: reads-snoop
+ * Description: Verify if pread is consistent while accessing partial cachelines with snoop caching level
+ *
+ * SUBTEST: reads-uncached
+ * Description: Verify if pread is consistent while accessing partial cachelines with uncached caching
+ *   level
+ *
+ * SUBTEST: write
+ * Description: Verify if pwrite is consistent while accessing partial cachelines with default caching
+ *   level
+ *
+ * SUBTEST: write-display
+ * Description: Verify if pwrite is consistent while accessing partial cachelines with display caching
+ *   level
+ *
+ * SUBTEST: write-snoop
+ * Description: Verify if pwrite is consistent while accessing partial cachelines with snoop caching level
+ *
+ * SUBTEST: write-uncached
+ * Description: Verify if pwrite is consistent while accessing partial cachelines with uncached caching
+ *   level
+ *
+ * SUBTEST: writes-after-reads
+ * Description: Verify if both pread, pwrite are consistent while accessing partial cachelines with
+ *   default caching level
+ *
+ * SUBTEST: writes-after-reads-display
+ * Description: Verify if both pread, pwrite are consistent while accessing partial cachelines with
+ *   display caching level
+ *
+ * SUBTEST: writes-after-reads-snoop
+ * Description: Verify if both pread, pwrite are consistent while accessing partial cachelines with snoop
+ *   caching level
+ *
+ * SUBTEST: writes-after-reads-uncached
+ * Description: Verify if both pread, pwrite are consistent while accessing partial cachelines with
+ *   uncached caching level
+ */
 
 IGT_TEST_DESCRIPTION("Test pwrite/pread consistency when touching partial"
 		     " cachelines.");
diff --git a/tests/i915/gem_pipe_control_store_loop.c b/tests/i915/gem_pipe_control_store_loop.c
index 59959a3742d5..5e6ef049085b 100644
--- a/tests/i915/gem_pipe_control_store_loop.c
+++ b/tests/i915/gem_pipe_control_store_loop.c
@@ -43,6 +43,18 @@
 #include "drm.h"
 #include "i915/gem.h"
 #include "igt.h"
+/**
+ * TEST: gem pipe control store loop
+ * Description: Test (TLB-)Coherency of pipe_control QW writes.
+ * Feature: cmd_submission
+ * Run type: FULL
+ *
+ * SUBTEST: fresh-buffer
+ * Description: Checks tlb consistency of the pipe_control with fresh buffer.
+ *
+ * SUBTEST: reused-buffer
+ * Description: Checks tlb consistency of the pipe_control with reused buffer.
+ */
 
 IGT_TEST_DESCRIPTION("Test (TLB-)Coherency of pipe_control QW writes.");
 
diff --git a/tests/i915/gem_ppgtt.c b/tests/i915/gem_ppgtt.c
index c3102857a203..368f8b17db75 100644
--- a/tests/i915/gem_ppgtt.c
+++ b/tests/i915/gem_ppgtt.c
@@ -39,6 +39,27 @@
 #include "i915/gem_create.h"
 #include "igt.h"
 #include "igt_debugfs.h"
+/**
+ * TEST: gem ppgtt
+ * Run type: FULL
+ *
+ * SUBTEST: blt-vs-render-ctx0
+ * Feature: mapping
+ *
+ * SUBTEST: blt-vs-render-ctxN
+ * Feature: mapping
+ *
+ * SUBTEST: flink-and-close-vma-leak
+ * Feature: mapping, xorg_dri2
+ *
+ * SUBTEST: shrink-vs-evict-any
+ * Description: Regression test to verify GTT eviction can't randomly fail due to object lock contention
+ * Feature: mapping
+ *
+ * SUBTEST: shrink-vs-evict-pinned
+ * Description: Regression test to verify GTT eviction can't randomly fail due to object lock contention
+ * Feature: mapping
+ */
 
 #define WIDTH 512
 #define STRIDE (WIDTH*4)
diff --git a/tests/i915/gem_pread.c b/tests/i915/gem_pread.c
index a8bf2b0540d7..1dbded440125 100644
--- a/tests/i915/gem_pread.c
+++ b/tests/i915/gem_pread.c
@@ -45,6 +45,23 @@
 #include "drm.h"
 #include "i915/gem_create.h"
 #include "igt_vgem.h"
+/**
+ * TEST: gem pread
+ * Feature: mapping
+ * Run type: FULL
+ *
+ * SUBTEST: bench
+ *
+ * SUBTEST: display
+ *
+ * SUBTEST: exhaustion
+ *
+ * SUBTEST: self
+ *
+ * SUBTEST: snoop
+ *
+ * SUBTEST: uncached
+ */
 
 #define MiB(x) ((x) * 1024 * 1024)
 
diff --git a/tests/i915/gem_pread_after_blit.c b/tests/i915/gem_pread_after_blit.c
index 3b56f787aa3f..fc6ee4408539 100644
--- a/tests/i915/gem_pread_after_blit.c
+++ b/tests/i915/gem_pread_after_blit.c
@@ -47,6 +47,35 @@
 
 #include "i915/gem.h"
 #include "igt.h"
+/**
+ * TEST: gem pread after blit
+ * Description: Test pread behavior when getting values out of just-drawn-to buffers.
+ * Run type: FULL
+ *
+ * SUBTEST: default-hang
+ *
+ * SUBTEST: default-interruptible
+ *
+ * SUBTEST: default-normal
+ *
+ * SUBTEST: display-hang
+ *
+ * SUBTEST: display-interruptible
+ *
+ * SUBTEST: display-normal
+ *
+ * SUBTEST: snooped-hang
+ *
+ * SUBTEST: snooped-interruptible
+ *
+ * SUBTEST: snooped-normal
+ *
+ * SUBTEST: uncached-hang
+ *
+ * SUBTEST: uncached-interruptible
+ *
+ * SUBTEST: uncached-normal
+ */
 
 IGT_TEST_DESCRIPTION("Test pread behavior when getting values out of"
 		     " just-drawn-to buffers.");
diff --git a/tests/i915/gem_pwrite.c b/tests/i915/gem_pwrite.c
index 6e3f833cd88c..8471f963df0b 100644
--- a/tests/i915/gem_pwrite.c
+++ b/tests/i915/gem_pwrite.c
@@ -46,6 +46,73 @@
 #include "igt.h"
 #include "igt_rand.h"
 #include "igt_vgem.h"
+/**
+ * TEST: gem pwrite
+ * Feature: mapping
+ * Run type: FULL
+ *
+ * SUBTEST: basic-exhaustion
+ *
+ * SUBTEST: basic-random
+ *
+ * SUBTEST: basic-self
+ *
+ * SUBTEST: bench
+ *
+ * SUBTEST: big-cpu-backwards
+ *
+ * SUBTEST: big-cpu-fbr
+ *
+ * SUBTEST: big-cpu-forwards
+ *
+ * SUBTEST: big-cpu-random
+ *
+ * SUBTEST: big-gtt-backwards
+ *
+ * SUBTEST: big-gtt-fbr
+ *
+ * SUBTEST: big-gtt-forwards
+ *
+ * SUBTEST: big-gtt-random
+ *
+ * SUBTEST: display
+ *
+ * SUBTEST: huge-cpu-backwards
+ *
+ * SUBTEST: huge-cpu-fbr
+ *
+ * SUBTEST: huge-cpu-forwards
+ *
+ * SUBTEST: huge-cpu-random
+ *
+ * SUBTEST: huge-gtt-backwards
+ *
+ * SUBTEST: huge-gtt-fbr
+ *
+ * SUBTEST: huge-gtt-forwards
+ *
+ * SUBTEST: huge-gtt-random
+ *
+ * SUBTEST: small-cpu-backwards
+ *
+ * SUBTEST: small-cpu-fbr
+ *
+ * SUBTEST: small-cpu-forwards
+ *
+ * SUBTEST: small-cpu-random
+ *
+ * SUBTEST: small-gtt-backwards
+ *
+ * SUBTEST: small-gtt-fbr
+ *
+ * SUBTEST: small-gtt-forwards
+ *
+ * SUBTEST: small-gtt-random
+ *
+ * SUBTEST: snoop
+ *
+ * SUBTEST: uncached
+ */
 
 #define MiB(x) ((x) * 1024 * 1024)
 
diff --git a/tests/i915/gem_pwrite_snooped.c b/tests/i915/gem_pwrite_snooped.c
index e6a10747d5cb..7135dca57cbc 100644
--- a/tests/i915/gem_pwrite_snooped.c
+++ b/tests/i915/gem_pwrite_snooped.c
@@ -37,6 +37,14 @@
 #include "drm.h"
 #include "i915/gem.h"
 #include "igt.h"
+/**
+ * TEST: gem pwrite snooped
+ * Description: pwrite to a snooped bo then make it uncached and check that the GPU sees the data.
+ * Feature: gtt, mapping
+ * Run type: FULL
+ *
+ * SUBTEST:
+ */
 
 IGT_TEST_DESCRIPTION(
    "pwrite to a snooped bo then make it uncached and check that the GPU sees the data.");
diff --git a/tests/i915/gem_pxp.c b/tests/i915/gem_pxp.c
index 2f27abd582e3..7668834dbf10 100644
--- a/tests/i915/gem_pxp.c
+++ b/tests/i915/gem_pxp.c
@@ -7,6 +7,85 @@
 #include "i915/gem.h"
 #include "i915/gem_create.h"
 #include <fcntl.h>
+/**
+ * TEST: gem pxp
+ * Description: Test PXP that manages protected content through arbitrated HW-PXP-session
+ * Run type: FULL
+ *
+ * SUBTEST: create-protected-buffer
+ * Feature: PXP
+ *
+ * SUBTEST: create-regular-buffer
+ * Description: Verify protected buffer on supported hw:
+ * Feature: PXP
+ *
+ * SUBTEST: create-regular-context-1
+ * Description: Verify protected context on supported hw:
+ * Feature: PXP
+ *
+ * SUBTEST: create-regular-context-2
+ * Feature: PXP
+ *
+ * SUBTEST: create-valid-protected-context
+ * Feature: PXP
+ *
+ * SUBTEST: display-protected-crc
+ * Description: Test the display CRC
+ * Feature: PXP
+ *
+ * SUBTEST: dmabuf-shared-protected-dst-is-context-refcounted
+ * Feature: PXP, prime
+ *
+ * SUBTEST: fail-invalid-protected-context
+ * Feature: PXP
+ *
+ * SUBTEST: hw-rejects-pxp-buffer
+ * Description: Verify protected buffer on unsupported hw:
+ * Feature: PXP
+ *
+ * SUBTEST: hw-rejects-pxp-context
+ * Description: Verify protected context on unsupported hw:
+ * Feature: PXP
+ *
+ * SUBTEST: protected-encrypted-src-copy-not-readible
+ * Feature: PXP
+ *
+ * SUBTEST: protected-raw-src-copy-not-readible
+ * Feature: PXP
+ *
+ * SUBTEST: regular-baseline-src-copy-readible
+ * Description: Verify protected render operations:
+ * Feature: PXP
+ *
+ * SUBTEST: reject-modify-context-protection-off-1
+ * Feature: PXP
+ *
+ * SUBTEST: reject-modify-context-protection-off-2
+ * Feature: PXP
+ *
+ * SUBTEST: reject-modify-context-protection-off-3
+ * Feature: PXP
+ *
+ * SUBTEST: reject-modify-context-protection-on
+ * Description: Verify protected context integrity:
+ * Feature: PXP
+ *
+ * SUBTEST: verify-pxp-execution-after-suspend-resume
+ * Feature: PXP
+ *
+ * SUBTEST: verify-pxp-key-change-after-suspend-resume
+ * Description: Verify suspend-resume teardown management:
+ * Feature: PXP
+ *
+ * SUBTEST: verify-pxp-stale-buf-execution
+ * Feature: PXP
+ *
+ * SUBTEST: verify-pxp-stale-buf-optout-execution
+ * Feature: PXP
+ *
+ * SUBTEST: verify-pxp-stale-ctx-execution
+ * Feature: PXP
+ */
 
 IGT_TEST_DESCRIPTION("Test PXP that manages protected content through arbitrated HW-PXP-session");
 /* Note: PXP = "Protected Xe Path" */
diff --git a/tests/i915/gem_read_read_speed.c b/tests/i915/gem_read_read_speed.c
index 7c5c90f79356..7eeba7c6ae42 100644
--- a/tests/i915/gem_read_read_speed.c
+++ b/tests/i915/gem_read_read_speed.c
@@ -42,6 +42,67 @@
 #include "i915/gem.h"
 #include "igt.h"
 #include "igt_sysfs.h"
+/**
+ * TEST: gem read read speed
+ * Description: Test speed of concurrent reads between engines.
+ * Run type: FULL
+ *
+ * SUBTEST: read-read-1024x1024
+ *
+ * SUBTEST: read-read-128x128
+ *
+ * SUBTEST: read-read-2048x2048
+ *
+ * SUBTEST: read-read-256x256
+ *
+ * SUBTEST: read-read-4096x4096
+ *
+ * SUBTEST: read-read-512x512
+ *
+ * SUBTEST: read-read-8192x8192
+ *
+ * SUBTEST: read-write-1024x1024
+ *
+ * SUBTEST: read-write-128x128
+ *
+ * SUBTEST: read-write-2048x2048
+ *
+ * SUBTEST: read-write-256x256
+ *
+ * SUBTEST: read-write-4096x4096
+ *
+ * SUBTEST: read-write-512x512
+ *
+ * SUBTEST: read-write-8192x8192
+ *
+ * SUBTEST: write-read-1024x1024
+ *
+ * SUBTEST: write-read-128x128
+ *
+ * SUBTEST: write-read-2048x2048
+ *
+ * SUBTEST: write-read-256x256
+ *
+ * SUBTEST: write-read-4096x4096
+ *
+ * SUBTEST: write-read-512x512
+ *
+ * SUBTEST: write-read-8192x8192
+ *
+ * SUBTEST: write-write-1024x1024
+ *
+ * SUBTEST: write-write-128x128
+ *
+ * SUBTEST: write-write-2048x2048
+ *
+ * SUBTEST: write-write-256x256
+ *
+ * SUBTEST: write-write-4096x4096
+ *
+ * SUBTEST: write-write-512x512
+ *
+ * SUBTEST: write-write-8192x8192
+ */
 
 IGT_TEST_DESCRIPTION("Test speed of concurrent reads between engines.");
 
diff --git a/tests/i915/gem_readwrite.c b/tests/i915/gem_readwrite.c
index 2d437dec3a7b..fdc68e315ba2 100644
--- a/tests/i915/gem_readwrite.c
+++ b/tests/i915/gem_readwrite.c
@@ -38,6 +38,21 @@
 
 #include "drm.h"
 #include "i915/gem_create.h"
+/**
+ * TEST: gem readwrite
+ * Feature: mapping
+ * Run type: FULL
+ *
+ * SUBTEST: beyond-EOB
+ *
+ * SUBTEST: new-obj
+ *
+ * SUBTEST: read-bad-handle
+ *
+ * SUBTEST: read-write
+ *
+ * SUBTEST: write-bad-handle
+ */
 
 #define OBJECT_SIZE 16384
 
diff --git a/tests/i915/gem_reg_read.c b/tests/i915/gem_reg_read.c
index 79facc1f29cf..5f63c02f749e 100644
--- a/tests/i915/gem_reg_read.c
+++ b/tests/i915/gem_reg_read.c
@@ -32,6 +32,17 @@
 #include <sys/utsname.h>
 #include <time.h>
 
+/**
+ * TEST: gem reg read
+ * Feature: gem_core
+ * Run type: FULL
+ *
+ * SUBTEST: bad-register
+ *
+ * SUBTEST: timestamp-monotonic
+ *
+ * SUBTEST: timestamp-moving
+ */
 
 static bool is_x86_64;
 static bool has_proper_timestamp;
diff --git a/tests/i915/gem_render_copy.c b/tests/i915/gem_render_copy.c
index 2c150b2b065c..657509647078 100644
--- a/tests/i915/gem_render_copy.c
+++ b/tests/i915/gem_render_copy.c
@@ -48,6 +48,126 @@
 #include "igt.h"
 #include "igt_x86.h"
 #include "intel_bufops.h"
+/**
+ * TEST: gem render copy
+ * Description: Basic test for the render_copy() function.
+ * Feature: mapping
+ * Run type: FULL
+ *
+ * SUBTEST: linear
+ * Description: Test render_copy() from a mixed-tiled to a linear buffer.
+ *
+ * SUBTEST: linear-to-vebox-y-tiled
+ * Description: Test vebox_copy() from a linear to a y-tiled buffer.
+ *
+ * SUBTEST: linear-to-vebox-yf-tiled
+ * Description: Test vebox_copy() from a linear to a yf-tiled buffer.
+ *
+ * SUBTEST: mixed-tiled-to-y-tiled-ccs
+ * Description: Test render_copy() from a mixed-tiled to a y-tiled-ccs buffer.
+ *
+ * SUBTEST: mixed-tiled-to-yf-tiled-ccs
+ * Description: Test render_copy() from a mixed-tiled to a yf-tiled-ccs buffer.
+ *
+ * SUBTEST: x-tiled
+ * Description: Test render_copy() from a mixed-tiled to a x-tiled buffer.
+ *
+ * SUBTEST: x-tiled-to-vebox-y-tiled
+ * Description: Test vebox_copy() from a x-tiled to a y-tiled buffer.
+ *
+ * SUBTEST: x-tiled-to-vebox-yf-tiled
+ * Description: Test vebox_copy() from a x-tiled to a yf-tiled buffer.
+ *
+ * SUBTEST: y-tiled
+ * Description: Test render_copy() from a mixed-tiled to a y-tiled buffer.
+ *
+ * SUBTEST: y-tiled-ccs-to-linear
+ * Description: Test render_copy() from a y-tiled-ccs to a linear buffer.
+ *
+ * SUBTEST: y-tiled-ccs-to-x-tiled
+ * Description: Test render_copy() from a y-tiled-ccs to a x-tiled buffer.
+ *
+ * SUBTEST: y-tiled-ccs-to-y-tiled
+ * Description: Test render_copy() from a y-tiled-ccs to a y-tiled buffer.
+ *
+ * SUBTEST: y-tiled-ccs-to-y-tiled-ccs
+ * Description: Test render_copy() from a y-tiled-ccs to a y-tiled-ccs buffer.
+ *
+ * SUBTEST: y-tiled-ccs-to-y-tiled-mc-ccs
+ * Description: Test render_copy() and vebox_copy() from a y-tiled-ccs to a y-tiled-mc-ccs buffer.
+ *
+ * SUBTEST: y-tiled-ccs-to-yf-tiled
+ * Description: Test render_copy() from a y-tiled-ccs to a yf-tiled buffer.
+ *
+ * SUBTEST: y-tiled-ccs-to-yf-tiled-ccs
+ * Description: Test render_copy() from a y-tiled-ccs to a yf-tiled-ccs buffer.
+ *
+ * SUBTEST: y-tiled-ccs-to-yf-tiled-mc-ccs
+ * Description: Test render_copy() and vebox_copy() from a y-tiled-ccs to a yf-tiled-mc-ccs buffer.
+ *
+ * SUBTEST: y-tiled-mc-ccs-to-vebox-y-tiled
+ * Description: Test vebox_copy() from a y-tiled-mc-ccs to a y-tiled buffer.
+ *
+ * SUBTEST: y-tiled-mc-ccs-to-vebox-yf-tiled
+ * Description: Test vebox_copy() from a y-tiled-mc-ccs to a yf-tiled buffer.
+ *
+ * SUBTEST: y-tiled-mc-ccs-to-y-tiled-ccs
+ * Description: Test render_copy() and vebox_copy() from a y-tiled-mc-ccs to a y-tiled-ccs buffer.
+ *
+ * SUBTEST: y-tiled-mc-ccs-to-yf-tiled-ccs
+ * Description: Test render_copy() and vebox_copy() from a y-tiled-mc-ccs to a yf-tiled-ccs buffer.
+ *
+ * SUBTEST: y-tiled-to-vebox-linear
+ * Description: Test vebox_copy() from a y-tiled to a linear buffer.
+ *
+ * SUBTEST: y-tiled-to-vebox-x-tiled
+ * Description: Test vebox_copy() from a y-tiled to a x-tiled buffer.
+ *
+ * SUBTEST: y-tiled-to-vebox-y-tiled
+ * Description: Test vebox_copy() from a y-tiled to a y-tiled buffer.
+ *
+ * SUBTEST: y-tiled-to-vebox-yf-tiled
+ * Description: Test vebox_copy() from a y-tiled to a yf-tiled buffer.
+ *
+ * SUBTEST: yf-tiled
+ * Description: Test render_copy() from a mixed-tiled to a yf-tiled buffer.
+ *
+ * SUBTEST: yf-tiled-ccs-to-linear
+ * Description: Test render_copy() from a yf-tiled-ccs to a linear buffer.
+ *
+ * SUBTEST: yf-tiled-ccs-to-x-tiled
+ * Description: Test render_copy() from a yf-tiled-ccs to a x-tiled buffer.
+ *
+ * SUBTEST: yf-tiled-ccs-to-y-tiled
+ * Description: Test render_copy() from a yf-tiled-ccs to a y-tiled buffer.
+ *
+ * SUBTEST: yf-tiled-ccs-to-y-tiled-ccs
+ * Description: Test render_copy() from a yf-tiled-ccs to a y-tiled-ccs buffer.
+ *
+ * SUBTEST: yf-tiled-ccs-to-yf-tiled
+ * Description: Test render_copy() from a yf-tiled-ccs to a yf-tiled buffer.
+ *
+ * SUBTEST: yf-tiled-ccs-to-yf-tiled-ccs
+ * Description: Test render_copy() from a yf-tiled-ccs to a yf-tiled-ccs buffer.
+ *
+ * SUBTEST: yf-tiled-mc-ccs-to-vebox-y-tiled
+ * Description: Test vebox_copy() from a yf-tiled-mc-ccs to a y-tiled buffer.
+ *
+ * SUBTEST: yf-tiled-mc-ccs-to-vebox-yf-tiled
+ * Description: Test vebox_copy() from a yf-tiled-mc-ccs to a yf-tiled buffer.
+ *
+ * SUBTEST: yf-tiled-to-vebox-linear
+ * Description: Test vebox_copy() from a yf-tiled to a linear buffer.
+ *
+ * SUBTEST: yf-tiled-to-vebox-x-tiled
+ * Description: Test vebox_copy() from a yf-tiled to a x-tiled buffer.
+ *
+ * SUBTEST: yf-tiled-to-vebox-y-tiled
+ * Description: Test vebox_copy() from a yf-tiled to a y-tiled buffer.
+ *
+ * SUBTEST: yf-tiled-to-vebox-yf-tiled
+ * Description: Test vebox_copy() from a yf-tiled to a yf-tiled buffer.
+ */
 
 IGT_TEST_DESCRIPTION("Basic test for the render_copy() function.");
 
diff --git a/tests/i915/gem_render_copy_redux.c b/tests/i915/gem_render_copy_redux.c
index 5e1daccf1801..0cb2936d383e 100644
--- a/tests/i915/gem_render_copy_redux.c
+++ b/tests/i915/gem_render_copy_redux.c
@@ -48,6 +48,23 @@
 
 #include "i915/gem.h"
 #include "igt.h"
+/**
+ * TEST: gem render copy redux
+ * Description: Advanced test for the render_copy() function.
+ * Run type: FULL
+ *
+ * SUBTEST: flink
+ * Feature: mapping, xorg_dri2
+ *
+ * SUBTEST: flink-interruptible
+ * Feature: mapping, xorg_dri2
+ *
+ * SUBTEST: interruptible
+ * Feature: mapping
+ *
+ * SUBTEST: normal
+ * Feature: mapping
+ */
 
 IGT_TEST_DESCRIPTION("Advanced test for the render_copy() function.");
 
diff --git a/tests/i915/gem_render_linear_blits.c b/tests/i915/gem_render_linear_blits.c
index c2f2c0788ef9..1fcfb019b426 100644
--- a/tests/i915/gem_render_linear_blits.c
+++ b/tests/i915/gem_render_linear_blits.c
@@ -49,6 +49,22 @@
 
 #include "i915/gem.h"
 #include "igt.h"
+/**
+ * TEST: gem render linear blits
+ * Feature: mapping
+ *
+ * SUBTEST: aperture-shrink
+ * Run type: FULL
+ *
+ * SUBTEST: aperture-thrash
+ * Run type: FULL
+ *
+ * SUBTEST: basic
+ * Run type: BAT
+ *
+ * SUBTEST: swap-thrash
+ * Run type: FULL
+ */
 
 #define WIDTH 512
 #define STRIDE (WIDTH*4)
diff --git a/tests/i915/gem_render_tiled_blits.c b/tests/i915/gem_render_tiled_blits.c
index 3becf576fef5..7cec2dc764c1 100644
--- a/tests/i915/gem_render_tiled_blits.c
+++ b/tests/i915/gem_render_tiled_blits.c
@@ -48,6 +48,30 @@
 
 #include "i915/gem.h"
 #include "igt.h"
+/**
+ * TEST: gem render tiled blits
+ * Description: Tests performs cyclic forward, backward and random blits on tiled buffer objects using render
+ *   engine with various working set sizes and compares outputs with expected ones.
+ * Feature: mapping
+ *
+ * SUBTEST: aperture-shrink
+ * Description: Check with working set size larger than aperture size and a helper process to shrink buffer
+ *   object caches.
+ * Run type: FULL
+ *
+ * SUBTEST: aperture-thrash
+ * Description: Check with working set size larger than aperture size.
+ * Run type: FULL
+ *
+ * SUBTEST: basic
+ * Description: Check basic functionality.
+ * Run type: BAT
+ *
+ * SUBTEST: swap-thrash
+ * Description: Check with working set size larger than system memory size resulting in usage and thrashing
+ *   of swap space.
+ * Run type: FULL
+ */
 
 IGT_TEST_DESCRIPTION("Tests performs cyclic forward, backward and random blits on tiled buffer "
 		      "objects using render engine with various working set sizes and compares "
diff --git a/tests/i915/gem_request_retire.c b/tests/i915/gem_request_retire.c
index 9e163bd3af60..9e074706d259 100644
--- a/tests/i915/gem_request_retire.c
+++ b/tests/i915/gem_request_retire.c
@@ -49,6 +49,14 @@
 #include "i915/gem.h"
 #include "igt.h"
 #include "igt_types.h"
+/**
+ * TEST: gem request retire
+ * Description: Collection of tests targeting request retirement code paths.
+ * Feature: cmd_submission
+ * Run type: FULL
+ *
+ * SUBTEST: retire-vma-not-inactive
+ */
 
 IGT_TEST_DESCRIPTION("Collection of tests targeting request retirement code"
 		     " paths.");
diff --git a/tests/i915/gem_reset_stats.c b/tests/i915/gem_reset_stats.c
index 7b003d88b664..b58f49210eb4 100644
--- a/tests/i915/gem_reset_stats.c
+++ b/tests/i915/gem_reset_stats.c
@@ -47,6 +47,184 @@
 #include "igt.h"
 #include "igt_sysfs.h"
 #include "sw_sync.h"
+/**
+ * TEST: gem reset stats
+ * Run type: FULL
+ *
+ * SUBTEST: ban-blt
+ *
+ * SUBTEST: ban-bsd
+ *
+ * SUBTEST: ban-bsd1
+ *
+ * SUBTEST: ban-bsd2
+ *
+ * SUBTEST: ban-ctx-blt
+ *
+ * SUBTEST: ban-ctx-bsd
+ *
+ * SUBTEST: ban-ctx-bsd1
+ *
+ * SUBTEST: ban-ctx-bsd2
+ *
+ * SUBTEST: ban-ctx-default
+ *
+ * SUBTEST: ban-ctx-render
+ *
+ * SUBTEST: ban-ctx-vebox
+ *
+ * SUBTEST: ban-default
+ *
+ * SUBTEST: ban-render
+ *
+ * SUBTEST: ban-vebox
+ *
+ * SUBTEST: close-pending-blt
+ *
+ * SUBTEST: close-pending-bsd
+ *
+ * SUBTEST: close-pending-bsd1
+ *
+ * SUBTEST: close-pending-bsd2
+ *
+ * SUBTEST: close-pending-ctx-blt
+ *
+ * SUBTEST: close-pending-ctx-bsd
+ *
+ * SUBTEST: close-pending-ctx-bsd1
+ *
+ * SUBTEST: close-pending-ctx-bsd2
+ *
+ * SUBTEST: close-pending-ctx-default
+ *
+ * SUBTEST: close-pending-ctx-render
+ *
+ * SUBTEST: close-pending-ctx-vebox
+ *
+ * SUBTEST: close-pending-default
+ *
+ * SUBTEST: close-pending-fork-blt
+ *
+ * SUBTEST: close-pending-fork-bsd
+ *
+ * SUBTEST: close-pending-fork-bsd1
+ *
+ * SUBTEST: close-pending-fork-bsd2
+ *
+ * SUBTEST: close-pending-fork-default
+ *
+ * SUBTEST: close-pending-fork-render
+ *
+ * SUBTEST: close-pending-fork-reverse-blt
+ *
+ * SUBTEST: close-pending-fork-reverse-bsd
+ *
+ * SUBTEST: close-pending-fork-reverse-bsd1
+ *
+ * SUBTEST: close-pending-fork-reverse-bsd2
+ *
+ * SUBTEST: close-pending-fork-reverse-default
+ *
+ * SUBTEST: close-pending-fork-reverse-render
+ *
+ * SUBTEST: close-pending-fork-reverse-vebox
+ *
+ * SUBTEST: close-pending-fork-vebox
+ *
+ * SUBTEST: close-pending-render
+ *
+ * SUBTEST: close-pending-vebox
+ *
+ * SUBTEST: defer-hangcheck-blt
+ *
+ * SUBTEST: defer-hangcheck-bsd
+ *
+ * SUBTEST: defer-hangcheck-bsd1
+ *
+ * SUBTEST: defer-hangcheck-bsd2
+ *
+ * SUBTEST: defer-hangcheck-default
+ *
+ * SUBTEST: defer-hangcheck-render
+ *
+ * SUBTEST: defer-hangcheck-vebox
+ *
+ * SUBTEST: params
+ *
+ * SUBTEST: params-ctx
+ *
+ * SUBTEST: reset-count-blt
+ *
+ * SUBTEST: reset-count-bsd
+ *
+ * SUBTEST: reset-count-bsd1
+ *
+ * SUBTEST: reset-count-bsd2
+ *
+ * SUBTEST: reset-count-ctx-blt
+ *
+ * SUBTEST: reset-count-ctx-bsd
+ *
+ * SUBTEST: reset-count-ctx-bsd1
+ *
+ * SUBTEST: reset-count-ctx-bsd2
+ *
+ * SUBTEST: reset-count-ctx-default
+ *
+ * SUBTEST: reset-count-ctx-render
+ *
+ * SUBTEST: reset-count-ctx-vebox
+ *
+ * SUBTEST: reset-count-default
+ *
+ * SUBTEST: reset-count-render
+ *
+ * SUBTEST: reset-count-vebox
+ *
+ * SUBTEST: reset-stats-blt
+ *
+ * SUBTEST: reset-stats-bsd
+ *
+ * SUBTEST: reset-stats-bsd1
+ *
+ * SUBTEST: reset-stats-bsd2
+ *
+ * SUBTEST: reset-stats-ctx-blt
+ *
+ * SUBTEST: reset-stats-ctx-bsd
+ *
+ * SUBTEST: reset-stats-ctx-bsd1
+ *
+ * SUBTEST: reset-stats-ctx-bsd2
+ *
+ * SUBTEST: reset-stats-ctx-default
+ *
+ * SUBTEST: reset-stats-ctx-render
+ *
+ * SUBTEST: reset-stats-ctx-vebox
+ *
+ * SUBTEST: reset-stats-default
+ *
+ * SUBTEST: reset-stats-render
+ *
+ * SUBTEST: reset-stats-vebox
+ *
+ * SUBTEST: shared-reset-domain
+ *
+ * SUBTEST: unrelated-ctx-blt
+ *
+ * SUBTEST: unrelated-ctx-bsd
+ *
+ * SUBTEST: unrelated-ctx-bsd1
+ *
+ * SUBTEST: unrelated-ctx-bsd2
+ *
+ * SUBTEST: unrelated-ctx-default
+ *
+ * SUBTEST: unrelated-ctx-render
+ *
+ * SUBTEST: unrelated-ctx-vebox
+ */
 
 #define RS_NO_ERROR      0
 #define RS_BATCH_ACTIVE  (1 << 0)
diff --git a/tests/i915/gem_ringfill.c b/tests/i915/gem_ringfill.c
index afcd7b73ede2..10ddad84583e 100644
--- a/tests/i915/gem_ringfill.c
+++ b/tests/i915/gem_ringfill.c
@@ -41,6 +41,111 @@
 
 #include <signal.h>
 #include <sys/ioctl.h>
+/**
+ * TEST: gem ringfill
+ * Description: Exercise many tiny batchbuffer operations, in the hope of catching failure to manage the ring
+ *   properly near full.
+ *
+ * SUBTEST: basic-all
+ * Description: Basic check to fill the ring upto maximum on all engines simultaneously.
+ * Feature: cmd_submission
+ * Run type: BAT
+ *
+ * SUBTEST: engines-S3
+ * Description: Handle a full ring across suspend cycle.
+ * Feature: cmd_submission, multitile
+ * Run type: FULL
+ *
+ * SUBTEST: engines-S4
+ * Description: Handle a full ring across hibernate cycle.
+ * Feature: cmd_submission, multitile
+ * Run type: FULL
+ *
+ * SUBTEST: engines-basic
+ * Description: Basic check how the driver handles a full ring.
+ * Feature: cmd_submission, multitile
+ * Run type: FULL
+ *
+ * SUBTEST: engines-bomb
+ * Description: Fills the ring upto maximim parallely using fork with different fd's along with
+ *   interruptions.
+ * Feature: cmd_submission, multitile
+ * Run type: FULL
+ *
+ * SUBTEST: engines-child
+ * Description: Check to fill the ring parallely using fork.
+ * Feature: cmd_submission, multitile
+ * Run type: FULL
+ *
+ * SUBTEST: engines-fd
+ * Description: Fills the ring upto maximim parallely using fork with different fd's.
+ * Feature: cmd_submission, multitile
+ * Run type: FULL
+ *
+ * SUBTEST: engines-forked
+ * Description: Check to fill the ring parallely using fork.
+ * Feature: cmd_submission, multitile
+ * Run type: FULL
+ *
+ * SUBTEST: engines-hang
+ * Description: Exercise many batchbuffer operations along with a hang batch until ring is full.
+ * Feature: cmd_submission, multitile
+ * Run type: FULL
+ *
+ * SUBTEST: engines-interruptible
+ * Description: Exercise all potential injection sites by using igt_sigiter interface to repeat the
+ *   ringfill testing.
+ * Feature: cmd_submission, multitile
+ * Run type: FULL
+ *
+ * SUBTEST: legacy-S3
+ * Description: Handle a full ring across suspend cycle - on legacy ring.
+ * Feature: cmd_submission, multitile
+ * Run type: FULL
+ *
+ * SUBTEST: legacy-S4
+ * Description: Handle a full ring across hibernate cycle - on legacy ring.
+ * Feature: cmd_submission, multitile
+ * Run type: FULL
+ *
+ * SUBTEST: legacy-basic
+ * Description: Basic check how the driver handles a full ring - on legacy ring.
+ * Feature: cmd_submission, multitile
+ * Run type: FULL
+ *
+ * SUBTEST: legacy-bomb
+ * Description: Fills the ring upto maximim parallely using fork with different fd's along with
+ *   interruptions - on legacy ring.
+ * Feature: cmd_submission, multitile
+ * Run type: FULL
+ *
+ * SUBTEST: legacy-child
+ * Description: Check to fill the ring parallely using fork - on legacy ring.
+ * Feature: cmd_submission, multitile
+ * Run type: FULL
+ *
+ * SUBTEST: legacy-fd
+ * Description: Fills the ring upto maximim parallely using fork with different fd's - on legacy ring.
+ * Feature: cmd_submission, multitile
+ * Run type: FULL
+ *
+ * SUBTEST: legacy-forked
+ * Description: Check to fill the ring parallely using fork - on legacy ring.
+ * Feature: cmd_submission, multitile
+ * Run type: FULL
+ *
+ * SUBTEST: legacy-hang
+ * Description: Exercise many batchbuffer operations along with a hang batch until ring is full - on legacy
+ *   ring.
+ * Feature: cmd_submission, multitile
+ * Run type: FULL
+ *
+ * SUBTEST: legacy-interruptible
+ * Description: Exercise all potential injection sites by using igt_sigiter interface to repeat the
+ *   ringfill testing - on legacy ring.
+ * Feature: cmd_submission, multitile
+ * Run type: FULL
+ */
 
 #define INTERRUPTIBLE 0x1
 #define HANG 0x2
diff --git a/tests/i915/gem_set_tiling_vs_blt.c b/tests/i915/gem_set_tiling_vs_blt.c
index 5e3bf6a12482..cee4591b8d08 100644
--- a/tests/i915/gem_set_tiling_vs_blt.c
+++ b/tests/i915/gem_set_tiling_vs_blt.c
@@ -57,6 +57,21 @@
 #include "drm.h"
 #include "i915/gem.h"
 #include "igt.h"
+/**
+ * TEST: gem set tiling vs blt
+ * Description: Check for proper synchronization of tiling changes vs. tiled gpu access.
+ * Feature: blitter, gtt
+ * Run type: FULL
+ *
+ * SUBTEST: tiled-to-tiled
+ * Description: Check for proper synchronization of tiled->tiled transition.
+ *
+ * SUBTEST: tiled-to-untiled
+ * Description: Check for proper synchronization of tiled->untiled transition.
+ *
+ * SUBTEST: untiled-to-tiled
+ * Description: Check for proper synchronization of untiled->tiled transition.
+ */
 
 IGT_TEST_DESCRIPTION("Check for proper synchronization of tiling changes vs."
 		     " tiled gpu access.");
diff --git a/tests/i915/gem_set_tiling_vs_gtt.c b/tests/i915/gem_set_tiling_vs_gtt.c
index 2f890e83bd90..30b69bb8b0ad 100644
--- a/tests/i915/gem_set_tiling_vs_gtt.c
+++ b/tests/i915/gem_set_tiling_vs_gtt.c
@@ -38,6 +38,14 @@
 
 #include "drm.h"
 #include "i915/gem_create.h"
+/**
+ * TEST: gem set tiling vs gtt
+ * Description: Check set_tiling vs gtt mmap coherency.
+ * Feature: gtt
+ * Run type: FULL
+ *
+ * SUBTEST:
+ */
 
 IGT_TEST_DESCRIPTION("Check set_tiling vs gtt mmap coherency.");
 
diff --git a/tests/i915/gem_set_tiling_vs_pwrite.c b/tests/i915/gem_set_tiling_vs_pwrite.c
index 6bec7f27ed6d..328682d945ae 100644
--- a/tests/i915/gem_set_tiling_vs_pwrite.c
+++ b/tests/i915/gem_set_tiling_vs_pwrite.c
@@ -38,6 +38,14 @@
 
 #include "drm.h"
 #include "i915/gem_create.h"
+/**
+ * TEST: gem set tiling vs pwrite
+ * Description: Check set_tiling vs pwrite coherency.
+ * Feature: gtt
+ * Run type: FULL
+ *
+ * SUBTEST:
+ */
 
 IGT_TEST_DESCRIPTION("Check set_tiling vs pwrite coherency.");
 
diff --git a/tests/i915/gem_shrink.c b/tests/i915/gem_shrink.c
index 380d2c846f83..a65792c84137 100644
--- a/tests/i915/gem_shrink.c
+++ b/tests/i915/gem_shrink.c
@@ -33,6 +33,113 @@
 #include "igt_gt.h"
 #include "igt_debugfs.h"
 #include "igt_sysfs.h"
+/**
+ * TEST: gem shrink
+ * Feature: mapping
+ * Run type: FULL
+ *
+ * SUBTEST: execbuf1
+ *
+ * SUBTEST: execbuf1-oom
+ *
+ * SUBTEST: execbuf1-sanitycheck
+ *
+ * SUBTEST: execbuf1-userptr
+ *
+ * SUBTEST: execbuf1-userptr-dirty
+ *
+ * SUBTEST: execbufN
+ *
+ * SUBTEST: execbufN-oom
+ *
+ * SUBTEST: execbufN-sanitycheck
+ *
+ * SUBTEST: execbufN-userptr
+ *
+ * SUBTEST: execbufN-userptr-dirty
+ *
+ * SUBTEST: execbufX
+ *
+ * SUBTEST: execbufX-oom
+ *
+ * SUBTEST: execbufX-sanitycheck
+ *
+ * SUBTEST: execbufX-userptr
+ *
+ * SUBTEST: execbufX-userptr-dirty
+ *
+ * SUBTEST: get-pages
+ *
+ * SUBTEST: get-pages-dirty
+ *
+ * SUBTEST: get-pages-dirty-oom
+ *
+ * SUBTEST: get-pages-dirty-sanitycheck
+ *
+ * SUBTEST: get-pages-dirty-userptr
+ *
+ * SUBTEST: get-pages-dirty-userptr-dirty
+ *
+ * SUBTEST: get-pages-oom
+ *
+ * SUBTEST: get-pages-sanitycheck
+ *
+ * SUBTEST: get-pages-userptr
+ *
+ * SUBTEST: get-pages-userptr-dirty
+ *
+ * SUBTEST: hang
+ *
+ * SUBTEST: hang-oom
+ *
+ * SUBTEST: hang-sanitycheck
+ *
+ * SUBTEST: hang-userptr
+ *
+ * SUBTEST: hang-userptr-dirty
+ *
+ * SUBTEST: mmap-cpu
+ *
+ * SUBTEST: mmap-cpu-oom
+ *
+ * SUBTEST: mmap-cpu-sanitycheck
+ *
+ * SUBTEST: mmap-cpu-userptr
+ *
+ * SUBTEST: mmap-cpu-userptr-dirty
+ *
+ * SUBTEST: mmap-gtt
+ *
+ * SUBTEST: mmap-gtt-oom
+ *
+ * SUBTEST: mmap-gtt-sanitycheck
+ *
+ * SUBTEST: mmap-gtt-userptr
+ *
+ * SUBTEST: mmap-gtt-userptr-dirty
+ *
+ * SUBTEST: pread
+ *
+ * SUBTEST: pread-oom
+ *
+ * SUBTEST: pread-sanitycheck
+ *
+ * SUBTEST: pread-userptr
+ *
+ * SUBTEST: pread-userptr-dirty
+ *
+ * SUBTEST: pwrite
+ *
+ * SUBTEST: pwrite-oom
+ *
+ * SUBTEST: pwrite-sanitycheck
+ *
+ * SUBTEST: pwrite-userptr
+ *
+ * SUBTEST: pwrite-userptr-dirty
+ *
+ * SUBTEST: reclaim
+ */
 
 #ifndef MADV_FREE
 #define MADV_FREE 8
diff --git a/tests/i915/gem_softpin.c b/tests/i915/gem_softpin.c
index 8717860b2d11..87fdf667ef3b 100644
--- a/tests/i915/gem_softpin.c
+++ b/tests/i915/gem_softpin.c
@@ -31,6 +31,117 @@
 #include "igt.h"
 #include "igt_rand.h"
 #include "intel_allocator.h"
+/**
+ * TEST: gem softpin
+ * Description: Tests softpin feature with normal usage, invalid inputs scenarios and couple of eviction
+ *   tests which copy buffers between CPU and GPU.
+ * Feature: mapping
+ *
+ * SUBTEST: 32b-excludes-last-page
+ * Description: Check the last 32b page is excluded.
+ * Run type: FULL
+ *
+ * SUBTEST: allocator-basic
+ * Description: Check that we can place objects at start/end of the GTT using the allocator.
+ * Run type: BAT
+ *
+ * SUBTEST: allocator-basic-reserve
+ * Description: Check that if we can reserve a space for an object starting from a given offset.
+ * Run type: BAT
+ *
+ * SUBTEST: allocator-evict
+ * Description: Exercise eviction with softpinning.
+ * Run type: FULL
+ *
+ * SUBTEST: allocator-fork
+ * Description: Check if multiple processes can use alloctor.
+ * Run type: FULL
+ *
+ * SUBTEST: allocator-nopin
+ * Description: Check that we can combine manual placement with automatic GTT placement.
+ * Run type: FULL
+ *
+ * SUBTEST: allocator-nopin-reserve
+ * Description: Check that we can combine manual placement with automatic GTT placement and
+ *   reserves/unreserves space for objects.
+ * Run type: FULL
+ *
+ * SUBTEST: evict-active
+ * Description: Check eviction with active bo.
+ * Run type: FULL
+ *
+ * SUBTEST: evict-active-interruptible
+ * Description: Check eviction with active bo with interrupts.
+ * Run type: FULL
+ *
+ * SUBTEST: evict-hang
+ * Description: Check eviction of softpinned bo with hung batch.
+ * Run type: FULL
+ *
+ * SUBTEST: evict-prime
+ * Description: Check eviction of vma on importing prime fd in reopened drm fds
+ * Run type: FULL
+ *
+ * SUBTEST: evict-prime-sanity-check
+ * Description: Check eviction of vma on importing prime fd in reopened drm fd in single thread
+ * Run type: FULL
+ *
+ * SUBTEST: evict-single-offset
+ * Description: Use same offset for all engines and for different handles.
+ * Run type: FULL
+ *
+ * SUBTEST: evict-snoop
+ * Description: Check eviction against snooping.
+ * Run type: FULL
+ *
+ * SUBTEST: evict-snoop-interruptible
+ * Description: Check eviction against snooping with interrupts.
+ * Run type: FULL
+ *
+ * SUBTEST: full
+ * Description: Check the total occupancy by using pad-to-size to fill the entire GTT.
+ * Run type: FULL
+ *
+ * SUBTEST: invalid
+ * Description: Check that invalid inputs are handled correctly.
+ * Run type: FULL
+ *
+ * SUBTEST: noreloc
+ * Description: Check that noreloc support works.
+ * Run type: FULL
+ *
+ * SUBTEST: noreloc-S3
+ * Description: Check noreloc survives after suspend to RAM/resume cycle.
+ * Run type: FULL
+ *
+ * SUBTEST: noreloc-S4
+ * Description: Check noreloc survives after suspend to disk/resume cycle.
+ * Run type: FULL
+ *
+ * SUBTEST: noreloc-interruptible
+ * Description: Check noreloc support with interruptible.
+ * Run type: FULL
+ *
+ * SUBTEST: overlap
+ * Description: Check all the possible pages aligned overlaps.
+ * Run type: FULL
+ *
+ * SUBTEST: reverse
+ * Description: Check that if the user demands the vma will be swapped.
+ * Run type: FULL
+ *
+ * SUBTEST: safe-alignment
+ * Description: Check start offset and alignment detection.
+ * Run type: BAT
+ *
+ * SUBTEST: softpin
+ * Description: Check softpinning of a gem buffer object.
+ * Run type: FULL
+ *
+ * SUBTEST: zero
+ * Description: Check full placement control under full-ppGTT.
+ * Run type: FULL
+ */
 
 IGT_TEST_DESCRIPTION("Tests softpin feature with normal usage, invalid inputs"
 		     " scenarios and couple of eviction tests which copy buffers"
diff --git a/tests/i915/gem_spin_batch.c b/tests/i915/gem_spin_batch.c
index 7dc68ebc73b1..0a6c088da630 100644
--- a/tests/i915/gem_spin_batch.c
+++ b/tests/i915/gem_spin_batch.c
@@ -25,6 +25,46 @@
 #include "i915/gem.h"
 #include "i915/gem_ring.h"
 #include "igt.h"
+/**
+ * TEST: gem spin batch
+ * Run type: FULL
+ *
+ * SUBTEST: engines
+ * Feature: context, igt_core
+ *
+ * SUBTEST: legacy
+ * Feature: context, igt_core
+ *
+ * SUBTEST: legacy-resubmit
+ * Feature: context, igt_core
+ *
+ * SUBTEST: legacy-resubmit-new
+ * Feature: context, igt_core, multictx
+ *
+ * SUBTEST: resubmit
+ * Feature: context, igt_core
+ *
+ * SUBTEST: resubmit-all
+ * Feature: context, igt_core, multictx
+ *
+ * SUBTEST: resubmit-new
+ * Feature: context, igt_core, multictx
+ *
+ * SUBTEST: resubmit-new-all
+ * Feature: context, igt_core, multictx
+ *
+ * SUBTEST: spin-all
+ * Feature: igt_core, multictx
+ *
+ * SUBTEST: spin-all-new
+ * Feature: igt_core, multictx
+ *
+ * SUBTEST: spin-each
+ * Feature: igt_core, multictx
+ *
+ * SUBTEST: user-each
+ * Feature: igt_core, multictx
+ */
 
 #define MAX_ERROR 5 /* % */
 
diff --git a/tests/i915/gem_streaming_writes.c b/tests/i915/gem_streaming_writes.c
index 883fe4293772..2c59c08f6c83 100644
--- a/tests/i915/gem_streaming_writes.c
+++ b/tests/i915/gem_streaming_writes.c
@@ -40,6 +40,35 @@
 #include "i915/gem.h"
 #include "i915/gem_create.h"
 #include "igt.h"
+/**
+ * TEST: gem streaming writes
+ * Description: Test of streaming writes into active GPU sources
+ * Run type: FULL
+ *
+ * SUBTEST: batch-cpu
+ *
+ * SUBTEST: batch-gtt
+ *
+ * SUBTEST: batch-reverse-cpu
+ *
+ * SUBTEST: batch-reverse-gtt
+ *
+ * SUBTEST: batch-reverse-wc
+ *
+ * SUBTEST: batch-wc
+ *
+ * SUBTEST: cpu
+ *
+ * SUBTEST: cpu-sync
+ *
+ * SUBTEST: gtt
+ *
+ * SUBTEST: gtt-sync
+ *
+ * SUBTEST: wc
+ *
+ * SUBTEST: wc-sync
+ */
 
 #define OBJECT_SIZE 1024*1024
 #define CHUNK_SIZE 32
diff --git a/tests/i915/gem_stress.c b/tests/i915/gem_stress.c
index 3765ab14bdba..625b0e915ff5 100644
--- a/tests/i915/gem_stress.c
+++ b/tests/i915/gem_stress.c
@@ -61,6 +61,13 @@
 #include <sys/time.h>
 
 #include <drm.h>
+/**
+ * TEST: gem stress
+ * Description: General gem coherency test.
+ * Run type: FULL
+ *
+ * SUBTEST:
+ */
 
 IGT_TEST_DESCRIPTION("General gem coherency test.");
 
diff --git a/tests/i915/gem_sync.c b/tests/i915/gem_sync.c
index e7dc6637abc0..4d01cd450825 100644
--- a/tests/i915/gem_sync.c
+++ b/tests/i915/gem_sync.c
@@ -32,6 +32,228 @@
 #include "igt_gt.h"
 #include "igt.h"
 #include "igt_sysfs.h"
+/**
+ * TEST: gem sync
+ * Description: Basic check of ring<->ring write synchronisation.
+ *
+ * SUBTEST: active
+ * Description: Exercise waiting while keeping the GPU busy on each engine.
+ * Feature: synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: active-each
+ * Description: Exercise waiting while keeping the GPU busy.
+ * Feature: multitile, synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: active-wakeup
+ * Description: Measure wakeup latency while also scheduling the next batch on each engine.
+ * Feature: synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: active-wakeup-each
+ * Description: Measure wakeup latency while also scheduling the next batch.
+ * Feature: multitile, synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: basic-all
+ * Description: Basic test to wait upon a batch on all rings.
+ * Feature: synchronization
+ * Run type: BAT
+ *
+ * SUBTEST: basic-each
+ * Description: Check synchronisation of ring.
+ * Feature: multitile, synchronization
+ * Run type: BAT
+ *
+ * SUBTEST: basic-many-each
+ * Description: Create race condition and see if we can catch interrupts.
+ * Feature: multitile, synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: basic-store-all
+ * Description: Basic version of store synchronisation test.
+ * Feature: synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: basic-store-each
+ * Description: Check that store synchronisation works.
+ * Feature: multitile, synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: default
+ * Description: Check synchronisation of rings on each engine.
+ * Feature: synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: double-wakeup
+ * Description: Double stress test for nop + sync on each engine.
+ * Feature: synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: double-wakeup-each
+ * Description: Double stress test for nop + sync.
+ * Feature: multitile, synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: forked
+ * Description: Check synchronisation of ring with parallel executions on each engine.
+ * Feature: synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: forked-all
+ * Description: Parallel execution of batch on all rings and then wait.
+ * Feature: synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: forked-each
+ * Description: Forked variant of sync_ring, which checks synchronisation of ring with parallel
+ *   executions.
+ * Feature: multitile, synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: forked-store
+ * Description: Check store synchronisation works with parallel multiple executions on each engine.
+ * Feature: synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: forked-store-all
+ * Description: Parallel execution of store synchronisation.
+ * Feature: synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: forked-store-each
+ * Description: Forked variant of store_ring, check if parallel store synchronisation works.
+ * Feature: multitile, synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: forked-switch
+ * Description: Check sync after context switch parallelly on each engine.
+ * Feature: synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: forked-switch-each
+ * Description: Check sync after context switch parallelly.
+ * Feature: multitile, synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: idle
+ * Description: Exercise and measure idle requests on each engine.
+ * Feature: synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: legacy-active
+ * Description: Exercise waiting while keeping the GPU busy for each legacy engine.
+ * Feature: synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: legacy-active-wakeup
+ * Description: Measure wakeup latency while also scheduling the next batch for each legacy engine.
+ * Feature: synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: legacy-default
+ * Description: Check synchronisation of rings for each legacy engine.
+ * Feature: synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: legacy-double-wakeup
+ * Description: Double stress test for nop + sync for each legacy engine.
+ * Feature: synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: legacy-forked
+ * Description: Check synchronisation of ring with parallel executions for each legacy engine.
+ * Feature: synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: legacy-forked-store
+ * Description: Check store synchronisation works with parallel multiple executions for each legacy
+ *   engine.
+ * Feature: synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: legacy-forked-switch
+ * Description: Check sync after context switch parallelly for each legacy engine.
+ * Feature: synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: legacy-idle
+ * Description: Exercise and measure idle requests for each legacy engine.
+ * Feature: synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: legacy-many
+ * Description: Create race condition and see if we can catch interrupts for each legacy engine.
+ * Feature: synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: legacy-store
+ * Description: Check that store synchronisation works for each legacy engine.
+ * Feature: synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: legacy-switch
+ * Description: Check sync after context switch for each legacy engine.
+ * Feature: synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: legacy-wakeup
+ * Description: Stress for nop + sync for each legacy engine.
+ * Feature: synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: many
+ * Description: Create race condition and see if we can catch interrupts on each engine.
+ * Feature: synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: preempt
+ * Description: For each context engine check how priority of task are submitted when engine is already busy.
+ * Feature: synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: preempt-all
+ * Description: Check and measure how well we can submit a second high priority task when the engine is already
+ *   busy with a low priority task on all engines.
+ * Feature: synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: store
+ * Description: Check that store synchronisation works on each engine.
+ * Feature: synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: store-all
+ * Description: Extended version of existing basic-store-all test.
+ * Feature: synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: switch
+ * Description: Check sync after context switch on each engine.
+ * Feature: synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: switch-each
+ * Description: Check sync after context switch.
+ * Feature: multitile, synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: wait-all
+ * Description: Extended version of existing basic-all test.
+ * Feature: synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: wakeup
+ * Description: Stress for nop + sync on each engine.
+ * Feature: synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: wakeup-each
+ * Description: Stress test for nop + sync.
+ * Feature: multitile, synchronization
+ * Run type: FULL
+ */
 
 #define MAX_PRIO I915_CONTEXT_MAX_USER_PRIORITY
 #define MIN_PRIO I915_CONTEXT_MIN_USER_PRIORITY
diff --git a/tests/i915/gem_tiled_blits.c b/tests/i915/gem_tiled_blits.c
index 5e7ed0c4e062..8c3951c6fb0d 100644
--- a/tests/i915/gem_tiled_blits.c
+++ b/tests/i915/gem_tiled_blits.c
@@ -54,6 +54,23 @@
 
 #include "i915/gem.h"
 #include "igt.h"
+/**
+ * TEST: gem tiled blits
+ * Description: Test doing many tiled blits, with a working set larger than the aperture size.
+ * Feature: gtt, mapping
+ *
+ * SUBTEST: basic
+ * Description: Check basic functionality.
+ * Run type: BAT
+ *
+ * SUBTEST: interruptible
+ * Description: Check with interrupts in parallel execution.
+ * Run type: FULL
+ *
+ * SUBTEST: normal
+ * Description: Check with parallel execution.
+ * Run type: FULL
+ */
 
 IGT_TEST_DESCRIPTION("Test doing many tiled blits, with a working set larger"
 		     " than the aperture size.");
diff --git a/tests/i915/gem_tiled_fence_blits.c b/tests/i915/gem_tiled_fence_blits.c
index a3a0221d627f..f323ac1464f7 100644
--- a/tests/i915/gem_tiled_fence_blits.c
+++ b/tests/i915/gem_tiled_fence_blits.c
@@ -45,6 +45,20 @@
 #include "i915/gem_create.h"
 #include "igt.h"
 #include "igt_x86.h"
+/**
+ * TEST: gem tiled fence blits
+ * Description: Tests fence management problems related to tiled blits by performing many blits on tiled
+ *   buffer objects with fences enabled and with working set larger than the aperture size.
+ * Feature: gtt, mapping
+ *
+ * SUBTEST: basic
+ * Description: Check basic functionality.
+ * Run type: BAT
+ *
+ * SUBTEST: normal
+ * Description: Check with parallel execution.
+ * Run type: FULL
+ */
 
 IGT_TEST_DESCRIPTION("Tests fence management problems related to tiled blits by performing "
 		     "many blits on tiled buffer objects with fences enabled and with working "
diff --git a/tests/i915/gem_tiled_partial_pwrite_pread.c b/tests/i915/gem_tiled_partial_pwrite_pread.c
index 95fb69c659cf..a7e845e32d1d 100644
--- a/tests/i915/gem_tiled_partial_pwrite_pread.c
+++ b/tests/i915/gem_tiled_partial_pwrite_pread.c
@@ -38,6 +38,18 @@
 
 #include "i915/gem.h"
 #include "igt.h"
+/**
+ * TEST: gem tiled partial pwrite pread
+ * Description: Test pwrite/pread consistency when touching partial cachelines.
+ * Feature: gtt, mapping
+ * Run type: FULL
+ *
+ * SUBTEST: reads
+ *
+ * SUBTEST: writes
+ *
+ * SUBTEST: writes-after-reads
+ */
 
 IGT_TEST_DESCRIPTION("Test pwrite/pread consistency when touching partial"
 		     " cachelines.");
diff --git a/tests/i915/gem_tiled_pread_basic.c b/tests/i915/gem_tiled_pread_basic.c
index 2b4cec6e7259..ddf9f0f56875 100644
--- a/tests/i915/gem_tiled_pread_basic.c
+++ b/tests/i915/gem_tiled_pread_basic.c
@@ -48,6 +48,14 @@
 
 #include "drm.h"
 #include "i915/gem_create.h"
+/**
+ * TEST: gem tiled pread basic
+ * Description: Test pread behavior on tiled objects with respect to the reported swizzling value.
+ * Feature: gtt, mapping
+ * Run type: BAT
+ *
+ * SUBTEST:
+ */
 
 IGT_TEST_DESCRIPTION("Test pread behavior on tiled objects with respect to the"
 		     " reported swizzling value.");
diff --git a/tests/i915/gem_tiled_pread_pwrite.c b/tests/i915/gem_tiled_pread_pwrite.c
index 2d21dfb76a76..3331e61ad4d4 100644
--- a/tests/i915/gem_tiled_pread_pwrite.c
+++ b/tests/i915/gem_tiled_pread_pwrite.c
@@ -58,6 +58,14 @@
 
 #include "drm.h"
 #include "i915/gem_create.h"
+/**
+ * TEST: gem tiled pread pwrite
+ * Description: Test swizzling by testing pwrite does the inverse of pread.
+ * Feature: gtt, mapping
+ * Run type: FULL
+ *
+ * SUBTEST:
+ */
 
 IGT_TEST_DESCRIPTION("Test swizzling by testing pwrite does the inverse of"
 		     " pread.");
diff --git a/tests/i915/gem_tiled_swapping.c b/tests/i915/gem_tiled_swapping.c
index f4bdce738ebb..fb633ecabee3 100644
--- a/tests/i915/gem_tiled_swapping.c
+++ b/tests/i915/gem_tiled_swapping.c
@@ -58,6 +58,16 @@
 
 #include "drm.h"
 #include "i915/gem_create.h"
+/**
+ * TEST: gem tiled swapping
+ * Description: Exercise swizzle code for swapping.
+ * Feature: gtt, mapping
+ * Run type: FULL
+ *
+ * SUBTEST: non-threaded
+ *
+ * SUBTEST: threaded
+ */
 
 IGT_TEST_DESCRIPTION("Exercise swizzle code for swapping.");
 
diff --git a/tests/i915/gem_tiled_wb.c b/tests/i915/gem_tiled_wb.c
index e9efbdf238c7..d4fc048dbf05 100644
--- a/tests/i915/gem_tiled_wb.c
+++ b/tests/i915/gem_tiled_wb.c
@@ -45,6 +45,15 @@
 
 #include "drm.h"
 #include "i915/gem_create.h"
+/**
+ * TEST: gem tiled wb
+ * Description: This is a test of write-combining mmap's behavior on tiled objects with respect to the reported
+ *   swizzling value.
+ * Feature: caching, gtt
+ * Run type: FULL
+ *
+ * SUBTEST:
+ */
 
 IGT_TEST_DESCRIPTION("This is a test of write-combining mmap's behavior on"
 		     " tiled objects with respect to the reported swizzling"
diff --git a/tests/i915/gem_tiled_wc.c b/tests/i915/gem_tiled_wc.c
index 1f245eb7d605..dc4e4d2d73ae 100644
--- a/tests/i915/gem_tiled_wc.c
+++ b/tests/i915/gem_tiled_wc.c
@@ -45,6 +45,13 @@
 
 #include "drm.h"
 #include "i915/gem_create.h"
+/**
+ * TEST: gem tiled wc
+ * Feature: caching, gtt
+ * Run type: FULL
+ *
+ * SUBTEST:
+ */
 
 #define WIDTH 512
 #define HEIGHT 512
diff --git a/tests/i915/gem_tiling_max_stride.c b/tests/i915/gem_tiling_max_stride.c
index 513d579d3381..6001f72be858 100644
--- a/tests/i915/gem_tiling_max_stride.c
+++ b/tests/i915/gem_tiling_max_stride.c
@@ -39,6 +39,14 @@
 
 #include "drm.h"
 #include "i915/gem_create.h"
+/**
+ * TEST: gem tiling max stride
+ * Description: Check that max fence stride works.
+ * Feature: gtt, mapping
+ * Run type: FULL
+ *
+ * SUBTEST:
+ */
 
 IGT_TEST_DESCRIPTION("Check that max fence stride works.");
 
diff --git a/tests/i915/gem_unfence_active_buffers.c b/tests/i915/gem_unfence_active_buffers.c
index a0a601de241d..1f25a81b16f6 100644
--- a/tests/i915/gem_unfence_active_buffers.c
+++ b/tests/i915/gem_unfence_active_buffers.c
@@ -52,6 +52,14 @@
 #include "i915/gem.h"
 #include "i915/gem_create.h"
 #include "igt.h"
+/**
+ * TEST: gem unfence active buffers
+ * Description: Check for use-after-free in the fence stealing code.
+ * Feature: synchronization
+ * Run type: FULL
+ *
+ * SUBTEST:
+ */
 
 IGT_TEST_DESCRIPTION("Check for use-after-free in the fence stealing code.");
 
diff --git a/tests/i915/gem_unref_active_buffers.c b/tests/i915/gem_unref_active_buffers.c
index 735c1472038a..90a63e8f9acf 100644
--- a/tests/i915/gem_unref_active_buffers.c
+++ b/tests/i915/gem_unref_active_buffers.c
@@ -41,6 +41,14 @@
 #include "igt.h"
 #include "i915/gem.h"
 #include "i915/gem_create.h"
+/**
+ * TEST: gem unref active buffers
+ * Description: Test unreferencing of active buffers.
+ * Feature: cmd_submission
+ * Run type: FULL
+ *
+ * SUBTEST:
+ */
 
 IGT_TEST_DESCRIPTION("Test unreferencing of active buffers.");
 
diff --git a/tests/i915/gem_userptr_blits.c b/tests/i915/gem_userptr_blits.c
index b00afc32c102..ad85c0d96c07 100644
--- a/tests/i915/gem_userptr_blits.c
+++ b/tests/i915/gem_userptr_blits.c
@@ -67,6 +67,286 @@
 
 #include "eviction_common.c"
 #include "i915/i915_blt.h"
+/**
+ * TEST: gem userptr blits
+ * Run type: FULL
+ *
+ * SUBTEST: access-control
+ * Feature: userptr
+ *
+ * SUBTEST: coherency-sync
+ * Feature: userptr
+ *
+ * SUBTEST: coherency-unsync
+ * Feature: userptr
+ *
+ * SUBTEST: create-destroy-sync
+ * Feature: userptr
+ *
+ * SUBTEST: create-destroy-unsync
+ * Feature: userptr
+ *
+ * SUBTEST: dmabuf-sync
+ * Feature: prime, userptr
+ *
+ * SUBTEST: dmabuf-unsync
+ * Feature: prime, userptr
+ *
+ * SUBTEST: forbidden-operations
+ * Feature: userptr
+ *
+ * SUBTEST: forked-access
+ * Feature: userptr
+ *
+ * SUBTEST: forked-sync-interruptible
+ * Feature: userptr
+ *
+ * SUBTEST: forked-sync-mempressure-interruptible
+ * Feature: userptr
+ *
+ * SUBTEST: forked-sync-mempressure-normal
+ * Feature: userptr
+ *
+ * SUBTEST: forked-sync-multifd-interruptible
+ * Feature: userptr
+ *
+ * SUBTEST: forked-sync-multifd-mempressure-interruptible
+ * Feature: userptr
+ *
+ * SUBTEST: forked-sync-multifd-mempressure-normal
+ * Feature: userptr
+ *
+ * SUBTEST: forked-sync-multifd-normal
+ * Feature: userptr
+ *
+ * SUBTEST: forked-sync-normal
+ * Feature: userptr
+ *
+ * SUBTEST: forked-sync-swapping-interruptible
+ * Feature: userptr
+ *
+ * SUBTEST: forked-sync-swapping-mempressure-interruptible
+ * Feature: userptr
+ *
+ * SUBTEST: forked-sync-swapping-mempressure-normal
+ * Feature: userptr
+ *
+ * SUBTEST: forked-sync-swapping-multifd-interruptible
+ * Feature: userptr
+ *
+ * SUBTEST: forked-sync-swapping-multifd-mempressure-interruptible
+ * Feature: userptr
+ *
+ * SUBTEST: forked-sync-swapping-multifd-mempressure-normal
+ * Feature: userptr
+ *
+ * SUBTEST: forked-sync-swapping-multifd-normal
+ * Feature: userptr
+ *
+ * SUBTEST: forked-sync-swapping-normal
+ * Feature: userptr
+ *
+ * SUBTEST: forked-unsync-interruptible
+ * Feature: userptr
+ *
+ * SUBTEST: forked-unsync-mempressure-interruptible
+ * Feature: userptr
+ *
+ * SUBTEST: forked-unsync-mempressure-normal
+ * Feature: userptr
+ *
+ * SUBTEST: forked-unsync-multifd-interruptible
+ * Feature: userptr
+ *
+ * SUBTEST: forked-unsync-multifd-mempressure-interruptible
+ * Feature: userptr
+ *
+ * SUBTEST: forked-unsync-multifd-mempressure-normal
+ * Feature: userptr
+ *
+ * SUBTEST: forked-unsync-multifd-normal
+ * Feature: userptr
+ *
+ * SUBTEST: forked-unsync-normal
+ * Feature: userptr
+ *
+ * SUBTEST: forked-unsync-swapping-interruptible
+ * Feature: userptr
+ *
+ * SUBTEST: forked-unsync-swapping-mempressure-interruptible
+ * Feature: userptr
+ *
+ * SUBTEST: forked-unsync-swapping-mempressure-normal
+ * Feature: userptr
+ *
+ * SUBTEST: forked-unsync-swapping-multifd-interruptible
+ * Feature: userptr
+ *
+ * SUBTEST: forked-unsync-swapping-multifd-mempressure-interruptible
+ * Feature: userptr
+ *
+ * SUBTEST: forked-unsync-swapping-multifd-mempressure-normal
+ * Feature: userptr
+ *
+ * SUBTEST: forked-unsync-swapping-multifd-normal
+ * Feature: userptr
+ *
+ * SUBTEST: forked-unsync-swapping-normal
+ * Feature: userptr
+ *
+ * SUBTEST: huge-split
+ * Feature: userptr
+ *
+ * SUBTEST: input-checking
+ * Feature: userptr
+ *
+ * SUBTEST: invalid-mmap-offset-unsync
+ * Description: Verify unsynchronized userptr on mmap-offset mappings fails
+ * Feature: userptr
+ *
+ * SUBTEST: invalid-null-pointer
+ * Feature: userptr
+ *
+ * SUBTEST: major-normal-sync
+ * Feature: userptr
+ *
+ * SUBTEST: major-sync-interruptible
+ * Feature: userptr
+ *
+ * SUBTEST: major-unsync-interruptible
+ * Feature: userptr
+ *
+ * SUBTEST: major-unsync-normal
+ * Feature: userptr
+ *
+ * SUBTEST: map-fixed-invalidate
+ * Description: Try to anger lockdep with MMU notifier still active after MAP_FIXED remap
+ * Feature: gtt, userptr
+ *
+ * SUBTEST: map-fixed-invalidate-busy
+ * Description: Try to anger lockdep with MMU notifier still active after MAP_FIXED remap
+ * Feature: gtt, userptr
+ *
+ * SUBTEST: map-fixed-invalidate-overlap
+ * Description: Try to anger lockdep with MMU notifier still active after MAP_FIXED remap
+ * Feature: gtt, userptr
+ *
+ * SUBTEST: map-fixed-invalidate-overlap-busy
+ * Description: Try to anger lockdep with MMU notifier still active after MAP_FIXED remap
+ * Feature: gtt, userptr
+ *
+ * SUBTEST: minor-normal-sync
+ * Feature: userptr
+ *
+ * SUBTEST: minor-sync-interruptible
+ * Feature: userptr
+ *
+ * SUBTEST: minor-unsync-interruptible
+ * Feature: userptr
+ *
+ * SUBTEST: minor-unsync-normal
+ * Feature: userptr
+ *
+ * SUBTEST: mlocked-normal-sync
+ * Feature: userptr
+ *
+ * SUBTEST: mlocked-sync-interruptible
+ * Feature: userptr
+ *
+ * SUBTEST: mlocked-unsync-interruptible
+ * Feature: userptr
+ *
+ * SUBTEST: mlocked-unsync-normal
+ * Feature: userptr
+ *
+ * SUBTEST: mmap-offset-banned
+ * Description: Verify mmap_offset to userptr is banned
+ * Feature: userptr
+ *
+ * SUBTEST: nohangcheck
+ * Feature: userptr
+ *
+ * SUBTEST: probe
+ * Feature: userptr
+ *
+ * SUBTEST: process-exit
+ * Feature: userptr
+ *
+ * SUBTEST: process-exit-busy
+ * Feature: userptr
+ *
+ * SUBTEST: readonly-pwrite-unsync
+ * Feature: userptr
+ *
+ * SUBTEST: readonly-unsync
+ * Feature: userptr
+ *
+ * SUBTEST: relocations
+ * Feature: userptr
+ *
+ * SUBTEST: sd-probe
+ * Feature: userptr
+ *
+ * SUBTEST: set-cache-level
+ * Feature: userptr
+ *
+ * SUBTEST: stress-mm
+ * Feature: userptr
+ *
+ * SUBTEST: stress-mm-invalidate-close
+ * Feature: userptr
+ *
+ * SUBTEST: stress-mm-invalidate-close-overlap
+ * Feature: userptr
+ *
+ * SUBTEST: stress-purge
+ * Feature: userptr
+ *
+ * SUBTEST: swapping-normal-sync
+ * Feature: userptr
+ *
+ * SUBTEST: swapping-sync-interruptible
+ * Feature: userptr
+ *
+ * SUBTEST: swapping-unsync-interruptible
+ * Feature: userptr
+ *
+ * SUBTEST: swapping-unsync-normal
+ * Feature: userptr
+ *
+ * SUBTEST: sync-overlap
+ * Feature: userptr
+ *
+ * SUBTEST: sync-unmap
+ * Feature: userptr
+ *
+ * SUBTEST: sync-unmap-after-close
+ * Feature: userptr
+ *
+ * SUBTEST: sync-unmap-cycles
+ * Feature: userptr
+ *
+ * SUBTEST: unsync-overlap
+ * Feature: userptr
+ *
+ * SUBTEST: unsync-unmap
+ * Feature: userptr
+ *
+ * SUBTEST: unsync-unmap-after-close
+ * Feature: userptr
+ *
+ * SUBTEST: unsync-unmap-cycles
+ * Feature: userptr
+ *
+ * SUBTEST: usage-restrictions
+ * Feature: userptr
+ *
+ * SUBTEST: userfault
+ * Feature: userptr
+ *
+ * SUBTEST: vma-merge
+ * Feature: userptr
+ */
 
 #ifndef PAGE_SIZE
 #define PAGE_SIZE 4096
diff --git a/tests/i915/gem_vm_create.c b/tests/i915/gem_vm_create.c
index f47d8c55694d..9f36e405bff5 100644
--- a/tests/i915/gem_vm_create.c
+++ b/tests/i915/gem_vm_create.c
@@ -27,6 +27,25 @@
 #include "igt.h"
 #include "igt_rand.h"
 #include "igt_dummyload.h"
+/**
+ * TEST: gem vm create
+ * Run type: FULL
+ *
+ * SUBTEST: create-ext
+ * Feature: mapping
+ *
+ * SUBTEST: execbuf
+ * Feature: cmd_submission, mapping
+ *
+ * SUBTEST: invalid-create
+ * Feature: mapping
+ *
+ * SUBTEST: invalid-destroy
+ * Feature: mapping
+ *
+ * SUBTEST: isolation
+ * Feature: context, mapping
+ */
 
 static int vm_create_ioctl(int i915, struct drm_i915_gem_vm_control *ctl)
 {
diff --git a/tests/i915/gem_wait.c b/tests/i915/gem_wait.c
index 27d084afacdd..874ccd87eee3 100644
--- a/tests/i915/gem_wait.c
+++ b/tests/i915/gem_wait.c
@@ -31,6 +31,55 @@
 #include "i915/gem_create.h"
 #include "igt.h"
 #include "igt_vgem.h"
+/**
+ * TEST: gem wait
+ * Description: Tests the GEM_WAIT ioctl
+ * Feature: synchronization
+ *
+ * SUBTEST: await
+ * Description: Verify GEM_WAIT functionality in await mode.
+ * Run type: FULL
+ *
+ * SUBTEST: busy
+ * Description: Verify GEM_WAIT functionality in busy mode.
+ * Run type: FULL
+ *
+ * SUBTEST: hang-busy
+ * Description: Verify GEM_WAIT functionality in busy mode, when hang is allowed.
+ * Run type: FULL
+ *
+ * SUBTEST: hang-busy-write
+ * Description: Verify GEM_WAIT functionality in busy-write mode, when hang is allowed.
+ * Run type: FULL
+ *
+ * SUBTEST: hang-wait
+ * Description: Verify GEM_WAIT functionality in wait mode, when hang is allowed.
+ * Run type: FULL
+ *
+ * SUBTEST: hang-wait-write
+ * Description: Verify GEM_WAIT functionality in wait-write mode, when hang is allowed.
+ * Run type: FULL
+ *
+ * SUBTEST: invalid-buf
+ * Description: Verify that GEM_WAIT called with invalid buffer object will fail.
+ * Run type: FULL
+ *
+ * SUBTEST: invalid-flags
+ * Description: Verify that GEM_WAIT called with invalid flag will fail.
+ * Run type: FULL
+ *
+ * SUBTEST: wait
+ * Description: Verify GEM_WAIT functionality in wait mode.
+ * Run type: FULL
+ *
+ * SUBTEST: write-busy
+ * Description: Verify GEM_WAIT functionality in write-busy mode.
+ * Run type: FULL
+ *
+ * SUBTEST: write-wait
+ * Description: Verify GEM_WAIT functionality in write-wait mode.
+ * Run type: FULL
+ */
 
 IGT_TEST_DESCRIPTION("Tests the GEM_WAIT ioctl");
 
diff --git a/tests/i915/gem_watchdog.c b/tests/i915/gem_watchdog.c
index 27f3a2d7fd5c..df75d933c798 100644
--- a/tests/i915/gem_watchdog.c
+++ b/tests/i915/gem_watchdog.c
@@ -35,6 +35,17 @@
 #include "igt.h"
 #include "igt_params.h"
 #include "sw_sync.h"
+/**
+ * TEST: gem watchdog
+ * Feature: gem_core
+ * Run type: FULL
+ *
+ * SUBTEST: default-physical
+ *
+ * SUBTEST: default-virtual
+ *
+ * SUBTEST: far-fence
+ */
 
 #define EWATCHDOG EINTR
 
diff --git a/tests/i915/gem_workarounds.c b/tests/i915/gem_workarounds.c
index 7d1199625416..fd3b83b5a7e6 100644
--- a/tests/i915/gem_workarounds.c
+++ b/tests/i915/gem_workarounds.c
@@ -32,6 +32,46 @@
 #include "igt.h"
 #include "igt_device.h"
 #include "igt_types.h"
+/**
+ * TEST: gem workarounds
+ * Run type: FULL
+ *
+ * SUBTEST: basic-read
+ * Feature: workarounds
+ *
+ * SUBTEST: basic-read-context
+ * Feature: workarounds
+ *
+ * SUBTEST: basic-read-fd
+ * Feature: workarounds
+ *
+ * SUBTEST: hibernate-resume
+ * Feature: hibernate, workarounds
+ *
+ * SUBTEST: hibernate-resume-context
+ * Feature: hibernate, workarounds
+ *
+ * SUBTEST: hibernate-resume-fd
+ * Feature: hibernate, workarounds
+ *
+ * SUBTEST: reset
+ * Feature: workarounds
+ *
+ * SUBTEST: reset-context
+ * Feature: workarounds
+ *
+ * SUBTEST: reset-fd
+ * Feature: workarounds
+ *
+ * SUBTEST: suspend-resume
+ * Feature: suspend, workarounds
+ *
+ * SUBTEST: suspend-resume-context
+ * Feature: suspend, workarounds
+ *
+ * SUBTEST: suspend-resume-fd
+ * Feature: suspend, workarounds
+ */
 
 #define PAGE_SIZE 4096
 #define PAGE_ALIGN(x) ALIGN(x, PAGE_SIZE)
diff --git a/tests/i915/gen3_mixed_blits.c b/tests/i915/gen3_mixed_blits.c
index 242b99855d27..3c6fb141a9ee 100644
--- a/tests/i915/gen3_mixed_blits.c
+++ b/tests/i915/gen3_mixed_blits.c
@@ -48,6 +48,13 @@
 #include "i915/gem_create.h"
 #include "i915_reg.h"
 #include "igt.h"
+/**
+ * TEST: gen3 mixed blits
+ * Feature: obsolete
+ * Run type: FULL
+ *
+ * SUBTEST:
+ */
 
 #define WIDTH (512)
 #define HEIGHT (512)
diff --git a/tests/i915/gen3_render_linear_blits.c b/tests/i915/gen3_render_linear_blits.c
index 9c6b4c7019a5..7dfb2709ad37 100644
--- a/tests/i915/gen3_render_linear_blits.c
+++ b/tests/i915/gen3_render_linear_blits.c
@@ -47,6 +47,13 @@
 #include "i915/gem_create.h"
 #include "i915_reg.h"
 #include "igt.h"
+/**
+ * TEST: gen3 render linear blits
+ * Feature: obsolete
+ * Run type: FULL
+ *
+ * SUBTEST:
+ */
 
 #define WIDTH 512
 #define HEIGHT 512
diff --git a/tests/i915/gen3_render_mixed_blits.c b/tests/i915/gen3_render_mixed_blits.c
index 1393055f31a2..f8e1bdfbda12 100644
--- a/tests/i915/gen3_render_mixed_blits.c
+++ b/tests/i915/gen3_render_mixed_blits.c
@@ -48,6 +48,13 @@
 #include "i915/gem_create.h"
 #include "i915_reg.h"
 #include "igt.h"
+/**
+ * TEST: gen3 render mixed blits
+ * Feature: obsolete
+ * Run type: FULL
+ *
+ * SUBTEST:
+ */
 
 #define WIDTH 512
 #define HEIGHT 512
diff --git a/tests/i915/gen3_render_tiledx_blits.c b/tests/i915/gen3_render_tiledx_blits.c
index ece86749358c..1abe5adbc553 100644
--- a/tests/i915/gen3_render_tiledx_blits.c
+++ b/tests/i915/gen3_render_tiledx_blits.c
@@ -48,6 +48,13 @@
 #include "i915/gem_create.h"
 #include "i915_reg.h"
 #include "igt.h"
+/**
+ * TEST: gen3 render tiledx blits
+ * Feature: obsolete
+ * Run type: FULL
+ *
+ * SUBTEST:
+ */
 
 #define WIDTH 512
 #define HEIGHT 512
diff --git a/tests/i915/gen3_render_tiledy_blits.c b/tests/i915/gen3_render_tiledy_blits.c
index 30097be66744..b1f4b628a37c 100644
--- a/tests/i915/gen3_render_tiledy_blits.c
+++ b/tests/i915/gen3_render_tiledy_blits.c
@@ -48,6 +48,13 @@
 #include "i915/gem_create.h"
 #include "i915_reg.h"
 #include "igt.h"
+/**
+ * TEST: gen3 render tiledy blits
+ * Feature: obsolete
+ * Run type: FULL
+ *
+ * SUBTEST:
+ */
 
 #define WIDTH 512
 #define HEIGHT 512
diff --git a/tests/i915/gen7_exec_parse.c b/tests/i915/gen7_exec_parse.c
index e9751ea73f44..81a5bb14f020 100644
--- a/tests/i915/gen7_exec_parse.c
+++ b/tests/i915/gen7_exec_parse.c
@@ -34,6 +34,37 @@
 #include "i915/gem.h"
 #include "i915/gem_create.h"
 #include "sw_sync.h"
+/**
+ * TEST: gen7 exec parse
+ * Feature: cmd_submission, command_parser
+ * Run type: FULL
+ *
+ * SUBTEST: basic-allocation
+ *
+ * SUBTEST: basic-allowed
+ *
+ * SUBTEST: basic-offset
+ *
+ * SUBTEST: basic-rejected
+ *
+ * SUBTEST: batch-without-end
+ *
+ * SUBTEST: bitmasks
+ *
+ * SUBTEST: chained-batch
+ *
+ * SUBTEST: cmd-crossing-page
+ *
+ * SUBTEST: load-register-reg
+ *
+ * SUBTEST: oacontrol-tracking
+ *
+ * SUBTEST: test-lri-OACONTROL
+ *
+ * SUBTEST: test-lri-OASTATUS2
+ *
+ * SUBTEST: test-lri-SO_WRITE_OFFSET_0
+ */
 
 #define DERRMR 0x44050
 #define OASTATUS2 0x2368
diff --git a/tests/i915/gen9_exec_parse.c b/tests/i915/gen9_exec_parse.c
index 26b1517053a0..a927bfacaf33 100644
--- a/tests/i915/gen9_exec_parse.c
+++ b/tests/i915/gen9_exec_parse.c
@@ -33,6 +33,53 @@
 #include "i915/gem_submission.h"
 #include "igt.h"
 #include "sw_sync.h"
+/**
+ * TEST: gen9 exec parse
+ * Feature: blitter, command_parser
+ * Run type: FULL
+ *
+ * SUBTEST: allowed-all
+ *
+ * SUBTEST: allowed-single
+ *
+ * SUBTEST: basic-rejected
+ *
+ * SUBTEST: basic-rejected-ctx-param
+ *
+ * SUBTEST: batch-invalid-length
+ *
+ * SUBTEST: batch-without-end
+ *
+ * SUBTEST: batch-zero-length
+ *
+ * SUBTEST: bb-chained
+ *
+ * SUBTEST: bb-large
+ *
+ * SUBTEST: bb-oversize
+ *
+ * SUBTEST: bb-secure
+ *
+ * SUBTEST: bb-start-cmd
+ *
+ * SUBTEST: bb-start-far
+ *
+ * SUBTEST: bb-start-out
+ *
+ * SUBTEST: bb-start-param
+ *
+ * SUBTEST: cmd-crossing-page
+ *
+ * SUBTEST: secure-batches
+ *
+ * SUBTEST: shadow-peek
+ *
+ * SUBTEST: unaligned-access
+ *
+ * SUBTEST: unaligned-jump
+ *
+ * SUBTEST: valid-registers
+ */
 
 /* To help craft commands known to be invalid across all engines */
 #define INSTR_CLIENT_SHIFT	29
diff --git a/tests/i915/i915_fb_tiling.c b/tests/i915/i915_fb_tiling.c
index cafa5233c9d0..586950266708 100644
--- a/tests/i915/i915_fb_tiling.c
+++ b/tests/i915/i915_fb_tiling.c
@@ -23,6 +23,14 @@
  */
 
 #include "igt.h"
+/**
+ * TEST: i915 fb tiling
+ * Description: Object tiling must be fixed after framebuffer creation.
+ * Feature: mapping
+ * Run type: FULL
+ *
+ * SUBTEST:
+ */
 
 IGT_TEST_DESCRIPTION("Object tiling must be fixed after framebuffer creation.");
 
diff --git a/tests/i915/i915_getparams_basic.c b/tests/i915/i915_getparams_basic.c
index 5422d585ffb6..e026aad565ff 100644
--- a/tests/i915/i915_getparams_basic.c
+++ b/tests/i915/i915_getparams_basic.c
@@ -30,6 +30,18 @@
 #include <errno.h>
 #include <xf86drm.h>
 #include <i915_drm.h>
+/**
+ * TEST: i915 getparams basic
+ * Description: Tests the export of parameters via DRM_IOCTL_I915_GETPARAM
+ * Feature: gem_core
+ * Run type: BAT
+ *
+ * SUBTEST: basic-eu-total
+ * Description: Examine the export of EU_TOTAL parameter
+ *
+ * SUBTEST: basic-subslice-total
+ * Description: Examine the export of SUBSLICE_TOTAL parameter
+ */
 
 IGT_TEST_DESCRIPTION("Tests the export of parameters via DRM_IOCTL_I915_GETPARAM\n");
 
diff --git a/tests/i915/i915_hangman.c b/tests/i915/i915_hangman.c
index dd396c4e9709..ef45b25adacd 100644
--- a/tests/i915/i915_hangman.c
+++ b/tests/i915/i915_hangman.c
@@ -40,6 +40,47 @@
 #include "igt_sysfs.h"
 #include "igt_debugfs.h"
 #include "sw_sync.h"
+/**
+ * TEST: i915 hangman
+ * Description: Tests for hang detection and recovery
+ * Feature: reset
+ *
+ * SUBTEST: detector
+ * Description: Check that hang detector works
+ * Run type: FULL
+ *
+ * SUBTEST: engine-engine-error
+ * Description: Per engine hang recovery (invalid CS, engine reset)
+ * Run type: FULL
+ *
+ * SUBTEST: engine-engine-hang
+ * Description: Per engine hang recovery (spin, engine reset)
+ * Run type: FULL
+ *
+ * SUBTEST: engine-error-state-capture
+ * Description: Per engine error capture (engine reset)
+ * Run type: FULL
+ *
+ * SUBTEST: error-state-basic
+ * Description: Basic error capture
+ * Run type: BAT
+ *
+ * SUBTEST: gt-engine-error
+ * Description: Per engine hang recovery (invalid CS, GT reset)
+ * Run type: FULL
+ *
+ * SUBTEST: gt-engine-hang
+ * Description: Per engine hang recovery (spin, GT reset)
+ * Run type: FULL
+ *
+ * SUBTEST: gt-error-state-capture
+ * Description: Per engine error capture (GT reset)
+ * Run type: FULL
+ *
+ * SUBTEST: hangcheck-unterminated
+ * Description: Check that executing unintialised memory causes a hang
+ * Run type: FULL
+ */
 
 #ifndef I915_PARAM_CMD_PARSER_VERSION
 #define I915_PARAM_CMD_PARSER_VERSION       28
diff --git a/tests/i915/i915_hwmon.c b/tests/i915/i915_hwmon.c
index 6d9937e99dc8..6d1334172c40 100644
--- a/tests/i915/i915_hwmon.c
+++ b/tests/i915/i915_hwmon.c
@@ -8,6 +8,18 @@
 #include "igt.h"
 #include "igt_hwmon.h"
 #include "igt_sysfs.h"
+/**
+ * TEST: i915 hwmon
+ * Description: Tests for i915 hwmon
+ * Feature: hwmon
+ * Run type: FULL
+ *
+ * SUBTEST: hwmon-read
+ * Description: Verify we can read all hwmon attributes
+ *
+ * SUBTEST: hwmon-write
+ * Description: Verify writable hwmon attributes
+ */
 
 IGT_TEST_DESCRIPTION("Tests for i915 hwmon");
 
diff --git a/tests/i915/i915_module_load.c b/tests/i915/i915_module_load.c
index 725687dab4f2..ae4e01ef18bc 100644
--- a/tests/i915/i915_module_load.c
+++ b/tests/i915/i915_module_load.c
@@ -23,6 +23,36 @@
 #include "igt.h"
 #include <dirent.h>
 #include <sys/utsname.h>
+/**
+ * TEST: i915 module load
+ * Description: Tests the i915 module loading.
+ *
+ * SUBTEST: load
+ * Description: Check if i915 and friends are not yet loaded, then load them.
+ * Feature: core
+ * Run type: BAT
+ *
+ * SUBTEST: reload
+ * Description: Verify the basic functionality of i915 driver after it's reloaded.
+ * Feature: core, sriov-core
+ * Run type: BAT
+ *
+ * SUBTEST: reload-no-display
+ * Description: Verify that i915 driver can be successfully loaded with disabled display.
+ * Feature: core, sriov-core
+ * Run type: FULL
+ *
+ * SUBTEST: reload-with-fault-injection
+ * Description: Verify that i915 driver can be successfully reloaded at least once with fault injection.
+ * Feature: core, sriov-core
+ * Run type: FULL
+ *
+ * SUBTEST: resize-bar
+ * Description: Check whether lmem bar size can be resized to only supported sizes.
+ * Feature: core
+ * Run type: FULL
+ */
+
 #ifdef __linux__
 #include <linux/limits.h>
 #endif
diff --git a/tests/i915/i915_pciid.c b/tests/i915/i915_pciid.c
index 377eec58cf13..ae3d2a09d208 100644
--- a/tests/i915/i915_pciid.c
+++ b/tests/i915/i915_pciid.c
@@ -28,6 +28,14 @@
 #include "drmtest.h"
 #include "i915_drm.h"
 #include "intel_chipset.h"
+/**
+ * TEST: i915 pciid
+ * Description: Check that igt/i915 know about this PCI-ID
+ * Feature: core
+ * Run type: BAT
+ *
+ * SUBTEST:
+ */
 
 IGT_TEST_DESCRIPTION("Check that igt/i915 know about this PCI-ID");
 
diff --git a/tests/i915/i915_pipe_stress.c b/tests/i915/i915_pipe_stress.c
index c06bc65d2c73..230391f06d7b 100644
--- a/tests/i915/i915_pipe_stress.c
+++ b/tests/i915/i915_pipe_stress.c
@@ -18,6 +18,20 @@
 #include <pthread.h>
 #include <semaphore.h>
 #include "i915/gem.h"
+/**
+ * TEST: i915 pipe stress
+ * Description: Stress test how gpu and cpu behaves if maximum amount of planes, cpu and gpu utilization is
+ *   achieved in order to reveal possible bandwidth/watermark and similar problems.
+ * Run type: FULL
+ *
+ * SUBTEST: stress-xrgb8888-untiled
+ * Description: Start pipe stress test, utilizing cpu and gpu simultaneously with maximum amount of planes
+ *   and resolution.
+ *
+ * SUBTEST: stress-xrgb8888-ytiled
+ * Description: Start pipe stress test, utilizing cpu and gpu simultaneously with maximum amount of planes
+ *   and resolution.
+ */
 
 IGT_TEST_DESCRIPTION("Stress test how gpu and cpu behaves if maximum amount of planes, "
 		     "cpu and gpu utilization is achieved in order to reveal possible "
diff --git a/tests/i915/i915_pm_backlight.c b/tests/i915/i915_pm_backlight.c
index 829606622d67..b633387bcfd9 100644
--- a/tests/i915/i915_pm_backlight.c
+++ b/tests/i915/i915_pm_backlight.c
@@ -36,6 +36,31 @@
 #include <time.h>
 #include "igt_device.h"
 #include "igt_device_scan.h"
+/**
+ * TEST: i915 pm backlight
+ * Description: Basic backlight sysfs test
+ * Feature: backlight
+ *
+ * SUBTEST: bad-brightness
+ * Description: test the bad brightness.
+ * Run type: FULL
+ *
+ * SUBTEST: basic-brightness
+ * Description: test the basic brightness.
+ * Run type: BAT
+ *
+ * SUBTEST: fade
+ * Description: test basic fade.
+ * Run type: FULL
+ *
+ * SUBTEST: fade-with-dpms
+ * Description: test the fade with DPMS.
+ * Run type: FULL
+ *
+ * SUBTEST: fade-with-suspend
+ * Description: test the fade with suspend.
+ * Run type: FULL
+ */
 
 struct context {
 	int max;
diff --git a/tests/i915/i915_pm_dc.c b/tests/i915/i915_pm_dc.c
index 6f08cb3fc44e..be6dac86c2c6 100644
--- a/tests/i915/i915_pm_dc.c
+++ b/tests/i915/i915_pm_dc.c
@@ -36,6 +36,43 @@
 #include "limits.h"
 #include "time.h"
 #include "igt_pm.h"
+/**
+ * TEST: i915 pm dc
+ * Description: Tests to validate display power DC states.
+ * Run type: FULL
+ *
+ * SUBTEST: dc3co-vpb-simulation
+ * Description: In this test we make sure that system enters DC3CO when PSR2 is active and system is in SLEEP
+ *   state
+ * Feature: dc3co, pm_dc
+ *
+ * SUBTEST: dc5-dpms
+ * Description: This test validates display engine entry to DC5 state while all connectors's DPMS property
+ *   set to OFF
+ * Feature: pm_dc
+ *
+ * SUBTEST: dc5-dpms-negative
+ * Description: This test validates negative scenario of DC5 display engine entry to DC5 state while all
+ *   connectors's DPMS property set to ON
+ * Feature: pm_dc
+ *
+ * SUBTEST: dc5-psr
+ * Description: This test validates display engine entry to DC5 state while PSR is active
+ * Feature: pm_dc
+ *
+ * SUBTEST: dc6-dpms
+ * Description: This test validates display engine entry to DC6 state while all connectors's DPMS property
+ *   set to OFF
+ * Feature: pm_dc
+ *
+ * SUBTEST: dc6-psr
+ * Description: This test validates display engine entry to DC6 state while PSR is active
+ * Feature: pm_dc
+ *
+ * SUBTEST: dc9-dpms
+ * Description: This test validates display engine entry to DC9 state
+ * Feature: pm_dc
+ */
 
 /* DC State Flags */
 #define CHECK_DC5	(1 << 0)
diff --git a/tests/i915/i915_pm_freq_api.c b/tests/i915/i915_pm_freq_api.c
index 662d514a4ef6..9005cd220a49 100644
--- a/tests/i915/i915_pm_freq_api.c
+++ b/tests/i915/i915_pm_freq_api.c
@@ -8,6 +8,17 @@
 #include "i915/gem.h"
 #include "igt_sysfs.h"
 #include "igt.h"
+/**
+ * TEST: i915 pm freq api
+ * Description: Test SLPC freq API
+ * Run type: FULL
+ *
+ * SUBTEST: freq-basic-api
+ * Description: Test basic API for controlling min/max GT frequency
+ *
+ * SUBTEST: freq-reset
+ * Description: Test basic freq API works after a reset
+ */
 
 IGT_TEST_DESCRIPTION("Test SLPC freq API");
 /*
diff --git a/tests/i915/i915_pm_freq_mult.c b/tests/i915/i915_pm_freq_mult.c
index 894ae294c1f9..edbd9764c6a6 100644
--- a/tests/i915/i915_pm_freq_mult.c
+++ b/tests/i915/i915_pm_freq_mult.c
@@ -10,6 +10,15 @@
 #include "i915/gem.h"
 #include "igt.h"
 #include "igt_sysfs.h"
+/**
+ * TEST: i915 pm freq mult
+ * Description: Tests for sysfs controls (or multipliers) for IP blocks which run at frequencies different
+ *   from the main GT frequency.
+ * Run type: FULL
+ *
+ * SUBTEST: media-freq
+ * Description: Tests for media frequency factor sysfs
+ */
 
 IGT_TEST_DESCRIPTION(
 	"Tests for sysfs controls (or multipliers) for IP blocks which run at "
diff --git a/tests/i915/i915_pm_lpsp.c b/tests/i915/i915_pm_lpsp.c
index 3ad8b2603f90..cb01a6d9e1f6 100644
--- a/tests/i915/i915_pm_lpsp.c
+++ b/tests/i915/i915_pm_lpsp.c
@@ -32,6 +32,18 @@
 #include <sys/stat.h>
 #include <fcntl.h>
 #include <unistd.h>
+/**
+ * TEST: i915 pm lpsp
+ * Description: These tests validates display Low Power Single Pipe configurations
+ * Feature: pm_lpsp
+ * Run type: FULL
+ *
+ * SUBTEST: kms-lpsp
+ * Description: This test validates lpsp on all connected outputs on low power PIPE_A
+ *
+ * SUBTEST: screens-disabled
+ * Description: This test validates lpsp while all crtc are disabled
+ */
 
 #define MAX_SINK_LPSP_INFO_BUF_LEN	4096
 
diff --git a/tests/i915/i915_pm_rc6_residency.c b/tests/i915/i915_pm_rc6_residency.c
index 3554f5d7749a..ce81e668a2b1 100644
--- a/tests/i915/i915_pm_rc6_residency.c
+++ b/tests/i915/i915_pm_rc6_residency.c
@@ -40,6 +40,22 @@
 #include "igt_power.h"
 #include "igt_sysfs.h"
 #include "sw_sync.h"
+/**
+ * TEST: i915 pm rc6 residency
+ * Run type: FULL
+ *
+ * SUBTEST: media-rc6-accuracy
+ * Feature: pm_rc6
+ *
+ * SUBTEST: rc6-accuracy
+ * Feature: GuCRC, pm_rc6
+ *
+ * SUBTEST: rc6-fence
+ * Feature: GuCRC, pm_rc6
+ *
+ * SUBTEST: rc6-idle
+ * Feature: GuCRC, pm_rc6
+ */
 
 #define SLEEP_DURATION 3 /* in seconds */
 
diff --git a/tests/i915/i915_pm_rpm.c b/tests/i915/i915_pm_rpm.c
index 9a6408dd3796..d9b4cbbfe615 100644
--- a/tests/i915/i915_pm_rpm.c
+++ b/tests/i915/i915_pm_rpm.c
@@ -40,6 +40,191 @@
 #include <sys/mman.h>
 #include <sys/types.h>
 #include <sys/stat.h>
+/**
+ * TEST: i915 pm rpm
+ *
+ * SUBTEST: basic-pci-d3-state
+ * Feature: pm_rpm
+ * Run type: BAT
+ *
+ * SUBTEST: basic-rte
+ * Feature: pm_rpm
+ * Run type: BAT
+ *
+ * SUBTEST: cursor
+ * Feature: pm_rpm
+ * Run type: FULL
+ *
+ * SUBTEST: cursor-dpms
+ * Feature: pm_rpm
+ * Run type: FULL
+ *
+ * SUBTEST: debugfs-forcewake-user
+ * Feature: pm_rpm
+ * Run type: FULL
+ *
+ * SUBTEST: debugfs-read
+ * Feature: pm_rpm
+ * Run type: FULL
+ *
+ * SUBTEST: dpms-lpsp
+ * Feature: dpms, pm_rpm
+ * Run type: FULL
+ *
+ * SUBTEST: dpms-mode-unset-lpsp
+ * Feature: dpms, pm_rpm
+ * Run type: FULL
+ *
+ * SUBTEST: dpms-mode-unset-non-lpsp
+ * Feature: dpms, non-lpsp, pm_rpm
+ * Run type: FULL
+ *
+ * SUBTEST: dpms-non-lpsp
+ * Feature: dpms, non-lpsp, pm_rpm
+ * Run type: FULL
+ *
+ * SUBTEST: drm-resources-equal
+ * Feature: pm_rpm
+ * Run type: FULL
+ *
+ * SUBTEST: fences
+ * Feature: gtt, pm_rpm, synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: fences-dpms
+ * Feature: gtt, pm_rpm, synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: gem-evict-pwrite
+ * Feature: gtt, pm_rpm
+ * Run type: FULL
+ *
+ * SUBTEST: gem-execbuf
+ * Feature: pm_rpm
+ * Run type: FULL
+ *
+ * SUBTEST: gem-execbuf-stress
+ * Description: Validate execbuf submission while exercising rpm suspend/resume cycles.
+ * Feature: pm_rpm
+ * Run type: FULL
+ *
+ * SUBTEST: gem-execbuf-stress-pc8
+ * Feature: pm_rpm
+ * Run type: FULL
+ *
+ * SUBTEST: gem-idle
+ * Feature: pm_rpm
+ * Run type: FULL
+ *
+ * SUBTEST: gem-mmap-type
+ * Feature: pm_rpm
+ * Run type: FULL
+ *
+ * SUBTEST: gem-pread
+ * Feature: pm_rpm
+ * Run type: FULL
+ *
+ * SUBTEST: i2c
+ * Feature: pm_rpm
+ * Run type: FULL
+ *
+ * SUBTEST: legacy-planes
+ * Feature: pm_rpm
+ * Run type: FULL
+ *
+ * SUBTEST: legacy-planes-dpms
+ * Feature: pm_rpm
+ * Run type: FULL
+ *
+ * SUBTEST: modeset-lpsp
+ * Feature: pm_rpm
+ * Run type: FULL
+ *
+ * SUBTEST: modeset-lpsp-stress
+ * Feature: pm_rpm
+ * Run type: FULL
+ *
+ * SUBTEST: modeset-lpsp-stress-no-wait
+ * Feature: pm_rpm
+ * Run type: FULL
+ *
+ * SUBTEST: modeset-non-lpsp
+ * Feature: non-lpsp, pm_rpm
+ * Run type: FULL
+ *
+ * SUBTEST: modeset-non-lpsp-stress
+ * Feature: non-lpsp, pm_rpm
+ * Run type: FULL
+ *
+ * SUBTEST: modeset-non-lpsp-stress-no-wait
+ * Feature: non-lpsp, pm_rpm
+ * Run type: FULL
+ *
+ * SUBTEST: modeset-pc8-residency-stress
+ * Feature: pm_rpm
+ * Run type: FULL
+ *
+ * SUBTEST: modeset-stress-extra-wait
+ * Feature: pm_rpm
+ * Run type: FULL
+ *
+ * SUBTEST: module-reload
+ * Feature: pm_rpm
+ * Run type: BAT
+ *
+ * SUBTEST: pc8-residency
+ * Feature: pm_rpm
+ * Run type: FULL
+ *
+ * SUBTEST: pm-caching
+ * Feature: gtt, pm_rpm
+ * Run type: FULL
+ *
+ * SUBTEST: pm-tiling
+ * Feature: gtt, pm_rpm
+ * Run type: FULL
+ *
+ * SUBTEST: reg-read-ioctl
+ * Feature: pm_rpm
+ * Run type: FULL
+ *
+ * SUBTEST: sysfs-read
+ * Feature: pm_rpm
+ * Run type: FULL
+ *
+ * SUBTEST: system-hibernate
+ * Feature: pm_rpm
+ * Run type: FULL
+ *
+ * SUBTEST: system-hibernate-devices
+ * Feature: pm_rpm
+ * Run type: FULL
+ *
+ * SUBTEST: system-suspend
+ * Feature: pm_rpm
+ * Run type: FULL
+ *
+ * SUBTEST: system-suspend-devices
+ * Feature: pm_rpm
+ * Run type: FULL
+ *
+ * SUBTEST: system-suspend-execbuf
+ * Feature: pm_rpm
+ * Run type: FULL
+ *
+ * SUBTEST: system-suspend-modeset
+ * Feature: pm_rpm
+ * Run type: FULL
+ *
+ * SUBTEST: universal-planes
+ * Feature: pm_rpm
+ * Run type: FULL
+ *
+ * SUBTEST: universal-planes-dpms
+ * Feature: pm_rpm
+ * Run type: FULL
+ */
+
 #if defined(__linux__)
 #include <linux/i2c.h>
 #include <linux/i2c-dev.h>
diff --git a/tests/i915/i915_pm_rps.c b/tests/i915/i915_pm_rps.c
index d4ee2d58abf2..050d68a16559 100644
--- a/tests/i915/i915_pm_rps.c
+++ b/tests/i915/i915_pm_rps.c
@@ -42,6 +42,40 @@
 #include "igt_dummyload.h"
 #include "igt_perf.h"
 #include "igt_sysfs.h"
+/**
+ * TEST: i915 pm rps
+ * Description: Render P-States tests - verify GPU frequency changes
+ *
+ * SUBTEST: basic-api
+ * Feature: pm_rps
+ * Run type: BAT
+ *
+ * SUBTEST: engine-order
+ * Description: Check if context reuse does not affect waitboosting
+ * Feature: pm_rps
+ * Run type: FULL
+ *
+ * SUBTEST: fence-order
+ * Description: Check if the order of fences does not affect waitboosting
+ * Feature: pm_rps, synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: min-max-config-idle
+ * Feature: pm_rps
+ * Run type: FULL
+ *
+ * SUBTEST: min-max-config-loaded
+ * Feature: pm_rps
+ * Run type: FULL
+ *
+ * SUBTEST: reset
+ * Feature: pm_rps
+ * Run type: FULL
+ *
+ * SUBTEST: waitboost
+ * Feature: pm_rps
+ * Run type: FULL
+ */
 
 IGT_TEST_DESCRIPTION("Render P-States tests - verify GPU frequency changes");
 
diff --git a/tests/i915/i915_pm_sseu.c b/tests/i915/i915_pm_sseu.c
index 1b428c9ba7fd..39eecb8fecb2 100644
--- a/tests/i915/i915_pm_sseu.c
+++ b/tests/i915/i915_pm_sseu.c
@@ -35,6 +35,14 @@
 #include "i915/gem.h"
 #include "igt.h"
 #include "intel_bufops.h"
+/**
+ * TEST: i915 pm sseu
+ * Description: Tests slice/subslice/EU power gating functionality.
+ * Feature: pm_sseu
+ * Run type: FULL
+ *
+ * SUBTEST: full-enable
+ */
 
 IGT_TEST_DESCRIPTION("Tests slice/subslice/EU power gating functionality.\n");
 
diff --git a/tests/i915/i915_power.c b/tests/i915/i915_power.c
index 51b412e3a6a4..383c212d2807 100644
--- a/tests/i915/i915_power.c
+++ b/tests/i915/i915_power.c
@@ -7,6 +7,15 @@
 #include "i915/gem.h"
 #include "igt_power.h"
 #include "igt_sysfs.h"
+/**
+ * TEST: i915 power
+ * Description: i915 power measurement tests
+ * Feature: hwmon
+ * Run type: FULL
+ *
+ * SUBTEST: sanity
+ * Description: Sanity check gpu power measurement
+ */
 
 IGT_TEST_DESCRIPTION("i915 power measurement tests");
 
diff --git a/tests/i915/i915_query.c b/tests/i915/i915_query.c
index e725e04e46c2..c4d1d7084da5 100644
--- a/tests/i915/i915_query.c
+++ b/tests/i915/i915_query.c
@@ -27,6 +27,68 @@
 #include "i915/gem_create.h"
 
 #include <limits.h>
+/**
+ * TEST: i915 query
+ * Description: Testing the i915 query uAPI.
+ * Run type: FULL
+ *
+ * SUBTEST: engine-info
+ * Description: Positive tests for DRM_I915_QUERY_ENGINE_INFO
+ * Feature: gem_core
+ *
+ * SUBTEST: engine-info-invalid
+ * Description: Negative tests for DRM_I915_QUERY_ENGINE_INFO
+ * Feature: gem_core
+ *
+ * SUBTEST: hwconfig_table
+ * Description: Test DRM_I915_QUERY_HWCONFIG_BLOB query
+ * Feature: gem_core
+ *
+ * SUBTEST: query-garbage
+ * Description: Test response to an invalid query call
+ * Feature: gem_core
+ *
+ * SUBTEST: query-regions-garbage-items
+ * Description: Dodgy returned data tests for DRM_I915_QUERY_MEMORY_REGIONS
+ * Feature: gem_core
+ *
+ * SUBTEST: query-regions-sanity-check
+ * Description: Basic tests for DRM_I915_QUERY_MEMORY_REGIONS
+ * Feature: gem_core
+ *
+ * SUBTEST: query-regions-unallocated
+ * Description: Sanity check the region unallocated tracking
+ * Feature: gem_core
+ *
+ * SUBTEST: query-topology-coherent-slice-mask
+ * Description: Compare new DRM_I915_QUERY_TOPOLOGY_INFO query with legacy (sub)slice getparams
+ * Feature: gem_core
+ *
+ * SUBTEST: query-topology-garbage-items
+ * Description: Test response to invalid DRM_I915_QUERY_TOPOLOGY_INFO query
+ * Feature: gem_core
+ *
+ * SUBTEST: query-topology-kernel-writes
+ * Description: Guardband test for DRM_I915_QUERY_TOPOLOGY_INFO query
+ * Feature: gem_core
+ *
+ * SUBTEST: query-topology-known-pci-ids
+ * Description: Verify DRM_I915_QUERY_TOPOLOGY_INFO query against hardcoded known values for certain
+ *   platforms
+ * Feature: gem_core
+ *
+ * SUBTEST: query-topology-matches-eu-total
+ * Description: More compare new DRM_I915_QUERY_TOPOLOGY_INFO query with legacy (sub)slice getparams
+ * Feature: gem_core
+ *
+ * SUBTEST: query-topology-unsupported
+ * Description: Verify DRM_I915_QUERY_TOPOLOGY_INFO query fails when it is not supported
+ * Feature: gem_core, no-query-topology
+ *
+ * SUBTEST: test-query-geometry-subslices
+ * Description: Test DRM_I915_QUERY_GEOMETRY_SUBSLICES query
+ * Feature: gem_core
+ */
 
 IGT_TEST_DESCRIPTION("Testing the i915 query uAPI.");
 
diff --git a/tests/i915/i915_selftest.c b/tests/i915/i915_selftest.c
index abc8c9c795d3..8863274405ba 100644
--- a/tests/i915/i915_selftest.c
+++ b/tests/i915/i915_selftest.c
@@ -23,6 +23,22 @@
 
 #include "igt.h"
 #include "igt_kmod.h"
+/**
+ * TEST: i915 selftest
+ * Description: Basic unit tests for i915.ko
+ *
+ * SUBTEST: live
+ * Feature: gem_core
+ * Run type: BAT
+ *
+ * SUBTEST: mock
+ * Feature: gem_core
+ * Run type: FULL
+ *
+ * SUBTEST: perf
+ * Feature: oa
+ * Run type: FULL
+ */
 
 IGT_TEST_DESCRIPTION("Basic unit tests for i915.ko");
 
diff --git a/tests/i915/i915_suspend.c b/tests/i915/i915_suspend.c
index a9507964bc3a..1164d303e06c 100644
--- a/tests/i915/i915_suspend.c
+++ b/tests/i915/i915_suspend.c
@@ -44,6 +44,63 @@
 #include "igt_kmod.h"
 #include "igt_device.h"
 #include "igt_device_scan.h"
+/**
+ * TEST: i915 suspend
+ *
+ * SUBTEST: basic-s2idle-without-i915
+ * Description: Validate suspend-to-idle without i915 module
+ * Feature: suspend
+ * Run type: BAT
+ *
+ * SUBTEST: basic-s3-without-i915
+ * Description: Validate S3 without i915 module
+ * Feature: suspend
+ * Run type: BAT
+ *
+ * SUBTEST: debugfs-reader
+ * Feature: suspend
+ * Run type: FULL
+ *
+ * SUBTEST: debugfs-reader-hibernate
+ * Feature: suspend
+ * Run type: FULL
+ *
+ * SUBTEST: fence-restore-tiled2untiled
+ * Feature: gtt, suspend, synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: fence-restore-tiled2untiled-hibernate
+ * Feature: gtt, suspend, synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: fence-restore-untiled
+ * Feature: gtt, suspend, synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: fence-restore-untiled-hibernate
+ * Feature: gtt, suspend, synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: forcewake
+ * Feature: suspend
+ * Run type: FULL
+ *
+ * SUBTEST: forcewake-hibernate
+ * Feature: suspend
+ * Run type: FULL
+ *
+ * SUBTEST: shrink
+ * Feature: suspend
+ * Run type: FULL
+ *
+ * SUBTEST: sysfs-reader
+ * Feature: suspend
+ * Run type: FULL
+ *
+ * SUBTEST: sysfs-reader-hibernate
+ * Feature: suspend
+ * Run type: FULL
+ */
 
 #define OBJECT_SIZE (16*1024*1024)
 
diff --git a/tests/i915/perf.c b/tests/i915/perf.c
index 9ca4d34b6efb..40decc9cf396 100644
--- a/tests/i915/perf.c
+++ b/tests/i915/perf.c
@@ -45,6 +45,150 @@
 #include "igt_perf.h"
 #include "igt_sysfs.h"
 #include "drm.h"
+/**
+ * TEST: perf
+ * Description: Test the i915 perf metrics streaming interface
+ * Run type: FULL
+ *
+ * SUBTEST: blocking
+ * Description: Test blocking read with default hrtimer frequency
+ * Feature: oa
+ *
+ * SUBTEST: blocking-parameterized
+ * Description: Test blocking read with different hrtimer frequencies
+ * Feature: oa
+ *
+ * SUBTEST: buffer-fill
+ * Feature: oa
+ *
+ * SUBTEST: create-destroy-userspace-config
+ * Feature: oa
+ *
+ * SUBTEST: disabled-read-error
+ * Feature: oa
+ *
+ * SUBTEST: enable-disable
+ * Feature: oa
+ *
+ * SUBTEST: gen12-group-concurrent-oa-buffer-read
+ * Description: Verify concurrent reads from OA buffers in different groups
+ * Feature: oa
+ *
+ * SUBTEST: gen12-group-exclusive-stream-ctx-handle
+ * Description: Verify exclusivity of perf streams with ctx handle
+ * Feature: oa
+ *
+ * SUBTEST: gen12-group-exclusive-stream-sample-oa
+ * Description: Verify exclusivity of perf streams with sample oa option
+ * Feature: oa
+ *
+ * SUBTEST: gen12-invalid-class-instance
+ * Description: Verify invalid class instance
+ * Feature: oa
+ *
+ * SUBTEST: gen12-mi-rpc
+ * Description: Test MI REPORT PERF COUNT for Gen 12
+ * Feature: oa
+ *
+ * SUBTEST: gen12-oa-tlb-invalidate
+ * Description: Test OA TLB invalidate
+ * Feature: oa
+ *
+ * SUBTEST: gen12-unprivileged-single-ctx-counters
+ * Description: Measure performance for a specific context using OAR in Gen 12
+ * Feature: oa
+ *
+ * SUBTEST: gen8-unprivileged-single-ctx-counters
+ * Feature: oa, obsolete
+ *
+ * SUBTEST: global-sseu-config
+ * Description: Verify specifying SSEU opening parameters
+ * Feature: oa
+ *
+ * SUBTEST: global-sseu-config-invalid
+ * Description: Verify invalid SSEU opening parameters
+ * Feature: oa
+ *
+ * SUBTEST: i915-ref-count
+ * Feature: oa
+ *
+ * SUBTEST: invalid-create-userspace-config
+ * Feature: oa
+ *
+ * SUBTEST: invalid-oa-exponent
+ * Feature: oa
+ *
+ * SUBTEST: invalid-oa-format-id
+ * Feature: oa
+ *
+ * SUBTEST: invalid-oa-metric-set-id
+ * Feature: oa
+ *
+ * SUBTEST: invalid-open-flags
+ * Feature: oa
+ *
+ * SUBTEST: invalid-remove-userspace-config
+ * Feature: oa
+ *
+ * SUBTEST: low-oa-exponent-permissions
+ * Feature: oa
+ *
+ * SUBTEST: mi-rpc
+ * Feature: oa
+ *
+ * SUBTEST: missing-sample-flags
+ * Feature: oa
+ *
+ * SUBTEST: non-sampling-read-error
+ * Feature: oa
+ *
+ * SUBTEST: non-system-wide-paranoid
+ * Feature: oa
+ *
+ * SUBTEST: non-zero-reason
+ * Description: Test that reason field in OA reports is never 0 on Gen8+
+ * Feature: oa
+ *
+ * SUBTEST: oa-exponents
+ * Feature: oa
+ *
+ * SUBTEST: oa-formats
+ * Feature: oa
+ *
+ * SUBTEST: per-context-mode-unprivileged
+ * Feature: oa, obsolete
+ *
+ * SUBTEST: polling
+ * Description: Test polled read with default hrtimer frequency
+ * Feature: oa
+ *
+ * SUBTEST: polling-parameterized
+ * Description: Test polled read with different hrtimer frequencies
+ * Feature: oa
+ *
+ * SUBTEST: polling-small-buf
+ * Description: Test polled read with buffer size smaller than available data
+ * Feature: oa
+ *
+ * SUBTEST: rc6-disable
+ * Feature: oa
+ *
+ * SUBTEST: short-reads
+ * Feature: oa
+ *
+ * SUBTEST: stress-open-close
+ * Description: Stress tests opening & closing the i915-perf stream in a busy loop
+ * Feature: oa
+ *
+ * SUBTEST: sysctl-defaults
+ * Feature: oa
+ *
+ * SUBTEST: unprivileged-single-ctx-counters
+ * Feature: oa, obsolete
+ *
+ * SUBTEST: whitelisted-registers-userspace-config
+ * Feature: oa
+ */
 
 IGT_TEST_DESCRIPTION("Test the i915 perf metrics streaming interface");
 
diff --git a/tests/i915/perf_pmu.c b/tests/i915/perf_pmu.c
index c5f083bbdbcc..bedadbe92797 100644
--- a/tests/i915/perf_pmu.c
+++ b/tests/i915/perf_pmu.c
@@ -49,6 +49,144 @@
 #include "igt_pm.h"
 #include "intel_ctx.h"
 #include "sw_sync.h"
+/**
+ * TEST: perf pmu
+ * Description: Test the i915 pmu perf interface
+ * Run type: FULL
+ *
+ * SUBTEST: all-busy-check-all
+ * Feature: pmu
+ *
+ * SUBTEST: all-busy-idle-check-all
+ * Feature: pmu
+ *
+ * SUBTEST: busy
+ * Feature: pmu
+ *
+ * SUBTEST: busy-accuracy-2
+ * Feature: pmu
+ *
+ * SUBTEST: busy-accuracy-50
+ * Feature: pmu
+ *
+ * SUBTEST: busy-accuracy-98
+ * Feature: pmu
+ *
+ * SUBTEST: busy-check-all
+ * Feature: pmu
+ *
+ * SUBTEST: busy-double-start
+ * Feature: pmu
+ *
+ * SUBTEST: busy-hang
+ * Feature: pmu
+ *
+ * SUBTEST: busy-idle
+ * Feature: pmu
+ *
+ * SUBTEST: busy-idle-check-all
+ * Feature: pmu
+ *
+ * SUBTEST: busy-idle-no-semaphores
+ * Feature: pmu
+ *
+ * SUBTEST: busy-no-semaphores
+ * Feature: pmu
+ *
+ * SUBTEST: busy-start
+ * Feature: pmu
+ *
+ * SUBTEST: cpu-hotplug
+ * Feature: pmu
+ *
+ * SUBTEST: enable-race
+ * Feature: pmu
+ *
+ * SUBTEST: event-wait
+ * Feature: obsolete, pmu
+ *
+ * SUBTEST: faulting-read
+ * Feature: pmu
+ *
+ * SUBTEST: frequency
+ * Feature: pmu
+ *
+ * SUBTEST: frequency-idle
+ * Feature: pmu
+ *
+ * SUBTEST: gt-awake
+ * Feature: pmu
+ *
+ * SUBTEST: idle
+ * Feature: pmu
+ *
+ * SUBTEST: idle-no-semaphores
+ * Feature: pmu
+ *
+ * SUBTEST: init-busy
+ * Feature: pmu
+ *
+ * SUBTEST: init-sema
+ * Feature: pmu
+ *
+ * SUBTEST: init-wait
+ * Feature: pmu
+ *
+ * SUBTEST: interrupts
+ * Feature: pmu
+ *
+ * SUBTEST: interrupts-sync
+ * Feature: pmu
+ *
+ * SUBTEST: invalid-init
+ * Feature: pmu
+ *
+ * SUBTEST: invalid-open
+ * Feature: pmu
+ *
+ * SUBTEST: module-unload
+ * Feature: pmu
+ *
+ * SUBTEST: most-busy-check-all
+ * Feature: pmu
+ *
+ * SUBTEST: most-busy-idle-check-all
+ * Feature: pmu
+ *
+ * SUBTEST: multi-client
+ * Feature: pmu
+ *
+ * SUBTEST: pmu-read
+ * Description: Verify i915 pmu dir exists and read all events
+ * Feature: pmu
+ *
+ * SUBTEST: rc6
+ * Feature: pmu
+ *
+ * SUBTEST: rc6-runtime-pm
+ * Feature: pmu
+ *
+ * SUBTEST: rc6-runtime-pm-long
+ * Feature: pmu
+ *
+ * SUBTEST: rc6-suspend
+ * Feature: pmu
+ *
+ * SUBTEST: render-node-busy
+ * Feature: pmu
+ *
+ * SUBTEST: render-node-busy-idle
+ * Feature: pmu
+ *
+ * SUBTEST: semaphore-busy
+ * Feature: pmu
+ *
+ * SUBTEST: semaphore-wait
+ * Feature: pmu
+ *
+ * SUBTEST: semaphore-wait-idle
+ * Feature: pmu
+ */
 
 IGT_TEST_DESCRIPTION("Test the i915 pmu perf interface");
 
diff --git a/tests/i915/sysfs_defaults.c b/tests/i915/sysfs_defaults.c
index dda27a0af533..73478559fcda 100644
--- a/tests/i915/sysfs_defaults.c
+++ b/tests/i915/sysfs_defaults.c
@@ -33,6 +33,13 @@
 #include "i915/gem.h"
 #include "i915/gem_engine_topology.h"
 #include "igt_sysfs.h"
+/**
+ * TEST: sysfs defaults
+ * Feature: gem_core
+ * Run type: FULL
+ *
+ * SUBTEST: readonly
+ */
 
 static bool may_write(int dir, const char *file)
 {
diff --git a/tests/i915/sysfs_heartbeat_interval.c b/tests/i915/sysfs_heartbeat_interval.c
index 8a3dd3975832..2971acb32811 100644
--- a/tests/i915/sysfs_heartbeat_interval.c
+++ b/tests/i915/sysfs_heartbeat_interval.c
@@ -41,6 +41,25 @@
 #include "igt_dummyload.h"
 #include "igt_sysfs.h"
 #include "sw_sync.h"
+/**
+ * TEST: sysfs heartbeat interval
+ * Feature: SMI, cmd_submission
+ * Run type: FULL
+ *
+ * SUBTEST: idempotent
+ *
+ * SUBTEST: invalid
+ *
+ * SUBTEST: long
+ *
+ * SUBTEST: mixed
+ *
+ * SUBTEST: nopreempt
+ *
+ * SUBTEST: off
+ *
+ * SUBTEST: precise
+ */
 
 #define ATTR "heartbeat_interval_ms"
 #define RESET_TIMEOUT 1000 /* milliseconds, long enough for error capture */
diff --git a/tests/i915/sysfs_preempt_timeout.c b/tests/i915/sysfs_preempt_timeout.c
index 5e0a7d96299f..e7c09949930c 100644
--- a/tests/i915/sysfs_preempt_timeout.c
+++ b/tests/i915/sysfs_preempt_timeout.c
@@ -40,6 +40,19 @@
 #include "igt_sysfs.h"
 #include "intel_allocator.h"
 #include "sw_sync.h"
+/**
+ * TEST: sysfs preempt timeout
+ * Feature: SMI, context
+ * Run type: FULL
+ *
+ * SUBTEST: idempotent
+ *
+ * SUBTEST: invalid
+ *
+ * SUBTEST: off
+ *
+ * SUBTEST: timeout
+ */
 
 #define ATTR "preempt_timeout_ms"
 #define RESET_TIMEOUT 1000 /* milliseconds, at long enough for an error capture */
diff --git a/tests/i915/sysfs_timeslice_duration.c b/tests/i915/sysfs_timeslice_duration.c
index 92c4c5eae3d9..0f4905d8b613 100644
--- a/tests/i915/sysfs_timeslice_duration.c
+++ b/tests/i915/sysfs_timeslice_duration.c
@@ -43,6 +43,21 @@
 #include "intel_chipset.h"
 #include "intel_reg.h"
 #include "sw_sync.h"
+/**
+ * TEST: sysfs timeslice duration
+ * Feature: SMI, cmd_submission
+ * Run type: FULL
+ *
+ * SUBTEST: duration
+ *
+ * SUBTEST: idempotent
+ *
+ * SUBTEST: invalid
+ *
+ * SUBTEST: off
+ *
+ * SUBTEST: timeout
+ */
 
 #define ATTR "timeslice_duration_ms"
 #define RESET_TIMEOUT 1000 /* milliseconds, long enough for error capture */
diff --git a/tests/prime_busy.c b/tests/prime_busy.c
index 343020f13ea3..4f7dba7d0e3c 100644
--- a/tests/prime_busy.c
+++ b/tests/prime_busy.c
@@ -26,6 +26,24 @@
 #include "i915/gem.h"
 #include "i915/gem_create.h"
 #include "igt.h"
+/**
+ * TEST: prime busy
+ * Description: Basic check of polling for prime fences.
+ * Feature: prime
+ * Run type: FULL
+ *
+ * SUBTEST: after
+ *
+ * SUBTEST: after-wait
+ *
+ * SUBTEST: before
+ *
+ * SUBTEST: before-wait
+ *
+ * SUBTEST: hang
+ *
+ * SUBTEST: hang-wait
+ */
 
 IGT_TEST_DESCRIPTION("Basic check of polling for prime fences.");
 
diff --git a/tests/prime_mmap.c b/tests/prime_mmap.c
index bc19f68c98b6..8ffe37fe199f 100644
--- a/tests/prime_mmap.c
+++ b/tests/prime_mmap.c
@@ -50,6 +50,35 @@
 #include "igt_debugfs.h"
 #include "ioctl_wrappers.h"
 #include "i915/intel_memory_region.h"
+/**
+ * TEST: prime mmap
+ * Feature: prime
+ * Run type: FULL
+ *
+ * SUBTEST: test_aperture_limit
+ *
+ * SUBTEST: test_correct
+ *
+ * SUBTEST: test_correct_cpu_write
+ *
+ * SUBTEST: test_dup
+ *
+ * SUBTEST: test_errors
+ *
+ * SUBTEST: test_forked
+ *
+ * SUBTEST: test_forked_cpu_write
+ *
+ * SUBTEST: test_invalid_sync_flags
+ *
+ * SUBTEST: test_map_unmap
+ *
+ * SUBTEST: test_refcounting
+ *
+ * SUBTEST: test_reprime
+ *
+ * SUBTEST: test_userptr
+ */
 
 #define BO_SIZE (16*1024)
 
diff --git a/tests/prime_mmap_coherency.c b/tests/prime_mmap_coherency.c
index b22fb35c1516..b6cc233a2858 100644
--- a/tests/prime_mmap_coherency.c
+++ b/tests/prime_mmap_coherency.c
@@ -31,6 +31,19 @@
 
 #include "i915/gem.h"
 #include "igt.h"
+/**
+ * TEST: prime mmap coherency
+ * Description: Test dma-buf mmap on !llc platforms mostly and provoke coherency bugs so we know for sure where
+ *   we need the sync ioctls.
+ * Feature: prime
+ * Run type: FULL
+ *
+ * SUBTEST: ioctl-errors
+ *
+ * SUBTEST: read
+ *
+ * SUBTEST: write
+ */
 
 IGT_TEST_DESCRIPTION("Test dma-buf mmap on !llc platforms mostly and provoke"
 		" coherency bugs so we know for sure where we need the sync ioctls.");
diff --git a/tests/prime_self_import.c b/tests/prime_self_import.c
index bf548619453c..7d423b8cd442 100644
--- a/tests/prime_self_import.c
+++ b/tests/prime_self_import.c
@@ -45,6 +45,43 @@
 
 #include "drm.h"
 #include "i915/gem_create.h"
+/**
+ * TEST: prime self import
+ * Description: Check whether prime import/export works on the same device... but with different fds.
+ * Feature: prime
+ *
+ * SUBTEST: basic-llseek-bad
+ * Description: Check dmabuf llseek support with invalid values.
+ * Run type: BAT
+ *
+ * SUBTEST: basic-llseek-size
+ * Description: Check dmabuf llseek support.
+ * Run type: BAT
+ *
+ * SUBTEST: basic-with_fd_dup
+ * Description: Check prime export with duplicate fd.
+ * Run type: BAT
+ *
+ * SUBTEST: basic-with_one_bo
+ * Description: Check prime import/export with one buffer object.
+ * Run type: BAT
+ *
+ * SUBTEST: basic-with_one_bo_two_files
+ * Description: Check prime/flink with one buffer object.
+ * Run type: BAT
+ *
+ * SUBTEST: basic-with_two_bos
+ * Description: Check prime import/export with two buffer objects.
+ * Run type: BAT
+ *
+ * SUBTEST: export-vs-gem_close-race
+ * Description: Check race of gem close against prime export.
+ * Run type: FULL
+ *
+ * SUBTEST: reimport-vs-gem_close-race
+ * Description: Check race of gem close against reimport.
+ * Run type: FULL
+ */
 
 IGT_TEST_DESCRIPTION("Check whether prime import/export works on the same"
 		     " device... but with different fds.");
diff --git a/tests/prime_vgem.c b/tests/prime_vgem.c
index 9aa767c9cdfd..59e79af2dd00 100644
--- a/tests/prime_vgem.c
+++ b/tests/prime_vgem.c
@@ -30,6 +30,105 @@
 #include "igt.h"
 #include "igt_vgem.h"
 #include "intel_batchbuffer.h"	/* igt_blitter_src_copy() */
+/**
+ * TEST: prime vgem
+ * Description: Basic check of polling for prime/vgem fences.
+ *
+ * SUBTEST: basic-blt
+ * Description: Examine blitter access path.
+ * Feature: prime
+ * Run type: FULL
+ *
+ * SUBTEST: basic-fence-blt
+ * Description: Examine blitter access path fencing.
+ * Feature: prime
+ * Run type: FULL
+ *
+ * SUBTEST: basic-fence-flip
+ * Description: Examine vgem bo front/back flip fencing.
+ * Feature: prime
+ * Run type: BAT
+ *
+ * SUBTEST: basic-fence-mmap
+ * Description: Examine GTT access path fencing.
+ * Feature: gtt, prime
+ * Run type: BAT
+ *
+ * SUBTEST: basic-fence-read
+ * Description: Examine read access path fencing.
+ * Feature: gtt, prime
+ * Run type: BAT
+ *
+ * SUBTEST: basic-gtt
+ * Description: Examine access path through GTT.
+ * Feature: gtt, prime
+ * Run type: BAT
+ *
+ * SUBTEST: basic-read
+ * Description: Examine read access path.
+ * Feature: gtt, prime
+ * Run type: BAT
+ *
+ * SUBTEST: basic-userptr
+ * Description: Check that we wrap the vgem mmap with userptr.
+ * Feature: prime
+ * Run type: BAT
+ *
+ * SUBTEST: basic-write
+ * Description: Examine write access path.
+ * Feature: gtt, prime
+ * Run type: BAT
+ *
+ * SUBTEST: busy
+ * Description: Examine busy check of polling for vgem fence.
+ * Feature: prime
+ * Run type: FULL
+ *
+ * SUBTEST: coherency-blt
+ * Description: Examine blitter access path WC coherency.
+ * Feature: prime
+ * Run type: FULL
+ *
+ * SUBTEST: coherency-gtt
+ * Description: Examine concurrent access of vgem bo.
+ * Feature: gtt, prime
+ * Run type: FULL
+ *
+ * SUBTEST: fence-flip-hang
+ * Description: Examine vgem bo front/back flip fencing with a pending gpu hang.
+ * Feature: blacklist, prime, synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: fence-read-hang
+ * Description: Examine read access path fencing with a pending gpu hang.
+ * Feature: blacklist, prime, synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: fence-wait
+ * Description: Examine basic dma-buf fence interop.
+ * Feature: prime, synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: fence-write-hang
+ * Description: Examine write access path fencing with a pending gpu hang.
+ * Feature: blacklist, prime, synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: shrink
+ * Description: Examine link establishment between shrinker and vgem bo.
+ * Feature: prime
+ * Run type: FULL
+ *
+ * SUBTEST: sync
+ * Description: Examine sync on vgem fence.
+ * Feature: prime
+ * Run type: FULL
+ *
+ * SUBTEST: wait
+ * Description: Examine wait on vgem fence.
+ * Feature: prime
+ * Run type: FULL
+ */
 
 IGT_TEST_DESCRIPTION("Basic check of polling for prime/vgem fences.");
 
diff --git a/tests/sw_sync.c b/tests/sw_sync.c
index cbd773fcb97c..e626cd14cd28 100644
--- a/tests/sw_sync.c
+++ b/tests/sw_sync.c
@@ -38,6 +38,48 @@
 
 #include "sw_sync.h"
 
+/**
+ * TEST: sw sync
+ * Description: Test SW Sync Framework
+ * Feature: synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: alloc_fence
+ *
+ * SUBTEST: alloc_fence_invalid_timeline
+ *
+ * SUBTEST: alloc_merge_fence
+ *
+ * SUBTEST: alloc_timeline
+ *
+ * SUBTEST: sync_busy
+ *
+ * SUBTEST: sync_busy_fork
+ *
+ * SUBTEST: sync_busy_fork_unixsocket
+ *
+ * SUBTEST: sync_expired_merge
+ *
+ * SUBTEST: sync_merge
+ *
+ * SUBTEST: sync_merge_invalid
+ *
+ * SUBTEST: sync_merge_same
+ *
+ * SUBTEST: sync_multi_consumer
+ *
+ * SUBTEST: sync_multi_consumer_producer
+ *
+ * SUBTEST: sync_multi_producer_single_consumer
+ *
+ * SUBTEST: sync_multi_timeline_wait
+ *
+ * SUBTEST: sync_random_merge
+ *
+ * SUBTEST: timeline_closed
+ *
+ * SUBTEST: timeline_closed_signaled
+ */
 
 IGT_TEST_DESCRIPTION("Test SW Sync Framework");
 
diff --git a/tests/syncobj_basic.c b/tests/syncobj_basic.c
index 6e20c3411a87..8d98137e7bd6 100644
--- a/tests/syncobj_basic.c
+++ b/tests/syncobj_basic.c
@@ -26,6 +26,36 @@
 #include <unistd.h>
 #include <sys/ioctl.h>
 #include "drm.h"
+/**
+ * TEST: syncobj basic
+ * Description: Basic check for drm sync objects.
+ * Feature: synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: bad-create-flags
+ *
+ * SUBTEST: bad-destroy
+ *
+ * SUBTEST: bad-destroy-pad
+ *
+ * SUBTEST: bad-fd-to-handle
+ *
+ * SUBTEST: bad-flags-fd-to-handle
+ *
+ * SUBTEST: bad-flags-handle-to-fd
+ *
+ * SUBTEST: bad-handle-to-fd
+ *
+ * SUBTEST: bad-pad-fd-to-handle
+ *
+ * SUBTEST: bad-pad-handle-to-fd
+ *
+ * SUBTEST: create-signaled
+ *
+ * SUBTEST: illegal-fd-to-handle
+ *
+ * SUBTEST: test-valid-cycle
+ */
 
 IGT_TEST_DESCRIPTION("Basic check for drm sync objects.");
 
diff --git a/tests/syncobj_timeline.c b/tests/syncobj_timeline.c
index 7f5ff6f6cad6..65282d1964ee 100644
--- a/tests/syncobj_timeline.c
+++ b/tests/syncobj_timeline.c
@@ -30,6 +30,387 @@
 #include <pthread.h>
 #include <signal.h>
 #include "drm.h"
+/**
+ * TEST: syncobj timeline
+ * Description: Tests for the drm timeline sync object API
+ * Feature: synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: 32bits-limit
+ * Description: Verifies that signaling around the int32_t limit. For compatibility reason, the handling
+ *   of seqnos in the dma-fences can consider a seqnoA is prior seqnoB even though seqnoA > seqnoB.
+ *
+ * SUBTEST: device-signal-unordered
+ * Description: Verifies that a device signaling fences out of order on the timeline still increments the
+ *   timeline monotonically and that waits work properly.
+ *
+ * SUBTEST: device-submit-unordered
+ * Description: Verifies that submitting out of order doesn't break the timeline.
+ *
+ * SUBTEST: etime-multi-wait-all-for-submit-available-unsubmitted
+ * Description: Verifies waiting on a list of timeline syncobjs
+ *
+ * SUBTEST: etime-multi-wait-all-for-submit-available-unsubmitted-signaled
+ * Description: Verifies waiting on a list of timeline syncobjs
+ *
+ * SUBTEST: etime-multi-wait-all-for-submit-available-unsubmitted-submitted
+ * Description: Verifies waiting on a list of timeline syncobjs
+ *
+ * SUBTEST: etime-multi-wait-all-for-submit-submitted
+ * Description: Verifies waiting on a list of timeline syncobjs
+ *
+ * SUBTEST: etime-multi-wait-all-for-submit-submitted-signaled
+ * Description: Verifies waiting on a list of timeline syncobjs
+ *
+ * SUBTEST: etime-multi-wait-all-for-submit-unsubmitted
+ * Description: Verifies waiting on a list of timeline syncobjs
+ *
+ * SUBTEST: etime-multi-wait-all-for-submit-unsubmitted-signaled
+ * Description: Verifies waiting on a list of timeline syncobjs
+ *
+ * SUBTEST: etime-multi-wait-all-for-submit-unsubmitted-submitted
+ * Description: Verifies waiting on a list of timeline syncobjs
+ *
+ * SUBTEST: etime-multi-wait-all-for-submit-unsubmitted-submitted-signaled
+ * Description: Verifies waiting on a list of timeline syncobjs
+ *
+ * SUBTEST: etime-multi-wait-all-submitted
+ * Description: Verifies waiting on a list of timeline syncobjs
+ *
+ * SUBTEST: etime-multi-wait-all-submitted-signaled
+ * Description: Verifies waiting on a list of timeline syncobjs
+ *
+ * SUBTEST: etime-multi-wait-for-submit-available-unsubmitted
+ * Description: Verifies waiting on a list of timeline syncobjs
+ *
+ * SUBTEST: etime-multi-wait-for-submit-submitted
+ * Description: Verifies waiting on a list of timeline syncobjs
+ *
+ * SUBTEST: etime-multi-wait-for-submit-unsubmitted
+ * Description: Verifies waiting on a list of timeline syncobjs
+ *
+ * SUBTEST: etime-multi-wait-for-submit-unsubmitted-submitted
+ * Description: Verifies waiting on a list of timeline syncobjs
+ *
+ * SUBTEST: etime-multi-wait-submitted
+ * Description: Verifies waiting on a list of timeline syncobjs
+ *
+ * SUBTEST: etime-single-wait-all-for-submit-available-unsubmitted
+ * Description: Verifies wait behavior on a single timeline syncobj
+ *
+ * SUBTEST: etime-single-wait-all-for-submit-submitted
+ * Description: Verifies wait behavior on a single timeline syncobj
+ *
+ * SUBTEST: etime-single-wait-all-for-submit-unsubmitted
+ * Description: Verifies wait behavior on a single timeline syncobj
+ *
+ * SUBTEST: etime-single-wait-all-submitted
+ * Description: Verifies wait behavior on a single timeline syncobj
+ *
+ * SUBTEST: etime-single-wait-for-submit-available-unsubmitted
+ * Description: Verifies wait behavior on a single timeline syncobj
+ *
+ * SUBTEST: etime-single-wait-for-submit-submitted
+ * Description: Verifies wait behavior on a single timeline syncobj
+ *
+ * SUBTEST: etime-single-wait-for-submit-unsubmitted
+ * Description: Verifies wait behavior on a single timeline syncobj
+ *
+ * SUBTEST: etime-single-wait-submitted
+ * Description: Verifies wait behavior on a single timeline syncobj
+ *
+ * SUBTEST: host-signal-ordered
+ * Description: Verifies that the host signaling fences out of order on the timeline still increments the
+ *   timeline monotonically and that waits work properly.
+ *
+ * SUBTEST: host-signal-points
+ * Description: Verifies that as we signal points from the host, the syncobj timeline value increments and
+ *   that waits for submits/signals works properly.
+ *
+ * SUBTEST: invalid-multi-wait-all-available-unsubmitted
+ * Description: Verifies waiting on a list of timeline syncobjs
+ *
+ * SUBTEST: invalid-multi-wait-all-available-unsubmitted-signaled
+ * Description: Verifies waiting on a list of timeline syncobjs
+ *
+ * SUBTEST: invalid-multi-wait-all-available-unsubmitted-submitted
+ * Description: Verifies waiting on a list of timeline syncobjs
+ *
+ * SUBTEST: invalid-multi-wait-all-available-unsubmitted-submitted-signaled
+ * Description: Verifies waiting on a list of timeline syncobjs
+ *
+ * SUBTEST: invalid-multi-wait-all-unsubmitted
+ * Description: Verifies waiting on a list of timeline syncobjs
+ *
+ * SUBTEST: invalid-multi-wait-all-unsubmitted-signaled
+ * Description: Verifies waiting on a list of timeline syncobjs
+ *
+ * SUBTEST: invalid-multi-wait-all-unsubmitted-submitted
+ * Description: Verifies waiting on a list of timeline syncobjs
+ *
+ * SUBTEST: invalid-multi-wait-all-unsubmitted-submitted-signaled
+ * Description: Verifies waiting on a list of timeline syncobjs
+ *
+ * SUBTEST: invalid-multi-wait-available-unsubmitted
+ * Description: Verifies waiting on a list of timeline syncobjs
+ *
+ * SUBTEST: invalid-multi-wait-available-unsubmitted-signaled
+ * Description: Verifies waiting on a list of timeline syncobjs
+ *
+ * SUBTEST: invalid-multi-wait-available-unsubmitted-submitted
+ * Description: Verifies waiting on a list of timeline syncobjs
+ *
+ * SUBTEST: invalid-multi-wait-available-unsubmitted-submitted-signaled
+ * Description: Verifies waiting on a list of timeline syncobjs
+ *
+ * SUBTEST: invalid-multi-wait-unsubmitted
+ * Description: Verifies waiting on a list of timeline syncobjs
+ *
+ * SUBTEST: invalid-multi-wait-unsubmitted-signaled
+ * Description: Verifies waiting on a list of timeline syncobjs
+ *
+ * SUBTEST: invalid-multi-wait-unsubmitted-submitted
+ * Description: Verifies waiting on a list of timeline syncobjs
+ *
+ * SUBTEST: invalid-multi-wait-unsubmitted-submitted-signaled
+ * Description: Verifies waiting on a list of timeline syncobjs
+ *
+ * SUBTEST: invalid-query-bad-pad
+ * Description: Verify that querying a timeline syncobj with an invalid
+ *   drm_syncobj_timeline_array::flags field is rejected
+ *
+ * SUBTEST: invalid-query-illegal-handle
+ * Description: Verifies that querying an invalid syncobj handle is rejected
+ *
+ * SUBTEST: invalid-query-one-illegal-handle
+ * Description: Verifies that querying a list of invalid syncobj handle including an invalid one is rejected
+ *
+ * SUBTEST: invalid-query-zero-handles
+ * Description: Verifies that querying an empty list of syncobj handles is rejected
+ *
+ * SUBTEST: invalid-signal-bad-pad
+ * Description: Verifies that an invalid value in drm_syncobj_timeline_array.flags is rejected
+ *
+ * SUBTEST: invalid-signal-illegal-handle
+ * Description: Verify that signaling an invalid syncobj handle is rejected
+ *
+ * SUBTEST: invalid-signal-illegal-point
+ *
+ * SUBTEST: invalid-signal-one-illegal-handle
+ * Description: Verify that an invalid syncobj handle in drm_syncobj_timeline_array is rejected for
+ *   signaling
+ *
+ * SUBTEST: invalid-signal-zero-handles
+ * Description: Verify that signaling an empty list of syncobj handles is rejected
+ *
+ * SUBTEST: invalid-single-wait-all-available-unsubmitted
+ * Description: Verifies wait behavior on a single timeline syncobj
+ *
+ * SUBTEST: invalid-single-wait-all-unsubmitted
+ * Description: Verifies wait behavior on a single timeline syncobj
+ *
+ * SUBTEST: invalid-single-wait-available-unsubmitted
+ * Description: Verifies wait behavior on a single timeline syncobj
+ *
+ * SUBTEST: invalid-single-wait-unsubmitted
+ * Description: Verifies wait behavior on a single timeline syncobj
+ *
+ * SUBTEST: invalid-transfer-bad-pad
+ * Description: Verifies that invalid drm_syncobj_transfer::pad field value is rejected
+ *
+ * SUBTEST: invalid-transfer-illegal-handle
+ * Description: Verifies that an invalid syncobj handle is rejected in drm_syncobj_transfer
+ *
+ * SUBTEST: invalid-transfer-non-existent-point
+ * Description: Verifies that transfering a point from a syncobj timeline is to another point in the same
+ *   timeline works
+ *
+ * SUBTEST: invalid-wait-bad-flags
+ * Description: Verifies that an invalid value in drm_syncobj_timeline_wait::flags is rejected
+ *
+ * SUBTEST: invalid-wait-illegal-handle
+ * Description: Verifies that waiting on an invalid syncobj handle is rejected
+ *
+ * SUBTEST: invalid-wait-zero-handles
+ * Description: Verifies that waiting on an empty list of invalid syncobj handles is rejected
+ *
+ * SUBTEST: multi-wait-all-available-signaled
+ * Description: Verifies waiting on a list of timeline syncobjs
+ *
+ * SUBTEST: multi-wait-all-available-submitted
+ * Description: Verifies waiting on a list of timeline syncobjs
+ *
+ * SUBTEST: multi-wait-all-available-submitted-signaled
+ * Description: Verifies waiting on a list of timeline syncobjs
+ *
+ * SUBTEST: multi-wait-all-for-submit-available-signaled
+ * Description: Verifies waiting on a list of timeline syncobjs
+ *
+ * SUBTEST: multi-wait-all-for-submit-available-submitted
+ * Description: Verifies waiting on a list of timeline syncobjs
+ *
+ * SUBTEST: multi-wait-all-for-submit-available-submitted-signaled
+ * Description: Verifies waiting on a list of timeline syncobjs
+ *
+ * SUBTEST: multi-wait-all-for-submit-signaled
+ * Description: Verifies waiting on a list of timeline syncobjs
+ *
+ * SUBTEST: multi-wait-all-signaled
+ * Description: Verifies waiting on a list of timeline syncobjs
+ *
+ * SUBTEST: multi-wait-available-signaled
+ * Description: Verifies waiting on a list of timeline syncobjs
+ *
+ * SUBTEST: multi-wait-available-submitted
+ * Description: Verifies waiting on a list of timeline syncobjs
+ *
+ * SUBTEST: multi-wait-available-submitted-signaled
+ * Description: Verifies waiting on a list of timeline syncobjs
+ *
+ * SUBTEST: multi-wait-for-submit-available-signaled
+ * Description: Verifies waiting on a list of timeline syncobjs
+ *
+ * SUBTEST: multi-wait-for-submit-available-submitted
+ * Description: Verifies waiting on a list of timeline syncobjs
+ *
+ * SUBTEST: multi-wait-for-submit-available-submitted-signaled
+ * Description: Verifies waiting on a list of timeline syncobjs
+ *
+ * SUBTEST: multi-wait-for-submit-available-unsubmitted-signaled
+ * Description: Verifies waiting on a list of timeline syncobjs
+ *
+ * SUBTEST: multi-wait-for-submit-available-unsubmitted-submitted
+ * Description: Verifies waiting on a list of timeline syncobjs
+ *
+ * SUBTEST: multi-wait-for-submit-available-unsubmitted-submitted-signaled
+ * Description: Verifies waiting on a list of timeline syncobjs
+ *
+ * SUBTEST: multi-wait-for-submit-signaled
+ * Description: Verifies waiting on a list of timeline syncobjs
+ *
+ * SUBTEST: multi-wait-for-submit-submitted-signaled
+ * Description: Verifies waiting on a list of timeline syncobjs
+ *
+ * SUBTEST: multi-wait-for-submit-unsubmitted-signaled
+ * Description: Verifies waiting on a list of timeline syncobjs
+ *
+ * SUBTEST: multi-wait-for-submit-unsubmitted-submitted-signaled
+ * Description: Verifies waiting on a list of timeline syncobjs
+ *
+ * SUBTEST: multi-wait-signaled
+ * Description: Verifies waiting on a list of timeline syncobjs
+ *
+ * SUBTEST: multi-wait-submitted-signaled
+ * Description: Verifies waiting on a list of timeline syncobjs
+ *
+ * SUBTEST: reset-during-wait-for-submit
+ * Description: Verifies behavior of a reset operation on timeline syncobj while wait operation is ongoing
+ *
+ * SUBTEST: reset-multiple-signaled
+ * Description: Verifies behavior of a reset operation on a list of signaled timeline syncobjs
+ *
+ * SUBTEST: reset-signaled
+ * Description: Verifies behavior of a reset operation on a signaled timeline syncobj
+ *
+ * SUBTEST: reset-unsignaled
+ * Description: Verifies behavior of a reset operation on an unsignaled timeline syncobj
+ *
+ * SUBTEST: signal
+ * Description: Verifies basic signaling of a timeline syncobj
+ *
+ * SUBTEST: signal-array
+ * Description: Verifies the signaling of a list of timeline syncobj
+ *
+ * SUBTEST: signal-point-0
+ * Description: Verifies that signaling point 0 of a timline syncobj works with both timeline & legacy wait
+ *   operations
+ *
+ * SUBTEST: single-wait-all-available-signaled
+ * Description: Verifies wait behavior on a single timeline syncobj
+ *
+ * SUBTEST: single-wait-all-available-submitted
+ * Description: Verifies wait behavior on a single timeline syncobj
+ *
+ * SUBTEST: single-wait-all-for-submit-available-signaled
+ * Description: Verifies wait behavior on a single timeline syncobj
+ *
+ * SUBTEST: single-wait-all-for-submit-available-submitted
+ * Description: Verifies wait behavior on a single timeline syncobj
+ *
+ * SUBTEST: single-wait-all-for-submit-signaled
+ * Description: Verifies wait behavior on a single timeline syncobj
+ *
+ * SUBTEST: single-wait-all-signaled
+ * Description: Verifies wait behavior on a single timeline syncobj
+ *
+ * SUBTEST: single-wait-available-signaled
+ * Description: Verifies wait behavior on a single timeline syncobj
+ *
+ * SUBTEST: single-wait-available-submitted
+ * Description: Verifies wait behavior on a single timeline syncobj
+ *
+ * SUBTEST: single-wait-for-submit-available-signaled
+ * Description: Verifies wait behavior on a single timeline syncobj
+ *
+ * SUBTEST: single-wait-for-submit-available-submitted
+ * Description: Verifies wait behavior on a single timeline syncobj
+ *
+ * SUBTEST: single-wait-for-submit-signaled
+ * Description: Verifies wait behavior on a single timeline syncobj
+ *
+ * SUBTEST: single-wait-signaled
+ * Description: Verifies wait behavior on a single timeline syncobj
+ *
+ * SUBTEST: transfer-timeline-point
+ * Description: Verifies that transfering a point from a syncobj timeline is to another point in the same
+ *   timeline works for signal/wait operations
+ *
+ * SUBTEST: wait-all-complex
+ * Description: Verifies timeline syncobj at different signal/operations stages & between different
+ *   threads.
+ *
+ * SUBTEST: wait-all-delayed-signal
+ * Description: Verifies wait behavior on a timeline syncobj with a delayed signal from a different thread
+ *
+ * SUBTEST: wait-all-for-submit-complex
+ * Description: Verifies timeline syncobj at different signal/operations stages & between different
+ *   threads.
+ *
+ * SUBTEST: wait-all-for-submit-delayed-submit
+ * Description: Verifies wait behavior on a timeline syncobj with a delayed signal from a different thread
+ *
+ * SUBTEST: wait-all-for-submit-snapshot
+ * Description: Verifies waiting on a list of timeline syncobjs with different thread for wait/signal
+ *
+ * SUBTEST: wait-all-interrupted
+ * Description: Verifies timeline syncobj waits interaction with signals.
+ *
+ * SUBTEST: wait-all-snapshot
+ * Description: Verifies waiting on a list of timeline syncobjs with different thread for wait/signal
+ *
+ * SUBTEST: wait-any-complex
+ * Description: Verifies timeline syncobj at different signal/operations stages & between different
+ *   threads.
+ *
+ * SUBTEST: wait-any-interrupted
+ * Description: Verifies timeline syncobj waits interaction with signals.
+ *
+ * SUBTEST: wait-any-snapshot
+ * Description: Verifies waiting on a list of timeline syncobjs with different thread for wait/signal
+ *
+ * SUBTEST: wait-delayed-signal
+ * Description: Verifies wait behavior on a timeline syncobj with a delayed signal from a different thread
+ *
+ * SUBTEST: wait-for-submit-complex
+ * Description: Verifies timeline syncobj at different signal/operations stages & between different
+ *   threads.
+ *
+ * SUBTEST: wait-for-submit-delayed-submit
+ * Description: Verifies wait behavior on a timeline syncobj with a delayed signal from a different thread
+ *
+ * SUBTEST: wait-for-submit-snapshot
+ * Description: Verifies waiting on a list of timeline syncobjs with different thread for wait/signal
+ */
 
 IGT_TEST_DESCRIPTION("Tests for the drm timeline sync object API");
 
diff --git a/tests/syncobj_wait.c b/tests/syncobj_wait.c
index 427b6b1192ad..930096f6d10e 100644
--- a/tests/syncobj_wait.c
+++ b/tests/syncobj_wait.c
@@ -30,6 +30,150 @@
 #include <pthread.h>
 #include <signal.h>
 #include "drm.h"
+/**
+ * TEST: syncobj wait
+ * Description: Tests for the drm sync object wait API
+ * Feature: synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: invalid-multi-wait-all-unsubmitted
+ *
+ * SUBTEST: invalid-multi-wait-all-unsubmitted-signaled
+ *
+ * SUBTEST: invalid-multi-wait-all-unsubmitted-submitted
+ *
+ * SUBTEST: invalid-multi-wait-all-unsubmitted-submitted-signaled
+ *
+ * SUBTEST: invalid-multi-wait-unsubmitted
+ *
+ * SUBTEST: invalid-multi-wait-unsubmitted-signaled
+ *
+ * SUBTEST: invalid-multi-wait-unsubmitted-submitted
+ *
+ * SUBTEST: invalid-multi-wait-unsubmitted-submitted-signaled
+ *
+ * SUBTEST: invalid-reset-bad-pad
+ *
+ * SUBTEST: invalid-reset-illegal-handle
+ *
+ * SUBTEST: invalid-reset-one-illegal-handle
+ *
+ * SUBTEST: invalid-reset-zero-handles
+ *
+ * SUBTEST: invalid-signal-bad-pad
+ *
+ * SUBTEST: invalid-signal-illegal-handle
+ *
+ * SUBTEST: invalid-signal-one-illegal-handle
+ *
+ * SUBTEST: invalid-signal-zero-handles
+ *
+ * SUBTEST: invalid-single-wait-all-unsubmitted
+ *
+ * SUBTEST: invalid-single-wait-unsubmitted
+ *
+ * SUBTEST: invalid-wait-bad-flags
+ *
+ * SUBTEST: invalid-wait-illegal-handle
+ *
+ * SUBTEST: invalid-wait-zero-handles
+ *
+ * SUBTEST: multi-wait-all-for-submit-signaled
+ *
+ * SUBTEST: multi-wait-all-for-submit-submitted
+ *
+ * SUBTEST: multi-wait-all-for-submit-submitted-signaled
+ *
+ * SUBTEST: multi-wait-all-for-submit-unsubmitted
+ *
+ * SUBTEST: multi-wait-all-for-submit-unsubmitted-signaled
+ *
+ * SUBTEST: multi-wait-all-for-submit-unsubmitted-submitted
+ *
+ * SUBTEST: multi-wait-all-signaled
+ *
+ * SUBTEST: multi-wait-all-submitted
+ *
+ * SUBTEST: multi-wait-all-submitted-signaled
+ *
+ * SUBTEST: multi-wait-for-submit-signaled
+ *
+ * SUBTEST: multi-wait-for-submit-submitted
+ *
+ * SUBTEST: multi-wait-for-submit-submitted-signaled
+ *
+ * SUBTEST: multi-wait-for-submit-unsubmitted
+ *
+ * SUBTEST: multi-wait-for-submit-unsubmitted-signaled
+ *
+ * SUBTEST: multi-wait-for-submit-unsubmitted-submitted
+ *
+ * SUBTEST: multi-wait-for-submit-unsubmitted-submitted-signaled
+ *
+ * SUBTEST: multi-wait-signaled
+ *
+ * SUBTEST: multi-wait-submitted
+ *
+ * SUBTEST: multi-wait-submitted-signaled
+ *
+ * SUBTEST: reset-during-wait-for-submit
+ *
+ * SUBTEST: reset-multiple-signaled
+ *
+ * SUBTEST: reset-signaled
+ *
+ * SUBTEST: reset-unsignaled
+ *
+ * SUBTEST: signal
+ *
+ * SUBTEST: single-wait-all-for-submit-signaled
+ *
+ * SUBTEST: single-wait-all-for-submit-submitted
+ *
+ * SUBTEST: single-wait-all-for-submit-unsubmitted
+ *
+ * SUBTEST: single-wait-all-signaled
+ *
+ * SUBTEST: single-wait-all-submitted
+ *
+ * SUBTEST: single-wait-for-submit-signaled
+ *
+ * SUBTEST: single-wait-for-submit-submitted
+ *
+ * SUBTEST: single-wait-for-submit-unsubmitted
+ *
+ * SUBTEST: single-wait-signaled
+ *
+ * SUBTEST: single-wait-submitted
+ *
+ * SUBTEST: wait-all-complex
+ *
+ * SUBTEST: wait-all-delayed-signal
+ *
+ * SUBTEST: wait-all-for-submit-complex
+ *
+ * SUBTEST: wait-all-for-submit-delayed-submit
+ *
+ * SUBTEST: wait-all-for-submit-snapshot
+ *
+ * SUBTEST: wait-all-interrupted
+ *
+ * SUBTEST: wait-all-snapshot
+ *
+ * SUBTEST: wait-any-complex
+ *
+ * SUBTEST: wait-any-interrupted
+ *
+ * SUBTEST: wait-any-snapshot
+ *
+ * SUBTEST: wait-delayed-signal
+ *
+ * SUBTEST: wait-for-submit-complex
+ *
+ * SUBTEST: wait-for-submit-delayed-submit
+ *
+ * SUBTEST: wait-for-submit-snapshot
+ */
 
 IGT_TEST_DESCRIPTION("Tests for the drm sync object wait API");
 
diff --git a/tests/vgem_basic.c b/tests/vgem_basic.c
index ada5518d7703..2a5f6242e995 100644
--- a/tests/vgem_basic.c
+++ b/tests/vgem_basic.c
@@ -31,6 +31,90 @@
 #include <sys/poll.h>
 #include <sys/stat.h>
 #include <dirent.h>
+/**
+ * TEST: vgem basic
+ * Description: Basic sanity check of Virtual GEM module (vGEM).
+ *
+ * SUBTEST: bad-fence
+ * Description: Make sure a non-existent fence cannot be signaled.
+ * Feature: vgem
+ * Run type: FULL
+ *
+ * SUBTEST: bad-flag
+ * Description: Make sure a fence cannot be attached and signaled with invalid flags.
+ * Feature: vgem
+ * Run type: FULL
+ *
+ * SUBTEST: bad-handle
+ * Description: Make sure a fence cannot be attached to a invalid handle.
+ * Feature: vgem
+ * Run type: FULL
+ *
+ * SUBTEST: bad-pad
+ * Description: Make sure a non-zero pad is rejected.
+ * Feature: vgem
+ * Run type: FULL
+ *
+ * SUBTEST: busy-fence
+ * Description: Make sure a conflicting fence cannot be attached.
+ * Feature: vgem
+ * Run type: FULL
+ *
+ * SUBTEST: create
+ * Description: Check the basic working of vgem_create ioctl.
+ * Feature: vgem
+ * Run type: BAT
+ *
+ * SUBTEST: debugfs
+ * Description: Check the basic access to debugfs and also try to read entries in the directory.
+ * Feature: vgem
+ * Run type: BAT
+ *
+ * SUBTEST: dmabuf-export
+ * Description: Check whether it can export/import the vgem handle using prime.
+ * Feature: prime, vgem
+ * Run type: BAT
+ *
+ * SUBTEST: dmabuf-fence
+ * Description: Check the working of dma-buf fence interop.
+ * Feature: prime, vgem
+ * Run type: BAT
+ *
+ * SUBTEST: dmabuf-fence-before
+ * Description: Attach a fence before exporting a vgem handle and check the working of fence.
+ * Feature: prime, vgem
+ * Run type: BAT
+ *
+ * SUBTEST: dmabuf-mmap
+ * Description: Export the vgem handle along with RDWR capabilities using prime and check if it can be mmaped.
+ * Feature: prime, vgem
+ * Run type: BAT
+ *
+ * SUBTEST: mmap
+ * Description: Create a vgem handle and check if it can be mmaped.
+ * Feature: vgem
+ * Run type: BAT
+ *
+ * SUBTEST: second-client
+ * Description: Check whether it can open multiple clients.
+ * Feature: vgem
+ * Run type: BAT
+ *
+ * SUBTEST: setversion
+ * Description: Check the working of SET_VERSION ioctl.
+ * Feature: vgem
+ * Run type: BAT
+ *
+ * SUBTEST: sysfs
+ * Description: Check the basic access to sysfs and also try to read entries in the directory.
+ * Feature: vgem
+ * Run type: BAT
+ *
+ * SUBTEST: unload
+ * Description: Basic test for handling of module unload.
+ * Feature: vgem
+ * Run type: BAT
+ */
 
 IGT_TEST_DESCRIPTION("Basic sanity check of Virtual GEM module (vGEM).");
 
diff --git a/tests/vgem_slow.c b/tests/vgem_slow.c
index 58b09e421e65..d2a7effff115 100644
--- a/tests/vgem_slow.c
+++ b/tests/vgem_slow.c
@@ -30,6 +30,14 @@
 #include <sys/poll.h>
 #include <sys/stat.h>
 #include <dirent.h>
+/**
+ * TEST: vgem slow
+ * Description: Extended sanity check of Virtual GEM module (vGEM).
+ * Feature: vgem
+ * Run type: FULL
+ *
+ * SUBTEST: nohang
+ */
 
 IGT_TEST_DESCRIPTION("Extended sanity check of Virtual GEM module (vGEM).");
 
-- 
2.40.1

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [igt-dev] [PATCH i-g-t 4/4] tests/i915: Enhance test documentation
  2023-05-05 12:46 [igt-dev] [PATCH i-g-t 0/4] Better document i915 tests Mauro Carvalho Chehab
                   ` (2 preceding siblings ...)
  2023-05-05 12:46 ` [igt-dev] [PATCH i-g-t 3/4] tests/i915: Improve test documentation Mauro Carvalho Chehab
@ 2023-05-05 12:46 ` Mauro Carvalho Chehab
  2023-05-05 13:39 ` [igt-dev] ✓ Fi.CI.BAT: success for Better document i915 tests Patchwork
  2023-05-06  3:06 ` [igt-dev] ✗ Fi.CI.IGT: failure " Patchwork
  5 siblings, 0 replies; 7+ messages in thread
From: Mauro Carvalho Chehab @ 2023-05-05 12:46 UTC (permalink / raw)
  To: igt-dev

From: Mauro Carvalho Chehab <mchehab@kernel.org>

Merge data from some ancillary documentation to the i915
test descriptions.

This patch was auto-generated via script.

Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
---
 tests/core_auth.c                        |   4 +
 tests/core_getclient.c                   |   4 +
 tests/core_getstats.c                    |   4 +
 tests/core_getversion.c                  |   4 +
 tests/core_hotunplug.c                   |  16 +-
 tests/core_setmaster.c                   |   4 +
 tests/core_setmaster_vs_auth.c           |   5 +
 tests/debugfs_test.c                     |  17 ++-
 tests/device_reset.c                     |   4 +
 tests/dmabuf.c                           |   2 +-
 tests/dumb_buffer.c                      |  19 +++
 tests/i915/api_intel_allocator.c         |  41 ++++-
 tests/i915/api_intel_bb.c                |  48 ++++++
 tests/i915/gem_bad_reloc.c               |   6 +-
 tests/i915/gem_barrier_race.c            |   6 +-
 tests/i915/gem_basic.c                   |  15 +-
 tests/i915/gem_blits.c                   |   4 +
 tests/i915/gem_busy.c                    |  16 +-
 tests/i915/gem_caching.c                 |   8 +
 tests/i915/gem_close.c                   |   4 +
 tests/i915/gem_close_race.c              |  17 ++-
 tests/i915/gem_create.c                  |  32 +++-
 tests/i915/gem_cs_tlb.c                  |   4 +
 tests/i915/gem_ctx_bad_destroy.c         |   4 +
 tests/i915/gem_ctx_create.c              |  24 ++-
 tests/i915/gem_ctx_engines.c             |   9 ++
 tests/i915/gem_ctx_exec.c                |  20 +++
 tests/i915/gem_ctx_freq.c                |   4 +
 tests/i915/gem_ctx_isolation.c           |  32 +++-
 tests/i915/gem_ctx_param.c               |  70 ++++++++-
 tests/i915/gem_ctx_persistence.c         |  85 +++++++++++
 tests/i915/gem_ctx_shared.c              |  17 +++
 tests/i915/gem_eio.c                     |  94 +++++++++++-
 tests/i915/gem_exec_alignment.c          |   9 ++
 tests/i915/gem_exec_async.c              |   4 +
 tests/i915/gem_exec_await.c              |   7 +
 tests/i915/gem_exec_balancer.c           |  77 ++++++++++
 tests/i915/gem_exec_basic.c              |  10 +-
 tests/i915/gem_exec_big.c                |   4 +
 tests/i915/gem_exec_capture.c            |  13 +-
 tests/i915/gem_exec_create.c             |  26 +++-
 tests/i915/gem_exec_endless.c            |   4 +
 tests/i915/gem_exec_fence.c              | 173 ++++++++++++++++++---
 tests/i915/gem_exec_gttfill.c            |  14 +-
 tests/i915/gem_exec_nop.c                |   8 +
 tests/i915/gem_exec_parallel.c           |  20 ++-
 tests/i915/gem_exec_params.c             |  22 +++
 tests/i915/gem_exec_schedule.c           | 154 +++++++++++++++++++
 tests/i915/gem_exec_store.c              |  14 +-
 tests/i915/gem_exec_whisper.c            |  67 +++++++++
 tests/i915/gem_exercise_blt.c            |   7 +-
 tests/i915/gem_flink_basic.c             |  22 ++-
 tests/i915/gem_flink_race.c              |   7 +
 tests/i915/gem_gpgpu_fill.c              |   4 +
 tests/i915/gem_gtt_cpu_tlb.c             |   3 +-
 tests/i915/gem_huc_copy.c                |   3 +-
 tests/i915/gem_linear_blits.c            |   8 +
 tests/i915/gem_lmem_evict.c              |   1 +
 tests/i915/gem_lmem_swapping.c           |  34 ++++-
 tests/i915/gem_madvise.c                 |  12 +-
 tests/i915/gem_mmap.c                    |  18 ++-
 tests/i915/gem_mmap_gtt.c                | 114 +++++++++-----
 tests/i915/gem_mmap_offset.c             |  40 +++++
 tests/i915/gem_partial_pwrite_pread.c    |  30 ++--
 tests/i915/gem_pipe_control_store_loop.c |   5 +
 tests/i915/gem_ppgtt.c                   |   8 +
 tests/i915/gem_pwrite_snooped.c          |   3 +-
 tests/i915/gem_render_tiled_blits.c      |   9 +-
 tests/i915/gem_request_retire.c          |   4 +
 tests/i915/gem_ringfill.c                |  34 ++++-
 tests/i915/gem_shrink.c                  |   4 +
 tests/i915/gem_softpin.c                 | 102 ++++++++++++-
 tests/i915/gem_spin_batch.c              |  26 ++++
 tests/i915/gem_sync.c                    |  37 ++++-
 tests/i915/gem_tiled_fence_blits.c       |   3 +-
 tests/i915/gem_tiled_pread_basic.c       |   3 +-
 tests/i915/gem_tiled_pread_pwrite.c      |   3 +-
 tests/i915/gem_tiled_wb.c                |   6 +-
 tests/i915/gem_tiled_wc.c                |   3 +-
 tests/i915/gem_tiling_max_stride.c       |   3 +-
 tests/i915/gem_unref_active_buffers.c    |   4 +
 tests/i915/gem_userptr_blits.c           |  22 +++
 tests/i915/gem_vm_create.c               |  20 +++
 tests/i915/gem_wait.c                    |  22 +++
 tests/i915/gem_workarounds.c             |  37 ++++-
 tests/i915/i915_getparams_basic.c        |   7 +
 tests/i915/i915_hangman.c                |  56 ++++++-
 tests/i915/i915_hwmon.c                  |   1 +
 tests/i915/i915_module_load.c            |  12 +-
 tests/i915/i915_pciid.c                  |   5 +
 tests/i915/i915_pipe_stress.c            |   9 +-
 tests/i915/i915_pm_dc.c                  |  12 +-
 tests/i915/i915_pm_freq_mult.c           |   3 +-
 tests/i915/i915_pm_rpm.c                 |   7 +-
 tests/i915/i915_pm_rps.c                 |  12 +-
 tests/i915/i915_power.c                  |   3 +
 tests/i915/i915_query.c                  |  39 ++++-
 tests/i915/i915_suspend.c                |  34 ++++-
 tests/i915/perf.c                        | 184 +++++++++++++++++++----
 tests/i915/perf_pmu.c                    | 180 +++++++++++++++++-----
 tests/i915/sysfs_defaults.c              |   5 +
 tests/i915/sysfs_heartbeat_interval.c    |   6 +
 tests/i915/sysfs_preempt_timeout.c       |   5 +
 tests/i915/sysfs_timeslice_duration.c    |   9 ++
 tests/prime_busy.c                       |   9 ++
 tests/prime_mmap.c                       |   4 +
 tests/prime_mmap_coherency.c             |   9 +-
 tests/prime_self_import.c                |  15 +-
 tests/prime_vgem.c                       |  32 ++++
 tests/sw_sync.c                          |   4 +
 tests/syncobj_basic.c                    |   4 +
 tests/syncobj_timeline.c                 |  43 ++++--
 tests/syncobj_wait.c                     | 140 +++++++++++++++++
 tests/vgem_basic.c                       |  27 +++-
 tests/vgem_slow.c                        |   5 +
 115 files changed, 2545 insertions(+), 266 deletions(-)

diff --git a/tests/core_auth.c b/tests/core_auth.c
index ee7fbaabfa92..ed736e1ae39f 100644
--- a/tests/core_auth.c
+++ b/tests/core_auth.c
@@ -44,8 +44,12 @@
 #include "drm.h"
 /**
  * TEST: core auth
+ * Category: Desktop client
  * Description: Call drmGetMagic() and drmAuthMagic() and see if it behaves.
  * Feature: core
+ * Functionality: permission management for clients
+ * Sub-category: DRM
+ * Test category: GEM_Legacy
  *
  * SUBTEST: basic-auth
  * Description: Test magic numbers for master and slave.
diff --git a/tests/core_getclient.c b/tests/core_getclient.c
index 1ab56e9f304c..993801ead5a0 100644
--- a/tests/core_getclient.c
+++ b/tests/core_getclient.c
@@ -33,9 +33,13 @@
 
 /**
  * TEST: core getclient
+ * Category: Desktop client
  * Description: Tests the DRM_IOCTL_GET_CLIENT ioctl.
  * Feature: core
+ * Functionality: permission management for clients
  * Run type: FULL
+ * Sub-category: DRM
+ * Test category: GEM_Legacy
  *
  * SUBTEST:
  */
diff --git a/tests/core_getstats.c b/tests/core_getstats.c
index f2b1abac738e..fef12258356e 100644
--- a/tests/core_getstats.c
+++ b/tests/core_getstats.c
@@ -34,9 +34,13 @@
 
 /**
  * TEST: core getstats
+ * Category: Desktop client
  * Description: Tests the DRM_IOCTL_GET_STATS ioctl.
  * Feature: core
+ * Functionality: permission management for clients
  * Run type: FULL
+ * Sub-category: DRM
+ * Test category: GEM_Legacy
  *
  * SUBTEST:
  */
diff --git a/tests/core_getversion.c b/tests/core_getversion.c
index ae6fc8f8d7d9..bd74575c8617 100644
--- a/tests/core_getversion.c
+++ b/tests/core_getversion.c
@@ -30,9 +30,13 @@
 #include <sys/ioctl.h>
 /**
  * TEST: core getversion
+ * Category: Desktop client
  * Description: Tests the DRM_IOCTL_GET_VERSION ioctl and libdrm's drmGetVersion() interface to it.
  * Feature: core
+ * Functionality: permission management for clients
  * Run type: FULL
+ * Sub-category: DRM
+ * Test category: SysMan
  *
  * SUBTEST:
  */
diff --git a/tests/core_hotunplug.c b/tests/core_hotunplug.c
index f447e3b48af4..eeb86c2f0e88 100644
--- a/tests/core_hotunplug.c
+++ b/tests/core_hotunplug.c
@@ -41,17 +41,25 @@
 #include "sw_sync.h"
 /**
  * TEST: core hotunplug
+ * Category: Desktop client
  * Description: Examine behavior of a driver on device hot unplug
  * Feature: SMI, core
  *
  * SUBTEST: hotrebind
- * Description: Check if the driver can be cleanly rebound to a device with a still open hot unbound driver
+ * Description:
+ *   Check if the driver can be cleanly rebound to a device with a still open hot unbound driver
  *   instance
+ * Functionality: Check if a hot unbound driver instance still open after hot rebind can be cleanly released.
  * Run type: FULL
+ * Test category: SysMan
  *
  * SUBTEST: hotrebind-lateclose
- * Description: Check if a hot unbound driver instance still open after hot rebind can be cleanly released
+ * Description:
+ *   Check if a hot unbound driver instance still open after hot rebind can be cleanly released.
+ *   Buffer is created only in lmem, created_bytes is being checked after creating and deleting buffer.
+ * Functionality: Check if the driver can be cleanly unbound from an open device, then released and rebound.
  * Run type: FULL
+ * Test category: SysMan
  *
  * SUBTEST: hotreplug
  * Description: Check if a hot unplugged and still open device can be cleanly restored
@@ -63,7 +71,9 @@
  *
  * SUBTEST: hotunbind-rebind
  * Description: Check if the driver can be cleanly unbound from an open device, then released and rebound
+ * Functionality: Check if the driver can be cleanly rebound to a device with a still open hot unbound driver instance.
  * Run type: FULL
+ * Test category: SysMan
  *
  * SUBTEST: hotunplug-rescan
  * Description: Check if an open device can be cleanly unplugged, then released and restored
@@ -71,7 +81,9 @@
  *
  * SUBTEST: unbind-rebind
  * Description: Check if the driver can be cleanly unbound from a device believed to be closed, then rebound
+ * Functionality: Check if the driver can be cleanly unbound from an open device, then released and rebound.
  * Run type: BAT
+ * Test category: GEM_Legacy
  *
  * SUBTEST: unplug-rescan
  * Description: Check if a device believed to be closed can be cleanly unplugged, then restored
diff --git a/tests/core_setmaster.c b/tests/core_setmaster.c
index 95a131a4d3c9..621bc24696a8 100644
--- a/tests/core_setmaster.c
+++ b/tests/core_setmaster.c
@@ -40,9 +40,13 @@
 #include <sys/stat.h>
 /**
  * TEST: core setmaster
+ * Category: Desktop client
  * Description: Check that Drop/SetMaster behaves correctly wrt root/user access
  * Feature: core
+ * Functionality: permission management for clients
  * Run type: FULL
+ * Sub-category: DRM
+ * Test category: GEM_Legacy
  *
  * SUBTEST: master-drop-set-root
  * Description: Ensure that root can Set/DropMaster
diff --git a/tests/core_setmaster_vs_auth.c b/tests/core_setmaster_vs_auth.c
index 37bb378ab011..76f567b9cfd3 100644
--- a/tests/core_setmaster_vs_auth.c
+++ b/tests/core_setmaster_vs_auth.c
@@ -42,11 +42,16 @@
 #include "igt_device.h"
 /**
  * TEST: core setmaster vs auth
+ * Category: Infrastructure
  * Description: Check that drop/setMaster correctly transfer master state
  * Feature: core
+ * Functionality: debugfs entries
  * Run type: FULL
+ * Sub-category: i915
+ * Test category: GEM_Legacy
  *
  * SUBTEST:
+ * Description: validating debugfs entries
  */
 
 IGT_TEST_DESCRIPTION("Check that drop/setMaster correctly transfer master "
diff --git a/tests/debugfs_test.c b/tests/debugfs_test.c
index 39b001671bcc..eea9fea87db8 100644
--- a/tests/debugfs_test.c
+++ b/tests/debugfs_test.c
@@ -33,14 +33,22 @@
  * TEST: debugfs test
  * Description: Read entries from debugfs, hwmon and sysfs paths.
  * Feature: core
+ * Test category: GEM_Legacy
  *
  * SUBTEST: basic-hwmon
+ * Category: Infrastructure
  * Description: Read all entries from hwmon path
+ * Functionality: validating debugfs entries
  * Run type: BAT
  *
  * SUBTEST: read_all_entries
- * Description: Read all entries from debugfs path.
+ * Category: Infrastructure
+ * Description:
+ *   Read all entries from debugfs path.
+ *   validating debugfs entries
+ * Functionality: driver handler
  * Run type: BAT
+ * Sub-category: i915
  *
  * SUBTEST: read_all_entries_display_off
  * Description: Read all debugfs entries with display on/off.
@@ -51,8 +59,13 @@
  * Run type: FULL
  *
  * SUBTEST: sysfs
- * Description: Read all entries from sysfs path.
+ * Category: Server
+ * Description:
+ *   Read all entries from sysfs path.
+ *   validating device resets
+ * Functionality: reset
  * Run type: FULL
+ * Sub-category: sysman
  */
 
 IGT_TEST_DESCRIPTION("Read entries from debugfs, hwmon and sysfs paths.");
diff --git a/tests/device_reset.c b/tests/device_reset.c
index 0c23aecff595..99f87e6e867b 100644
--- a/tests/device_reset.c
+++ b/tests/device_reset.c
@@ -16,8 +16,12 @@
 #include "igt_kmod.h"
 /**
  * TEST: device reset
+ * Category: Desktop client
  * Description: Examine behavior of a driver on device sysfs reset
+ * Functionality: legacy buffer sharing
  * Run type: FULL
+ * Sub-category: DRM
+ * Test category: GEM_Legacy
  *
  * SUBTEST: cold-reset-bound
  * Description: Cold Resets device with bound driver
diff --git a/tests/dmabuf.c b/tests/dmabuf.c
index 4bc9b35b619d..acd3080cf3d3 100644
--- a/tests/dmabuf.c
+++ b/tests/dmabuf.c
@@ -27,9 +27,9 @@
  * TEST: dmabuf
  * Description: Kernel selftests for the dmabuf API
  * Feature: mapping, prime
- * Run type: BAT
  *
  * SUBTEST: all-tests
+ * Run type: BAT
  */
 
 IGT_TEST_DESCRIPTION("Kernel selftests for the dmabuf API");
diff --git a/tests/dumb_buffer.c b/tests/dumb_buffer.c
index 0c7ce714eb6c..719682bdf057 100644
--- a/tests/dumb_buffer.c
+++ b/tests/dumb_buffer.c
@@ -54,18 +54,37 @@
  * Description: This is a test for the generic dumb buffer interface.
  * Feature: prime
  * Run type: FULL
+ * Test category: GEM_Legacy
  *
  * SUBTEST: create-clear
+ * Category: Desktop client
+ * Functionality: IOCTL check for buffer management
+ * Sub-category: Compositor
  *
  * SUBTEST: create-valid-dumb
+ * Category: Desktop client
+ * Functionality: IOCTL check for buffer management
+ * Sub-category: Compositor
  *
  * SUBTEST: invalid-bpp
+ * Category: Desktop client
+ * Functionality: IOCTL check for buffer management
+ * Sub-category: Compositor
  *
  * SUBTEST: map-invalid-size
+ * Category: Desktop client
+ * Functionality: IOCTL check for buffer management
+ * Sub-category: Compositor
  *
  * SUBTEST: map-uaf
+ * Category: Desktop client
+ * Functionality: IOCTL check for buffer management
+ * Sub-category: Compositor
  *
  * SUBTEST: map-valid
+ * Category: Infrastructure
+ * Functionality: semaphore
+ * Sub-category: HW
  */
 
 IGT_TEST_DESCRIPTION("This is a test for the generic dumb buffer interface.");
diff --git a/tests/i915/api_intel_allocator.c b/tests/i915/api_intel_allocator.c
index 4a7cc472c1fa..2d6b95ca69a6 100644
--- a/tests/i915/api_intel_allocator.c
+++ b/tests/i915/api_intel_allocator.c
@@ -11,43 +11,80 @@
 #include "intel_allocator.h"
 /**
  * TEST: api intel allocator
+ * Category: Infrastructure
  * Feature: igt_core
  * Run type: FULL
+ * Sub-category: IGT Lib
+ * Test category: GEM_Legacy
  *
  * SUBTEST: alloc-simple
+ * Description: checking the virtual address ranges
+ * Functionality: virtual address ranges
  *
  * SUBTEST: default-alignment
- * Description: For simple allocator check does default alignment is properly handled in open and alloc
+ * Description:
+ *   For simple allocator check does default alignment is properly handled in open and alloc
  *   functions
+ *   checking the virtual address ranges
+ * Functionality: virtual address ranges
  *
  * SUBTEST: execbuf-with-allocator
+ * Description: checking the virtual address ranges
+ * Functionality: virtual address ranges
  *
  * SUBTEST: fork-simple-once
+ * Description: checking the virtual address ranges
+ * Functionality: virtual address ranges
  *
  * SUBTEST: fork-simple-stress
+ * Description: checking the virtual address ranges
+ * Functionality: virtual address ranges
  *
  * SUBTEST: fork-simple-stress-signal
+ * Description: checking the virtual address ranges
+ * Functionality: virtual address ranges
  *
  * SUBTEST: gem-pool
- * Description: Verifies creating and executing bb from gem pool
+ * Description:
+ *   Verifies creating and executing bb from gem pool
+ *   checking the virtual address ranges
+ * Functionality: virtual address ranges
  *
  * SUBTEST: open-vm
+ * Description: checking the virtual address ranges
+ * Functionality: virtual address ranges
  *
  * SUBTEST: reloc-allocator
+ * Description: checking the virtual address ranges
+ * Functionality: virtual address ranges
  *
  * SUBTEST: reopen
+ * Description: checking the virtual address ranges
+ * Functionality: virtual address ranges
  *
  * SUBTEST: reopen-fork
+ * Description: checking the virtual address ranges
+ * Functionality: virtual address ranges
  *
  * SUBTEST: reserve-simple
+ * Description: checking the virtual address ranges
+ * Functionality: virtual address ranges
  *
  * SUBTEST: simple-allocator
+ * Description: checking the virtual address ranges
+ * Functionality: virtual address ranges
  *
  * SUBTEST: standalone
+ * Description: checking the virtual address ranges
+ * Functionality: virtual address ranges
  *
  * SUBTEST: two-level-inception
+ * Description: checking the virtual address ranges
+ * Functionality: virtual address ranges
  *
  * SUBTEST: two-level-inception-interruptible
+ * Description: checking dummy buffer creation & submission
+ * Functionality: dummy buffer creation & submission
  */
 
 #define OBJ_SIZE 1024
diff --git a/tests/i915/api_intel_bb.c b/tests/i915/api_intel_bb.c
index 198a29eb4f26..5188d5ae5af0 100644
--- a/tests/i915/api_intel_bb.c
+++ b/tests/i915/api_intel_bb.c
@@ -43,53 +43,94 @@
 #include "i915/i915_blt.h"
 /**
  * TEST: api intel bb
+ * Category: Infrastructure
  * Description: intel_bb API check.
  * Feature: igt_core
  * Run type: FULL
+ * Sub-category: IGT Lib
+ * Test category: GEM_Legacy
  *
  * SUBTEST: add-remove-objects
+ * Description: checking dummy buffer creation & submission
+ * Functionality: dummy buffer creation & submission
  *
  * SUBTEST: bb-with-allocator
+ * Description: checking dummy buffer creation & submission
+ * Functionality: dummy buffer creation & submission
  *
  * SUBTEST: blit-noreloc-keep-cache
+ * Description: checking dummy buffer creation & submission
+ * Functionality: dummy buffer creation & submission
  *
  * SUBTEST: blit-noreloc-purge-cache
+ * Description: checking dummy buffer creation & submission
+ * Functionality: dummy buffer creation & submission
  *
  * SUBTEST: blit-reloc-keep-cache
+ * Description: checking dummy buffer creation & submission
+ * Functionality: dummy buffer creation & submission
  *
  * SUBTEST: blit-reloc-purge-cache
+ * Description: checking dummy buffer creation & submission
+ * Functionality: dummy buffer creation & submission
  *
  * SUBTEST: crc32
  * Description: Compare cpu and gpu crc32 sums on input object
+ * Functionality: dummy buffer creation & submission
  *
  * SUBTEST: delta-check
+ * Description: checking dummy buffer creation & submission
+ * Functionality: dummy buffer creation & submission
  *
  * SUBTEST: destroy-bb
+ * Description: checking dummy buffer creation & submission
+ * Functionality: dummy buffer creation & submission
  *
  * SUBTEST: full-batch
+ * Description: checking dummy buffer creation & submission
+ * Functionality: dummy buffer creation & submission
  *
  * SUBTEST: intel-bb-blit-none
+ * Description: checking dummy buffer creation & submission
+ * Functionality: dummy buffer creation & submission
  *
  * SUBTEST: intel-bb-blit-x
  *
  * SUBTEST: intel-bb-blit-y
+ * Description: checking dummy buffer creation & submission
+ * Functionality: dummy buffer creation & submission
  *
  * SUBTEST: lot-of-buffers
+ * Description: checking dummy buffer creation & submission
+ * Functionality: dummy buffer creation & submission
  *
  * SUBTEST: misplaced-blitter
  * Description: Execute intel_bb with set of engines provided by userspace
+ * Functionality: dummy buffer creation & submission
  *
  * SUBTEST: object-noreloc-keep-cache-simple
+ * Description: checking dummy buffer creation & submission
+ * Functionality: dummy buffer creation & submission
  *
  * SUBTEST: object-noreloc-purge-cache-simple
+ * Description: checking dummy buffer creation & submission
+ * Functionality: dummy buffer creation & submission
  *
  * SUBTEST: object-reloc-keep-cache
+ * Description: checking dummy buffer creation & submission
+ * Functionality: dummy buffer creation & submission
  *
  * SUBTEST: object-reloc-purge-cache
+ * Description: checking dummy buffer creation & submission
+ * Functionality: dummy buffer creation & submission
  *
  * SUBTEST: offset-control
+ * Description: checking dummy buffer creation & submission
+ * Functionality: dummy buffer creation & submission
  *
  * SUBTEST: purge-bb
+ * Description: checking dummy buffer creation & submission
+ * Functionality: dummy buffer creation & submission
  *
  * SUBTEST: render
  *
@@ -97,12 +138,19 @@
  *
  * SUBTEST: reset-bb
  * Description: Ensure reset is possible on fresh bb
+ * Functionality: dummy buffer creation & submission
  *
  * SUBTEST: reset-flags
+ * Description: checking dummy buffer creation & submission
+ * Functionality: dummy buffer creation & submission
  *
  * SUBTEST: simple-bb
+ * Description: checking dummy buffer creation & submission
+ * Functionality: dummy buffer creation & submission
  *
  * SUBTEST: simple-bb-ctx
+ * Description: device mapping check
+ * Functionality: device mapping
  */
 
 #define PAGE_SIZE 4096
diff --git a/tests/i915/gem_bad_reloc.c b/tests/i915/gem_bad_reloc.c
index b006e1cb0cd3..d5336b62d37b 100644
--- a/tests/i915/gem_bad_reloc.c
+++ b/tests/i915/gem_bad_reloc.c
@@ -43,13 +43,15 @@
 #include "igt.h"
 /**
  * TEST: gem bad reloc
- * Description: Simulates SNA behaviour using negative self-relocations for STATE_BASE_ADDRESS command
+ * Description:
+ *   Simulates SNA behaviour using negative self-relocations for STATE_BASE_ADDRESS command
  *   packets.
  * Feature: cmd_submission
  * Run type: FULL
  *
  * SUBTEST: negative-reloc
- * Description: SNA behaviour is compressing batch buffer which leads to negative relocation deltas.
+ * Description:
+ *   SNA behaviour is compressing batch buffer which leads to negative relocation deltas.
  *   Negative self-relocation happening with real offset 0.
  *
  * SUBTEST: negative-reloc-bltcopy
diff --git a/tests/i915/gem_barrier_race.c b/tests/i915/gem_barrier_race.c
index e33e2e6cc10e..2faefa07cbd1 100644
--- a/tests/i915/gem_barrier_race.c
+++ b/tests/i915/gem_barrier_race.c
@@ -19,12 +19,16 @@
 #include "i915/perf.h"
 /**
  * TEST: gem barrier race
+ * Category: Infrastructure
  * Description: Exercise engine barriers and their interaction with other subsystems
  * Feature: core
+ * Functionality: driver handler
  * Run type: FULL
+ * Test category: GEM_Legacy
  *
  * SUBTEST: remote-request
- * Description: Race intel_context_prepare_remote_request against
+ * Description:
+ *   Race intel_context_prepare_remote_request against
  *   intel_context_active_acquire/release
  */
 
diff --git a/tests/i915/gem_basic.c b/tests/i915/gem_basic.c
index 8605429799aa..3d3300d172a6 100644
--- a/tests/i915/gem_basic.c
+++ b/tests/i915/gem_basic.c
@@ -43,27 +43,40 @@
 #include "lib/igt_device_scan.h"
 /**
  * TEST: gem basic
+ * Category: Infrastructure
  * Description: Tests basic gem_create and gem_close IOCTLs
  *
  * SUBTEST: bad-close
  * Description: Verify that gem_close fails with bad params.
  * Feature: gem_core
+ * Functionality: driver handler
  * Run type: BAT
+ * Sub-category: i915
+ * Test category: GEM_Legacy
  *
  * SUBTEST: create-close
  * Description: Verify basic functionality of gem_create and gem_close.
  * Feature: gem_core
+ * Functionality: driver handler
  * Run type: BAT
+ * Sub-category: i915
+ * Test category: GEM_Legacy
  *
  * SUBTEST: create-fd-close
- * Description: Verify that closing drm driver is possible with opened gem object.
+ * Description:
+ *   Verify that closing drm driver is possible with opened gem object.
+ *   Validate Command streamer
  * Feature: gem_core
+ * Functionality: Semaphore
  * Run type: BAT
+ * Sub-category: HW
+ * Test category: GEM_Legacy
  *
  * SUBTEST: multigpu-create-close
  * Description: Verify basic functionality of gem_create and gem_close on multi-GPU.
  * Feature: gem_core, multigpu
  * Run type: FULL
+ * Test category: MultiGPU
  */
 
 IGT_TEST_DESCRIPTION("Tests basic gem_create and gem_close IOCTLs");
diff --git a/tests/i915/gem_blits.c b/tests/i915/gem_blits.c
index acc1adc165f3..4cd1fb3e1b62 100644
--- a/tests/i915/gem_blits.c
+++ b/tests/i915/gem_blits.c
@@ -30,8 +30,12 @@
 #include "i915/i915_blt.h"
 /**
  * TEST: gem blits
+ * Category: Desktop client
  * Feature: blitter
+ * Functionality: semaphore
  * Run type: FULL
+ * Sub-category: i915
+ * Test category: GEM_Legacy
  *
  * SUBTEST: basic
  */
diff --git a/tests/i915/gem_busy.c b/tests/i915/gem_busy.c
index 11a2f7d51a04..42d50f7ef1d5 100644
--- a/tests/i915/gem_busy.c
+++ b/tests/i915/gem_busy.c
@@ -32,19 +32,25 @@
 #include "igt_vgem.h"
 /**
  * TEST: gem busy
+ * Category: Desktop client
  * Description: Basic check of busy-ioctl ABI.
  * Feature: cmd_submission
+ * Sub-category: i915
+ * Test category: GEM_Legacy
  *
  * SUBTEST: busy
  * Description: Basic test to check busyness of each engine.
+ * Functionality: semaphore
  * Run type: FULL
  *
  * SUBTEST: close-race
  * Description: Test to check race condition by randomly closing the handle using gem_close.
+ * Functionality: semaphore
  * Run type: FULL
  *
  * SUBTEST: extended
  * Description: Extended test to check busyness of dwstore-capable engines.
+ * Functionality: semaphore
  * Run type: FULL
  *
  * SUBTEST: hang
@@ -52,17 +58,21 @@
  * Run type: FULL
  *
  * SUBTEST: hang-extended
- * Description: Extended test to check hang state behaviour of dwstore-capable engines with increased
+ * Description:
+ *   Extended test to check hang state behaviour of dwstore-capable engines with increased
  *   timeout.
  * Run type: FULL
  *
  * SUBTEST: parallel
- * Description: Extended test to check busyness of dwstore-capable engines while doing parallel
+ * Description:
+ *   Extended test to check busyness of dwstore-capable engines while doing parallel
  *   execution.
+ * Functionality: data coherency
  * Run type: FULL
  *
  * SUBTEST: semaphore
- * Description: Test to check busyness of engine on submitting a new batch while engine is busy in executing
+ * Description:
+ *   Test to check busyness of engine on submitting a new batch while engine is busy in executing
  *   previous batch.
  * Run type: FULL
  */
diff --git a/tests/i915/gem_caching.c b/tests/i915/gem_caching.c
index d24e6cce059b..33c4b02921e4 100644
--- a/tests/i915/gem_caching.c
+++ b/tests/i915/gem_caching.c
@@ -45,12 +45,20 @@
  * Description: Test snoop consistency when touching partial cachelines.
  * Feature: caching
  * Run type: FULL
+ * Sub-category: i915
+ * Test category: GEM_Legacy
  *
  * SUBTEST: read-writes
+ * Category: Desktop client
+ * Functionality: data coherency
  *
  * SUBTEST: reads
+ * Category: Desktop client
+ * Functionality: data coherency
  *
  * SUBTEST: writes
+ * Category: Infrastructure
+ * Functionality: driver handler
  */
 
 IGT_TEST_DESCRIPTION("Test snoop consistency when touching partial"
diff --git a/tests/i915/gem_close.c b/tests/i915/gem_close.c
index 212fd8e9062a..20aff600d595 100644
--- a/tests/i915/gem_close.c
+++ b/tests/i915/gem_close.c
@@ -27,8 +27,12 @@
 #include "igt_types.h"
 /**
  * TEST: gem close
+ * Category: Infrastructure
  * Feature: mapping
+ * Functionality: driver handler
  * Run type: FULL
+ * Sub-category: i915
+ * Test category: GEM_Legacy
  *
  * SUBTEST: basic
  *
diff --git a/tests/i915/gem_close_race.c b/tests/i915/gem_close_race.c
index c0f25760cc87..360c138a430c 100644
--- a/tests/i915/gem_close_race.c
+++ b/tests/i915/gem_close_race.c
@@ -50,27 +50,36 @@
 #include "igt_device_scan.h"
 /**
  * TEST: gem close race
+ * Category: Infrastructure
  * Description: Test try to race gem_close against workload submission.
+ * Sub-category: i915
  *
  * SUBTEST: basic-process
  * Description: Basic workload submission.
  * Feature: synchronization
+ * Functionality: driver handler
  * Run type: BAT
+ * Test category: GEM_Legacy
  *
  * SUBTEST: basic-threads
- * Description: Share buffer handle across different drm fd's and trying to race gem_close against
+ * Description:
+ *   Share buffer handle across different drm fd's and trying to race gem_close against
  *   continuous workload with minimum timeout.
  * Feature: synchronization
+ * Functionality: Buffer Management
  * Run type: BAT
+ * Test category: USM
  *
  * SUBTEST: contexts
- * Description: Share buffer handle across different drm fd's and trying to race gem_close against
+ * Description:
+ *   Share buffer handle across different drm fd's and trying to race gem_close against
  *   continuous workload in other contexts.
  * Feature: synchronization
  * Run type: FULL
  *
  * SUBTEST: gem-close-race
- * Description: Share buffer handle across different drm fd's and trying to race of gem_close against
+ * Description:
+ *   Share buffer handle across different drm fd's and trying to race of gem_close against
  *   continuous workload.
  * Feature: synchronization
  * Run type: FULL
@@ -79,11 +88,13 @@
  * Description: Basic workload submission on multi-GPU machine.
  * Feature: multigpu, synchronization
  * Run type: FULL
+ * Test category: MultiGPU
  *
  * SUBTEST: multigpu-basic-threads
  * Description: Run basic-threads race on multi-GPU machine.
  * Feature: multigpu, synchronization
  * Run type: FULL
+ * Test category: MultiGPU
  *
  * SUBTEST: process-exit
  * Description: Test try to race gem_close against submission of continuous workload.
diff --git a/tests/i915/gem_create.c b/tests/i915/gem_create.c
index a59fba48d6c1..3369006f70bc 100644
--- a/tests/i915/gem_create.c
+++ b/tests/i915/gem_create.c
@@ -64,46 +64,70 @@
 #include "i915_drm.h"
 /**
  * TEST: gem create
- * Description: Ensure that basic gem_create and gem_create_ext works and that invalid input combinations
+ * Description:
+ *   Ensure that basic gem_create and gem_create_ext works and that invalid input combinations
  *   are rejected.
  * Feature: mapping
  * Run type: FULL
+ * Sub-category: i915
+ * Test category: GEM_Legacy
  *
  * SUBTEST: busy-create
+ * Category: Server
  * Description: Create buffer objects while GPU is busy.
+ * Functionality: buffer management
  *
  * SUBTEST: create-clear
+ * Category: Infrastructure
  * Description: Verify that all new objects are clear.
+ * Functionality: buffer management
  *
  * SUBTEST: create-ext-cpu-access-big
- * Description: Verify the extreme cases with very large objects and.
+ * Description:
+ *   Verify the extreme cases with very large objects and.
  *   I915_GEM_CREATE_EXT_FLAG_NEEDS_CPU_ACCESS
  *
  * SUBTEST: create-ext-cpu-access-sanity-check
- * Description: Verify the basic functionally and expected ABI contract around.
+ * Description:
+ *   Verify the basic functionally and expected ABI contract around.
  *   I915_GEM_CREATE_EXT_FLAG_NEEDS_CPU_ACCESS
  *
  * SUBTEST: create-ext-placement-all
+ * Category: Infrastructure
  * Description: Create objects in every memory region using create_ext.
+ * Functionality: buffer management
  *
  * SUBTEST: create-ext-placement-each
+ * Category: Infrastructure
  * Description: Create one object with memory pieces in each memory region using create_ext.
+ * Functionality: buffer management
  *
  * SUBTEST: create-ext-placement-sanity-check
+ * Category: Infrastructure
  * Description: Exercise create_ext placements extension.
+ * Functionality: buffer management
  *
  * SUBTEST: create-invalid-size
+ * Category: Infrastructure
  * Description: Try to create a gem object of invalid size 0 and check if ioctl returns error.
+ * Functionality: buffer management
  *
  * SUBTEST: create-massive
+ * Category: Infrastructure
  * Description: Exercise creation of buffer object with impossible size and check for the expected error.
+ * Functionality: buffer management
  *
  * SUBTEST: create-size-update
+ * Category: Infrastructure
  * Description: Try to create a gem object with size 15 and check actual created size.
+ * Functionality: buffer management
  *
  * SUBTEST: create-valid-nonaligned
- * Description: Try to create an object with non-aligned size, check we got one with size aligned up to page
+ * Category: Infrastructure
+ * Description:
+ *   Try to create an object with non-aligned size, check we got one with size aligned up to page
  *   size and test we can write into the padded extra memory.
+ * Functionality: command submission
  *
  * SUBTEST: hog-create
  * Description: Create buffer objects while GPU is busy.
diff --git a/tests/i915/gem_cs_tlb.c b/tests/i915/gem_cs_tlb.c
index ab09efa251b3..db168fe74805 100644
--- a/tests/i915/gem_cs_tlb.c
+++ b/tests/i915/gem_cs_tlb.c
@@ -54,9 +54,13 @@
 #include "igt.h"
 /**
  * TEST: gem cs tlb
+ * Category: Infrastructure
  * Description: Check whether we correctly invalidate the cs tlb.
  * Feature: mapping
+ * Functionality: context management
  * Run type: FULL
+ * Sub-category: i915
+ * Test category: GEM_Legacy
  *
  * SUBTEST: engines
  */
diff --git a/tests/i915/gem_ctx_bad_destroy.c b/tests/i915/gem_ctx_bad_destroy.c
index 90495da8ab2e..8c47e7c1cb67 100644
--- a/tests/i915/gem_ctx_bad_destroy.c
+++ b/tests/i915/gem_ctx_bad_destroy.c
@@ -36,9 +36,13 @@
 
 /**
  * TEST: gem ctx bad destroy
+ * Category: Infrastructure
  * Description: Negative test cases for destroy contexts.
  * Feature: context
+ * Functionality: context management
  * Run type: FULL
+ * Sub-category: i915
+ * Test category: GEM_Legacy
  *
  * SUBTEST: double-destroy
  *
diff --git a/tests/i915/gem_ctx_create.c b/tests/i915/gem_ctx_create.c
index 038f6fa91a9a..1c245b608cfc 100644
--- a/tests/i915/gem_ctx_create.c
+++ b/tests/i915/gem_ctx_create.c
@@ -37,11 +37,14 @@
 #include "sw_sync.h"
 /**
  * TEST: gem ctx create
+ * Category: Infrastructure
  * Description: Test the context create ioctls
  * Feature: context
+ * Sub-category: i915
  *
  * SUBTEST: active
- * Description: For each engine calculate the average performance of context creation execution and
+ * Description:
+ *   For each engine calculate the average performance of context creation execution and
  *   exercise context reclaim
  * Run type: FULL
  *
@@ -51,11 +54,15 @@
  *
  * SUBTEST: basic
  * Description: Test random context creation
+ * Functionality: context management
  * Run type: BAT
+ * Test category: GEM_Legacy
  *
  * SUBTEST: basic-files
  * Description: Exercise implicit per-fd context creation
+ * Functionality: command submission
  * Run type: BAT
+ * Test category: GEM_Legacy
  *
  * SUBTEST: ext-param
  * Description: Verify valid and invalid context extensions
@@ -66,12 +73,14 @@
  * Run type: FULL
  *
  * SUBTEST: forked-active
- * Description: For each engine calculate the average performance of context creation and execution on
+ * Description:
+ *   For each engine calculate the average performance of context creation and execution on
  *   multiple parallel processes
  * Run type: FULL
  *
  * SUBTEST: forked-active-all
- * Description: Calculate the average performance of context creation and it's execution using all engines
+ * Description:
+ *   Calculate the average performance of context creation and it's execution using all engines
  *   on multiple parallel processes
  * Run type: FULL
  *
@@ -80,7 +89,8 @@
  * Run type: FULL
  *
  * SUBTEST: hog
- * Description: For each engine calculate the average performance of context creation and execution while
+ * Description:
+ *   For each engine calculate the average performance of context creation and execution while
  *   all other engines are hogging the resources
  * Run type: FULL
  *
@@ -89,12 +99,14 @@
  * Run type: FULL
  *
  * SUBTEST: maximum-mem
- * Description: Create contexts upto available RAM size, calculate the average performance of their
+ * Description:
+ *   Create contexts upto available RAM size, calculate the average performance of their
  *   execution on multiple parallel processes
  * Run type: FULL
  *
  * SUBTEST: maximum-swap
- * Description: Create contexts upto available RAM+SWAP size, calculate the average performance of their
+ * Description:
+ *   Create contexts upto available RAM+SWAP size, calculate the average performance of their
  *   execution on multiple parallel processes
  * Run type: FULL
  */
diff --git a/tests/i915/gem_ctx_engines.c b/tests/i915/gem_ctx_engines.c
index d15a7b7e5f67..8b40e333e848 100644
--- a/tests/i915/gem_ctx_engines.c
+++ b/tests/i915/gem_ctx_engines.c
@@ -45,20 +45,29 @@
 #include "sw_sync.h"
 /**
  * TEST: gem ctx engines
+ * Category: Infrastructure
  * Feature: context
  * Run type: FULL
+ * Sub-category: i915
+ * Test category: GEM_Legacy
  *
  * SUBTEST: execute-allforone
+ * Functionality: context management
  *
  * SUBTEST: execute-one
+ * Functionality: context management
  *
  * SUBTEST: execute-oneforall
+ * Functionality: context management
  *
  * SUBTEST: independent
+ * Functionality: context management
  *
  * SUBTEST: invalid-engines
+ * Functionality: context management
  *
  * SUBTEST: none
+ * Functionality: command submission
  */
 
 #define engine_class(e, n) ((e)->engines[(n)].engine_class)
diff --git a/tests/i915/gem_ctx_exec.c b/tests/i915/gem_ctx_exec.c
index 4e37b2642085..00687aa16ba9 100644
--- a/tests/i915/gem_ctx_exec.c
+++ b/tests/i915/gem_ctx_exec.c
@@ -53,24 +53,44 @@
  * Feature: context
  *
  * SUBTEST: basic
+ * Category: Infrastructure
  * Description: Check the basic context batch buffer execution.
+ * Functionality: command submission
  * Run type: BAT
+ * Sub-category: i915
+ * Test category: GEM_Legacy
  *
  * SUBTEST: basic-close-race
+ * Category: Infrastructure
  * Description: Race the execution and interrupt handlers along a context, while closing it at a random time.
+ * Functionality: command submission
  * Run type: FULL
+ * Sub-category: i915
+ * Test category: GEM_Legacy
  *
  * SUBTEST: basic-invalid-context
+ * Category: Server
  * Description: Verify that execbuf with invalid context fails.
+ * Functionality: command submission
  * Run type: FULL
+ * Sub-category: i915
+ * Test category: GEM_Legacy
  *
  * SUBTEST: basic-nohangcheck
+ * Category: Server
  * Description: Verify that contexts are automatically shotdown on close, if hangchecking is disabled.
+ * Functionality: command submission
  * Run type: FULL
+ * Sub-category: i915
+ * Test category: GEM_Legacy
  *
  * SUBTEST: basic-norecovery
+ * Category: Server
  * Description: Check the status of context after a hang by setting and unsetting the RECOVERABLE.
+ * Functionality: frequency management
  * Run type: FULL
+ * Sub-category: Performance
+ * Test category: GEM_Legacy
  *
  * SUBTEST: eviction
  * Description: Check maximum number of buffers it can evict for a context.
diff --git a/tests/i915/gem_ctx_freq.c b/tests/i915/gem_ctx_freq.c
index 8e432cbdf8f5..4d7f142de132 100644
--- a/tests/i915/gem_ctx_freq.c
+++ b/tests/i915/gem_ctx_freq.c
@@ -36,8 +36,12 @@
 #include "sw_sync.h"
 /**
  * TEST: gem ctx freq
+ * Category: Infrastructure
  * Feature: context
+ * Functionality: security
  * Run type: FULL
+ * Sub-category: HW
+ * Test category: GEM_Legacy
  *
  * SUBTEST: sysfs
  */
diff --git a/tests/i915/gem_ctx_isolation.c b/tests/i915/gem_ctx_isolation.c
index 2c2da296d301..ceafed305156 100644
--- a/tests/i915/gem_ctx_isolation.c
+++ b/tests/i915/gem_ctx_isolation.c
@@ -28,26 +28,56 @@
 #include "igt_types.h"
 /**
  * TEST: gem ctx isolation
- * Feature: context
+ * Category: Infrastructure
  * Run type: FULL
  *
  * SUBTEST: clean
+ * Feature: context
+ * Functionality: security
+ * Sub-category: HW
+ * Test category: GEM_Legacy
  *
  * SUBTEST: dirty-create
+ * Feature: context
+ * Functionality: security
+ * Sub-category: HW
+ * Test category: GEM_Legacy
  *
  * SUBTEST: dirty-switch
+ * Feature: context
+ * Functionality: security
+ * Sub-category: HW
+ * Test category: GEM_Legacy
  *
  * SUBTEST: nonpriv
+ * Feature: context
+ * Functionality: security
+ * Sub-category: HW
+ * Test category: GEM_Legacy
  *
  * SUBTEST: nonpriv-switch
+ * Feature: context
+ * Functionality: security
+ * Sub-category: HW
+ * Test category: GEM_Legacy
  *
  * SUBTEST: preservation
+ * Feature: context
+ * Functionality: security
+ * Sub-category: HW
+ * Test category: GEM_Legacy
  *
  * SUBTEST: preservation-S3
+ * Feature: context
  *
  * SUBTEST: preservation-S4
+ * Feature: context
  *
  * SUBTEST: preservation-reset
+ * Feature: context
+ * Functionality: security
+ * Sub-category: HW
+ * Test category: GEM_Legacy
  */
 
 /* MAX_REG must be greater than the maximum register address. */
diff --git a/tests/i915/gem_ctx_param.c b/tests/i915/gem_ctx_param.c
index 45951a5e2b2a..c37150ba8bcc 100644
--- a/tests/i915/gem_ctx_param.c
+++ b/tests/i915/gem_ctx_param.c
@@ -35,85 +35,147 @@
  * TEST: gem ctx param
  * Description: Basic test for context set/get param input validation.
  * Run type: FULL
+ * Test category: GEM_Legacy
  *
  * SUBTEST: basic
+ * Category: Infrastructure
  * Description: Basic test for context get/set param ioctls using valid context
  * Feature: context
+ * Functionality: context management
+ * Sub-category: i915
  *
  * SUBTEST: basic-default
+ * Category: Infrastructure
  * Description: Basic test for context get/set param ioctls using default context
  * Feature: context
+ * Functionality: context management
+ * Sub-category: i915
  *
  * SUBTEST: get-priority-new-ctx
- * Description: Test performed with context param set to priority.
+ * Category: Infrastructure
+ * Description:
+ *   Test performed with context param set to priority.
  *   Verify that priority is default for newly created context
  * Feature: context
+ * Functionality: context management
+ * Sub-category: i915
  *
  * SUBTEST: invalid-ctx-get
+ * Category: Infrastructure
  * Description: Verify that context get param ioctl using invalid context returns relevant error
  * Feature: context
+ * Functionality: context management
+ * Sub-category: i915
  *
  * SUBTEST: invalid-ctx-set
+ * Category: Infrastructure
  * Description: Verify that context set param ioctl using invalid context returns relevant error
  * Feature: context
+ * Functionality: context management
+ * Sub-category: i915
  *
  * SUBTEST: invalid-get-engines
+ * Category: Infrastructure
  * Feature: context
+ * Functionality: context management
+ * Sub-category: i915
  *
  * SUBTEST: invalid-get-no-zeromap
+ * Category: Infrastructure
  * Feature: context
+ * Functionality: context management
+ * Sub-category: i915
  *
  * SUBTEST: invalid-get-ringsize
+ * Category: Infrastructure
  * Feature: context
+ * Functionality: context management
+ * Sub-category: i915
  *
  * SUBTEST: invalid-param-get
+ * Category: Infrastructure
  * Description: Checks that fetching context parameters using an unused param value is erroneous
  * Feature: context
+ * Functionality: context management
+ * Sub-category: i915
  *
  * SUBTEST: invalid-param-set
+ * Category: Infrastructure
  * Description: Checks that setting context parameters using an unused param value is erroneous
  * Feature: context
+ * Functionality: context management
+ * Sub-category: i915
  *
  * SUBTEST: invalid-set-no-zeromap
+ * Category: Infrastructure
  * Feature: context
+ * Functionality: context management
+ * Sub-category: i915
  *
  * SUBTEST: invalid-set-ringsize
+ * Category: Infrastructure
  * Feature: context
+ * Functionality: context management
+ * Sub-category: i915
  *
  * SUBTEST: invalid-size-get
+ * Category: Infrastructure
  * Description: Verify that context get param ioctl returns valid size for valid context
  * Feature: context
+ * Functionality: context management
+ * Sub-category: i915
  *
  * SUBTEST: invalid-size-set
+ * Category: Infrastructure
  * Description: Verify that context set param ioctl using invalid size returns relevant error
  * Feature: context
+ * Functionality: context management
+ * Sub-category: i915
  *
  * SUBTEST: non-root-set
+ * Category: Infrastructure
  * Description: Verify that context set param ioctl returns relevant error in non root mode
  * Feature: context
+ * Functionality: context management
+ * Sub-category: i915
  *
  * SUBTEST: root-set
+ * Category: Infrastructure
  * Description: Verify that context set param ioctl works fine in root mode
  * Feature: context
+ * Functionality: context management
+ * Sub-category: i915
  *
  * SUBTEST: set-priority-invalid-size
- * Description: Test performed with context param set to priority.
+ * Category: Infrastructure
+ * Description:
+ *   Test performed with context param set to priority.
  *   Verify that relevant error is returned on setting invalid ctx size with default priority
  * Feature: context
+ * Functionality: context management
+ * Sub-category: i915
  *
  * SUBTEST: set-priority-not-supported
- * Description: Verify that context set param ioctl returns relevant error if driver doesn't supports
+ * Description:
+ *   Verify that context set param ioctl returns relevant error if driver doesn't supports
  *   assigning custom priorities from userspace
  * Feature: context, no-set-priority
  *
  * SUBTEST: set-priority-range
- * Description: Test performed with context param set to priority.
+ * Category: Infrastructure
+ * Description:
+ *   Test performed with context param set to priority.
  *   Change priority range to test value overflow
  * Feature: context
+ * Functionality: context management
+ * Sub-category: i915
  *
  * SUBTEST: vm
+ * Category: Server
  * Description: Tests that multiple contexts can share the same VMA
  * Feature: context
+ * Functionality: security
+ * Sub-category: Compute
  */
 
 IGT_TEST_DESCRIPTION("Basic test for context set/get param input validation.");
diff --git a/tests/i915/gem_ctx_persistence.c b/tests/i915/gem_ctx_persistence.c
index 40281ef4209e..745db19fd370 100644
--- a/tests/i915/gem_ctx_persistence.c
+++ b/tests/i915/gem_ctx_persistence.c
@@ -49,70 +49,155 @@
  * TEST: gem ctx persistence
  * Feature: context
  * Run type: FULL
+ * Test category: GEM_Legacy
  *
  * SUBTEST: engines-cleanup
+ * Category: Server
+ * Functionality: security
+ * Sub-category: Compute
  *
  * SUBTEST: engines-hang
+ * Category: Server
+ * Functionality: security
+ * Sub-category: Compute
  *
  * SUBTEST: engines-hostile
+ * Category: Server
+ * Functionality: security
+ * Sub-category: Compute
  *
  * SUBTEST: engines-hostile-preempt
+ * Category: Server
+ * Functionality: security
+ * Sub-category: Compute
  *
  * SUBTEST: engines-mixed
+ * Category: Server
+ * Functionality: security
+ * Sub-category: Compute
  *
  * SUBTEST: engines-mixed-process
+ * Category: Server
+ * Functionality: security
+ * Sub-category: Compute
  *
  * SUBTEST: engines-persistence
+ * Category: Server
+ * Functionality: security
+ * Sub-category: Compute
  *
  * SUBTEST: engines-queued
+ * Category: Server
+ * Functionality: security
+ * Sub-category: Compute
  *
  * SUBTEST: file
+ * Category: Server
+ * Functionality: security
+ * Sub-category: Compute
  *
  * SUBTEST: hang
+ * Category: Server
+ * Functionality: security
+ * Sub-category: Compute
  *
  * SUBTEST: heartbeat-close
  *
  * SUBTEST: heartbeat-hang
+ * Category: Server
+ * Functionality: security
+ * Sub-category: Compute
  *
  * SUBTEST: heartbeat-hostile
+ * Category: Server
+ * Functionality: security
+ * Sub-category: Compute
  *
  * SUBTEST: heartbeat-many
  *
  * SUBTEST: heartbeat-stop
  *
  * SUBTEST: hostile
+ * Category: Server
+ * Functionality: security
+ * Sub-category: Compute
  *
  * SUBTEST: idempotent
+ * Category: Server
+ * Functionality: security
+ * Sub-category: Compute
  *
  * SUBTEST: legacy-engines-cleanup
+ * Category: Server
+ * Functionality: security
+ * Sub-category: Compute
  *
  * SUBTEST: legacy-engines-hang
+ * Category: Server
+ * Functionality: security
+ * Sub-category: Compute
  *
  * SUBTEST: legacy-engines-hostile
+ * Category: Server
+ * Functionality: security
+ * Sub-category: Compute
  *
  * SUBTEST: legacy-engines-hostile-preempt
+ * Category: Server
+ * Functionality: security
+ * Sub-category: Compute
  *
  * SUBTEST: legacy-engines-mixed
+ * Category: Server
+ * Functionality: security
+ * Sub-category: Compute
  *
  * SUBTEST: legacy-engines-mixed-process
+ * Category: Server
+ * Functionality: security
+ * Sub-category: Compute
  *
  * SUBTEST: legacy-engines-persistence
+ * Category: Server
+ * Functionality: security
+ * Sub-category: Compute
  *
  * SUBTEST: legacy-engines-queued
+ * Category: Server
+ * Functionality: security
+ * Sub-category: Compute
  *
  * SUBTEST: many-contexts
+ * Category: Server
+ * Functionality: security
+ * Sub-category: Compute
  *
  * SUBTEST: process
+ * Category: Server
+ * Functionality: security
+ * Sub-category: Compute
  *
  * SUBTEST: processes
+ * Category: Server
+ * Functionality: security
+ * Sub-category: Compute
  *
  * SUBTEST: saturated-hostile
+ * Category: Server
+ * Functionality: security
+ * Sub-category: Compute
  *
  * SUBTEST: saturated-hostile-nopreempt
  *
  * SUBTEST: smoketest
+ * Category: Server
+ * Functionality: security
+ * Sub-category: Compute
  *
  * SUBTEST: userptr
+ * Category: Desktop client
+ * Functionality: context management
+ * Sub-category: Media
  */
 
 #define RESET_TIMEOUT_MS 2 * MSEC_PER_SEC; /* default: 640ms */
diff --git a/tests/i915/gem_ctx_shared.c b/tests/i915/gem_ctx_shared.c
index 078557bd1234..a05d5920ca44 100644
--- a/tests/i915/gem_ctx_shared.c
+++ b/tests/i915/gem_ctx_shared.c
@@ -52,6 +52,7 @@
  * Description: Test shared contexts.
  * Feature: context
  * Run type: FULL
+ * Test category: GEM_Legacy
  *
  * SUBTEST: Q-in-order
  *
@@ -66,20 +67,36 @@
  * SUBTEST: Q-smoketest-all
  *
  * SUBTEST: create-shared-gtt
+ * Category: Desktop client
+ * Functionality: context management
+ * Sub-category: Media
  *
  * SUBTEST: detached-shared-gtt
+ * Category: Desktop client
+ * Functionality: context management
+ * Sub-category: Media
  *
  * SUBTEST: disjoint-timelines
+ * Category: Desktop client
+ * Functionality: context management
+ * Sub-category: Media
  *
  * SUBTEST: exec-shared-gtt
+ * Category: Infrastructure
+ * Functionality: reset
+ * Sub-category: i915
  *
  * SUBTEST: exec-single-timeline
+ * Category: Desktop client
+ * Functionality: context management
  *
  * SUBTEST: exhaust-shared-gtt
  *
  * SUBTEST: exhaust-shared-gtt-lrc
  *
  * SUBTEST: single-timeline
+ * Category: Infrastructure
+ * Functionality: reset
  */
 
 #define LO 0
diff --git a/tests/i915/gem_eio.c b/tests/i915/gem_eio.c
index e1be2307dccb..0aaf4a5fb489 100644
--- a/tests/i915/gem_eio.c
+++ b/tests/i915/gem_eio.c
@@ -56,93 +56,179 @@
  * TEST: gem eio
  * Description: Test that specific ioctls report a wedged GPU (EIO).
  * Run type: FULL
+ * Sub-category: i915
  *
  * SUBTEST: banned
+ * Category: Infrastructure
  * Feature: reset
+ * Functionality: reset
+ * Test category: GEM_Legacy
  *
  * SUBTEST: context-create
+ * Category: Infrastructure
  * Feature: reset
+ * Functionality: reset
+ * Test category: GEM_Legacy
  *
  * SUBTEST: create
+ * Category: Infrastructure
  * Description: Validate i915_gem_create_ioctl, while gpu is wedged for fb scanout.
  * Feature: reset
+ * Functionality: reset
+ * Test category: GEM_Legacy
  *
  * SUBTEST: create-ext
- * Description: Validate i915_gem_create_ext_ioctl and checks if returns clear backing store while gpu is
+ * Category: Infrastructure
+ * Description:
+ *   Validate i915_gem_create_ext_ioctl and checks if returns clear backing store while gpu is
  *   wedged for fb scanout.
  * Feature: reset
+ * Functionality: reset
+ * Test category: GEM_Legacy
  *
  * SUBTEST: execbuf
+ * Category: Infrastructure
  * Feature: reset
+ * Functionality: reset
+ * Test category: GEM_Legacy
  *
  * SUBTEST: hibernate
- * Feature: hibernate, reset
+ * Feature:
+ *   hibernate, reset
+ *   suspend
+ * Functionality: Verify Softpin functionality during S3 state
+ * Test category: suspend
  *
  * SUBTEST: in-flight-10ms
+ * Category: Infrastructure
  * Feature: reset
+ * Functionality: reset
+ * Test category: GEM_Legacy
  *
  * SUBTEST: in-flight-1us
+ * Category: Infrastructure
  * Feature: reset
+ * Functionality: reset
+ * Test category: GEM_Legacy
  *
  * SUBTEST: in-flight-contexts-10ms
+ * Category: Infrastructure
  * Feature: reset
+ * Functionality: reset
+ * Test category: GEM_Legacy
  *
  * SUBTEST: in-flight-contexts-1us
+ * Category: Infrastructure
  * Feature: reset
+ * Functionality: reset
+ * Test category: GEM_Legacy
  *
  * SUBTEST: in-flight-contexts-immediate
+ * Category: Infrastructure
  * Feature: reset
+ * Functionality: reset
+ * Test category: GEM_Legacy
  *
  * SUBTEST: in-flight-external
+ * Category: Infrastructure
  * Feature: reset
+ * Functionality: reset
+ * Test category: GEM_Legacy
  *
  * SUBTEST: in-flight-immediate
+ * Category: Infrastructure
  * Feature: reset
+ * Functionality: reset
+ * Test category: GEM_Legacy
  *
  * SUBTEST: in-flight-internal-10ms
+ * Category: Infrastructure
  * Feature: reset
+ * Functionality: reset
+ * Test category: GEM_Legacy
  *
  * SUBTEST: in-flight-internal-1us
+ * Category: Infrastructure
  * Feature: reset
+ * Functionality: reset
+ * Test category: GEM_Legacy
  *
  * SUBTEST: in-flight-internal-immediate
+ * Category: Infrastructure
  * Feature: reset
+ * Functionality: reset
+ * Test category: GEM_Legacy
  *
  * SUBTEST: in-flight-suspend
- * Feature: reset
+ * Feature:
+ *   reset
+ *   suspend
+ * Functionality: Test that specific ioctls report a wedged GPU (EIO) during suspend
+ * Test category: suspend
  *
  * SUBTEST: kms
  * Feature: kms_gem_interop, reset
  *
  * SUBTEST: reset-stress
+ * Category: Infrastructure
  * Feature: reset
+ * Functionality: reset
+ * Test category: GEM_Legacy
  *
  * SUBTEST: suspend
- * Feature: reset, suspend
+ * Feature:
+ *   reset, suspend
+ *   suspend
+ * Functionality: Test that specific ioctls report a wedged GPU (EIO) during suspend
+ * Test category: suspend
  *
  * SUBTEST: throttle
+ * Category: Infrastructure
  * Feature: reset
+ * Functionality: reset
+ * Test category: GEM_Legacy
  *
  * SUBTEST: unwedge-stress
+ * Category: Infrastructure
  * Feature: reset
+ * Functionality: reset
+ * Test category: GEM_Legacy
  *
  * SUBTEST: wait-10ms
+ * Category: Infrastructure
  * Feature: reset
+ * Functionality: reset
+ * Test category: GEM_Legacy
  *
  * SUBTEST: wait-1us
+ * Category: Infrastructure
  * Feature: reset
+ * Functionality: reset
+ * Test category: GEM_Legacy
  *
  * SUBTEST: wait-immediate
+ * Category: Infrastructure
  * Feature: reset
+ * Functionality: reset
+ * Test category: GEM_Legacy
  *
  * SUBTEST: wait-wedge-10ms
+ * Category: Infrastructure
  * Feature: reset
+ * Functionality: reset
+ * Test category: GEM_Legacy
  *
  * SUBTEST: wait-wedge-1us
+ * Category: Infrastructure
  * Feature: reset
+ * Functionality: reset
+ * Test category: GEM_Legacy
  *
  * SUBTEST: wait-wedge-immediate
+ * Category: Desktop client
  * Feature: reset
+ * Functionality: command submission
+ * Test category: GEM_Legacy
  */
 
 IGT_TEST_DESCRIPTION("Test that specific ioctls report a wedged GPU (EIO).");
diff --git a/tests/i915/gem_exec_alignment.c b/tests/i915/gem_exec_alignment.c
index 32db9840a344..217b06bb7cdc 100644
--- a/tests/i915/gem_exec_alignment.c
+++ b/tests/i915/gem_exec_alignment.c
@@ -49,19 +49,28 @@
  * TEST: gem exec alignment
  * Description: Exercises the basic execbuffer using object alignments
  * Feature: cmd_submission
+ * Functionality: command submission
  * Run type: FULL
+ * Sub-category: i915
+ * Test category: GEM_Legacy
  *
  * SUBTEST: forked
+ * Category: Desktop client
  *
  * SUBTEST: many
+ * Category: Desktop client
  *
  * SUBTEST: pi
+ * Category: Desktop client
  *
  * SUBTEST: pi-isolated
+ * Category: Desktop client
  *
  * SUBTEST: pi-shared
+ * Category: Desktop client
  *
  * SUBTEST: single
+ * Category: Infrastructure
  */
 
 IGT_TEST_DESCRIPTION("Exercises the basic execbuffer using object alignments");
diff --git a/tests/i915/gem_exec_async.c b/tests/i915/gem_exec_async.c
index 1153c0bf2e30..f3c2f671f6ec 100644
--- a/tests/i915/gem_exec_async.c
+++ b/tests/i915/gem_exec_async.c
@@ -26,9 +26,13 @@
 #include "igt.h"
 /**
  * TEST: gem exec async
+ * Category: Infrastructure
  * Description: Check that we can issue concurrent writes across the engines.
  * Feature: cmd_submission
+ * Functionality: command submission
  * Run type: FULL
+ * Sub-category: i915
+ * Test category: GEM_Legacy
  *
  * SUBTEST: concurrent-writes
  *
diff --git a/tests/i915/gem_exec_await.c b/tests/i915/gem_exec_await.c
index c7f949c9cd2b..6b8cca5b011d 100644
--- a/tests/i915/gem_exec_await.c
+++ b/tests/i915/gem_exec_await.c
@@ -35,10 +35,17 @@
  * TEST: gem exec await
  * Feature: cmd_submission
  * Run type: FULL
+ * Test category: GEM_Legacy
  *
  * SUBTEST: wide-all
+ * Category: Infrastructure
+ * Functionality: command submission
+ * Sub-category: i915
  *
  * SUBTEST: wide-contexts
+ * Category: Desktop \ Server
+ * Functionality: load balancing
+ * Sub-category: Media & Compute
  */
 
 static double elapsed(const struct timespec *start, const struct timespec *end)
diff --git a/tests/i915/gem_exec_balancer.c b/tests/i915/gem_exec_balancer.c
index d1d92e6ba689..b91f84a7a143 100644
--- a/tests/i915/gem_exec_balancer.c
+++ b/tests/i915/gem_exec_balancer.c
@@ -42,6 +42,7 @@
  * TEST: gem exec balancer
  * Description: Exercise in-kernel load-balancing
  * Run type: FULL
+ * Test category: GEM_Legacy
  *
  * SUBTEST: bonded-chain
  * Feature: cmd_submission, media_scalability
@@ -65,95 +66,171 @@
  * Feature: cmd_submission, media_scalability
  *
  * SUBTEST: busy
+ * Category: Desktop \ Server
  * Feature: cmd_submission, media_scalability
+ * Functionality: load balancing
+ * Sub-category: Media & Compute
  *
  * SUBTEST: fairslice
  * Feature: cmd_submission, media_scalability
  *
  * SUBTEST: full
+ * Category: Desktop \ Server
  * Feature: cmd_submission, media_scalability, multictx
+ * Functionality: load balancing
+ * Sub-category: Media & Compute
  *
  * SUBTEST: full-late
+ * Category: Desktop \ Server
  * Feature: cmd_submission, media_scalability, multictx
+ * Functionality: load balancing
+ * Sub-category: Media & Compute
  *
  * SUBTEST: full-late-pulse
+ * Category: Desktop \ Server
  * Feature: cmd_submission, media_scalability, multictx
+ * Functionality: load balancing
+ * Sub-category: Media & Compute
  *
  * SUBTEST: full-pulse
+ * Category: Desktop \ Server
  * Feature: cmd_submission, media_scalability, multictx
+ * Functionality: load balancing
+ * Sub-category: Media & Compute
  *
  * SUBTEST: hang
+ * Category: Desktop \ Server
  * Feature: cmd_submission, media_scalability
+ * Functionality: load balancing
+ * Sub-category: Media & Compute
  *
  * SUBTEST: hog
  * Feature: cmd_submission, media_scalability
  *
  * SUBTEST: indices
+ * Category: Desktop \ Server
  * Feature: cmd_submission, media_scalability, multictx
+ * Functionality: load balancing
+ * Sub-category: Media & Compute
  *
  * SUBTEST: individual
+ * Category: Desktop \ Server
  * Feature: cmd_submission, media_scalability
+ * Functionality: load balancing
+ * Sub-category: Media & Compute
  *
  * SUBTEST: invalid-balancer
+ * Category: Desktop \ Server
  * Feature: cmd_submission, media_scalability
+ * Functionality: load balancing
+ * Sub-category: Media & Compute
  *
  * SUBTEST: invalid-bonds
  * Feature: cmd_submission, media_scalability
  *
  * SUBTEST: nohangcheck
+ * Category: Desktop \ Server
  * Feature: cmd_submission, media_scalability
+ * Functionality: load balancing
+ * Sub-category: Media & Compute
  *
  * SUBTEST: noheartbeat
+ * Category: Desktop \ Server
  * Feature: cmd_submission, media_scalability
+ * Functionality: load balancing
+ * Sub-category: Media & Compute
  *
  * SUBTEST: nop
+ * Category: Desktop client
  * Feature: cmd_submission, media_scalability
+ * Functionality: command submission
+ * Sub-category: Media
  *
  * SUBTEST: parallel
+ * Category: Desktop client
  * Feature: cmd_submission, media_scalability
+ * Functionality: command submission
+ * Sub-category: Media
  *
  * SUBTEST: parallel-balancer
+ * Category: Desktop client
  * Feature: cmd_submission, media_scalability
+ * Functionality: command submission
+ * Sub-category: Media
  *
  * SUBTEST: parallel-bb-first
+ * Category: Desktop client
  * Feature: cmd_submission, media_scalability
+ * Functionality: command submission
+ * Sub-category: Media
  *
  * SUBTEST: parallel-contexts
+ * Category: Desktop client
  * Feature: cmd_submission, media_scalability
+ * Functionality: command submission
+ * Sub-category: Media
  *
  * SUBTEST: parallel-dmabuf-import-out-fence
  * Description: Regression test to check that dmabuf imported sync file can handle fence array
  * Feature: cmd_submission, media_scalability
  *
  * SUBTEST: parallel-keep-in-fence
+ * Category: Desktop client
  * Feature: cmd_submission, media_scalability
+ * Functionality: command submission
+ * Sub-category: Media
  *
  * SUBTEST: parallel-keep-submit-fence
+ * Category: Desktop client
  * Feature: cmd_submission, media_scalability
+ * Functionality: command submission
+ * Sub-category: Media
  *
  * SUBTEST: parallel-ordering
+ * Category: Desktop client
+ * Description: Command Submission
  * Feature: cmd_submission, media_scalability
+ * Functionality: unbind & rebind
+ * Sub-category: Media
  *
  * SUBTEST: parallel-out-fence
+ * Category: Desktop \ Server
  * Feature: cmd_submission, media_scalability
+ * Functionality: load balancing
+ * Sub-category: Media & Compute
  *
  * SUBTEST: persistence
+ * Category: Desktop \ Server
  * Feature: cmd_submission, media_scalability
+ * Functionality: load balancing
+ * Sub-category: Media & Compute
  *
  * SUBTEST: semaphore
+ * Category: Desktop \ Server
  * Feature: cmd_submission, media_scalability, multictx
+ * Functionality: load balancing
+ * Sub-category: Media & Compute
  *
  * SUBTEST: sequential
+ * Category: Desktop \ Server
  * Feature: cmd_submission, media_scalability
+ * Functionality: load balancing
+ * Sub-category: Media & Compute
  *
  * SUBTEST: sliced
  * Feature: cmd_submission, media_scalability
  *
  * SUBTEST: smoke
+ * Category: Desktop \ Server
  * Feature: cmd_submission, media_scalability
+ * Functionality: load balancing
+ * Sub-category: Media & Compute
  *
  * SUBTEST: waits
+ * Category: Infrastructure
  * Feature: cmd_submission, media_scalability
+ * Functionality: command submission
+ * Sub-category: i915
  */
 
 IGT_TEST_DESCRIPTION("Exercise in-kernel load-balancing");
diff --git a/tests/i915/gem_exec_basic.c b/tests/i915/gem_exec_basic.c
index 94a55f849a61..491f4e9e4374 100644
--- a/tests/i915/gem_exec_basic.c
+++ b/tests/i915/gem_exec_basic.c
@@ -27,13 +27,19 @@
 #include "i915/gem_create.h"
 /**
  * TEST: gem exec basic
+ * Category: Infrastructure
  * Description: Basic sanity check of execbuf-ioctl rings.
  * Feature: cmd_submission
- * Run type: BAT
+ * Functionality: buffer management
+ * Sub-category: i915
  *
  * SUBTEST: basic
- * Description: Check basic functionality of GEM_EXECBUFFER2 ioctl on every ring and iterating over memory
+ * Description:
+ *   Check basic functionality of GEM_EXECBUFFER2 ioctl on every ring and iterating over memory
  *   regions.
+ *   Command Submission
+ * Run type: BAT
+ * Test category: GEM_Legacy
  */
 
 IGT_TEST_DESCRIPTION("Basic sanity check of execbuf-ioctl rings.");
diff --git a/tests/i915/gem_exec_big.c b/tests/i915/gem_exec_big.c
index 7f07cf6c69db..a9bb94567094 100644
--- a/tests/i915/gem_exec_big.c
+++ b/tests/i915/gem_exec_big.c
@@ -50,9 +50,13 @@
 #include "igt.h"
 /**
  * TEST: gem exec big
+ * Category: Server
  * Description: Run a large nop batch to stress test the error capture code.
  * Feature: cmd_submission
+ * Functionality: offline debugging
  * Run type: FULL
+ * Sub-category: debugger
+ * Test category: GEM_Legacy
  *
  * SUBTEST: exhaustive
  *
diff --git a/tests/i915/gem_exec_capture.c b/tests/i915/gem_exec_capture.c
index 9dd8320d1066..3d4a160f7edb 100644
--- a/tests/i915/gem_exec_capture.c
+++ b/tests/i915/gem_exec_capture.c
@@ -36,11 +36,16 @@
  * Description: Check that we capture the user specified objects on a hang
  * Feature: cmd_submission
  * Run type: FULL
+ * Test category: GEM_Legacy
  *
  * SUBTEST: capture
+ * Category: Server
+ * Functionality: offline debugging
+ * Sub-category: debugger
  *
  * SUBTEST: capture-invisible
- * Description: Check that the kernel doesn't crash if the pages can't be copied from the CPU during error
+ * Description:
+ *   Check that the kernel doesn't crash if the pages can't be copied from the CPU during error
  *   capture.
  *
  * SUBTEST: capture-recoverable
@@ -57,8 +62,14 @@
  * SUBTEST: many-4K-zero
  *
  * SUBTEST: pi
+ * Category: Server
+ * Functionality: offline debugging
+ * Sub-category: debugger
  *
  * SUBTEST: userptr
+ * Category: Infrastructure
+ * Functionality: buffer management
+ * Sub-category: i915
  */
 
 #define MAX_RESET_TIME	600
diff --git a/tests/i915/gem_exec_create.c b/tests/i915/gem_exec_create.c
index 208faef31ff8..e1eaf687fa6e 100644
--- a/tests/i915/gem_exec_create.c
+++ b/tests/i915/gem_exec_create.c
@@ -48,27 +48,47 @@
 #include "i915/intel_memory_region.h"
 /**
  * TEST: gem exec create
- * Description: This test overloads the driver with transient active objects and checks if we don't kill the
+ * Description:
+ *   This test overloads the driver with transient active objects and checks if we don't kill the
  *   system under the memory pressure some of the symptoms this test look for include mysterious
  *   hangs.
  * Feature: cmd_submission
  *
  * SUBTEST: basic
- * Description: Check if we kill system by overloading it with active objects iterating over all engines.
+ * Category: Infrastructure
+ * Description:
+ *   Check if we kill system by overloading it with active objects iterating over all engines.
+ *   Buffer Management
+ * Functionality: semaphore
  * Run type: BAT
+ * Sub-category: i915
+ * Test category: GEM_Legacy
  *
  * SUBTEST: forked
+ * Category: Infrastructure
  * Description: Concurrently overloads system with active objects and checks if we kill system.
+ * Functionality: buffer management
  * Run type: FULL
+ * Sub-category: i915
+ * Test category: GEM_Legacy
  *
  * SUBTEST: legacy
- * Description: Check if we kill the system by overloading it with active objects iterating over legacy
+ * Category: Infrastructure
+ * Description:
+ *   Check if we kill the system by overloading it with active objects iterating over legacy
  *   engines.
+ * Functionality: buffer management
  * Run type: FULL
+ * Sub-category: i915
+ * Test category: GEM_Legacy
  *
  * SUBTEST: madvise
+ * Category: Server
  * Description: This test does a forced reclaim, behaving like a bad application leaking its bo cache.
+ * Functionality: command submission
  * Run type: FULL
+ * Sub-category: Compute
+ * Test category: GEM_Legacy
  */
 
 IGT_TEST_DESCRIPTION("This test overloads the driver with transient active objects"
diff --git a/tests/i915/gem_exec_endless.c b/tests/i915/gem_exec_endless.c
index 25ad16898761..f118a8de3f66 100644
--- a/tests/i915/gem_exec_endless.c
+++ b/tests/i915/gem_exec_endless.c
@@ -32,8 +32,12 @@
 #include "sw_sync.h"
 /**
  * TEST: gem exec endless
+ * Category: Infrastructure
  * Feature: cmd_submission
+ * Functionality: semaphore
  * Run type: FULL
+ * Sub-category: i915
+ * Test category: MultiTile
  *
  * SUBTEST: dispatch
  */
diff --git a/tests/i915/gem_exec_fence.c b/tests/i915/gem_exec_fence.c
index 90ce16cadd59..39f5a1982dfe 100644
--- a/tests/i915/gem_exec_fence.c
+++ b/tests/i915/gem_exec_fence.c
@@ -45,29 +45,48 @@
  * Run type: FULL
  *
  * SUBTEST: basic-await
- * Description: Basic check for explicit fence with async wait on each engine.
+ * Description:
+ *   Basic check for explicit fence with async wait on each engine.
+ *   Basic check for explicit fence on each busy engine.
  * Feature: cmd_submission, multitile, synchronization
+ * Functionality: semaphore
  * Run type: BAT
+ * Test category: MultiTile
  *
  * SUBTEST: basic-busy
- * Description: Basic check for explicit fence on each busy engine.
+ * Description:
+ *   Basic check for explicit fence on each busy engine.
+ *   Basic check for composite fence on all busy engines.
  * Feature: cmd_submission, multitile, synchronization
+ * Functionality: semaphore
  * Run type: BAT
+ * Test category: MultiTile
  *
  * SUBTEST: basic-busy-all
  * Description: Basic check for composite fence on all busy engines.
  * Feature: cmd_submission, multitile, synchronization
+ * Functionality: Basic check for explicit fence with additional wait time on each busy engine.
  * Run type: FULL
+ * Test category: MultiTile
  *
  * SUBTEST: basic-wait
- * Description: Basic check for explicit fence with additinal wait time on each busy engine.
+ * Description:
+ *   Basic check for explicit fence with additinal wait time on each busy engine.
+ *   Basic check of ring to ring write, store synchronisation
  * Feature: cmd_submission, multitile, synchronization
+ * Functionality: semaphore
  * Run type: BAT
+ * Test category: MultiTile
  *
  * SUBTEST: basic-wait-all
- * Description: Basic check for composite fence with additional wait on all busy engines.
+ * Category: Infrastructure
+ * Description:
+ *   Basic check for composite fence with additional wait on all busy engines.
+ *   Test spamming ring with contexts
  * Feature: cmd_submission, multitile, synchronization
+ * Functionality: semaphore
  * Run type: FULL
+ * Test category: GEM_Legacy
  *
  * SUBTEST: busy-hang
  * Description: Check for explicit fence on each busy engine with a pending gpu hang.
@@ -85,35 +104,61 @@
  * Run type: FULL
  *
  * SUBTEST: expired-history
+ * Category: Infrastructure
  * Description: Verifies long history of fences are expired.
  * Feature: cmd_submission, synchronization
+ * Functionality: semaphore
  * Run type: FULL
+ * Sub-category: i915
+ * Test category: GEM_Legacy
  *
  * SUBTEST: invalid-fence-array
+ * Category: Infrastructure
  * Description: Verifies invalid fence-array pointers are rejected.
  * Feature: cmd_submission, synchronization
+ * Functionality: semaphore
  * Run type: FULL
+ * Sub-category: i915
+ * Test category: GEM_Legacy
  *
  * SUBTEST: invalid-timeline-fence-array
- * Description: Verifies invalid execbuf parameters in drm_i915_gem_execbuffer_ext_timeline_fences
+ * Category: Infrastructure
+ * Description:
+ *   Verifies invalid execbuf parameters in drm_i915_gem_execbuffer_ext_timeline_fences
  *   are rejected
  * Feature: cmd_submission, synchronization
+ * Functionality: semaphore
  * Run type: FULL
+ * Sub-category: i915
+ * Test category: MultiTile
  *
  * SUBTEST: keep-in-fence
- * Description: Check in-fence is not overwritten with out-fence on each engine.
+ * Category: Infrastructure
+ * Description:
+ *   Check in-fence is not overwritten with out-fence on each engine.
+ *   Check for explicit fence with non-blocking wait on each
  * Feature: cmd_submission, multitile, synchronization
+ * Functionality: semaphore
  * Run type: FULL
+ * Test category: GEM_Legacy
  *
  * SUBTEST: long-history
+ * Category: Infrastructure
  * Description: Verifies accumulation of long history of fences.
  * Feature: cmd_submission, synchronization
+ * Functionality: semaphore
  * Run type: FULL
+ * Sub-category: i915
+ * Test category: MultiTile
  *
  * SUBTEST: nb-await
- * Description: Check for explicit fence with non-blocking wait on each engine.
+ * Description:
+ *   Check for explicit fence with non-blocking wait on each engine.
+ *   Check for EXEC_FENCE_SUBMIT in parallel execution scenarios
  * Feature: cmd_submission, multitile, synchronization
+ * Functionality: command submission
  * Run type: BAT
+ * Test category: MultiTile
  *
  * SUBTEST: nb-await-hang
  * Description: Check for explicit fence with non-blocking async wait on each engine with a pending gpu hang.
@@ -121,9 +166,14 @@
  * Run type: FULL
  *
  * SUBTEST: parallel
- * Description: Check for EXEC_FENCE_SUBMIT in parallel execution scenarios on each engine.
+ * Category: Infrastructure
+ * Description:
+ *   Check for EXEC_FENCE_SUBMIT in parallel execution scenarios on each engine.
+ *   Tile meta data validation
  * Feature: cmd_submission, multitile, synchronization
+ * Functionality: semaphore
  * Run type: FULL
+ * Test category: GEM_Legacy
  *
  * SUBTEST: submit
  * Description: Check timeslicing on submit-fence.
@@ -141,126 +191,215 @@
  * Run type: FULL
  *
  * SUBTEST: submit67
- * Description: Check timeslicing on submit-fence by submitting more coupled batches than can possibly fit
+ * Description:
+ *   Check timeslicing on submit-fence by submitting more coupled batches than can possibly fit
  *   into the ELSP.
  * Feature: cmd_submission, synchronization
  * Run type: FULL
  *
  * SUBTEST: syncobj-backward-timeline-chain-engines
- * Description: Engine chaining tests to verify ordering of timeline syncobjs with backward timeline
+ * Category: Infrastructure
+ * Description:
+ *   Engine chaining tests to verify ordering of timeline syncobjs with backward timeline
  *   points.
  * Feature: cmd_submission, synchronization
+ * Functionality: semaphore
  * Run type: FULL
+ * Sub-category: i915
+ * Test category: GEM_Legacy
  *
  * SUBTEST: syncobj-channel
+ * Category: Infrastructure
  * Description: Verifies two clients racing for syncobj using channel.
  * Feature: cmd_submission, synchronization
+ * Functionality: semaphore
  * Run type: FULL
+ * Sub-category: i915
+ * Test category: GEM_Legacy
  *
  * SUBTEST: syncobj-export
+ * Category: Infrastructure
  * Description: Verify exporting of fence-array syncobj signaled by i915.
  * Feature: cmd_submission, synchronization
+ * Functionality: semaphore
  * Run type: FULL
+ * Sub-category: i915
+ * Test category: GEM_Legacy
  *
  * SUBTEST: syncobj-import
+ * Category: Infrastructure
  * Description: Verifies creating of a syncobj from explicit fence.
  * Feature: cmd_submission, synchronization
+ * Functionality: semaphore
  * Run type: FULL
+ * Sub-category: i915
+ * Test category: GEM_Legacy
  *
  * SUBTEST: syncobj-invalid-flags
+ * Category: Infrastructure
  * Description: Verifies that invalid fence flags in fence-array are rejected.
  * Feature: cmd_submission, synchronization
+ * Functionality: semaphore
  * Run type: FULL
+ * Sub-category: i915
+ * Test category: GEM_Legacy
  *
  * SUBTEST: syncobj-invalid-wait
+ * Category: Infrastructure
  * Description: Verifies that submitting an execbuf with a wait on a syncobj that doesn't exists is rejected.
  * Feature: cmd_submission, synchronization
+ * Functionality: semaphore
  * Run type: FULL
+ * Sub-category: i915
+ * Test category: GEM_Legacy
  *
  * SUBTEST: syncobj-repeat
+ * Category: Infrastructure
  * Description: Verifies that waiting & signaling a same fence-array syncobj within the same execbuf works.
  * Feature: cmd_submission, synchronization
+ * Functionality: semaphore
  * Run type: FULL
+ * Sub-category: i915
+ * Test category: GEM_Legacy
  *
  * SUBTEST: syncobj-signal
+ * Category: Infrastructure
  * Description: Verifies proper signaling of a fence-array syncobj through execbuf.
  * Feature: cmd_submission, synchronization
+ * Functionality: semaphore
  * Run type: FULL
+ * Sub-category: i915
+ * Test category: GEM_Legacy
  *
  * SUBTEST: syncobj-stationary-timeline-chain-engines
- * Description: Engine chaining tests to verify ordering of timeline syncobj with stationary timeline
+ * Category: Infrastructure
+ * Description:
+ *   Engine chaining tests to verify ordering of timeline syncobj with stationary timeline
  *   points.
  * Feature: cmd_submission, synchronization
+ * Functionality: semaphore
  * Run type: FULL
+ * Sub-category: i915
+ * Test category: GEM_Legacy
  *
  * SUBTEST: syncobj-timeline-chain-engines
+ * Category: Infrastructure
  * Description: Engine chaining tests to verify ordering of timeline syncobjs through execbuf.
  * Feature: cmd_submission, synchronization
+ * Functionality: semaphore
  * Run type: FULL
+ * Sub-category: i915
+ * Test category: GEM_Legacy
  *
  * SUBTEST: syncobj-timeline-export
+ * Category: Infrastructure
  * Description: Verify exporting of timeline syncobj signaled by i915
  * Feature: cmd_submission, synchronization
+ * Functionality: semaphore
  * Run type: FULL
+ * Sub-category: i915
+ * Test category: GEM_Legacy
  *
  * SUBTEST: syncobj-timeline-invalid-flags
- * Description: Verifies that invalid fence flags in drm_i915_gem_execbuffer_ext_timeline_fences are
+ * Category: Infrastructure
+ * Description:
+ *   Verifies that invalid fence flags in drm_i915_gem_execbuffer_ext_timeline_fences are
  *   rejected
  * Feature: cmd_submission, synchronization
+ * Functionality: semaphore
  * Run type: FULL
+ * Sub-category: i915
+ * Test category: GEM_Legacy
  *
  * SUBTEST: syncobj-timeline-invalid-wait
- * Description: Verifies that submitting an execbuf with a wait on a timeline syncobj point that does not
+ * Category: Infrastructure
+ * Description:
+ *   Verifies that submitting an execbuf with a wait on a timeline syncobj point that does not
  *   exists is rejected
  * Feature: cmd_submission, synchronization
+ * Functionality: semaphore
  * Run type: FULL
+ * Sub-category: i915
+ * Test category: GEM_Legacy
  *
  * SUBTEST: syncobj-timeline-multiple-ext-nodes
+ * Category: Infrastructure
  * Description: Verify that passing multiple execbuffer_ext nodes works
  * Feature: cmd_submission, synchronization
+ * Functionality: semaphore
  * Run type: FULL
+ * Sub-category: i915
+ * Test category: GEM_Legacy
  *
  * SUBTEST: syncobj-timeline-repeat
- * Description: Verifies that waiting & signaling a same timeline syncobj point within the same execbuf
+ * Category: Infrastructure
+ * Description:
+ *   Verifies that waiting & signaling a same timeline syncobj point within the same execbuf
  *   fworks
  * Feature: cmd_submission, synchronization
+ * Functionality: semaphore
  * Run type: FULL
+ * Sub-category: i915
+ * Test category: GEM_Legacy
  *
  * SUBTEST: syncobj-timeline-signal
+ * Category: Infrastructure
  * Description: Verifies proper signaling of a timeline syncobj through execbuf
  * Feature: cmd_submission, synchronization
+ * Functionality: semaphore
  * Run type: FULL
+ * Sub-category: i915
+ * Test category: GEM_Legacy
  *
  * SUBTEST: syncobj-timeline-unused-fence
- * Description: Verifies that a timeline syncobj passed into
+ * Category: Infrastructure
+ * Description:
+ *   Verifies that a timeline syncobj passed into
  *   drm_i915_gem_execbuffer_ext_timeline_fences but with no signal/wait flag is left
  *   untouched
  * Feature: cmd_submission, synchronization
+ * Functionality: semaphore
  * Run type: FULL
+ * Sub-category: i915
+ * Test category: GEM_Legacy
  *
  * SUBTEST: syncobj-timeline-wait
+ * Category: Infrastructure
  * Description: Verifies that waiting on a timeline syncobj point between engines works
  * Feature: cmd_submission, synchronization
+ * Functionality: semaphore
  * Run type: FULL
+ * Sub-category: i915
+ * Test category: GEM_Legacy
  *
  * SUBTEST: syncobj-unused-fence
+ * Category: Infrastructure
  * Description: Verifies that a syncobj passed into execbuf but with no signal/wait flag is left untouched.
  * Feature: cmd_submission, synchronization
+ * Functionality: semaphore
  * Run type: FULL
+ * Sub-category: i915
+ * Test category: GEM_Legacy
  *
  * SUBTEST: syncobj-wait
+ * Category: Infrastructure
  * Description: Verifies that waiting on a timeline syncobj point between engines works.
  * Feature: cmd_submission, synchronization
+ * Functionality: command submission
  * Run type: FULL
+ * Sub-category: i915
+ * Test category: GEM_Legacy
  *
  * SUBTEST: wait-hang
- * Description: Check for explicit fence with additional wait time on each busy engine with a pending gpu
+ * Description:
+ *   Check for explicit fence with additional wait time on each busy engine with a pending gpu
  *   hang.
  * Feature: cmd_submission, synchronization
  * Run type: FULL
  *
  * SUBTEST: wait-hang-all
- * Description: Check for composite fence with additional wait on all busy engines and with a pending gpu
+ * Description:
+ *   Check for composite fence with additional wait on all busy engines and with a pending gpu
  *   hang.
  * Feature: cmd_submission, synchronization
  * Run type: FULL
diff --git a/tests/i915/gem_exec_gttfill.c b/tests/i915/gem_exec_gttfill.c
index 496ad6e8bb16..400e3d1d0545 100644
--- a/tests/i915/gem_exec_gttfill.c
+++ b/tests/i915/gem_exec_gttfill.c
@@ -28,26 +28,38 @@
 #include "igt_rand.h"
 /**
  * TEST: gem exec gttfill
+ * Category: Infrastructure
  * Description: Fill the GTT with batches.
+ * Sub-category: i915
  *
  * SUBTEST: all-engines
  * Description: Stress test check behaviour/correctness of handling batches to fill gtt
  * Feature: cmd_submission, gtt
+ * Functionality: command submission
  * Run type: FULL
+ * Test category: GEM_Legacy
  *
  * SUBTEST: basic
- * Description: Checks if it can handle enough batches to fill gtt
+ * Description:
+ *   Checks if it can handle enough batches to fill gtt.
+ *   Command Submission
  * Feature: cmd_submission, gtt
+ * Functionality: D3 state entry-exit
  * Run type: BAT
+ * Test category: GEM_Legacy
  *
  * SUBTEST: engines
  * Description: Checks the correctness of handling enough batches to fill gtt for each engine
  * Feature: cmd_submission, gtt
+ * Functionality: command submission
  * Run type: FULL
+ * Test category: GEM_Legacy
  *
  * SUBTEST: multigpu-basic
  * Feature: cmd_submission, gtt, multigpu
+ * Functionality: Used for shared handle on two GPUs in series and in parallel to verify multigpu functionality , skips in absence of other fd card
  * Run type: FULL
+ * Test category: MultiGPU
  */
 
 IGT_TEST_DESCRIPTION("Fill the GTT with batches.");
diff --git a/tests/i915/gem_exec_nop.c b/tests/i915/gem_exec_nop.c
index 1d44456d06fa..edc5d63b8e6c 100644
--- a/tests/i915/gem_exec_nop.c
+++ b/tests/i915/gem_exec_nop.c
@@ -50,16 +50,24 @@
 
 /**
  * TEST: gem exec nop
+ * Category: Infrastructure
  * Run type: FULL
+ * Sub-category: i915
  *
  * SUBTEST: basic-parallel
  * Feature: cmd_submission
+ * Functionality: command submission
+ * Test category: GEM_Legacy
  *
  * SUBTEST: basic-sequential
  * Feature: cmd_submission
+ * Functionality: command submission
+ * Test category: GEM_Legacy
  *
  * SUBTEST: basic-series
  * Feature: cmd_submission
+ * Functionality: command submission
+ * Test category: GEM_Legacy
  *
  * SUBTEST: context-sequential
  * Feature: cmd_submission
diff --git a/tests/i915/gem_exec_parallel.c b/tests/i915/gem_exec_parallel.c
index 0e42aa364ca7..4829b0c39c72 100644
--- a/tests/i915/gem_exec_parallel.c
+++ b/tests/i915/gem_exec_parallel.c
@@ -37,26 +37,44 @@
  * TEST: gem exec parallel
  * Description: Exercise filling buffers by many clients working in parallel.
  * Feature: cmd_submission
+ * Sub-category: i915
  *
  * SUBTEST: basic
+ * Category: Infrastructure
  * Description: Check basic functionality per engine.
+ * Functionality: command submission
  * Run type: FULL
+ * Test category: GEM_Legacy
  *
  * SUBTEST: contexts
+ * Category: Infrastructure
  * Description: Check with many contexts.
+ * Functionality: command submission
  * Run type: FULL
+ * Test category: GEM_Legacy
  *
  * SUBTEST: engines
- * Description: Check with engines working in parallel.
+ * Category: Infrastructure
+ * Description:
+ *   Check with engines working in parallel.
+ *   Command Submission
+ * Functionality: coherency
  * Run type: BAT
+ * Test category: GEM_Legacy
  *
  * SUBTEST: fds
+ * Category: Infrastructure
  * Description: Check with many fds.
+ * Functionality: command submission
  * Run type: FULL
+ * Test category: GEM_Legacy
  *
  * SUBTEST: userptr
+ * Category: Desktop client
  * Description: Check basic userptr thrashing.
+ * Functionality: command submission
  * Run type: FULL
+ * Test category: GEM_Legacy
  */
 
 IGT_TEST_DESCRIPTION("Exercise filling buffers by many clients working in parallel.");
diff --git a/tests/i915/gem_exec_params.c b/tests/i915/gem_exec_params.c
index bd7ec2cd1f39..062896079abf 100644
--- a/tests/i915/gem_exec_params.c
+++ b/tests/i915/gem_exec_params.c
@@ -46,7 +46,10 @@
 #include "sw_sync.h"
 /**
  * TEST: gem exec params
+ * Functionality: command submission
  * Run type: FULL
+ * Sub-category: i915
+ * Test category: GEM_Legacy
  *
  * SUBTEST: DR1-dirt
  * Feature: cmd_submission
@@ -55,21 +58,27 @@
  * Feature: cmd_submission
  *
  * SUBTEST: batch-first
+ * Category: Desktop client
  * Feature: cmd_submission
  *
  * SUBTEST: cliprects-invalid
+ * Category: Desktop client
  * Feature: cmd_submission
  *
  * SUBTEST: cliprects_ptr-dirt
+ * Category: Desktop client
  * Feature: cmd_submission
  *
  * SUBTEST: invalid-batch-start-offset
+ * Category: Desktop client
  * Feature: cmd_submission
  *
  * SUBTEST: invalid-bsd-ring
+ * Category: Desktop client
  * Feature: cmd_submission
  *
  * SUBTEST: invalid-bsd1-flag-on-blt
+ * Category: Desktop client
  * Feature: cmd_submission
  *
  * SUBTEST: invalid-bsd1-flag-on-render
@@ -79,6 +88,7 @@
  * Feature: cmd_submission
  *
  * SUBTEST: invalid-bsd2-flag-on-blt
+ * Category: Desktop client
  * Feature: cmd_submission
  *
  * SUBTEST: invalid-bsd2-flag-on-render
@@ -88,24 +98,31 @@
  * Feature: cmd_submission
  *
  * SUBTEST: invalid-fence-in
+ * Category: Desktop client
  * Feature: cmd_submission
  *
  * SUBTEST: invalid-fence-in-submit
+ * Category: Desktop client
  * Feature: cmd_submission
  *
  * SUBTEST: invalid-flag
+ * Category: Desktop client
  * Feature: cmd_submission
  *
  * SUBTEST: invalid-ring
+ * Category: Desktop client
  * Feature: cmd_submission
  *
  * SUBTEST: invalid-ring2
+ * Category: Desktop client
  * Feature: cmd_submission
  *
  * SUBTEST: larger-than-life-batch
+ * Category: Desktop client
  * Feature: cmd_submission
  *
  * SUBTEST: mmapped
+ * Category: Desktop client
  * Feature: cmd_submission
  *
  * SUBTEST: no-blt
@@ -118,18 +135,22 @@
  * Feature: cmd_submission
  *
  * SUBTEST: readonly
+ * Category: Desktop client
  * Feature: cmd_submission
  *
  * SUBTEST: rel-constants-invalid
+ * Category: Desktop client
  * Feature: cmd_submission
  *
  * SUBTEST: rel-constants-invalid-rel-gen5
+ * Category: Desktop client
  * Feature: cmd_submission
  *
  * SUBTEST: rel-constants-invalid-ring
  * Feature: cmd_submission
  *
  * SUBTEST: rs-invalid
+ * Category: Desktop client
  * Feature: cmd_submission
  *
  * SUBTEST: rsvd2-dirt
@@ -145,6 +166,7 @@
  * Feature: cmd_submission
  *
  * SUBTEST: sol-reset-not-gen7
+ * Category: Desktop \ Server
  * Feature: cmd_submission
  */
 
diff --git a/tests/i915/gem_exec_schedule.c b/tests/i915/gem_exec_schedule.c
index d17d07893f07..d3de0371ee80 100644
--- a/tests/i915/gem_exec_schedule.c
+++ b/tests/i915/gem_exec_schedule.c
@@ -48,84 +48,157 @@
  * TEST: gem exec schedule
  * Description: Check that we can control the order of execution
  * Run type: FULL
+ * Test category: GEM_Legacy
  *
  * SUBTEST: deep
+ * Category: Desktop \ Server
  * Feature: cmd_submission
+ * Functionality: command submission
+ * Sub-category: i915
  *
  * SUBTEST: fairslice
+ * Category: Desktop \ Server
  * Feature: cmd_submission
+ * Functionality: command submission
+ * Sub-category: i915
  *
  * SUBTEST: fairslice-all
+ * Category: Desktop \ Server
  * Feature: cmd_submission
+ * Functionality: command submission
+ * Sub-category: i915
  *
  * SUBTEST: fifo
+ * Category: Desktop \ Server
  * Feature: cmd_submission
+ * Functionality: command submission
+ * Sub-category: i915
  *
  * SUBTEST: implicit-boths
+ * Category: Desktop \ Server
  * Feature: cmd_submission
+ * Functionality: command submission
+ * Sub-category: i915
  *
  * SUBTEST: implicit-read-write
+ * Category: Desktop \ Server
  * Feature: cmd_submission
+ * Functionality: command submission
+ * Sub-category: i915
  *
  * SUBTEST: implicit-write-read
+ * Category: Desktop \ Server
  * Feature: cmd_submission
+ * Functionality: command submission
+ * Sub-category: i915
  *
  * SUBTEST: in-order
+ * Category: Desktop \ Server
  * Feature: cmd_submission
+ * Functionality: command submission
+ * Sub-category: i915
  *
  * SUBTEST: independent
+ * Category: Desktop \ Server
  * Feature: cmd_submission
+ * Functionality: command submission
+ * Sub-category: i915
  *
  * SUBTEST: lateslice
+ * Category: Desktop \ Server
  * Feature: cmd_submission
+ * Functionality: command submission
+ * Sub-category: i915
  *
  * SUBTEST: manyslice
+ * Category: Desktop \ Server
  * Feature: cmd_submission
+ * Functionality: command submission
+ * Sub-category: i915
  *
  * SUBTEST: noreorder
+ * Category: Desktop \ Server
  * Feature: cmd_submission
+ * Functionality: command submission
+ * Sub-category: i915
  *
  * SUBTEST: noreorder-corked
+ * Category: Desktop \ Server
  * Feature: cmd_submission
+ * Functionality: command submission
+ * Sub-category: i915
  *
  * SUBTEST: noreorder-priority
+ * Category: Desktop \ Server
  * Feature: cmd_submission
+ * Functionality: command submission
+ * Sub-category: i915
  *
  * SUBTEST: out-order
+ * Category: Desktop \ Server
  * Feature: cmd_submission
+ * Functionality: command submission
+ * Sub-category: i915
  *
  * SUBTEST: pi-common
+ * Category: Desktop \ Server
  * Feature: cmd_submission
+ * Functionality: command submission
+ * Sub-category: i915
  *
  * SUBTEST: pi-distinct-iova
  * Feature: cmd_submission
  *
  * SUBTEST: pi-ringfull
+ * Category: Desktop \ Server
  * Feature: cmd_submission
+ * Functionality: command submission
+ * Sub-category: i915
  *
  * SUBTEST: pi-shared-iova
  * Feature: cmd_submission
  *
  * SUBTEST: pi-userfault
+ * Category: Desktop \ Server
  * Feature: cmd_submission
+ * Functionality: command submission
+ * Sub-category: i915
  *
  * SUBTEST: preempt
+ * Category: Desktop \ Server
  * Feature: cmd_submission
+ * Functionality: command submission
+ * Sub-category: i915
  *
  * SUBTEST: preempt-contexts
+ * Category: Desktop \ Server
  * Feature: cmd_submission, multictx
+ * Functionality: command submission
+ * Sub-category: i915
  *
  * SUBTEST: preempt-engines
+ * Category: Desktop \ Server
  * Feature: cmd_submission, multictx
+ * Functionality: command submission
+ * Sub-category: i915
  *
  * SUBTEST: preempt-hang
+ * Category: Desktop \ Server
  * Feature: cmd_submission, multictx
+ * Functionality: command submission
+ * Sub-category: i915
  *
  * SUBTEST: preempt-other
+ * Category: Desktop \ Server
  * Feature: cmd_submission, multictx
+ * Functionality: command submission
+ * Sub-category: i915
  *
  * SUBTEST: preempt-other-chain
+ * Category: Desktop \ Server
  * Feature: cmd_submission, multictx
+ * Functionality: command submission
+ * Sub-category: i915
  *
  * SUBTEST: preempt-queue
  * Feature: cmd_submission, multictx
@@ -140,91 +213,172 @@
  * Feature: cmd_submission, multictx
  *
  * SUBTEST: preempt-self
+ * Category: Desktop \ Server
  * Feature: cmd_submission, multictx
+ * Functionality: command submission
+ * Sub-category: i915
  *
  * SUBTEST: preempt-user
+ * Category: Desktop \ Server
  * Feature: cmd_submission, multictx
+ * Functionality: command submission
+ * Sub-category: i915
  *
  * SUBTEST: preemptive-hang
+ * Category: Desktop \ Server
  * Feature: cmd_submission
+ * Functionality: command submission
+ * Sub-category: i915
  *
  * SUBTEST: promotion
+ * Category: Desktop \ Server
  * Feature: cmd_submission
+ * Functionality: command submission
+ * Sub-category: i915
  *
  * SUBTEST: reorder-wide
  * Feature: cmd_submission
  *
  * SUBTEST: semaphore-codependency
+ * Category: Desktop \ Server
  * Feature: cmd_submission
+ * Functionality: command submission
+ * Sub-category: i915
  *
  * SUBTEST: semaphore-noskip
+ * Category: Desktop \ Server
  * Feature: cmd_submission
+ * Functionality: command submission
+ * Sub-category: i915
  *
  * SUBTEST: semaphore-power
  * Feature: cmd_submission
  *
  * SUBTEST: semaphore-resolve
+ * Category: Desktop \ Server
  * Feature: cmd_submission
+ * Functionality: command submission
+ * Sub-category: i915
  *
  * SUBTEST: semaphore-user
+ * Category: Desktop \ Server
  * Feature: cmd_submission
+ * Functionality: command submission
+ * Sub-category: i915
  *
  * SUBTEST: smoketest
+ * Category: Desktop \ Server
  * Feature: cmd_submission
+ * Functionality: command submission
+ * Sub-category: i915
  *
  * SUBTEST: smoketest-all
+ * Category: Desktop \ Server
  * Feature: cmd_submission
+ * Functionality: command submission
+ * Sub-category: i915
  *
  * SUBTEST: submit-early-slice
+ * Category: Desktop \ Server
  * Feature: cmd_submission
+ * Functionality: command submission
+ * Sub-category: i915
  *
  * SUBTEST: submit-golden-slice
+ * Category: Desktop \ Server
  * Feature: cmd_submission
+ * Functionality: command submission
+ * Sub-category: i915
  *
  * SUBTEST: submit-late-slice
+ * Category: Desktop \ Server
  * Feature: cmd_submission
+ * Functionality: command submission
+ * Sub-category: i915
  *
  * SUBTEST: thriceslice
+ * Category: Desktop \ Server
  * Feature: cmd_submission
+ * Functionality: command submission
+ * Sub-category: i915
  *
  * SUBTEST: timeslicing
+ * Category: Desktop \ Server
  * Feature: cmd_submission
+ * Functionality: command submission
+ * Sub-category: i915
  *
  * SUBTEST: u-fairslice
+ * Category: Desktop \ Server
  * Feature: cmd_submission
+ * Functionality: command submission
+ * Sub-category: i915
  *
  * SUBTEST: u-fairslice-all
+ * Category: Desktop \ Server
  * Feature: cmd_submission
+ * Functionality: command submission
+ * Sub-category: i915
  *
  * SUBTEST: u-independent
+ * Category: Desktop \ Server
  * Feature: cmd_submission
+ * Functionality: command submission
+ * Sub-category: i915
  *
  * SUBTEST: u-lateslice
+ * Category: Desktop \ Server
  * Feature: cmd_submission
+ * Functionality: command submission
+ * Sub-category: i915
  *
  * SUBTEST: u-semaphore-codependency
+ * Category: Desktop \ Server
  * Feature: cmd_submission
+ * Functionality: command submission
+ * Sub-category: i915
  *
  * SUBTEST: u-semaphore-noskip
+ * Category: Desktop \ Server
  * Feature: cmd_submission
+ * Functionality: command submission
+ * Sub-category: i915
  *
  * SUBTEST: u-semaphore-resolve
+ * Category: Desktop \ Server
  * Feature: cmd_submission
+ * Functionality: command submission
+ * Sub-category: i915
  *
  * SUBTEST: u-semaphore-user
+ * Category: Desktop \ Server
  * Feature: cmd_submission
+ * Functionality: command submission
+ * Sub-category: i915
  *
  * SUBTEST: u-submit-early-slice
+ * Category: Desktop \ Server
  * Feature: cmd_submission
+ * Functionality: command submission
+ * Sub-category: i915
  *
  * SUBTEST: u-submit-golden-slice
+ * Category: Desktop \ Server
  * Feature: cmd_submission
+ * Functionality: command submission
+ * Sub-category: i915
  *
  * SUBTEST: u-submit-late-slice
+ * Category: Desktop \ Server
  * Feature: cmd_submission
+ * Functionality: command submission
+ * Sub-category: i915
  *
  * SUBTEST: wide
+ * Category: Infrastructure
  * Feature: cmd_submission
+ * Functionality: coherency
+ * Sub-category: HW
  */
 
 #define LO 0
diff --git a/tests/i915/gem_exec_store.c b/tests/i915/gem_exec_store.c
index 19c1a060e3b0..378691d35953 100644
--- a/tests/i915/gem_exec_store.c
+++ b/tests/i915/gem_exec_store.c
@@ -36,24 +36,36 @@
 #include "igt_gt.h"
 /**
  * TEST: gem exec store
+ * Category: Infrastructure
  * Description: Exercise store dword functionality using execbuf-ioctl
  * Feature: cmd_submission
+ * Test category: GEM_Legacy
  *
  * SUBTEST: basic
- * Description: Verify that all capable engines can store dwords to a common buffer object
+ * Description:
+ *   Verify that all capable engines can store dwords to a common buffer object.
+ *   Coherency
+ * Functionality: buffer management
  * Run type: BAT
+ * Sub-category: HW
  *
  * SUBTEST: cachelines
  * Description: Verify that each capable engine can store a dword to different cachelines of a buffer object
+ * Functionality: coherency
  * Run type: FULL
+ * Sub-category: HW
  *
  * SUBTEST: dword
  * Description: Verify that each capable engine can store a dword to a buffer object
+ * Functionality: coherency
  * Run type: FULL
+ * Sub-category: HW
  *
  * SUBTEST: pages
  * Description: Verify that each capable engine can store a dword to various page-sized buffer objects
+ * Functionality: security
  * Run type: FULL
+ * Sub-category: i915
  */
 
 IGT_TEST_DESCRIPTION("Exercise store dword functionality using execbuf-ioctl");
diff --git a/tests/i915/gem_exec_whisper.c b/tests/i915/gem_exec_whisper.c
index 3a1ca995c9c5..c88147a44ce9 100644
--- a/tests/i915/gem_exec_whisper.c
+++ b/tests/i915/gem_exec_whisper.c
@@ -41,54 +41,121 @@
  * TEST: gem exec whisper
  * Feature: cmd_submission
  * Run type: FULL
+ * Test category: GEM_Legacy
  *
  * SUBTEST: basic-contexts
+ * Category: Infrastructure
+ * Functionality: command submission
+ * Sub-category: i915
  *
  * SUBTEST: basic-contexts-all
+ * Category: Infrastructure
+ * Functionality: command submission
+ * Sub-category: i915
  *
  * SUBTEST: basic-contexts-forked
+ * Category: Infrastructure
+ * Functionality: command submission
+ * Sub-category: i915
  *
  * SUBTEST: basic-contexts-forked-all
+ * Category: Infrastructure
+ * Functionality: command submission
+ * Sub-category: i915
  *
  * SUBTEST: basic-contexts-priority
+ * Category: Infrastructure
+ * Functionality: command submission
+ * Sub-category: i915
  *
  * SUBTEST: basic-contexts-priority-all
+ * Category: Infrastructure
+ * Functionality: command submission
+ * Sub-category: i915
  *
  * SUBTEST: basic-fds
+ * Category: Infrastructure
+ * Functionality: command submission
+ * Sub-category: i915
  *
  * SUBTEST: basic-fds-all
+ * Category: Infrastructure
+ * Functionality: command submission
+ * Sub-category: i915
  *
  * SUBTEST: basic-fds-forked
+ * Category: Infrastructure
+ * Functionality: command submission
+ * Sub-category: i915
  *
  * SUBTEST: basic-fds-forked-all
+ * Category: Infrastructure
+ * Functionality: command submission
+ * Sub-category: i915
  *
  * SUBTEST: basic-fds-priority
+ * Category: Infrastructure
+ * Functionality: command submission
+ * Sub-category: i915
  *
  * SUBTEST: basic-fds-priority-all
+ * Category: Infrastructure
+ * Functionality: command submission
+ * Sub-category: i915
  *
  * SUBTEST: basic-forked
+ * Category: Infrastructure
+ * Functionality: command submission
+ * Sub-category: i915
  *
  * SUBTEST: basic-forked-all
+ * Category: Infrastructure
+ * Functionality: command submission
+ * Sub-category: i915
  *
  * SUBTEST: basic-normal
+ * Category: Infrastructure
+ * Functionality: command submission
+ * Sub-category: i915
  *
  * SUBTEST: basic-normal-all
+ * Category: Infrastructure
+ * Functionality: command submission
+ * Sub-category: i915
  *
  * SUBTEST: basic-queues
+ * Category: Infrastructure
+ * Functionality: command submission
  *
  * SUBTEST: basic-queues-all
+ * Category: Infrastructure
+ * Functionality: command submission
  *
  * SUBTEST: basic-queues-forked
+ * Category: Infrastructure
+ * Functionality: command submission
  *
  * SUBTEST: basic-queues-forked-all
+ * Category: Infrastructure
+ * Functionality: command submission
  *
  * SUBTEST: basic-queues-priority
+ * Category: Infrastructure
+ * Functionality: command submission
  *
  * SUBTEST: basic-queues-priority-all
+ * Category: Infrastructure
+ * Functionality: command submission
  *
  * SUBTEST: basic-sync
+ * Category: Infrastructure
+ * Functionality: command submission
+ * Sub-category: i915
  *
  * SUBTEST: basic-sync-all
+ * Category: Desktop client
+ * Functionality: buffer management
+ * Sub-category: DRM
  *
  * SUBTEST: chain
  *
diff --git a/tests/i915/gem_exercise_blt.c b/tests/i915/gem_exercise_blt.c
index af86d5edc2ab..336bcdbfa1aa 100644
--- a/tests/i915/gem_exercise_blt.c
+++ b/tests/i915/gem_exercise_blt.c
@@ -15,12 +15,17 @@
  * Description: Exercise blitter commands
  * Feature: blitter
  * Run type: FULL
+ * Test category: GEM_Legacy
  *
  * SUBTEST: fast-copy
- * Description: Check fast-copy blit
+ * Description:
+ *   Check fast-copy blit
+ *   blitter
  *
  * SUBTEST: fast-copy-emit
+ * Category: Desktop client
  * Description: Check multiple fast-copy in one batch
+ * Functionality: buffer management
  */
 
 IGT_TEST_DESCRIPTION("Exercise blitter commands");
diff --git a/tests/i915/gem_flink_basic.c b/tests/i915/gem_flink_basic.c
index 7feabf61a303..56daf4b1019d 100644
--- a/tests/i915/gem_flink_basic.c
+++ b/tests/i915/gem_flink_basic.c
@@ -40,24 +40,42 @@
 #include "igt_types.h"
 /**
  * TEST: gem flink basic
+ * Category: Desktop client
  * Description: Tests for flink - a way to export a gem object by name
  * Feature: xorg_dri2
- * Run type: BAT
+ * Sub-category: DRM
  *
  * SUBTEST: bad-flink
  * Description: Verify that GEM_FLINK ioctl with invalid gem object fails.
+ * Functionality: buffer management
+ * Run type: BAT
+ * Test category: GEM_Legacy
  *
  * SUBTEST: bad-open
  * Description: Verify that GEM_OPEN ioctl with invalid flink name fails.
+ * Functionality: buffer management
+ * Run type: BAT
+ * Test category: GEM_Legacy
  *
  * SUBTEST: basic
  * Description: Check if gem object can be exported to global namespace and then opened.
+ * Functionality: buffer management
+ * Run type: BAT
+ * Test category: GEM_Legacy
  *
  * SUBTEST: double-flink
  * Description: Tests that multiple flinks for the same gem object share the same name.
+ * Functionality: buffer management
+ * Run type: BAT
+ * Test category: GEM_Legacy
  *
  * SUBTEST: flink-lifetime
- * Description: Tests flink lifetime by referencing from multiple descriptors.
+ * Description:
+ *   Tests flink lifetime by referencing from multiple descriptors.
+ *   Buffer Management
+ * Functionality: command submission
+ * Run type: BAT
+ * Test category: GEM_Legacy
  */
 
 IGT_TEST_DESCRIPTION("Tests for flink - a way to export a gem object by name");
diff --git a/tests/i915/gem_flink_race.c b/tests/i915/gem_flink_race.c
index 5ebf1969b992..7199283b90d8 100644
--- a/tests/i915/gem_flink_race.c
+++ b/tests/i915/gem_flink_race.c
@@ -40,10 +40,17 @@
  * Description: Check for flink/open vs. gem close races.
  * Feature: xorg_dri2
  * Run type: FULL
+ * Test category: GEM_Legacy
  *
  * SUBTEST: flink_close
+ * Category: Desktop client
+ * Functionality: buffer management
+ * Sub-category: DRM
  *
  * SUBTEST: flink_name
+ * Category: Server
+ * Functionality: command submission
+ * Sub-category: Compute
  */
 
 IGT_TEST_DESCRIPTION("Check for flink/open vs. gem close races.");
diff --git a/tests/i915/gem_gpgpu_fill.c b/tests/i915/gem_gpgpu_fill.c
index f350e9fbb6d0..6145f43a79ff 100644
--- a/tests/i915/gem_gpgpu_fill.c
+++ b/tests/i915/gem_gpgpu_fill.c
@@ -52,8 +52,12 @@
  * TEST: gem gpgpu fill
  * Feature: compute
  * Run type: FULL
+ * Test category: GEM_Legacy
  *
  * SUBTEST: basic
+ * Category: Server
+ * Functionality: command submission
+ * Sub-category: Compute
  */
 
 #define WIDTH 64
diff --git a/tests/i915/gem_gtt_cpu_tlb.c b/tests/i915/gem_gtt_cpu_tlb.c
index 4f4af6a7b9b5..ef5cfa87412e 100644
--- a/tests/i915/gem_gtt_cpu_tlb.c
+++ b/tests/i915/gem_gtt_cpu_tlb.c
@@ -46,10 +46,11 @@
 /**
  * TEST: gem gtt cpu tlb
  * Description: Check whether gtt tlbs for cpu access are correctly invalidated.
- * Feature: gtt, mapping
+ * Feature: mapping, gtt
  * Run type: FULL
  *
  * SUBTEST:
+ * Feature: gtt, mapping
  */
 
 IGT_TEST_DESCRIPTION("Check whether gtt tlbs for cpu access are correctly"
diff --git a/tests/i915/gem_huc_copy.c b/tests/i915/gem_huc_copy.c
index 13298698452f..5a217c9840ea 100644
--- a/tests/i915/gem_huc_copy.c
+++ b/tests/i915/gem_huc_copy.c
@@ -42,7 +42,8 @@
  * Run type: BAT
  *
  * SUBTEST: huc-copy
- * Description: Make sure that Huc firmware worksby copying a char array using Hucand verifying the copied
+ * Description:
+ *   Make sure that Huc firmware worksby copying a char array using Hucand verifying the copied
  *   result
  */
 
diff --git a/tests/i915/gem_linear_blits.c b/tests/i915/gem_linear_blits.c
index 4c3576503ca3..3159dc9f60f5 100644
--- a/tests/i915/gem_linear_blits.c
+++ b/tests/i915/gem_linear_blits.c
@@ -51,20 +51,28 @@
 #include "i915/i915_blt.h"
 /**
  * TEST: gem linear blits
+ * Category: Infrastructure
  * Description: Test doing many blits with a working set larger than the aperture size.
  * Feature: blitter
+ * Sub-category: i915
  *
  * SUBTEST: basic
  * Description: Basic blitter functionality check with 2 buffers
+ * Functionality: command submission
  * Run type: BAT
+ * Test category: GEM_Legacy
  *
  * SUBTEST: interruptible
  * Description: Test with interrupts in between the parent process
+ * Functionality: command submission
  * Run type: FULL
+ * Test category: GEM_Legacy
  *
  * SUBTEST: normal
  * Description: The intent is to push beyond the working GTT size to force the driver to rebind the buffers
+ * Functionality: Memory Management
  * Run type: FULL
+ * Test category: GEM_Legacy
  */
 
 IGT_TEST_DESCRIPTION("Test doing many blits with a working set larger than the"
diff --git a/tests/i915/gem_lmem_evict.c b/tests/i915/gem_lmem_evict.c
index 9a8974b3ce09..7eabd6332ceb 100644
--- a/tests/i915/gem_lmem_evict.c
+++ b/tests/i915/gem_lmem_evict.c
@@ -12,6 +12,7 @@
  * Description: Force tiny lmem size for easily testing eviction scenarios.
  * Feature: local_memory
  * Run type: FULL
+ * Test category: GEM_Legacy
  *
  * SUBTEST: dontneed-evict-race
  * Description: Regression test to verify that madvise will sync against busy dma-resv object for lmem
diff --git a/tests/i915/gem_lmem_swapping.c b/tests/i915/gem_lmem_swapping.c
index c3be8c53f20f..3206f784d414 100644
--- a/tests/i915/gem_lmem_swapping.c
+++ b/tests/i915/gem_lmem_swapping.c
@@ -28,21 +28,31 @@
  * TEST: gem lmem swapping
  * Description: Exercise local memory swapping.
  * Feature: local_memory
+ * Sub-category: i915
+ * Test category: GEM_Legacy
  *
  * SUBTEST: basic
+ * Category: Server
  * Description: Exercise local memory swapping to system memory
+ * Functionality: buffer management
  * Run type: BAT
  *
  * SUBTEST: heavy-multi
+ * Category: Server
  * Description: Exercise local memory swapping to system memory
+ * Functionality: buffer management
  * Run type: FULL
  *
  * SUBTEST: heavy-random
+ * Category: Server
  * Description: Exercise local memory swapping to system memory
+ * Functionality: buffer management
  * Run type: FULL
  *
  * SUBTEST: heavy-verify-multi
+ * Category: Server
  * Description: Exercise local memory swapping to system memory
+ * Functionality: buffer management
  * Run type: FULL
  *
  * SUBTEST: heavy-verify-multi-ccs
@@ -50,7 +60,9 @@
  * Run type: FULL
  *
  * SUBTEST: heavy-verify-random
+ * Category: Server
  * Description: Exercise local memory swapping to system memory
+ * Functionality: buffer management
  * Run type: FULL
  *
  * SUBTEST: heavy-verify-random-ccs
@@ -66,19 +78,27 @@
  * Run type: FULL
  *
  * SUBTEST: parallel-multi
+ * Category: Server
  * Description: Exercise local memory swapping to system memory
+ * Functionality: buffer management
  * Run type: FULL
  *
  * SUBTEST: parallel-random
+ * Category: Server
  * Description: Exercise local memory swapping to system memory
+ * Functionality: buffer management
  * Run type: FULL
  *
  * SUBTEST: parallel-random-engines
+ * Category: Server
  * Description: Exercise local memory swapping to system memory
+ * Functionality: buffer management
  * Run type: BAT
  *
  * SUBTEST: parallel-random-verify
+ * Category: Server
  * Description: Exercise local memory swapping to system memory
+ * Functionality: buffer management
  * Run type: FULL
  *
  * SUBTEST: parallel-random-verify-ccs
@@ -86,19 +106,27 @@
  * Run type: FULL
  *
  * SUBTEST: random
+ * Category: Server
  * Description: Exercise local memory swapping to system memory
+ * Functionality: buffer management
  * Run type: FULL
  *
  * SUBTEST: random-engines
+ * Category: Server
  * Description: Exercise local memory swapping to system memory
+ * Functionality: buffer management
  * Run type: BAT
  *
  * SUBTEST: smem-oom
+ * Category: Server
  * Description: Exercise local memory swapping during exhausting system memory
+ * Functionality: buffer management
  * Run type: FULL
  *
  * SUBTEST: verify
+ * Category: Server
  * Description: Exercise local memory swapping to system memory
+ * Functionality: buffer management
  * Run type: FULL
  *
  * SUBTEST: verify-ccs
@@ -106,7 +134,11 @@
  * Run type: FULL
  *
  * SUBTEST: verify-random
- * Description: Exercise local memory swapping to system memory
+ * Category: Server
+ * Description:
+ *   Exercise local memory swapping to system memory.
+ *   Buffer Management
+ * Functionality: device management
  * Run type: BAT
  *
  * SUBTEST: verify-random-ccs
diff --git a/tests/i915/gem_madvise.c b/tests/i915/gem_madvise.c
index 19f347c9c89a..6825240d7a95 100644
--- a/tests/i915/gem_madvise.c
+++ b/tests/i915/gem_madvise.c
@@ -42,20 +42,28 @@
  * TEST: gem madvise
  * Description: Checks that the kernel reports EFAULT when trying to use purged bo.
  * Run type: FULL
+ * Sub-category: i915
+ * Test category: GEM_Legacy
  *
  * SUBTEST: dontneed-after-mmap
- * Description: Check signal for Segmentation Fault and bus error after obtaining a purgeable object and
+ * Category: Desktop client
+ * Description:
+ *   Check signal for Segmentation Fault and bus error after obtaining a purgeable object and
  *   calling for sighandler.
  * Feature: caching, mapping
+ * Functionality: buffer management
  *
  * SUBTEST: dontneed-before-exec
  * Description: Check if EXECBUFFER2 reports EFAULT when trying to submit purged bo for GPU.
  * Feature: caching, gtt, mapping
  *
  * SUBTEST: dontneed-before-mmap
- * Description: Check signal for Segmentation Fault and bus error before obtaining a purgeable object and
+ * Category: Infrastructure
+ * Description:
+ *   Check signal for Segmentation Fault and bus error before obtaining a purgeable object and
  *   calling for sighandler.
  * Feature: caching, mapping
+ * Functionality: memory management
  *
  * SUBTEST: dontneed-before-pwrite
  * Description: Check if PWRITE reports EFAULT when trying to use purged bo for write operation.
diff --git a/tests/i915/gem_mmap.c b/tests/i915/gem_mmap.c
index 0ba9fe6f1d1a..421c6f859f02 100644
--- a/tests/i915/gem_mmap.c
+++ b/tests/i915/gem_mmap.c
@@ -56,27 +56,32 @@
  * Run type: FULL
  *
  * SUBTEST: basic
- * Description: Test basics of newly mapped gem object like default content, write and read coherency,
+ * Description:
+ *   Test basics of newly mapped gem object like default content, write and read coherency,
  *   mapping existence after gem_close and unmapping.
  * Run type: BAT
  *
  * SUBTEST: basic-small-bo
- * Description: Test the write read coherency and simultaneous access of different pages of a small buffer
+ * Description:
+ *   Test the write read coherency and simultaneous access of different pages of a small buffer
  *   object.
  * Run type: FULL
  *
  * SUBTEST: big-bo
- * Description: Test the write read coherency and simultaneous access of different pages of a big buffer
+ * Description:
+ *   Test the write read coherency and simultaneous access of different pages of a big buffer
  *   object.
  * Run type: FULL
  *
  * SUBTEST: huge-bo
- * Description: Test the write read coherency and simultaneous access of different pages of a huge buffer
+ * Description:
+ *   Test the write read coherency and simultaneous access of different pages of a huge buffer
  *   object.
  * Run type: FULL
  *
  * SUBTEST: pf-nonblock
- * Description: Verify that GTT page faults are asynchronous to GPU rendering and completes within a
+ * Description:
+ *   Verify that GTT page faults are asynchronous to GPU rendering and completes within a
  *   specific time.
  * Run type: FULL
  *
@@ -85,7 +90,8 @@
  * Run type: FULL
  *
  * SUBTEST: swap-bo
- * Description: Test the write read coherency and simultaneous access of different pages while swapping
+ * Description:
+ *   Test the write read coherency and simultaneous access of different pages while swapping
  *   buffer object.
  * Run type: FULL
  */
diff --git a/tests/i915/gem_mmap_gtt.c b/tests/i915/gem_mmap_gtt.c
index 35737d89d600..f053302ebc48 100644
--- a/tests/i915/gem_mmap_gtt.c
+++ b/tests/i915/gem_mmap_gtt.c
@@ -92,13 +92,15 @@
  * Run type: FULL
  *
  * SUBTEST: basic-small-bo-tiledX
- * Description: Check mmap access to a small X-tiled buffer object by CPU directly and through GTT in
+ * Description:
+ *   Check mmap access to a small X-tiled buffer object by CPU directly and through GTT in
  *   sequence.
  * Feature: gtt
  * Run type: FULL
  *
  * SUBTEST: basic-small-bo-tiledY
- * Description: Check mmap access to a small Y-tiled buffer object by CPU directly and through GTT in
+ * Description:
+ *   Check mmap access to a small Y-tiled buffer object by CPU directly and through GTT in
  *   sequence.
  * Feature: gtt
  * Run type: FULL
@@ -119,7 +121,8 @@
  * Run type: FULL
  *
  * SUBTEST: basic-wc
- * Description: Check the performance of WC writes with WC reads of GTT and WC writes of GTT with WB writes of.
+ * Description:
+ *   Check the performance of WC writes with WC reads of GTT and WC writes of GTT with WB writes of.
  *   CPU.
  * Feature: gtt
  * Run type: FULL
@@ -185,7 +188,8 @@
  * Run type: FULL
  *
  * SUBTEST: close-race
- * Description: Test to check that a few threads opening and closing handles cause explosion in other threads
+ * Description:
+ *   Test to check that a few threads opening and closing handles cause explosion in other threads
  *   in the process of mmaping that handle.
  * Feature: gtt
  * Run type: FULL
@@ -196,93 +200,108 @@
  * Run type: FULL
  *
  * SUBTEST: cpuset-basic-small-copy
- * Description: Add forked contention with lighter variant (single cpu) and check page by page copying
+ * Description:
+ *   Add forked contention with lighter variant (single cpu) and check page by page copying
  *   between two GTT mmapped normal-small bo's.
  * Feature: gtt
  * Run type: FULL
  *
  * SUBTEST: cpuset-basic-small-copy-XY
- * Description: Add forked contention with lighter variant (single cpu) and check page by page copying
+ * Description:
+ *   Add forked contention with lighter variant (single cpu) and check page by page copying
  *   between two GTT mmapped tiled-small bo's.
  * Feature: gtt
  * Run type: FULL
  *
  * SUBTEST: cpuset-basic-small-copy-odd
- * Description: Add forked contention with lighter variant (single cpu) and check page by page copying
+ * Description:
+ *   Add forked contention with lighter variant (single cpu) and check page by page copying
  *   between two GTT mmapped odd tiled-small bo's.
  * Feature: gtt
  * Run type: FULL
  *
  * SUBTEST: cpuset-big-copy
- * Description: Add forked contention with lighter variant (single cpu) and check page by page copying
+ * Description:
+ *   Add forked contention with lighter variant (single cpu) and check page by page copying
  *   between two GTT mmapped normal-big bo's.
  * Feature: gtt
  * Run type: FULL
  *
  * SUBTEST: cpuset-big-copy-XY
- * Description: Add forked contention with lighter variant (single cpu) and check page by page copying
+ * Description:
+ *   Add forked contention with lighter variant (single cpu) and check page by page copying
  *   between two GTT mmapped tiled-big bo's.
  * Feature: gtt
  * Run type: FULL
  *
  * SUBTEST: cpuset-big-copy-odd
- * Description: Add forked contention with lighter variant (single cpu) and check page by page copying
+ * Description:
+ *   Add forked contention with lighter variant (single cpu) and check page by page copying
  *   between two GTT mmapped odd tiled-big bo's.
  * Feature: gtt
  * Run type: FULL
  *
  * SUBTEST: cpuset-huge-copy
- * Description: Add forked contention with lighter variant (single cpu) and check page by page copying
+ * Description:
+ *   Add forked contention with lighter variant (single cpu) and check page by page copying
  *   between two GTT mmapped normal-huge bo's.
  * Feature: gtt
  * Run type: FULL
  *
  * SUBTEST: cpuset-huge-copy-XY
- * Description: Add forked contention with lighter variant (single cpu) and check page by page copying
+ * Description:
+ *   Add forked contention with lighter variant (single cpu) and check page by page copying
  *   between two GTT mmapped tiled-huge bo's.
  * Feature: gtt
  * Run type: FULL
  *
  * SUBTEST: cpuset-huge-copy-odd
- * Description: Add forked contention with lighter variant (single cpu) and check page by page copying
+ * Description:
+ *   Add forked contention with lighter variant (single cpu) and check page by page copying
  *   between two GTT mmapped odd tiled-huge bo's.
  * Feature: gtt
  * Run type: FULL
  *
  * SUBTEST: cpuset-medium-copy
- * Description: Add forked contention with lighter variant (single cpu) and check page by page copying
+ * Description:
+ *   Add forked contention with lighter variant (single cpu) and check page by page copying
  *   between two GTT mmapped normal-medium bo's.
  * Feature: gtt
  * Run type: FULL
  *
  * SUBTEST: cpuset-medium-copy-XY
- * Description: Add forked contention with lighter variant (single cpu) and check page by page copying
+ * Description:
+ *   Add forked contention with lighter variant (single cpu) and check page by page copying
  *   between two GTT mmapped tiled-medium bo's.
  * Feature: gtt
  * Run type: FULL
  *
  * SUBTEST: cpuset-medium-copy-odd
- * Description: Add forked contention with lighter variant (single cpu) and check page by page copying
+ * Description:
+ *   Add forked contention with lighter variant (single cpu) and check page by page copying
  *   between two GTT mmapped odd tiled-medium bo's.
  * Feature: gtt
  * Run type: FULL
  *
  * SUBTEST: cpuset-swap-copy
- * Description: Add forked contention with lighter variant (single cpu) and check page by page copying
+ * Description:
+ *   Add forked contention with lighter variant (single cpu) and check page by page copying
  *   between two GTT mmapped normal-huge bo's larger than physical memory and resulting in
  *   thrashing of swap space.
  * Feature: gtt
  * Run type: FULL
  *
  * SUBTEST: cpuset-swap-copy-XY
- * Description: Add forked contention with lighter variant (single cpu) and check page by page copying
+ * Description:
+ *   Add forked contention with lighter variant (single cpu) and check page by page copying
  *   between two GTT mmapped tiled-huge bo's larger than physical memory and resulting in
  *   thrashing of swap space.
  * Feature: gtt
  * Run type: FULL
  *
  * SUBTEST: cpuset-swap-copy-odd
- * Description: Add forked contention with lighter variant (single cpu) and check page by page copying
+ * Description:
+ *   Add forked contention with lighter variant (single cpu) and check page by page copying
  *   between two GTT mmapped odd tiled-huge bo's larger than physical memory and resulting in
  *   thrashing of swap space.
  * Feature: gtt
@@ -304,31 +323,36 @@
  * Run type: FULL
  *
  * SUBTEST: flink-race
- * Description: Test to check that a few threads opening and closing flink handles cause explosion in other
+ * Description:
+ *   Test to check that a few threads opening and closing flink handles cause explosion in other
  *   threads in the process of mmaping that handle.
  * Feature: gtt, xorg_dri2
  * Run type: FULL
  *
  * SUBTEST: forked-basic-small-copy
- * Description: Add forked contention and check page by page copying between two GTT mmapped normal-small
+ * Description:
+ *   Add forked contention and check page by page copying between two GTT mmapped normal-small
  *   bo's.
  * Feature: gtt
  * Run type: FULL
  *
  * SUBTEST: forked-basic-small-copy-XY
- * Description: Add forked contention and check page by page copying between two GTT mmapped tiled-small
+ * Description:
+ *   Add forked contention and check page by page copying between two GTT mmapped tiled-small
  *   bo's.
  * Feature: gtt
  * Run type: FULL
  *
  * SUBTEST: forked-basic-small-copy-odd
- * Description: Add forked contention and check page by page copying between two GTT mmapped odd tiled-small
+ * Description:
+ *   Add forked contention and check page by page copying between two GTT mmapped odd tiled-small
  *   bo's.
  * Feature: gtt
  * Run type: FULL
  *
  * SUBTEST: forked-big-copy
- * Description: Add forked contention and check page by page copying between two GTT mmapped normal-big
+ * Description:
+ *   Add forked contention and check page by page copying between two GTT mmapped normal-big
  *   bo's.
  * Feature: gtt
  * Run type: FULL
@@ -339,61 +363,71 @@
  * Run type: FULL
  *
  * SUBTEST: forked-big-copy-odd
- * Description: Add forked contention and check page by page copying between two GTT mmapped odd tiled-big
+ * Description:
+ *   Add forked contention and check page by page copying between two GTT mmapped odd tiled-big
  *   bo's.
  * Feature: gtt
  * Run type: FULL
  *
  * SUBTEST: forked-huge-copy
- * Description: Add forked contention and check page by page copying between two GTT mmapped normal-huge
+ * Description:
+ *   Add forked contention and check page by page copying between two GTT mmapped normal-huge
  *   bo's.
  * Feature: gtt
  * Run type: FULL
  *
  * SUBTEST: forked-huge-copy-XY
- * Description: Add forked contention and check page by page copying between two GTT mmapped tiled-huge
+ * Description:
+ *   Add forked contention and check page by page copying between two GTT mmapped tiled-huge
  *   bo's.
  * Feature: gtt
  * Run type: FULL
  *
  * SUBTEST: forked-huge-copy-odd
- * Description: Add forked contention and check page by page copying between two GTT mmapped odd tiled-huge
+ * Description:
+ *   Add forked contention and check page by page copying between two GTT mmapped odd tiled-huge
  *   bo's.
  * Feature: gtt
  * Run type: FULL
  *
  * SUBTEST: forked-medium-copy
- * Description: Add forked contention and check page by page copying between two GTT mmapped normal-medium
+ * Description:
+ *   Add forked contention and check page by page copying between two GTT mmapped normal-medium
  *   bo's.
  * Feature: gtt
  * Run type: FULL
  *
  * SUBTEST: forked-medium-copy-XY
- * Description: Add forked contention and check page by page copying between two GTT mmapped tiled-medium
+ * Description:
+ *   Add forked contention and check page by page copying between two GTT mmapped tiled-medium
  *   bo's.
  * Feature: gtt
  * Run type: FULL
  *
  * SUBTEST: forked-medium-copy-odd
- * Description: Add forked contention and check page by page copying between two GTT mmapped odd
+ * Description:
+ *   Add forked contention and check page by page copying between two GTT mmapped odd
  *   tiled-medium bo's.
  * Feature: gtt
  * Run type: FULL
  *
  * SUBTEST: forked-swap-copy
- * Description: Add forked contention and check page by page copying between two GTT mmapped normal-huge
+ * Description:
+ *   Add forked contention and check page by page copying between two GTT mmapped normal-huge
  *   bo's larger than physical memory and resulting in thrashing of swap space.
  * Feature: gtt
  * Run type: FULL
  *
  * SUBTEST: forked-swap-copy-XY
- * Description: Add forked contention and check page by page copying between two GTT mmapped tiled-huge bo's
+ * Description:
+ *   Add forked contention and check page by page copying between two GTT mmapped tiled-huge bo's
  *   larger than physical memory and resulting in thrashing of swap space.
  * Feature: gtt
  * Run type: FULL
  *
  * SUBTEST: forked-swap-copy-odd
- * Description: Add forked contention and check page by page copying between two GTT mmapped odd tiled-huge
+ * Description:
+ *   Add forked contention and check page by page copying between two GTT mmapped odd tiled-huge
  *   bo's larger than physical memory and resulting in thrashing of swap space.
  * Feature: gtt
  * Run type: FULL
@@ -444,7 +478,8 @@
  * Run type: FULL
  *
  * SUBTEST: isolation
- * Description: Test mmap_offset lifetime, closing the object on another file should not affect the local
+ * Description:
+ *   Test mmap_offset lifetime, closing the object on another file should not affect the local
  *   mmap_offset.
  * Feature: gtt
  * Run type: FULL
@@ -475,19 +510,22 @@
  * Run type: FULL
  *
  * SUBTEST: swap-copy
- * Description: Check page by page copying between two GTT mmapped normal-huge bo's larger than physical
+ * Description:
+ *   Check page by page copying between two GTT mmapped normal-huge bo's larger than physical
  *   memory and resulting in thrashing of swap space.
  * Feature: gtt
  * Run type: FULL
  *
  * SUBTEST: swap-copy-XY
- * Description: Check page by page copying between two GTT mmapped tiled-huge bo's larger than physical
+ * Description:
+ *   Check page by page copying between two GTT mmapped tiled-huge bo's larger than physical
  *   memory and resulting in thrashing of swap space.
  * Feature: gtt
  * Run type: FULL
  *
  * SUBTEST: swap-copy-odd
- * Description: Check page by page copying between two GTT mmapped odd tiled-huge bo's larger than physical
+ * Description:
+ *   Check page by page copying between two GTT mmapped odd tiled-huge bo's larger than physical
  *   memory and resulting in thrashing of swap space.
  * Feature: gtt
  * Run type: FULL
diff --git a/tests/i915/gem_mmap_offset.c b/tests/i915/gem_mmap_offset.c
index c02ee70e3298..4220660f39be 100644
--- a/tests/i915/gem_mmap_offset.c
+++ b/tests/i915/gem_mmap_offset.c
@@ -43,36 +43,76 @@
  * Description: Basic MMAP_OFFSET IOCTL tests for mem regions
  * Feature: mapping
  * Run type: FULL
+ * Sub-category: i915
  *
  * SUBTEST: bad-extensions
+ * Category: Infrastructure
+ * Functionality: memory management
+ * Test category: GEM_Legacy
  *
  * SUBTEST: bad-flags
+ * Category: Infrastructure
+ * Functionality: memory management
+ * Test category: GEM_Legacy
  *
  * SUBTEST: bad-object
+ * Category: Infrastructure
  * Description: Verify mapping to invalid gem objects won't be created
+ * Functionality: memory management
+ * Test category: GEM_Legacy
  *
  * SUBTEST: basic-uaf
+ * Category: Infrastructure
  * Description: Check buffer object mapping persists after gem_close
+ * Functionality: memory management
+ * Test category: GEM_Legacy
  *
  * SUBTEST: blt-coherency
+ * Category: Infrastructure
+ * Functionality: memory management
+ * Test category: GEM_Legacy
  *
  * SUBTEST: clear
+ * Category: Infrastructure
+ * Functionality: memory management
+ * Test category: GEM_Legacy
  *
  * SUBTEST: close-race
+ * Category: Infrastructure
  * Description: Check race between close and mmap offset between threads
+ * Functionality: memory management
+ * Test category: GEM_Legacy
  *
  * SUBTEST: isolation
+ * Category: Infrastructure
+ * Functionality: memory management
+ * Test category: GEM_Legacy
  *
  * SUBTEST: oob-read
+ * Category: Infrastructure
  * Description: Check for out-of-bound access in vm_access
+ * Functionality: memory management
+ * Test category: GEM_Legacy
  *
  * SUBTEST: open-flood
+ * Category: Infrastructure
+ * Functionality: memory management
+ * Test category: GEM_Legacy
  *
  * SUBTEST: perf
+ * Category: Infrastructure
+ * Functionality: memory management
+ * Test category: GEM_Legacy
  *
  * SUBTEST: pf-nonblock
+ * Category: Infrastructure
+ * Functionality: memory management
+ * Test category: GEM_Legacy
  *
  * SUBTEST: ptrace
+ * Category: Infrastructure
+ * Functionality: memory management
+ * Test category: GEM_Legacy
  */
 
 IGT_TEST_DESCRIPTION("Basic MMAP_OFFSET IOCTL tests for mem regions\n");
diff --git a/tests/i915/gem_partial_pwrite_pread.c b/tests/i915/gem_partial_pwrite_pread.c
index debc0425164d..1b533ef3097c 100644
--- a/tests/i915/gem_partial_pwrite_pread.c
+++ b/tests/i915/gem_partial_pwrite_pread.c
@@ -45,49 +45,59 @@
  * Run type: FULL
  *
  * SUBTEST: reads
- * Description: Verify if pread is consistent while accessing partial cachelines with default caching
+ * Description:
+ *   Verify if pread is consistent while accessing partial cachelines with default caching
  *   level
  *
  * SUBTEST: reads-display
- * Description: Verify if pread is consistent while accessing partial cachelines with display caching
+ * Description:
+ *   Verify if pread is consistent while accessing partial cachelines with display caching
  *   level
  *
  * SUBTEST: reads-snoop
  * Description: Verify if pread is consistent while accessing partial cachelines with snoop caching level
  *
  * SUBTEST: reads-uncached
- * Description: Verify if pread is consistent while accessing partial cachelines with uncached caching
+ * Description:
+ *   Verify if pread is consistent while accessing partial cachelines with uncached caching
  *   level
  *
  * SUBTEST: write
- * Description: Verify if pwrite is consistent while accessing partial cachelines with default caching
+ * Description:
+ *   Verify if pwrite is consistent while accessing partial cachelines with default caching
  *   level
  *
  * SUBTEST: write-display
- * Description: Verify if pwrite is consistent while accessing partial cachelines with display caching
+ * Description:
+ *   Verify if pwrite is consistent while accessing partial cachelines with display caching
  *   level
  *
  * SUBTEST: write-snoop
  * Description: Verify if pwrite is consistent while accessing partial cachelines with snoop caching level
  *
  * SUBTEST: write-uncached
- * Description: Verify if pwrite is consistent while accessing partial cachelines with uncached caching
+ * Description:
+ *   Verify if pwrite is consistent while accessing partial cachelines with uncached caching
  *   level
  *
  * SUBTEST: writes-after-reads
- * Description: Verify if both pread, pwrite are consistent while accessing partial cachelines with
+ * Description:
+ *   Verify if both pread, pwrite are consistent while accessing partial cachelines with
  *   default caching level
  *
  * SUBTEST: writes-after-reads-display
- * Description: Verify if both pread, pwrite are consistent while accessing partial cachelines with
+ * Description:
+ *   Verify if both pread, pwrite are consistent while accessing partial cachelines with
  *   display caching level
  *
  * SUBTEST: writes-after-reads-snoop
- * Description: Verify if both pread, pwrite are consistent while accessing partial cachelines with snoop
+ * Description:
+ *   Verify if both pread, pwrite are consistent while accessing partial cachelines with snoop
  *   caching level
  *
  * SUBTEST: writes-after-reads-uncached
- * Description: Verify if both pread, pwrite are consistent while accessing partial cachelines with
+ * Description:
+ *   Verify if both pread, pwrite are consistent while accessing partial cachelines with
  *   uncached caching level
  */
 
diff --git a/tests/i915/gem_pipe_control_store_loop.c b/tests/i915/gem_pipe_control_store_loop.c
index 5e6ef049085b..860fcd2f5cb8 100644
--- a/tests/i915/gem_pipe_control_store_loop.c
+++ b/tests/i915/gem_pipe_control_store_loop.c
@@ -45,15 +45,20 @@
 #include "igt.h"
 /**
  * TEST: gem pipe control store loop
+ * Category: Desktop client
  * Description: Test (TLB-)Coherency of pipe_control QW writes.
  * Feature: cmd_submission
  * Run type: FULL
+ * Sub-category: i915
+ * Test category: GEM_Legacy
  *
  * SUBTEST: fresh-buffer
  * Description: Checks tlb consistency of the pipe_control with fresh buffer.
+ * Functionality: command submission
  *
  * SUBTEST: reused-buffer
  * Description: Checks tlb consistency of the pipe_control with reused buffer.
+ * Functionality: buffer management
  */
 
 IGT_TEST_DESCRIPTION("Test (TLB-)Coherency of pipe_control QW writes.");
diff --git a/tests/i915/gem_ppgtt.c b/tests/i915/gem_ppgtt.c
index 368f8b17db75..952f00b377e5 100644
--- a/tests/i915/gem_ppgtt.c
+++ b/tests/i915/gem_ppgtt.c
@@ -50,15 +50,23 @@
  * Feature: mapping
  *
  * SUBTEST: flink-and-close-vma-leak
+ * Category: Infrastructure
  * Feature: mapping, xorg_dri2
+ * Functionality: command submission
+ * Sub-category: i915
+ * Test category: GEM_Legacy
  *
  * SUBTEST: shrink-vs-evict-any
  * Description: Regression test to verify GTT eviction can't randomly fail due to object lock contention
  * Feature: mapping
+ * Test category: GEM_Legacy
  *
  * SUBTEST: shrink-vs-evict-pinned
+ * Category: Infrastructure
  * Description: Regression test to verify GTT eviction can't randomly fail due to object lock contention
  * Feature: mapping
+ * Functionality: command submission
+ * Test category: GEM_Legacy
  */
 
 #define WIDTH 512
diff --git a/tests/i915/gem_pwrite_snooped.c b/tests/i915/gem_pwrite_snooped.c
index 7135dca57cbc..daae3c241835 100644
--- a/tests/i915/gem_pwrite_snooped.c
+++ b/tests/i915/gem_pwrite_snooped.c
@@ -40,10 +40,11 @@
 /**
  * TEST: gem pwrite snooped
  * Description: pwrite to a snooped bo then make it uncached and check that the GPU sees the data.
- * Feature: gtt, mapping
+ * Feature: mapping, gtt
  * Run type: FULL
  *
  * SUBTEST:
+ * Feature: gtt, mapping
  */
 
 IGT_TEST_DESCRIPTION(
diff --git a/tests/i915/gem_render_tiled_blits.c b/tests/i915/gem_render_tiled_blits.c
index 7cec2dc764c1..ba9e62a2565d 100644
--- a/tests/i915/gem_render_tiled_blits.c
+++ b/tests/i915/gem_render_tiled_blits.c
@@ -50,12 +50,14 @@
 #include "igt.h"
 /**
  * TEST: gem render tiled blits
- * Description: Tests performs cyclic forward, backward and random blits on tiled buffer objects using render
+ * Description:
+ *   Tests performs cyclic forward, backward and random blits on tiled buffer objects using render
  *   engine with various working set sizes and compares outputs with expected ones.
  * Feature: mapping
  *
  * SUBTEST: aperture-shrink
- * Description: Check with working set size larger than aperture size and a helper process to shrink buffer
+ * Description:
+ *   Check with working set size larger than aperture size and a helper process to shrink buffer
  *   object caches.
  * Run type: FULL
  *
@@ -68,7 +70,8 @@
  * Run type: BAT
  *
  * SUBTEST: swap-thrash
- * Description: Check with working set size larger than system memory size resulting in usage and thrashing
+ * Description:
+ *   Check with working set size larger than system memory size resulting in usage and thrashing
  *   of swap space.
  * Run type: FULL
  */
diff --git a/tests/i915/gem_request_retire.c b/tests/i915/gem_request_retire.c
index 9e074706d259..9814b435d937 100644
--- a/tests/i915/gem_request_retire.c
+++ b/tests/i915/gem_request_retire.c
@@ -51,9 +51,13 @@
 #include "igt_types.h"
 /**
  * TEST: gem request retire
+ * Category: Infrastructure
  * Description: Collection of tests targeting request retirement code paths.
  * Feature: cmd_submission
+ * Functionality: command submission
  * Run type: FULL
+ * Sub-category: i915
+ * Test category: GEM_Legacy
  *
  * SUBTEST: retire-vma-not-inactive
  */
diff --git a/tests/i915/gem_ringfill.c b/tests/i915/gem_ringfill.c
index 10ddad84583e..f7b1d14b78f8 100644
--- a/tests/i915/gem_ringfill.c
+++ b/tests/i915/gem_ringfill.c
@@ -43,13 +43,20 @@
 #include <sys/ioctl.h>
 /**
  * TEST: gem ringfill
- * Description: Exercise many tiny batchbuffer operations, in the hope of catching failure to manage the ring
+ * Category: Desktop client
+ * Description:
+ *   Exercise many tiny batchbuffer operations, in the hope of catching failure to manage the ring
  *   properly near full.
  *
  * SUBTEST: basic-all
- * Description: Basic check to fill the ring upto maximum on all engines simultaneously.
+ * Description:
+ *   Basic check to fill the ring upto maximum on all engines simultaneously.
+ *   Buffer Management
  * Feature: cmd_submission
+ * Functionality: semaphore
  * Run type: BAT
+ * Sub-category: i915
+ * Test category: MultiTile
  *
  * SUBTEST: engines-S3
  * Description: Handle a full ring across suspend cycle.
@@ -64,10 +71,13 @@
  * SUBTEST: engines-basic
  * Description: Basic check how the driver handles a full ring.
  * Feature: cmd_submission, multitile
+ * Functionality: Test spamming ring with contexts - legacy path
  * Run type: FULL
+ * Test category: MultiTile
  *
  * SUBTEST: engines-bomb
- * Description: Fills the ring upto maximim parallely using fork with different fd's along with
+ * Description:
+ *   Fills the ring upto maximim parallely using fork with different fd's along with
  *   interruptions.
  * Feature: cmd_submission, multitile
  * Run type: FULL
@@ -93,7 +103,8 @@
  * Run type: FULL
  *
  * SUBTEST: engines-interruptible
- * Description: Exercise all potential injection sites by using igt_sigiter interface to repeat the
+ * Description:
+ *   Exercise all potential injection sites by using igt_sigiter interface to repeat the
  *   ringfill testing.
  * Feature: cmd_submission, multitile
  * Run type: FULL
@@ -109,12 +120,17 @@
  * Run type: FULL
  *
  * SUBTEST: legacy-basic
- * Description: Basic check how the driver handles a full ring - on legacy ring.
+ * Description:
+ *   Basic check how the driver handles a full ring - on legacy ring.
+ *   Exercise all physical engine selection and legacy rings
  * Feature: cmd_submission, multitile
+ * Functionality: buffer management
  * Run type: FULL
+ * Test category: GEM_Legacy
  *
  * SUBTEST: legacy-bomb
- * Description: Fills the ring upto maximim parallely using fork with different fd's along with
+ * Description:
+ *   Fills the ring upto maximim parallely using fork with different fd's along with
  *   interruptions - on legacy ring.
  * Feature: cmd_submission, multitile
  * Run type: FULL
@@ -135,13 +151,15 @@
  * Run type: FULL
  *
  * SUBTEST: legacy-hang
- * Description: Exercise many batchbuffer operations along with a hang batch until ring is full - on legacy
+ * Description:
+ *   Exercise many batchbuffer operations along with a hang batch until ring is full - on legacy
  *   ring.
  * Feature: cmd_submission, multitile
  * Run type: FULL
  *
  * SUBTEST: legacy-interruptible
- * Description: Exercise all potential injection sites by using igt_sigiter interface to repeat the
+ * Description:
+ *   Exercise all potential injection sites by using igt_sigiter interface to repeat the
  *   ringfill testing - on legacy ring.
  * Feature: cmd_submission, multitile
  * Run type: FULL
diff --git a/tests/i915/gem_shrink.c b/tests/i915/gem_shrink.c
index a65792c84137..a7a8d6d13c97 100644
--- a/tests/i915/gem_shrink.c
+++ b/tests/i915/gem_shrink.c
@@ -35,8 +35,12 @@
 #include "igt_sysfs.h"
 /**
  * TEST: gem shrink
+ * Category: Infrastructure
  * Feature: mapping
+ * Functionality: command submission
  * Run type: FULL
+ * Sub-category: i915
+ * Test category: GEM_Legacy
  *
  * SUBTEST: execbuf1
  *
diff --git a/tests/i915/gem_softpin.c b/tests/i915/gem_softpin.c
index 87fdf667ef3b..fff7276ff994 100644
--- a/tests/i915/gem_softpin.c
+++ b/tests/i915/gem_softpin.c
@@ -33,114 +33,206 @@
 #include "intel_allocator.h"
 /**
  * TEST: gem softpin
- * Description: Tests softpin feature with normal usage, invalid inputs scenarios and couple of eviction
+ * Category: Infrastructure
+ * Description:
+ *   Tests softpin feature with normal usage, invalid inputs scenarios and couple of eviction
  *   tests which copy buffers between CPU and GPU.
- * Feature: mapping
  *
  * SUBTEST: 32b-excludes-last-page
  * Description: Check the last 32b page is excluded.
+ * Feature: mapping
+ * Functionality: command submission
  * Run type: FULL
+ * Sub-category: i915
+ * Test category: GEM_Legacy
  *
  * SUBTEST: allocator-basic
  * Description: Check that we can place objects at start/end of the GTT using the allocator.
+ * Feature: mapping
+ * Functionality: command submission
  * Run type: BAT
+ * Sub-category: i915
+ * Test category: GEM_Legacy
  *
  * SUBTEST: allocator-basic-reserve
- * Description: Check that if we can reserve a space for an object starting from a given offset.
+ * Description:
+ *   Check that if we can reserve a space for an object starting from a given offset.
+ *   Command Submission
+ * Feature: mapping
+ * Functionality: s2idle w/o i915
  * Run type: BAT
+ * Sub-category: i915
+ * Test category: GEM_Legacy
  *
  * SUBTEST: allocator-evict
  * Description: Exercise eviction with softpinning.
+ * Feature: mapping
+ * Functionality: command submission
  * Run type: FULL
+ * Sub-category: i915
+ * Test category: GEM_Legacy
  *
  * SUBTEST: allocator-fork
  * Description: Check if multiple processes can use alloctor.
+ * Feature: mapping
+ * Functionality: command submission
  * Run type: FULL
+ * Sub-category: i915
+ * Test category: GEM_Legacy
  *
  * SUBTEST: allocator-nopin
  * Description: Check that we can combine manual placement with automatic GTT placement.
+ * Feature: mapping
+ * Functionality: command submission
  * Run type: FULL
+ * Sub-category: i915
+ * Test category: GEM_Legacy
  *
  * SUBTEST: allocator-nopin-reserve
- * Description: Check that we can combine manual placement with automatic GTT placement and
+ * Description:
+ *   Check that we can combine manual placement with automatic GTT placement and
  *   reserves/unreserves space for objects.
+ * Feature: mapping
+ * Functionality: command submission
  * Run type: FULL
+ * Sub-category: i915
+ * Test category: GEM_Legacy
  *
  * SUBTEST: evict-active
  * Description: Check eviction with active bo.
+ * Feature: mapping
+ * Functionality: command submission
  * Run type: FULL
+ * Sub-category: i915
+ * Test category: GEM_Legacy
  *
  * SUBTEST: evict-active-interruptible
  * Description: Check eviction with active bo with interrupts.
+ * Feature: mapping
+ * Functionality: command submission
  * Run type: FULL
+ * Sub-category: i915
+ * Test category: GEM_Legacy
  *
  * SUBTEST: evict-hang
  * Description: Check eviction of softpinned bo with hung batch.
+ * Feature: mapping
  * Run type: FULL
  *
  * SUBTEST: evict-prime
  * Description: Check eviction of vma on importing prime fd in reopened drm fds
+ * Feature: mapping
  * Run type: FULL
+ * Test category: GEM_Legacy
  *
  * SUBTEST: evict-prime-sanity-check
  * Description: Check eviction of vma on importing prime fd in reopened drm fd in single thread
+ * Feature: mapping
+ * Functionality: command submission
  * Run type: FULL
+ * Test category: GEM_Legacy
  *
  * SUBTEST: evict-single-offset
  * Description: Use same offset for all engines and for different handles.
+ * Feature: mapping
+ * Functionality: command submission
  * Run type: FULL
+ * Sub-category: i915
+ * Test category: GEM_Legacy
  *
  * SUBTEST: evict-snoop
  * Description: Check eviction against snooping.
+ * Feature: mapping
  * Run type: FULL
  *
  * SUBTEST: evict-snoop-interruptible
  * Description: Check eviction against snooping with interrupts.
+ * Feature: mapping
  * Run type: FULL
  *
  * SUBTEST: full
  * Description: Check the total occupancy by using pad-to-size to fill the entire GTT.
+ * Feature: mapping
+ * Functionality: command submission
  * Run type: FULL
+ * Sub-category: i915
+ * Test category: GEM_Legacy
  *
  * SUBTEST: invalid
  * Description: Check that invalid inputs are handled correctly.
+ * Feature: mapping
+ * Functionality: command submission
  * Run type: FULL
+ * Sub-category: i915
+ * Test category: GEM_Legacy
  *
  * SUBTEST: noreloc
  * Description: Check that noreloc support works.
+ * Feature: mapping
+ * Functionality: command submission
  * Run type: FULL
+ * Sub-category: i915
+ * Test category: GEM_Legacy
  *
  * SUBTEST: noreloc-S3
  * Description: Check noreloc survives after suspend to RAM/resume cycle.
+ * Feature: mapping
  * Run type: FULL
  *
  * SUBTEST: noreloc-S4
  * Description: Check noreloc survives after suspend to disk/resume cycle.
+ * Feature: mapping
  * Run type: FULL
  *
  * SUBTEST: noreloc-interruptible
  * Description: Check noreloc support with interruptible.
+ * Feature: mapping
+ * Functionality: command submission
  * Run type: FULL
+ * Sub-category: i915
+ * Test category: GEM_Legacy
  *
  * SUBTEST: overlap
  * Description: Check all the possible pages aligned overlaps.
+ * Feature: mapping
+ * Functionality: command submission
  * Run type: FULL
+ * Sub-category: i915
+ * Test category: GEM_Legacy
  *
  * SUBTEST: reverse
  * Description: Check that if the user demands the vma will be swapped.
+ * Feature: mapping
+ * Functionality: command submission
  * Run type: FULL
+ * Sub-category: i915
+ * Test category: GEM_Legacy
  *
  * SUBTEST: safe-alignment
- * Description: Check start offset and alignment detection.
+ * Description:
+ *   Check start offset and alignment detection.
+ *   Command Submission
+ * Feature: mapping
+ * Functionality: pagefault
  * Run type: BAT
+ * Sub-category: i915
+ * Test category: GEM_Legacy
  *
  * SUBTEST: softpin
  * Description: Check softpinning of a gem buffer object.
+ * Feature: mapping
+ * Functionality: command submission
  * Run type: FULL
+ * Sub-category: i915
+ * Test category: GEM_Legacy
  *
  * SUBTEST: zero
  * Description: Check full placement control under full-ppGTT.
+ * Feature: mapping
+ * Functionality: dummy workload
  * Run type: FULL
+ * Sub-category: IGT Lib
+ * Test category: GEM_Legacy
  */
 
 IGT_TEST_DESCRIPTION("Tests softpin feature with normal usage, invalid inputs"
diff --git a/tests/i915/gem_spin_batch.c b/tests/i915/gem_spin_batch.c
index 0a6c088da630..1ca4bd865a9c 100644
--- a/tests/i915/gem_spin_batch.c
+++ b/tests/i915/gem_spin_batch.c
@@ -27,43 +27,69 @@
 #include "igt.h"
 /**
  * TEST: gem spin batch
+ * Category: Infrastructure
  * Run type: FULL
+ * Test category: GEM_Legacy
  *
  * SUBTEST: engines
  * Feature: context, igt_core
+ * Functionality: dummy workload
+ * Sub-category: IGT Lib
  *
  * SUBTEST: legacy
  * Feature: context, igt_core
+ * Functionality: dummy workload
+ * Sub-category: IGT Lib
  *
  * SUBTEST: legacy-resubmit
  * Feature: context, igt_core
+ * Functionality: dummy workload
+ * Sub-category: IGT Lib
  *
  * SUBTEST: legacy-resubmit-new
  * Feature: context, igt_core, multictx
+ * Functionality: dummy workload
+ * Sub-category: IGT Lib
  *
  * SUBTEST: resubmit
  * Feature: context, igt_core
+ * Functionality: dummy workload
+ * Sub-category: IGT Lib
  *
  * SUBTEST: resubmit-all
  * Feature: context, igt_core, multictx
+ * Functionality: dummy workload
+ * Sub-category: IGT Lib
  *
  * SUBTEST: resubmit-new
  * Feature: context, igt_core, multictx
+ * Functionality: dummy workload
+ * Sub-category: IGT Lib
  *
  * SUBTEST: resubmit-new-all
  * Feature: context, igt_core, multictx
+ * Functionality: dummy workload
+ * Sub-category: IGT Lib
  *
  * SUBTEST: spin-all
  * Feature: igt_core, multictx
+ * Functionality: dummy workload
+ * Sub-category: IGT Lib
  *
  * SUBTEST: spin-all-new
  * Feature: igt_core, multictx
+ * Functionality: dummy workload
+ * Sub-category: IGT Lib
  *
  * SUBTEST: spin-each
  * Feature: igt_core, multictx
+ * Functionality: dummy workload
+ * Sub-category: IGT Lib
  *
  * SUBTEST: user-each
  * Feature: igt_core, multictx
+ * Functionality: semaphore
+ * Sub-category: i915
  */
 
 #define MAX_ERROR 5 /* % */
diff --git a/tests/i915/gem_sync.c b/tests/i915/gem_sync.c
index 4d01cd450825..a2d225ab9679 100644
--- a/tests/i915/gem_sync.c
+++ b/tests/i915/gem_sync.c
@@ -57,29 +57,51 @@
  * Run type: FULL
  *
  * SUBTEST: basic-all
+ * Category: Infrastructure
  * Description: Basic test to wait upon a batch on all rings.
  * Feature: synchronization
+ * Functionality: semaphore
  * Run type: BAT
+ * Sub-category: i915
+ * Test category: MultiTile
  *
  * SUBTEST: basic-each
- * Description: Check synchronisation of ring.
+ * Description:
+ *   Check synchronisation of ring.
+ *   Basic check of ring to ring write synchronisation
  * Feature: multitile, synchronization
+ * Functionality: semaphore
  * Run type: BAT
+ * Test category: MultiTile
  *
  * SUBTEST: basic-many-each
- * Description: Create race condition and see if we can catch interrupts.
+ * Category: Infrastructure
+ * Description:
+ *   Create race condition and see if we can catch interrupts.
+ *   Basic check for explicit fence with async wait on each engine.
  * Feature: multitile, synchronization
+ * Functionality: semaphore
  * Run type: FULL
+ * Test category: GEM_Legacy
  *
  * SUBTEST: basic-store-all
+ * Category: Infrastructure
  * Description: Basic version of store synchronisation test.
  * Feature: synchronization
+ * Functionality: buffer management
  * Run type: FULL
+ * Sub-category: i915
+ * Test category: MultiTile
  *
  * SUBTEST: basic-store-each
- * Description: Check that store synchronisation works.
+ * Category: Infrastructure
+ * Description:
+ *   Check that store synchronisation works.
+ *   Check in-fence is not overwritten with out-fence on each engine
  * Feature: multitile, synchronization
+ * Functionality: buffer management
  * Run type: FULL
+ * Test category: GEM_Legacy
  *
  * SUBTEST: default
  * Description: Check synchronisation of rings on each engine.
@@ -107,7 +129,8 @@
  * Run type: FULL
  *
  * SUBTEST: forked-each
- * Description: Forked variant of sync_ring, which checks synchronisation of ring with parallel
+ * Description:
+ *   Forked variant of sync_ring, which checks synchronisation of ring with parallel
  *   executions.
  * Feature: multitile, synchronization
  * Run type: FULL
@@ -168,7 +191,8 @@
  * Run type: FULL
  *
  * SUBTEST: legacy-forked-store
- * Description: Check store synchronisation works with parallel multiple executions for each legacy
+ * Description:
+ *   Check store synchronisation works with parallel multiple executions for each legacy
  *   engine.
  * Feature: synchronization
  * Run type: FULL
@@ -214,7 +238,8 @@
  * Run type: FULL
  *
  * SUBTEST: preempt-all
- * Description: Check and measure how well we can submit a second high priority task when the engine is already
+ * Description:
+ *   Check and measure how well we can submit a second high priority task when the engine is already
  *   busy with a low priority task on all engines.
  * Feature: synchronization
  * Run type: FULL
diff --git a/tests/i915/gem_tiled_fence_blits.c b/tests/i915/gem_tiled_fence_blits.c
index f323ac1464f7..539601e5af73 100644
--- a/tests/i915/gem_tiled_fence_blits.c
+++ b/tests/i915/gem_tiled_fence_blits.c
@@ -47,7 +47,8 @@
 #include "igt_x86.h"
 /**
  * TEST: gem tiled fence blits
- * Description: Tests fence management problems related to tiled blits by performing many blits on tiled
+ * Description:
+ *   Tests fence management problems related to tiled blits by performing many blits on tiled
  *   buffer objects with fences enabled and with working set larger than the aperture size.
  * Feature: gtt, mapping
  *
diff --git a/tests/i915/gem_tiled_pread_basic.c b/tests/i915/gem_tiled_pread_basic.c
index ddf9f0f56875..d52a18ee9495 100644
--- a/tests/i915/gem_tiled_pread_basic.c
+++ b/tests/i915/gem_tiled_pread_basic.c
@@ -51,10 +51,11 @@
 /**
  * TEST: gem tiled pread basic
  * Description: Test pread behavior on tiled objects with respect to the reported swizzling value.
- * Feature: gtt, mapping
+ * Feature: mapping, gtt
  * Run type: BAT
  *
  * SUBTEST:
+ * Feature: gtt, mapping
  */
 
 IGT_TEST_DESCRIPTION("Test pread behavior on tiled objects with respect to the"
diff --git a/tests/i915/gem_tiled_pread_pwrite.c b/tests/i915/gem_tiled_pread_pwrite.c
index 3331e61ad4d4..211ceb244784 100644
--- a/tests/i915/gem_tiled_pread_pwrite.c
+++ b/tests/i915/gem_tiled_pread_pwrite.c
@@ -61,10 +61,11 @@
 /**
  * TEST: gem tiled pread pwrite
  * Description: Test swizzling by testing pwrite does the inverse of pread.
- * Feature: gtt, mapping
+ * Feature: mapping, gtt
  * Run type: FULL
  *
  * SUBTEST:
+ * Feature: gtt, mapping
  */
 
 IGT_TEST_DESCRIPTION("Test swizzling by testing pwrite does the inverse of"
diff --git a/tests/i915/gem_tiled_wb.c b/tests/i915/gem_tiled_wb.c
index d4fc048dbf05..ffd10ba80a21 100644
--- a/tests/i915/gem_tiled_wb.c
+++ b/tests/i915/gem_tiled_wb.c
@@ -47,12 +47,14 @@
 #include "i915/gem_create.h"
 /**
  * TEST: gem tiled wb
- * Description: This is a test of write-combining mmap's behavior on tiled objects with respect to the reported
+ * Description:
+ *   This is a test of write-combining mmap's behavior on tiled objects with respect to the reported
  *   swizzling value.
- * Feature: caching, gtt
+ * Feature: gtt, caching
  * Run type: FULL
  *
  * SUBTEST:
+ * Feature: caching, gtt
  */
 
 IGT_TEST_DESCRIPTION("This is a test of write-combining mmap's behavior on"
diff --git a/tests/i915/gem_tiled_wc.c b/tests/i915/gem_tiled_wc.c
index dc4e4d2d73ae..3e2f8423b2b7 100644
--- a/tests/i915/gem_tiled_wc.c
+++ b/tests/i915/gem_tiled_wc.c
@@ -47,10 +47,11 @@
 #include "i915/gem_create.h"
 /**
  * TEST: gem tiled wc
- * Feature: caching, gtt
+ * Feature: gtt, caching
  * Run type: FULL
  *
  * SUBTEST:
+ * Feature: caching, gtt
  */
 
 #define WIDTH 512
diff --git a/tests/i915/gem_tiling_max_stride.c b/tests/i915/gem_tiling_max_stride.c
index 6001f72be858..d72a298cbb7b 100644
--- a/tests/i915/gem_tiling_max_stride.c
+++ b/tests/i915/gem_tiling_max_stride.c
@@ -42,10 +42,11 @@
 /**
  * TEST: gem tiling max stride
  * Description: Check that max fence stride works.
- * Feature: gtt, mapping
+ * Feature: mapping, gtt
  * Run type: FULL
  *
  * SUBTEST:
+ * Feature: gtt, mapping
  */
 
 IGT_TEST_DESCRIPTION("Check that max fence stride works.");
diff --git a/tests/i915/gem_unref_active_buffers.c b/tests/i915/gem_unref_active_buffers.c
index 90a63e8f9acf..b2d9a96cdc97 100644
--- a/tests/i915/gem_unref_active_buffers.c
+++ b/tests/i915/gem_unref_active_buffers.c
@@ -43,9 +43,13 @@
 #include "i915/gem_create.h"
 /**
  * TEST: gem unref active buffers
+ * Category: Server
  * Description: Test unreferencing of active buffers.
  * Feature: cmd_submission
+ * Functionality: buffer management
  * Run type: FULL
+ * Sub-category: Compute
+ * Test category: GEM_Legacy
  *
  * SUBTEST:
  */
diff --git a/tests/i915/gem_userptr_blits.c b/tests/i915/gem_userptr_blits.c
index ad85c0d96c07..3abf3ceea352 100644
--- a/tests/i915/gem_userptr_blits.c
+++ b/tests/i915/gem_userptr_blits.c
@@ -69,7 +69,10 @@
 #include "i915/i915_blt.h"
 /**
  * TEST: gem userptr blits
+ * Category: Server
  * Run type: FULL
+ * Sub-category: Compute
+ * Test category: GEM_Legacy
  *
  * SUBTEST: access-control
  * Feature: userptr
@@ -82,6 +85,7 @@
  *
  * SUBTEST: create-destroy-sync
  * Feature: userptr
+ * Functionality: buffer management
  *
  * SUBTEST: create-destroy-unsync
  * Feature: userptr
@@ -196,9 +200,11 @@
  *
  * SUBTEST: huge-split
  * Feature: userptr
+ * Functionality: buffer management
  *
  * SUBTEST: input-checking
  * Feature: userptr
+ * Functionality: buffer management
  *
  * SUBTEST: invalid-mmap-offset-unsync
  * Description: Verify unsynchronized userptr on mmap-offset mappings fails
@@ -206,6 +212,7 @@
  *
  * SUBTEST: invalid-null-pointer
  * Feature: userptr
+ * Functionality: buffer management
  *
  * SUBTEST: major-normal-sync
  * Feature: userptr
@@ -262,12 +269,15 @@
  * SUBTEST: mmap-offset-banned
  * Description: Verify mmap_offset to userptr is banned
  * Feature: userptr
+ * Functionality: buffer management
  *
  * SUBTEST: nohangcheck
  * Feature: userptr
+ * Functionality: buffer management
  *
  * SUBTEST: probe
  * Feature: userptr
+ * Functionality: buffer management
  *
  * SUBTEST: process-exit
  * Feature: userptr
@@ -286,21 +296,27 @@
  *
  * SUBTEST: sd-probe
  * Feature: userptr
+ * Functionality: buffer management
  *
  * SUBTEST: set-cache-level
  * Feature: userptr
+ * Functionality: buffer management
  *
  * SUBTEST: stress-mm
  * Feature: userptr
+ * Functionality: buffer management
  *
  * SUBTEST: stress-mm-invalidate-close
  * Feature: userptr
+ * Functionality: buffer management
  *
  * SUBTEST: stress-mm-invalidate-close-overlap
  * Feature: userptr
+ * Functionality: buffer management
  *
  * SUBTEST: stress-purge
  * Feature: userptr
+ * Functionality: buffer management
  *
  * SUBTEST: swapping-normal-sync
  * Feature: userptr
@@ -316,15 +332,19 @@
  *
  * SUBTEST: sync-overlap
  * Feature: userptr
+ * Functionality: buffer management
  *
  * SUBTEST: sync-unmap
  * Feature: userptr
+ * Functionality: buffer management
  *
  * SUBTEST: sync-unmap-after-close
  * Feature: userptr
+ * Functionality: buffer management
  *
  * SUBTEST: sync-unmap-cycles
  * Feature: userptr
+ * Functionality: buffer management
  *
  * SUBTEST: unsync-overlap
  * Feature: userptr
@@ -340,12 +360,14 @@
  *
  * SUBTEST: usage-restrictions
  * Feature: userptr
+ * Functionality: buffer management
  *
  * SUBTEST: userfault
  * Feature: userptr
  *
  * SUBTEST: vma-merge
  * Feature: userptr
+ * Functionality: context management
  */
 
 #ifndef PAGE_SIZE
diff --git a/tests/i915/gem_vm_create.c b/tests/i915/gem_vm_create.c
index 9f36e405bff5..3c806482d0f5 100644
--- a/tests/i915/gem_vm_create.c
+++ b/tests/i915/gem_vm_create.c
@@ -32,19 +32,39 @@
  * Run type: FULL
  *
  * SUBTEST: create-ext
+ * Category: Server
  * Feature: mapping
+ * Functionality: context management
+ * Sub-category: Compute
+ * Test category: GEM_Legacy
  *
  * SUBTEST: execbuf
+ * Category: Server
  * Feature: cmd_submission, mapping
+ * Functionality: context management
+ * Sub-category: Compute
+ * Test category: GEM_Legacy
  *
  * SUBTEST: invalid-create
+ * Category: Server
  * Feature: mapping
+ * Functionality: context management
+ * Sub-category: Compute
+ * Test category: GEM_Legacy
  *
  * SUBTEST: invalid-destroy
+ * Category: Server
  * Feature: mapping
+ * Functionality: context management
+ * Sub-category: Compute
+ * Test category: GEM_Legacy
  *
  * SUBTEST: isolation
+ * Category: Infrastructure
  * Feature: context, mapping
+ * Functionality: semaphore
+ * Sub-category: i915
+ * Test category: USM
  */
 
 static int vm_create_ioctl(int i915, struct drm_i915_gem_vm_control *ctl)
diff --git a/tests/i915/gem_wait.c b/tests/i915/gem_wait.c
index 874ccd87eee3..37a6cbaa4720 100644
--- a/tests/i915/gem_wait.c
+++ b/tests/i915/gem_wait.c
@@ -35,14 +35,21 @@
  * TEST: gem wait
  * Description: Tests the GEM_WAIT ioctl
  * Feature: synchronization
+ * Test category: GEM_Legacy
  *
  * SUBTEST: await
+ * Category: Infrastructure
  * Description: Verify GEM_WAIT functionality in await mode.
+ * Functionality: semaphore
  * Run type: FULL
+ * Sub-category: i915
  *
  * SUBTEST: busy
+ * Category: Infrastructure
  * Description: Verify GEM_WAIT functionality in busy mode.
+ * Functionality: semaphore
  * Run type: FULL
+ * Sub-category: i915
  *
  * SUBTEST: hang-busy
  * Description: Verify GEM_WAIT functionality in busy mode, when hang is allowed.
@@ -61,24 +68,39 @@
  * Run type: FULL
  *
  * SUBTEST: invalid-buf
+ * Category: Infrastructure
  * Description: Verify that GEM_WAIT called with invalid buffer object will fail.
+ * Functionality: semaphore
  * Run type: FULL
+ * Sub-category: i915
  *
  * SUBTEST: invalid-flags
+ * Category: Infrastructure
  * Description: Verify that GEM_WAIT called with invalid flag will fail.
+ * Functionality: semaphore
  * Run type: FULL
+ * Sub-category: i915
  *
  * SUBTEST: wait
+ * Category: Infrastructure
  * Description: Verify GEM_WAIT functionality in wait mode.
+ * Functionality: semaphore
  * Run type: FULL
+ * Sub-category: i915
  *
  * SUBTEST: write-busy
+ * Category: Infrastructure
  * Description: Verify GEM_WAIT functionality in write-busy mode.
+ * Functionality: semaphore
  * Run type: FULL
+ * Sub-category: i915
  *
  * SUBTEST: write-wait
+ * Category: Server
  * Description: Verify GEM_WAIT functionality in write-wait mode.
+ * Functionality: semaphore
  * Run type: FULL
+ * Sub-category: Compute
  */
 
 IGT_TEST_DESCRIPTION("Tests the GEM_WAIT ioctl");
diff --git a/tests/i915/gem_workarounds.c b/tests/i915/gem_workarounds.c
index fd3b83b5a7e6..b1a9a54da120 100644
--- a/tests/i915/gem_workarounds.c
+++ b/tests/i915/gem_workarounds.c
@@ -34,16 +34,26 @@
 #include "igt_types.h"
 /**
  * TEST: gem workarounds
+ * Category: Infrastructure
  * Run type: FULL
  *
  * SUBTEST: basic-read
  * Feature: workarounds
+ * Functionality: context management
+ * Sub-category: HW
+ * Test category: GEM_Legacy
  *
  * SUBTEST: basic-read-context
  * Feature: workarounds
+ * Functionality: context management
+ * Sub-category: HW
+ * Test category: GEM_Legacy
  *
  * SUBTEST: basic-read-fd
  * Feature: workarounds
+ * Functionality: context management
+ * Sub-category: HW
+ * Test category: GEM_Legacy
  *
  * SUBTEST: hibernate-resume
  * Feature: hibernate, workarounds
@@ -56,21 +66,42 @@
  *
  * SUBTEST: reset
  * Feature: workarounds
+ * Functionality: context management
+ * Sub-category: HW
+ * Test category: USM
  *
  * SUBTEST: reset-context
  * Feature: workarounds
+ * Functionality: context management
+ * Sub-category: HW
+ * Test category: GEM_Legacy
  *
  * SUBTEST: reset-fd
  * Feature: workarounds
+ * Functionality: device topology
+ * Sub-category: i915
+ * Test category: GEM_Legacy
  *
  * SUBTEST: suspend-resume
- * Feature: suspend, workarounds
+ * Feature:
+ *   suspend, workarounds
+ *   suspend
+ * Functionality: Test to verify gem WA registers during suspend-resume
+ * Test category: suspend
  *
  * SUBTEST: suspend-resume-context
- * Feature: suspend, workarounds
+ * Feature:
+ *   suspend, workarounds
+ *   suspend
+ * Functionality: Test to verify gem WA registers during suspend-resume
+ * Test category: suspend
  *
  * SUBTEST: suspend-resume-fd
- * Feature: suspend, workarounds
+ * Feature:
+ *   suspend, workarounds
+ *   suspend
+ * Functionality: Test debugfs behavior during suspend to idle
+ * Test category: suspend
  */
 
 #define PAGE_SIZE 4096
diff --git a/tests/i915/i915_getparams_basic.c b/tests/i915/i915_getparams_basic.c
index e026aad565ff..26fa4ffff883 100644
--- a/tests/i915/i915_getparams_basic.c
+++ b/tests/i915/i915_getparams_basic.c
@@ -35,12 +35,19 @@
  * Description: Tests the export of parameters via DRM_IOCTL_I915_GETPARAM
  * Feature: gem_core
  * Run type: BAT
+ * Test category: GEM_Legacy
  *
  * SUBTEST: basic-eu-total
+ * Category: Infrastructure
  * Description: Examine the export of EU_TOTAL parameter
+ * Functionality: device topology
+ * Sub-category: i915
  *
  * SUBTEST: basic-subslice-total
+ * Category: Server
  * Description: Examine the export of SUBSLICE_TOTAL parameter
+ * Functionality: error detection
+ * Sub-category: debugger
  */
 
 IGT_TEST_DESCRIPTION("Tests the export of parameters via DRM_IOCTL_I915_GETPARAM\n");
diff --git a/tests/i915/i915_hangman.c b/tests/i915/i915_hangman.c
index ef45b25adacd..11bab9e0fbd2 100644
--- a/tests/i915/i915_hangman.c
+++ b/tests/i915/i915_hangman.c
@@ -44,42 +44,84 @@
  * TEST: i915 hangman
  * Description: Tests for hang detection and recovery
  * Feature: reset
+ * Test category: GEM_Legacy
  *
  * SUBTEST: detector
- * Description: Check that hang detector works
+ * Category: Server
+ * Description:
+ *   Check that hang detector works.
+ *   Error Detection
+ * Functionality: error handling
  * Run type: FULL
+ * Sub-category: debugger
  *
  * SUBTEST: engine-engine-error
- * Description: Per engine hang recovery (invalid CS, engine reset)
+ * Category: Server
+ * Description:
+ *   Per engine hang recovery (invalid CS, engine reset).
+ *   Error Detection
+ * Functionality: error handling
  * Run type: FULL
+ * Sub-category: debugger
  *
  * SUBTEST: engine-engine-hang
+ * Category: Server
  * Description: Per engine hang recovery (spin, engine reset)
+ * Functionality: error detection
  * Run type: FULL
+ * Sub-category: debugger
  *
  * SUBTEST: engine-error-state-capture
- * Description: Per engine error capture (engine reset)
+ * Category: Server
+ * Description:
+ *   Per engine error capture (engine reset).
+ *   Error Detection
+ * Functionality: error handling
  * Run type: FULL
+ * Sub-category: debugger
  *
  * SUBTEST: error-state-basic
- * Description: Basic error capture
+ * Category: Server
+ * Description:
+ *   Basic error capture.
+ *   Error Detection
+ * Functionality: buffer management
  * Run type: BAT
+ * Sub-category: debugger
  *
  * SUBTEST: gt-engine-error
- * Description: Per engine hang recovery (invalid CS, GT reset)
+ * Category: Server
+ * Description:
+ *   Per engine hang recovery (invalid CS, GT reset).
+ *   Error Detection
+ * Functionality: error handling
  * Run type: FULL
+ * Sub-category: debugger
  *
  * SUBTEST: gt-engine-hang
- * Description: Per engine hang recovery (spin, GT reset)
+ * Category: Server
+ * Description:
+ *   Per engine hang recovery (spin, GT reset).
+ *   Error Detection
+ * Functionality: command submission
  * Run type: FULL
+ * Sub-category: debugger
  *
  * SUBTEST: gt-error-state-capture
- * Description: Per engine error capture (GT reset)
+ * Category: Server
+ * Description:
+ *   Per engine error capture (GT reset).
+ *   Error Detection
+ * Functionality: error handling
  * Run type: FULL
+ * Sub-category: debugger
  *
  * SUBTEST: hangcheck-unterminated
+ * Category: Infrastructure
  * Description: Check that executing unintialised memory causes a hang
+ * Functionality: driver handler
  * Run type: FULL
+ * Sub-category: i915
  */
 
 #ifndef I915_PARAM_CMD_PARSER_VERSION
diff --git a/tests/i915/i915_hwmon.c b/tests/i915/i915_hwmon.c
index 6d1334172c40..279f6821b0da 100644
--- a/tests/i915/i915_hwmon.c
+++ b/tests/i915/i915_hwmon.c
@@ -13,6 +13,7 @@
  * Description: Tests for i915 hwmon
  * Feature: hwmon
  * Run type: FULL
+ * Test category: GEM_Legacy
  *
  * SUBTEST: hwmon-read
  * Description: Verify we can read all hwmon attributes
diff --git a/tests/i915/i915_module_load.c b/tests/i915/i915_module_load.c
index ae4e01ef18bc..85cf5c10e9e2 100644
--- a/tests/i915/i915_module_load.c
+++ b/tests/i915/i915_module_load.c
@@ -25,17 +25,25 @@
 #include <sys/utsname.h>
 /**
  * TEST: i915 module load
+ * Category: Infrastructure
  * Description: Tests the i915 module loading.
+ * Test category: GEM_Legacy
  *
  * SUBTEST: load
- * Description: Check if i915 and friends are not yet loaded, then load them.
+ * Description:
+ *   Check if i915 and friends are not yet loaded, then load them.
+ *   Driver handler
  * Feature: core
+ * Functionality: error detection
  * Run type: BAT
+ * Sub-category: i915
  *
  * SUBTEST: reload
  * Description: Verify the basic functionality of i915 driver after it's reloaded.
  * Feature: core, sriov-core
+ * Functionality: device management
  * Run type: BAT
+ * Sub-category: i915
  *
  * SUBTEST: reload-no-display
  * Description: Verify that i915 driver can be successfully loaded with disabled display.
@@ -45,7 +53,9 @@
  * SUBTEST: reload-with-fault-injection
  * Description: Verify that i915 driver can be successfully reloaded at least once with fault injection.
  * Feature: core, sriov-core
+ * Functionality: device management
  * Run type: FULL
+ * Sub-category: Sriov
  *
  * SUBTEST: resize-bar
  * Description: Check whether lmem bar size can be resized to only supported sizes.
diff --git a/tests/i915/i915_pciid.c b/tests/i915/i915_pciid.c
index ae3d2a09d208..6ad96fe3e741 100644
--- a/tests/i915/i915_pciid.c
+++ b/tests/i915/i915_pciid.c
@@ -30,11 +30,16 @@
 #include "intel_chipset.h"
 /**
  * TEST: i915 pciid
+ * Category: Infrastructure
  * Description: Check that igt/i915 know about this PCI-ID
  * Feature: core
+ * Functionality: driver handler
  * Run type: BAT
+ * Sub-category: i915
+ * Test category: frequency
  *
  * SUBTEST:
+ * Description: Device Topology
  */
 
 IGT_TEST_DESCRIPTION("Check that igt/i915 know about this PCI-ID");
diff --git a/tests/i915/i915_pipe_stress.c b/tests/i915/i915_pipe_stress.c
index 230391f06d7b..9ceb056a091b 100644
--- a/tests/i915/i915_pipe_stress.c
+++ b/tests/i915/i915_pipe_stress.c
@@ -20,16 +20,19 @@
 #include "i915/gem.h"
 /**
  * TEST: i915 pipe stress
- * Description: Stress test how gpu and cpu behaves if maximum amount of planes, cpu and gpu utilization is
+ * Description:
+ *   Stress test how gpu and cpu behaves if maximum amount of planes, cpu and gpu utilization is
  *   achieved in order to reveal possible bandwidth/watermark and similar problems.
  * Run type: FULL
  *
  * SUBTEST: stress-xrgb8888-untiled
- * Description: Start pipe stress test, utilizing cpu and gpu simultaneously with maximum amount of planes
+ * Description:
+ *   Start pipe stress test, utilizing cpu and gpu simultaneously with maximum amount of planes
  *   and resolution.
  *
  * SUBTEST: stress-xrgb8888-ytiled
- * Description: Start pipe stress test, utilizing cpu and gpu simultaneously with maximum amount of planes
+ * Description:
+ *   Start pipe stress test, utilizing cpu and gpu simultaneously with maximum amount of planes
  *   and resolution.
  */
 
diff --git a/tests/i915/i915_pm_dc.c b/tests/i915/i915_pm_dc.c
index be6dac86c2c6..2bb07ba8b25a 100644
--- a/tests/i915/i915_pm_dc.c
+++ b/tests/i915/i915_pm_dc.c
@@ -42,17 +42,20 @@
  * Run type: FULL
  *
  * SUBTEST: dc3co-vpb-simulation
- * Description: In this test we make sure that system enters DC3CO when PSR2 is active and system is in SLEEP
+ * Description:
+ *   In this test we make sure that system enters DC3CO when PSR2 is active and system is in SLEEP
  *   state
  * Feature: dc3co, pm_dc
  *
  * SUBTEST: dc5-dpms
- * Description: This test validates display engine entry to DC5 state while all connectors's DPMS property
+ * Description:
+ *   This test validates display engine entry to DC5 state while all connectors's DPMS property
  *   set to OFF
  * Feature: pm_dc
  *
  * SUBTEST: dc5-dpms-negative
- * Description: This test validates negative scenario of DC5 display engine entry to DC5 state while all
+ * Description:
+ *   This test validates negative scenario of DC5 display engine entry to DC5 state while all
  *   connectors's DPMS property set to ON
  * Feature: pm_dc
  *
@@ -61,7 +64,8 @@
  * Feature: pm_dc
  *
  * SUBTEST: dc6-dpms
- * Description: This test validates display engine entry to DC6 state while all connectors's DPMS property
+ * Description:
+ *   This test validates display engine entry to DC6 state while all connectors's DPMS property
  *   set to OFF
  * Feature: pm_dc
  *
diff --git a/tests/i915/i915_pm_freq_mult.c b/tests/i915/i915_pm_freq_mult.c
index edbd9764c6a6..d75ec3f9e8de 100644
--- a/tests/i915/i915_pm_freq_mult.c
+++ b/tests/i915/i915_pm_freq_mult.c
@@ -12,7 +12,8 @@
 #include "igt_sysfs.h"
 /**
  * TEST: i915 pm freq mult
- * Description: Tests for sysfs controls (or multipliers) for IP blocks which run at frequencies different
+ * Description:
+ *   Tests for sysfs controls (or multipliers) for IP blocks which run at frequencies different
  *   from the main GT frequency.
  * Run type: FULL
  *
diff --git a/tests/i915/i915_pm_rpm.c b/tests/i915/i915_pm_rpm.c
index d9b4cbbfe615..b92db0771c89 100644
--- a/tests/i915/i915_pm_rpm.c
+++ b/tests/i915/i915_pm_rpm.c
@@ -44,8 +44,13 @@
  * TEST: i915 pm rpm
  *
  * SUBTEST: basic-pci-d3-state
- * Feature: pm_rpm
+ * Description: frequency scale factor tests - verify GPU freq changes
+ * Feature:
+ *   pm_rpm
+ *   frequency
+ * Functionality: permission management for clients
  * Run type: BAT
+ * Test category: frequency
  *
  * SUBTEST: basic-rte
  * Feature: pm_rpm
diff --git a/tests/i915/i915_pm_rps.c b/tests/i915/i915_pm_rps.c
index 050d68a16559..90d7253a31ee 100644
--- a/tests/i915/i915_pm_rps.c
+++ b/tests/i915/i915_pm_rps.c
@@ -52,13 +52,21 @@
  *
  * SUBTEST: engine-order
  * Description: Check if context reuse does not affect waitboosting
- * Feature: pm_rps
+ * Feature:
+ *   pm_rps
+ *   pm_rps
+ * Functionality: Render P-States tests - verify GPU frequency changes
  * Run type: FULL
+ * Test category: pm_rps
  *
  * SUBTEST: fence-order
  * Description: Check if the order of fences does not affect waitboosting
- * Feature: pm_rps, synchronization
+ * Feature:
+ *   pm_rps, synchronization
+ *   suspend
+ * Functionality: Verify context isolation preservation during S3
  * Run type: FULL
+ * Test category: suspend
  *
  * SUBTEST: min-max-config-idle
  * Feature: pm_rps
diff --git a/tests/i915/i915_power.c b/tests/i915/i915_power.c
index 383c212d2807..6a58751af8b0 100644
--- a/tests/i915/i915_power.c
+++ b/tests/i915/i915_power.c
@@ -9,9 +9,12 @@
 #include "igt_sysfs.h"
 /**
  * TEST: i915 power
+ * Category: Infrastructure
  * Description: i915 power measurement tests
  * Feature: hwmon
+ * Functionality: device topology
  * Run type: FULL
+ * Test category: GEM_Legacy
  *
  * SUBTEST: sanity
  * Description: Sanity check gpu power measurement
diff --git a/tests/i915/i915_query.c b/tests/i915/i915_query.c
index c4d1d7084da5..0cec8c8cada3 100644
--- a/tests/i915/i915_query.c
+++ b/tests/i915/i915_query.c
@@ -33,28 +33,52 @@
  * Run type: FULL
  *
  * SUBTEST: engine-info
+ * Category: Infrastructure
  * Description: Positive tests for DRM_I915_QUERY_ENGINE_INFO
  * Feature: gem_core
+ * Functionality: device topology
+ * Sub-category: i915
+ * Test category: GEM_Legacy
  *
  * SUBTEST: engine-info-invalid
+ * Category: Infrastructure
  * Description: Negative tests for DRM_I915_QUERY_ENGINE_INFO
  * Feature: gem_core
+ * Functionality: device topology
+ * Sub-category: i915
+ * Test category: GEM_Legacy
  *
  * SUBTEST: hwconfig_table
+ * Category: Infrastructure
  * Description: Test DRM_I915_QUERY_HWCONFIG_BLOB query
  * Feature: gem_core
+ * Functionality: device topology
+ * Sub-category: i915
+ * Test category: GEM_Legacy
  *
  * SUBTEST: query-garbage
+ * Category: Infrastructure
  * Description: Test response to an invalid query call
  * Feature: gem_core
+ * Functionality: device topology
+ * Sub-category: i915
+ * Test category: GEM_Legacy
  *
  * SUBTEST: query-regions-garbage-items
+ * Category: Infrastructure
  * Description: Dodgy returned data tests for DRM_I915_QUERY_MEMORY_REGIONS
  * Feature: gem_core
+ * Functionality: device topology
+ * Sub-category: i915
+ * Test category: GEM_Legacy
  *
  * SUBTEST: query-regions-sanity-check
+ * Category: Infrastructure
  * Description: Basic tests for DRM_I915_QUERY_MEMORY_REGIONS
  * Feature: gem_core
+ * Functionality: device topology
+ * Sub-category: i915
+ * Test category: GEM_Legacy
  *
  * SUBTEST: query-regions-unallocated
  * Description: Sanity check the region unallocated tracking
@@ -65,15 +89,26 @@
  * Feature: gem_core
  *
  * SUBTEST: query-topology-garbage-items
+ * Category: Infrastructure
  * Description: Test response to invalid DRM_I915_QUERY_TOPOLOGY_INFO query
  * Feature: gem_core
+ * Functionality: device topology
+ * Sub-category: i915
+ * Test category: GEM_Legacy
  *
  * SUBTEST: query-topology-kernel-writes
- * Description: Guardband test for DRM_I915_QUERY_TOPOLOGY_INFO query
+ * Category: Server
+ * Description:
+ *   Guardband test for DRM_I915_QUERY_TOPOLOGY_INFO query.
+ *   Offline error capture checks
  * Feature: gem_core
+ * Functionality: offline debugging
+ * Sub-category: Debugger
+ * Test category: GEM_Legacy
  *
  * SUBTEST: query-topology-known-pci-ids
- * Description: Verify DRM_I915_QUERY_TOPOLOGY_INFO query against hardcoded known values for certain
+ * Description:
+ *   Verify DRM_I915_QUERY_TOPOLOGY_INFO query against hardcoded known values for certain
  *   platforms
  * Feature: gem_core
  *
diff --git a/tests/i915/i915_suspend.c b/tests/i915/i915_suspend.c
index 1164d303e06c..a8356506e43f 100644
--- a/tests/i915/i915_suspend.c
+++ b/tests/i915/i915_suspend.c
@@ -48,18 +48,32 @@
  * TEST: i915 suspend
  *
  * SUBTEST: basic-s2idle-without-i915
- * Description: Validate suspend-to-idle without i915 module
- * Feature: suspend
+ * Description:
+ *   Validate suspend-to-idle without i915 module.
+ *   Validate S3 state without i915 module
+ * Feature:
+ *   suspend
+ *   suspend
+ * Functionality: s3 w/o i915
  * Run type: BAT
+ * Test category: suspend
  *
  * SUBTEST: basic-s3-without-i915
  * Description: Validate S3 without i915 module
- * Feature: suspend
+ * Feature:
+ *   suspend
+ *   pm_rps
+ * Functionality: Render P-States tests - verify GPU frequency changes
  * Run type: BAT
+ * Test category: pm_rps
  *
  * SUBTEST: debugfs-reader
- * Feature: suspend
+ * Feature:
+ *   suspend
+ *   suspend
+ * Functionality: Test to prevent GT from suspend by opening forcewake handle
  * Run type: FULL
+ * Test category: suspend
  *
  * SUBTEST: debugfs-reader-hibernate
  * Feature: suspend
@@ -82,8 +96,12 @@
  * Run type: FULL
  *
  * SUBTEST: forcewake
- * Feature: suspend
+ * Feature:
+ *   suspend
+ *   suspend
+ * Functionality: Test sysfs behavior during suspend to idle
  * Run type: FULL
+ * Test category: suspend
  *
  * SUBTEST: forcewake-hibernate
  * Feature: suspend
@@ -94,8 +112,12 @@
  * Run type: FULL
  *
  * SUBTEST: sysfs-reader
- * Feature: suspend
+ * Feature:
+ *   suspend
+ *   rps, rc6
+ * Functionality: Basic i915 driver module selftests
  * Run type: FULL
+ * Test category: rps, rc6
  *
  * SUBTEST: sysfs-reader-hibernate
  * Feature: suspend
diff --git a/tests/i915/perf.c b/tests/i915/perf.c
index 40decc9cf396..f34028d31266 100644
--- a/tests/i915/perf.c
+++ b/tests/i915/perf.c
@@ -51,21 +51,48 @@
  * Run type: FULL
  *
  * SUBTEST: blocking
- * Description: Test blocking read with default hrtimer frequency
- * Feature: oa
+ * Description:
+ *   Test blocking read with default hrtimer frequency.
+ *   Test the i915 pmu perf interface
+ * Feature:
+ *   oa
+ *   i915 pmu perf interface
+ * Functionality: Test blocking read with different hrtimer frequencies
+ * Test category: Perf
  *
  * SUBTEST: blocking-parameterized
- * Description: Test blocking read with different hrtimer frequencies
- * Feature: oa
+ * Description:
+ *   Test blocking read with different hrtimer frequencies.
+ *   Test polled read with different hrtimer frequencies
+ * Feature:
+ *   oa
+ *   i915 streaming interface
+ * Functionality: Test the i915 perf metrics streaming interface
+ * Test category: Perf
  *
  * SUBTEST: buffer-fill
- * Feature: oa
+ * Description: Test blocking read with default hrtimer frequency
+ * Feature:
+ *   oa
+ *   i915 streaming interface
+ * Functionality: Unmap buffer, close fd and try to access
+ * Test category: Perf
  *
  * SUBTEST: create-destroy-userspace-config
- * Feature: oa
+ * Feature:
+ *   oa
+ *   i915 streaming interface
+ * Functionality: Test the i915 perf metrics streaming interface
+ * Test category: Perf
  *
  * SUBTEST: disabled-read-error
- * Feature: oa
+ * Category: Verify blocking read of EU stall data during a workload run
+ * Description: Test OA TLB invalidate
+ * Feature:
+ *   oa
+ *   i915 streaming interface
+ * Functionality: Verify blocking read of EU stall data during a workload run
+ * Test category: EU_Stall
  *
  * SUBTEST: enable-disable
  * Feature: oa
@@ -83,8 +110,14 @@
  * Feature: oa
  *
  * SUBTEST: gen12-invalid-class-instance
- * Description: Verify invalid class instance
- * Feature: oa
+ * Description:
+ *   Verify invalid class instance.
+ *   Test to ensure gpu is busy when there a workload by reading engine busyness pmu counters
+ * Feature:
+ *   oa
+ *   i915 pmu perf interface
+ * Functionality: Test OA TLB invalidate
+ * Test category: Perf
  *
  * SUBTEST: gen12-mi-rpc
  * Description: Test MI REPORT PERF COUNT for Gen 12
@@ -92,7 +125,11 @@
  *
  * SUBTEST: gen12-oa-tlb-invalidate
  * Description: Test OA TLB invalidate
- * Feature: oa
+ * Feature:
+ *   oa
+ *   i915 streaming interface
+ * Functionality: Test the i915 perf metrics streaming interface
+ * Test category: Perf
  *
  * SUBTEST: gen12-unprivileged-single-ctx-counters
  * Description: Measure performance for a specific context using OAR in Gen 12
@@ -110,84 +147,169 @@
  * Feature: oa
  *
  * SUBTEST: i915-ref-count
- * Feature: oa
+ * Description: Test the i915 pmu perf interface
+ * Feature:
+ *   oa
+ *   i915 pmu perf interface
+ * Functionality: Test the i915 perf metrics streaming interface
+ * Test category: Perf
  *
  * SUBTEST: invalid-create-userspace-config
- * Feature: oa
+ * Description: Test the i915 perf metrics streaming interface
+ * Feature:
+ *   oa
+ *   i915 streaming interface
+ * Functionality: Verify invalid mappings of oa buffer
+ * Test category: Perf
  *
  * SUBTEST: invalid-oa-exponent
- * Feature: oa
+ * Feature:
+ *   oa
+ *   i915 streaming interface
+ * Functionality: Test the i915 perf metrics streaming interface
+ * Test category: Perf
  *
  * SUBTEST: invalid-oa-format-id
- * Feature: oa
+ * Feature:
+ *   oa
+ *   i915 streaming interface
+ * Functionality: Test the i915 perf metrics streaming interface
+ * Test category: Perf
  *
  * SUBTEST: invalid-oa-metric-set-id
- * Feature: oa
+ * Feature:
+ *   oa
+ *   i915 streaming interface
+ * Functionality: Test the i915 perf metrics streaming interface
+ * Test category: Perf
  *
  * SUBTEST: invalid-open-flags
- * Feature: oa
+ * Feature:
+ *   oa
+ *   i915 streaming interface
+ * Functionality: Test the i915 perf metrics streaming interface
+ * Test category: Perf
  *
  * SUBTEST: invalid-remove-userspace-config
- * Feature: oa
+ * Feature:
+ *   oa
+ *   i915 streaming interface
+ * Functionality: Test the i915 perf metrics streaming interface
+ * Test category: Perf
  *
  * SUBTEST: low-oa-exponent-permissions
- * Feature: oa
+ * Description: Test the i915 perf metrics streaming interface
+ * Feature:
+ *   oa
+ *   i915 streaming interface
+ * Functionality: Verify mapping of oa buffer
+ * Test category: Perf
  *
  * SUBTEST: mi-rpc
  * Feature: oa
  *
  * SUBTEST: missing-sample-flags
- * Feature: oa
+ * Feature:
+ *   oa
+ *   i915 streaming interface
+ * Functionality: Test OA buffer for non power of 2 report sizes
+ * Test category: Perf
  *
  * SUBTEST: non-sampling-read-error
- * Feature: oa
+ * Description: Test the i915 perf metrics streaming interface
+ * Feature:
+ *   oa
+ *   i915 streaming interface
+ * Functionality: Test that reason field in OA reports is never 0 on Gen8+
+ * Test category: Perf
  *
  * SUBTEST: non-system-wide-paranoid
  * Feature: oa
  *
  * SUBTEST: non-zero-reason
- * Description: Test that reason field in OA reports is never 0 on Gen8+
- * Feature: oa
+ * Description:
+ *   Test that reason field in OA reports is never 0 on Gen8+.
+ *   Setup workload on all engines,measure gt awake time via pmu
+ * Feature:
+ *   oa
+ *   i915 pmu perf interface
+ * Functionality: Test the i915 perf metrics streaming interface
+ * Test category: Perf
  *
  * SUBTEST: oa-exponents
  * Feature: oa
  *
  * SUBTEST: oa-formats
- * Feature: oa
+ * Description: Test polled read with default hrtimer frequency
+ * Feature:
+ *   oa
+ *   i915 streaming interface
+ * Functionality: Verify that OA registers are not whitelisted for paranoid 1
+ * Test category: Perf
  *
  * SUBTEST: per-context-mode-unprivileged
  * Feature: oa, obsolete
  *
  * SUBTEST: polling
- * Description: Test polled read with default hrtimer frequency
- * Feature: oa
+ * Description:
+ *   Test polled read with default hrtimer frequency.
+ *   Test the i915 perf metrics streaming interface
+ * Feature:
+ *   oa
+ *   i915 streaming interface
+ * Functionality: Test polled read with different hrtimer frequencies
+ * Test category: Perf
  *
  * SUBTEST: polling-parameterized
  * Description: Test polled read with different hrtimer frequencies
- * Feature: oa
+ * Feature:
+ *   oa
+ *   i915 streaming interface
+ * Functionality: Test polled read with buffer size smaller than available data
+ * Test category: Perf
  *
  * SUBTEST: polling-small-buf
- * Description: Test polled read with buffer size smaller than available data
- * Feature: oa
+ * Description:
+ *   Test polled read with buffer size smaller than available data.
+ *   Verify invalid class instance
+ * Feature:
+ *   oa
+ *   i915 streaming interface
+ * Functionality: Verify that forked access to mapped buffer fails
+ * Test category: Perf
  *
  * SUBTEST: rc6-disable
  * Feature: oa
  *
  * SUBTEST: short-reads
- * Feature: oa
+ * Feature:
+ *   oa
+ *   i915 streaming interface
+ * Functionality: Test the i915 perf metrics streaming interface
+ * Test category: Perf
  *
  * SUBTEST: stress-open-close
  * Description: Stress tests opening & closing the i915-perf stream in a busy loop
  * Feature: oa
  *
  * SUBTEST: sysctl-defaults
- * Feature: oa
+ * Feature:
+ *   oa
+ *   i915 streaming interface
+ * Functionality: Test the i915 perf metrics streaming interface
+ * Test category: Perf
  *
  * SUBTEST: unprivileged-single-ctx-counters
  * Feature: oa, obsolete
  *
  * SUBTEST: whitelisted-registers-userspace-config
- * Feature: oa
+ * Category: Infrastructure
+ * Description: Test blocking read with different hrtimer frequencies
+ * Feature:
+ *   oa
+ *   i915 streaming interface
+ * Functionality: buffer management
+ * Test category: GEM_Legacy
  */
 
 IGT_TEST_DESCRIPTION("Test the i915 perf metrics streaming interface");
diff --git a/tests/i915/perf_pmu.c b/tests/i915/perf_pmu.c
index bedadbe92797..4ade084ede45 100644
--- a/tests/i915/perf_pmu.c
+++ b/tests/i915/perf_pmu.c
@@ -53,54 +53,106 @@
  * TEST: perf pmu
  * Description: Test the i915 pmu perf interface
  * Run type: FULL
+ * Test category: Perf
  *
  * SUBTEST: all-busy-check-all
- * Feature: pmu
+ * Feature:
+ *   pmu
+ *   i915 pmu perf interface
+ * Functionality: Test the i915 pmu perf interface
  *
  * SUBTEST: all-busy-idle-check-all
- * Feature: pmu
+ * Description: Read requested freq and actual frequency via PMU within specified time interval for any given workload changes
+ * Feature:
+ *   pmu
+ *   i915 pmu perf interface
+ * Functionality: Test to ensure gpu is busy when there a workload by reading engine busyness pmu counters
  *
  * SUBTEST: busy
- * Feature: pmu
+ * Feature:
+ *   pmu
+ *   i915 pmu perf interface
+ * Functionality: Test the i915 pmu perf interface
  *
  * SUBTEST: busy-accuracy-2
- * Feature: pmu
+ * Feature:
+ *   pmu
+ *   i915 pmu perf interface
+ * Functionality: Test the i915 pmu perf interface
  *
  * SUBTEST: busy-accuracy-50
- * Feature: pmu
+ * Feature:
+ *   pmu
+ *   i915 pmu perf interface
+ * Functionality: Test the i915 pmu perf interface
  *
  * SUBTEST: busy-accuracy-98
- * Feature: pmu
+ * Feature:
+ *   pmu
+ *   i915 pmu perf interface
+ * Functionality: Test to ensure gpu all engines report busy when there is a workload by reading engine busyness pmu counters
  *
  * SUBTEST: busy-check-all
- * Feature: pmu
+ * Feature:
+ *   pmu
+ *   i915 pmu perf interface
+ * Functionality: Test the i915 pmu perf interface
  *
  * SUBTEST: busy-double-start
- * Feature: pmu
+ * Feature:
+ *   pmu
+ *   i915 pmu perf interface
+ * Functionality: Test to ensure there is no hanf when all engines are busy
  *
  * SUBTEST: busy-hang
- * Feature: pmu
+ * Feature:
+ *   pmu
+ *   i915 pmu perf interface
+ * Functionality: Test to ensure gpu engine reports idle when there is no workload
  *
  * SUBTEST: busy-idle
- * Feature: pmu
+ * Feature:
+ *   pmu
+ *   i915 pmu perf interface
+ * Functionality: Test to ensure gpu all engine reports idle when there is no workload
  *
  * SUBTEST: busy-idle-check-all
- * Feature: pmu
+ * Feature:
+ *   pmu
+ *   i915 pmu perf interface
+ * Functionality: Test to verify gpu idle through engine business pmu counters
  *
  * SUBTEST: busy-idle-no-semaphores
- * Feature: pmu
+ * Feature:
+ *   pmu
+ *   i915 pmu perf interface
+ * Functionality: Test to verify gpu busyness through engine business pmu counters
  *
  * SUBTEST: busy-no-semaphores
- * Feature: pmu
+ * Feature:
+ *   pmu
+ *   i915 pmu perf interface
+ * Functionality: Test to verify gpu busyness through engine business pmu counters
  *
  * SUBTEST: busy-start
- * Feature: pmu
+ * Feature:
+ *   pmu
+ *   i915 pmu perf interface
+ * Functionality: Test the i915 pmu perf interface
  *
  * SUBTEST: cpu-hotplug
- * Feature: pmu
+ * Description: Test that reason field in OA reports is never 0 on Gen8+
+ * Feature:
+ *   pmu
+ *   i915 streaming interface
+ * Functionality: Test the i915 pmu perf interface
  *
  * SUBTEST: enable-race
- * Feature: pmu
+ * Description: Test to ensure gpu is idle when there is no workload by reading engine busyness pmu counters
+ * Feature:
+ *   pmu
+ *   i915 pmu perf interface
+ * Functionality: Read requested freq and actual frequency via PMU within specified time interval for any given workload changes
  *
  * SUBTEST: event-wait
  * Feature: obsolete, pmu
@@ -109,56 +161,106 @@
  * Feature: pmu
  *
  * SUBTEST: frequency
- * Feature: pmu
+ * Description: Test the i915 pmu perf interface
+ * Feature:
+ *   pmu
+ *   i915 pmu perf interface
+ * Functionality: Setup workload on all engines,measure gt awake time via pmu
  *
  * SUBTEST: frequency-idle
  * Feature: pmu
  *
  * SUBTEST: gt-awake
- * Feature: pmu
+ * Description: Test the i915 pmu perf interface
+ * Feature:
+ *   pmu
+ *   i915 pmu perf interface
+ * Functionality: Test to ensure gpu is idle when there is no workload by reading engine busyness pmu counters
  *
  * SUBTEST: idle
- * Feature: pmu
+ * Feature:
+ *   pmu
+ *   i915 pmu perf interface
+ * Functionality: Test to ensure gpu is idle when there is no workload by reading engine busyness pmu counters
  *
  * SUBTEST: idle-no-semaphores
- * Feature: pmu
+ * Feature:
+ *   pmu
+ *   i915 pmu perf interface
+ * Functionality: Test to verify gpu busyness init through pmu perf interface
  *
  * SUBTEST: init-busy
- * Feature: pmu
+ * Feature:
+ *   pmu
+ *   i915 pmu perf interface
+ * Functionality: Test to verify gpu busyness init through pmu perf interface
  *
  * SUBTEST: init-sema
- * Feature: pmu
+ * Feature:
+ *   pmu
+ *   i915 pmu perf interface
+ * Functionality: Test to verify gpu busyness init through pmu perf interface
  *
  * SUBTEST: init-wait
- * Feature: pmu
+ * Feature:
+ *   pmu
+ *   i915 pmu perf interface
+ * Functionality: Test the i915 pmu perf interface
  *
  * SUBTEST: interrupts
- * Feature: pmu
+ * Feature:
+ *   pmu
+ *   i915 pmu perf interface
+ * Functionality: Test the i915 pmu perf interface
  *
  * SUBTEST: interrupts-sync
- * Feature: pmu
+ * Feature:
+ *   pmu
+ *   i915 pmu perf interface
+ * Functionality: Tests that i915 PMU corectly errors out in invalid initialization
  *
  * SUBTEST: invalid-init
- * Feature: pmu
+ * Description: Test the i915 perf metrics streaming interface
+ * Feature:
+ *   pmu
+ *   i915 streaming interface
+ * Functionality: Test the i915 pmu perf interface
  *
  * SUBTEST: invalid-open
- * Feature: pmu
+ * Description: Test the i915 perf metrics streaming interface
+ * Feature:
+ *   pmu
+ *   i915 streaming interface
+ * Functionality: Test the i915 pmu perf interface
  *
  * SUBTEST: module-unload
- * Feature: pmu
+ * Feature:
+ *   pmu
+ *   i915 pmu perf interface
+ * Functionality: Test the i915 pmu perf interface
  *
  * SUBTEST: most-busy-check-all
- * Feature: pmu
+ * Feature:
+ *   pmu
+ *   i915 pmu perf interface
+ * Functionality: Test the i915 pmu perf interface
  *
  * SUBTEST: most-busy-idle-check-all
- * Feature: pmu
+ * Feature:
+ *   pmu
+ *   i915 pmu perf interface
+ * Functionality: Test the i915 pmu perf interface
  *
  * SUBTEST: multi-client
- * Feature: pmu
+ * Feature:
+ *   pmu
+ *   i915 pmu perf interface
+ * Functionality: Test the i915 pmu perf interface
  *
  * SUBTEST: pmu-read
  * Description: Verify i915 pmu dir exists and read all events
  * Feature: pmu
+ * Functionality: Test the i915 pmu perf interface
  *
  * SUBTEST: rc6
  * Feature: pmu
@@ -179,13 +281,23 @@
  * Feature: pmu
  *
  * SUBTEST: semaphore-busy
- * Feature: pmu
+ * Feature:
+ *   pmu
+ *   i915 pmu perf interface
+ * Functionality: Test the i915 pmu perf interface
  *
  * SUBTEST: semaphore-wait
- * Feature: pmu
+ * Feature:
+ *   pmu
+ *   i915 pmu perf interface
+ * Functionality: Test the i915 pmu perf interface
  *
  * SUBTEST: semaphore-wait-idle
- * Feature: pmu
+ * Description: Unmap buffer, close fd and try to access
+ * Feature:
+ *   pmu
+ *   i915 streaming interface
+ * Functionality: Test polled read with default hrtimer frequency
  */
 
 IGT_TEST_DESCRIPTION("Test the i915 pmu perf interface");
diff --git a/tests/i915/sysfs_defaults.c b/tests/i915/sysfs_defaults.c
index 73478559fcda..3c6ac7c5aac1 100644
--- a/tests/i915/sysfs_defaults.c
+++ b/tests/i915/sysfs_defaults.c
@@ -35,8 +35,13 @@
 #include "igt_sysfs.h"
 /**
  * TEST: sysfs defaults
+ * Category: Server
+ * Description: Error Management
  * Feature: gem_core
+ * Functionality: error handling
  * Run type: FULL
+ * Sub-category: debugger
+ * Test category: GEM_Legacy
  *
  * SUBTEST: readonly
  */
diff --git a/tests/i915/sysfs_heartbeat_interval.c b/tests/i915/sysfs_heartbeat_interval.c
index 2971acb32811..4f9a0b8da96e 100644
--- a/tests/i915/sysfs_heartbeat_interval.c
+++ b/tests/i915/sysfs_heartbeat_interval.c
@@ -45,20 +45,26 @@
  * TEST: sysfs heartbeat interval
  * Feature: SMI, cmd_submission
  * Run type: FULL
+ * Test category: SysMan
  *
  * SUBTEST: idempotent
+ * Functionality: Test to check if heartbeat parameter rejects any unrepresentable intervals.
  *
  * SUBTEST: invalid
+ * Functionality: Run a mixed workload with non-preemptable hogs that exceed the heartbeat, and quicker innocents. Inspect the fence status of each to verify that only the hogs are reset.
  *
  * SUBTEST: long
  *
  * SUBTEST: mixed
+ * Functionality: Test heartbeats with forced preemption disabled.
  *
  * SUBTEST: nopreempt
+ * Functionality: Tests the heartbeats with preemption and heartbeat parameter enabled.
  *
  * SUBTEST: off
  *
  * SUBTEST: precise
+ * Functionality: Test to check whether the preempt_timeout parameter reports the values set.
  */
 
 #define ATTR "heartbeat_interval_ms"
diff --git a/tests/i915/sysfs_preempt_timeout.c b/tests/i915/sysfs_preempt_timeout.c
index e7c09949930c..6381a69c0847 100644
--- a/tests/i915/sysfs_preempt_timeout.c
+++ b/tests/i915/sysfs_preempt_timeout.c
@@ -44,14 +44,19 @@
  * TEST: sysfs preempt timeout
  * Feature: SMI, context
  * Run type: FULL
+ * Test category: SysMan
  *
  * SUBTEST: idempotent
+ * Functionality: Test to check if preempt_timeout parameter rejects any unrepresentable intervals.
  *
  * SUBTEST: invalid
+ * Functionality: Test to measure the delay from requestion the preemption to its completion. Send down some non-preemptable workloads and then request a switch to a higher priority context. The HW will not be able to respond, so the kernel will be forced to reset the hog.
  *
  * SUBTEST: off
  *
  * SUBTEST: timeout
+ * Description: Test to measure the timeslice duration by watching the xCS_TIMESTAMP and recording its value every time we switch into the context, using a couple of semaphores to busyspin for the timeslice.
+ * Functionality: Test to check whether timeslice parameter reports the values set.
  */
 
 #define ATTR "preempt_timeout_ms"
diff --git a/tests/i915/sysfs_timeslice_duration.c b/tests/i915/sysfs_timeslice_duration.c
index 0f4905d8b613..638d79e6b57a 100644
--- a/tests/i915/sysfs_timeslice_duration.c
+++ b/tests/i915/sysfs_timeslice_duration.c
@@ -49,14 +49,23 @@
  * Run type: FULL
  *
  * SUBTEST: duration
+ * Functionality: Test to check whether timeslice parameter reports the values set.
+ * Test category: SysMan
  *
  * SUBTEST: idempotent
+ * Functionality: Test to check if timeslice parameter rejects any unrepresentable intervals.
+ * Test category: SysMan
  *
  * SUBTEST: invalid
+ * Functionality: Couple a unpreemptable hog with a fast forced reset and measure the timeslice by how long it takes for the hog to be reset and the high priority context to complete.
+ * Test category: SysMan
  *
  * SUBTEST: off
  *
  * SUBTEST: timeout
+ * Category: Infrastructure
+ * Functionality: mock device
+ * Test category: GEM_Legacy
  */
 
 #define ATTR "timeslice_duration_ms"
diff --git a/tests/prime_busy.c b/tests/prime_busy.c
index 4f7dba7d0e3c..01320db27e73 100644
--- a/tests/prime_busy.c
+++ b/tests/prime_busy.c
@@ -28,21 +28,30 @@
 #include "igt.h"
 /**
  * TEST: prime busy
+ * Category: Infrastructure
  * Description: Basic check of polling for prime fences.
  * Feature: prime
  * Run type: FULL
+ * Sub-category: DRM
+ * Test category: GEM_Legacy
  *
  * SUBTEST: after
+ * Functionality: buffer management
  *
  * SUBTEST: after-wait
+ * Functionality: buffer management
  *
  * SUBTEST: before
+ * Functionality: buffer management
  *
  * SUBTEST: before-wait
+ * Functionality: buffer management
  *
  * SUBTEST: hang
+ * Functionality: buffer management
  *
  * SUBTEST: hang-wait
+ * Functionality: memory management
  */
 
 IGT_TEST_DESCRIPTION("Basic check of polling for prime fences.");
diff --git a/tests/prime_mmap.c b/tests/prime_mmap.c
index 8ffe37fe199f..efd4deff921e 100644
--- a/tests/prime_mmap.c
+++ b/tests/prime_mmap.c
@@ -52,8 +52,12 @@
 #include "i915/intel_memory_region.h"
 /**
  * TEST: prime mmap
+ * Category: Infrastructure
  * Feature: prime
+ * Functionality: memory management
  * Run type: FULL
+ * Sub-category: DRM
+ * Test category: GEM_Legacy
  *
  * SUBTEST: test_aperture_limit
  *
diff --git a/tests/prime_mmap_coherency.c b/tests/prime_mmap_coherency.c
index b6cc233a2858..03d588e47ece 100644
--- a/tests/prime_mmap_coherency.c
+++ b/tests/prime_mmap_coherency.c
@@ -33,16 +33,23 @@
 #include "igt.h"
 /**
  * TEST: prime mmap coherency
- * Description: Test dma-buf mmap on !llc platforms mostly and provoke coherency bugs so we know for sure where
+ * Category: Infrastructure
+ * Description:
+ *   Test dma-buf mmap on !llc platforms mostly and provoke coherency bugs so we know for sure where
  *   we need the sync ioctls.
  * Feature: prime
  * Run type: FULL
+ * Sub-category: DRM
+ * Test category: GEM_Legacy
  *
  * SUBTEST: ioctl-errors
+ * Functionality: memory management
  *
  * SUBTEST: read
+ * Functionality: memory management
  *
  * SUBTEST: write
+ * Functionality: buffer management
  */
 
 IGT_TEST_DESCRIPTION("Test dma-buf mmap on !llc platforms mostly and provoke"
diff --git a/tests/prime_self_import.c b/tests/prime_self_import.c
index 7d423b8cd442..56b94465cb73 100644
--- a/tests/prime_self_import.c
+++ b/tests/prime_self_import.c
@@ -47,39 +47,52 @@
 #include "i915/gem_create.h"
 /**
  * TEST: prime self import
+ * Category: Infrastructure
  * Description: Check whether prime import/export works on the same device... but with different fds.
  * Feature: prime
+ * Sub-category: DRM
+ * Test category: GEM_Legacy
  *
  * SUBTEST: basic-llseek-bad
  * Description: Check dmabuf llseek support with invalid values.
+ * Functionality: buffer management
  * Run type: BAT
  *
  * SUBTEST: basic-llseek-size
  * Description: Check dmabuf llseek support.
+ * Functionality: buffer management
  * Run type: BAT
  *
  * SUBTEST: basic-with_fd_dup
  * Description: Check prime export with duplicate fd.
+ * Functionality: buffer management
  * Run type: BAT
  *
  * SUBTEST: basic-with_one_bo
  * Description: Check prime import/export with one buffer object.
+ * Functionality: buffer management
  * Run type: BAT
  *
  * SUBTEST: basic-with_one_bo_two_files
  * Description: Check prime/flink with one buffer object.
+ * Functionality: buffer management
  * Run type: BAT
  *
  * SUBTEST: basic-with_two_bos
- * Description: Check prime import/export with two buffer objects.
+ * Description:
+ *   Check prime import/export with two buffer objects.
+ *   Buffer Management
+ * Functionality: mock device
  * Run type: BAT
  *
  * SUBTEST: export-vs-gem_close-race
  * Description: Check race of gem close against prime export.
+ * Functionality: buffer management
  * Run type: FULL
  *
  * SUBTEST: reimport-vs-gem_close-race
  * Description: Check race of gem close against reimport.
+ * Functionality: mock device
  * Run type: FULL
  */
 
diff --git a/tests/prime_vgem.c b/tests/prime_vgem.c
index 59e79af2dd00..705948ae4e3c 100644
--- a/tests/prime_vgem.c
+++ b/tests/prime_vgem.c
@@ -35,14 +35,22 @@
  * Description: Basic check of polling for prime/vgem fences.
  *
  * SUBTEST: basic-blt
+ * Category: Infrastructure
  * Description: Examine blitter access path.
  * Feature: prime
+ * Functionality: mock device
  * Run type: FULL
+ * Sub-category: DRM
+ * Test category: GEM_Legacy
  *
  * SUBTEST: basic-fence-blt
+ * Category: Infrastructure
  * Description: Examine blitter access path fencing.
  * Feature: prime
+ * Functionality: mock device
  * Run type: FULL
+ * Sub-category: DRM
+ * Test category: GEM_Legacy
  *
  * SUBTEST: basic-fence-flip
  * Description: Examine vgem bo front/back flip fencing.
@@ -80,14 +88,22 @@
  * Run type: BAT
  *
  * SUBTEST: busy
+ * Category: Infrastructure
  * Description: Examine busy check of polling for vgem fence.
  * Feature: prime
+ * Functionality: mock device
  * Run type: FULL
+ * Sub-category: DRM
+ * Test category: GEM_Legacy
  *
  * SUBTEST: coherency-blt
+ * Category: Infrastructure
  * Description: Examine blitter access path WC coherency.
  * Feature: prime
+ * Functionality: mock device
  * Run type: FULL
+ * Sub-category: DRM
+ * Test category: GEM_Legacy
  *
  * SUBTEST: coherency-gtt
  * Description: Examine concurrent access of vgem bo.
@@ -105,9 +121,13 @@
  * Run type: FULL
  *
  * SUBTEST: fence-wait
+ * Category: Infrastructure
  * Description: Examine basic dma-buf fence interop.
  * Feature: prime, synchronization
+ * Functionality: mock device
  * Run type: FULL
+ * Sub-category: DRM
+ * Test category: GEM_Legacy
  *
  * SUBTEST: fence-write-hang
  * Description: Examine write access path fencing with a pending gpu hang.
@@ -115,19 +135,31 @@
  * Run type: FULL
  *
  * SUBTEST: shrink
+ * Category: Infrastructure
  * Description: Examine link establishment between shrinker and vgem bo.
  * Feature: prime
+ * Functionality: mock device
  * Run type: FULL
+ * Sub-category: DRM
+ * Test category: GEM_Legacy
  *
  * SUBTEST: sync
+ * Category: Infrastructure
  * Description: Examine sync on vgem fence.
  * Feature: prime
+ * Functionality: mock device
  * Run type: FULL
+ * Sub-category: DRM
+ * Test category: GEM_Legacy
  *
  * SUBTEST: wait
+ * Category: Infrastructure
  * Description: Examine wait on vgem fence.
  * Feature: prime
+ * Functionality: semaphore
  * Run type: FULL
+ * Sub-category: DRM
+ * Test category: GEM_Legacy
  */
 
 IGT_TEST_DESCRIPTION("Basic check of polling for prime/vgem fences.");
diff --git a/tests/sw_sync.c b/tests/sw_sync.c
index e626cd14cd28..6c476ff46776 100644
--- a/tests/sw_sync.c
+++ b/tests/sw_sync.c
@@ -40,9 +40,13 @@
 
 /**
  * TEST: sw sync
+ * Category: Infrastructure
  * Description: Test SW Sync Framework
  * Feature: synchronization
+ * Functionality: semaphore
  * Run type: FULL
+ * Sub-category: DRM
+ * Test category: GEM_Legacy
  *
  * SUBTEST: alloc_fence
  *
diff --git a/tests/syncobj_basic.c b/tests/syncobj_basic.c
index 8d98137e7bd6..3252dbd693fb 100644
--- a/tests/syncobj_basic.c
+++ b/tests/syncobj_basic.c
@@ -28,9 +28,13 @@
 #include "drm.h"
 /**
  * TEST: syncobj basic
+ * Category: Infrastructure
  * Description: Basic check for drm sync objects.
  * Feature: synchronization
+ * Functionality: semaphore
  * Run type: FULL
+ * Sub-category: DRM
+ * Test category: GEM_Legacy
  *
  * SUBTEST: bad-create-flags
  *
diff --git a/tests/syncobj_timeline.c b/tests/syncobj_timeline.c
index 65282d1964ee..134a6099512e 100644
--- a/tests/syncobj_timeline.c
+++ b/tests/syncobj_timeline.c
@@ -32,16 +32,22 @@
 #include "drm.h"
 /**
  * TEST: syncobj timeline
+ * Category: Infrastructure
  * Description: Tests for the drm timeline sync object API
  * Feature: synchronization
+ * Functionality: semaphore
  * Run type: FULL
+ * Sub-category: DRM
+ * Test category: GEM_Legacy
  *
  * SUBTEST: 32bits-limit
- * Description: Verifies that signaling around the int32_t limit. For compatibility reason, the handling
+ * Description:
+ *   Verifies that signaling around the int32_t limit. For compatibility reason, the handling
  *   of seqnos in the dma-fences can consider a seqnoA is prior seqnoB even though seqnoA > seqnoB.
  *
  * SUBTEST: device-signal-unordered
- * Description: Verifies that a device signaling fences out of order on the timeline still increments the
+ * Description:
+ *   Verifies that a device signaling fences out of order on the timeline still increments the
  *   timeline monotonically and that waits work properly.
  *
  * SUBTEST: device-submit-unordered
@@ -120,11 +126,13 @@
  * Description: Verifies wait behavior on a single timeline syncobj
  *
  * SUBTEST: host-signal-ordered
- * Description: Verifies that the host signaling fences out of order on the timeline still increments the
+ * Description:
+ *   Verifies that the host signaling fences out of order on the timeline still increments the
  *   timeline monotonically and that waits work properly.
  *
  * SUBTEST: host-signal-points
- * Description: Verifies that as we signal points from the host, the syncobj timeline value increments and
+ * Description:
+ *   Verifies that as we signal points from the host, the syncobj timeline value increments and
  *   that waits for submits/signals works properly.
  *
  * SUBTEST: invalid-multi-wait-all-available-unsubmitted
@@ -176,7 +184,8 @@
  * Description: Verifies waiting on a list of timeline syncobjs
  *
  * SUBTEST: invalid-query-bad-pad
- * Description: Verify that querying a timeline syncobj with an invalid
+ * Description:
+ *   Verify that querying a timeline syncobj with an invalid
  *   drm_syncobj_timeline_array::flags field is rejected
  *
  * SUBTEST: invalid-query-illegal-handle
@@ -197,7 +206,8 @@
  * SUBTEST: invalid-signal-illegal-point
  *
  * SUBTEST: invalid-signal-one-illegal-handle
- * Description: Verify that an invalid syncobj handle in drm_syncobj_timeline_array is rejected for
+ * Description:
+ *   Verify that an invalid syncobj handle in drm_syncobj_timeline_array is rejected for
  *   signaling
  *
  * SUBTEST: invalid-signal-zero-handles
@@ -222,7 +232,8 @@
  * Description: Verifies that an invalid syncobj handle is rejected in drm_syncobj_transfer
  *
  * SUBTEST: invalid-transfer-non-existent-point
- * Description: Verifies that transfering a point from a syncobj timeline is to another point in the same
+ * Description:
+ *   Verifies that transfering a point from a syncobj timeline is to another point in the same
  *   timeline works
  *
  * SUBTEST: invalid-wait-bad-flags
@@ -322,7 +333,8 @@
  * Description: Verifies the signaling of a list of timeline syncobj
  *
  * SUBTEST: signal-point-0
- * Description: Verifies that signaling point 0 of a timline syncobj works with both timeline & legacy wait
+ * Description:
+ *   Verifies that signaling point 0 of a timline syncobj works with both timeline & legacy wait
  *   operations
  *
  * SUBTEST: single-wait-all-available-signaled
@@ -362,18 +374,21 @@
  * Description: Verifies wait behavior on a single timeline syncobj
  *
  * SUBTEST: transfer-timeline-point
- * Description: Verifies that transfering a point from a syncobj timeline is to another point in the same
+ * Description:
+ *   Verifies that transfering a point from a syncobj timeline is to another point in the same
  *   timeline works for signal/wait operations
  *
  * SUBTEST: wait-all-complex
- * Description: Verifies timeline syncobj at different signal/operations stages & between different
+ * Description:
+ *   Verifies timeline syncobj at different signal/operations stages & between different
  *   threads.
  *
  * SUBTEST: wait-all-delayed-signal
  * Description: Verifies wait behavior on a timeline syncobj with a delayed signal from a different thread
  *
  * SUBTEST: wait-all-for-submit-complex
- * Description: Verifies timeline syncobj at different signal/operations stages & between different
+ * Description:
+ *   Verifies timeline syncobj at different signal/operations stages & between different
  *   threads.
  *
  * SUBTEST: wait-all-for-submit-delayed-submit
@@ -389,7 +404,8 @@
  * Description: Verifies waiting on a list of timeline syncobjs with different thread for wait/signal
  *
  * SUBTEST: wait-any-complex
- * Description: Verifies timeline syncobj at different signal/operations stages & between different
+ * Description:
+ *   Verifies timeline syncobj at different signal/operations stages & between different
  *   threads.
  *
  * SUBTEST: wait-any-interrupted
@@ -402,7 +418,8 @@
  * Description: Verifies wait behavior on a timeline syncobj with a delayed signal from a different thread
  *
  * SUBTEST: wait-for-submit-complex
- * Description: Verifies timeline syncobj at different signal/operations stages & between different
+ * Description:
+ *   Verifies timeline syncobj at different signal/operations stages & between different
  *   threads.
  *
  * SUBTEST: wait-for-submit-delayed-submit
diff --git a/tests/syncobj_wait.c b/tests/syncobj_wait.c
index 930096f6d10e..f5d4bae07701 100644
--- a/tests/syncobj_wait.c
+++ b/tests/syncobj_wait.c
@@ -32,147 +32,287 @@
 #include "drm.h"
 /**
  * TEST: syncobj wait
+ * Category: Infrastructure
  * Description: Tests for the drm sync object wait API
  * Feature: synchronization
  * Run type: FULL
+ * Test category: GEM_Legacy
  *
  * SUBTEST: invalid-multi-wait-all-unsubmitted
+ * Functionality: semaphore
+ * Sub-category: DRM
  *
  * SUBTEST: invalid-multi-wait-all-unsubmitted-signaled
+ * Functionality: semaphore
+ * Sub-category: DRM
  *
  * SUBTEST: invalid-multi-wait-all-unsubmitted-submitted
+ * Functionality: semaphore
+ * Sub-category: DRM
  *
  * SUBTEST: invalid-multi-wait-all-unsubmitted-submitted-signaled
+ * Functionality: semaphore
+ * Sub-category: DRM
  *
  * SUBTEST: invalid-multi-wait-unsubmitted
+ * Functionality: semaphore
+ * Sub-category: DRM
  *
  * SUBTEST: invalid-multi-wait-unsubmitted-signaled
+ * Functionality: semaphore
+ * Sub-category: DRM
  *
  * SUBTEST: invalid-multi-wait-unsubmitted-submitted
+ * Functionality: semaphore
+ * Sub-category: DRM
  *
  * SUBTEST: invalid-multi-wait-unsubmitted-submitted-signaled
+ * Functionality: semaphore
+ * Sub-category: DRM
  *
  * SUBTEST: invalid-reset-bad-pad
+ * Functionality: semaphore
+ * Sub-category: DRM
  *
  * SUBTEST: invalid-reset-illegal-handle
+ * Functionality: semaphore
+ * Sub-category: DRM
  *
  * SUBTEST: invalid-reset-one-illegal-handle
+ * Functionality: semaphore
+ * Sub-category: DRM
  *
  * SUBTEST: invalid-reset-zero-handles
+ * Functionality: semaphore
+ * Sub-category: DRM
  *
  * SUBTEST: invalid-signal-bad-pad
+ * Functionality: semaphore
+ * Sub-category: DRM
  *
  * SUBTEST: invalid-signal-illegal-handle
+ * Functionality: semaphore
+ * Sub-category: DRM
  *
  * SUBTEST: invalid-signal-one-illegal-handle
+ * Functionality: semaphore
+ * Sub-category: DRM
  *
  * SUBTEST: invalid-signal-zero-handles
+ * Functionality: semaphore
+ * Sub-category: DRM
  *
  * SUBTEST: invalid-single-wait-all-unsubmitted
+ * Functionality: semaphore
+ * Sub-category: DRM
  *
  * SUBTEST: invalid-single-wait-unsubmitted
+ * Functionality: semaphore
+ * Sub-category: DRM
  *
  * SUBTEST: invalid-wait-bad-flags
+ * Functionality: semaphore
+ * Sub-category: DRM
  *
  * SUBTEST: invalid-wait-illegal-handle
+ * Functionality: semaphore
+ * Sub-category: DRM
  *
  * SUBTEST: invalid-wait-zero-handles
+ * Functionality: semaphore
+ * Sub-category: DRM
  *
  * SUBTEST: multi-wait-all-for-submit-signaled
+ * Functionality: semaphore
+ * Sub-category: DRM
  *
  * SUBTEST: multi-wait-all-for-submit-submitted
+ * Functionality: semaphore
+ * Sub-category: DRM
  *
  * SUBTEST: multi-wait-all-for-submit-submitted-signaled
+ * Functionality: semaphore
+ * Sub-category: DRM
  *
  * SUBTEST: multi-wait-all-for-submit-unsubmitted
+ * Functionality: semaphore
+ * Sub-category: DRM
  *
  * SUBTEST: multi-wait-all-for-submit-unsubmitted-signaled
+ * Functionality: semaphore
+ * Sub-category: DRM
  *
  * SUBTEST: multi-wait-all-for-submit-unsubmitted-submitted
+ * Functionality: semaphore
+ * Sub-category: DRM
  *
  * SUBTEST: multi-wait-all-signaled
+ * Functionality: semaphore
+ * Sub-category: DRM
  *
  * SUBTEST: multi-wait-all-submitted
+ * Functionality: semaphore
+ * Sub-category: DRM
  *
  * SUBTEST: multi-wait-all-submitted-signaled
+ * Functionality: semaphore
+ * Sub-category: DRM
  *
  * SUBTEST: multi-wait-for-submit-signaled
+ * Functionality: semaphore
+ * Sub-category: DRM
  *
  * SUBTEST: multi-wait-for-submit-submitted
+ * Functionality: semaphore
+ * Sub-category: DRM
  *
  * SUBTEST: multi-wait-for-submit-submitted-signaled
+ * Functionality: semaphore
+ * Sub-category: DRM
  *
  * SUBTEST: multi-wait-for-submit-unsubmitted
+ * Functionality: semaphore
+ * Sub-category: DRM
  *
  * SUBTEST: multi-wait-for-submit-unsubmitted-signaled
+ * Functionality: semaphore
+ * Sub-category: DRM
  *
  * SUBTEST: multi-wait-for-submit-unsubmitted-submitted
+ * Functionality: semaphore
+ * Sub-category: DRM
  *
  * SUBTEST: multi-wait-for-submit-unsubmitted-submitted-signaled
+ * Functionality: semaphore
+ * Sub-category: DRM
  *
  * SUBTEST: multi-wait-signaled
+ * Functionality: semaphore
+ * Sub-category: DRM
  *
  * SUBTEST: multi-wait-submitted
+ * Functionality: semaphore
+ * Sub-category: DRM
  *
  * SUBTEST: multi-wait-submitted-signaled
+ * Functionality: semaphore
+ * Sub-category: DRM
  *
  * SUBTEST: reset-during-wait-for-submit
+ * Functionality: semaphore
+ * Sub-category: DRM
  *
  * SUBTEST: reset-multiple-signaled
+ * Functionality: semaphore
+ * Sub-category: DRM
  *
  * SUBTEST: reset-signaled
+ * Functionality: semaphore
+ * Sub-category: DRM
  *
  * SUBTEST: reset-unsignaled
+ * Functionality: semaphore
+ * Sub-category: DRM
  *
  * SUBTEST: signal
+ * Functionality: semaphore
+ * Sub-category: DRM
  *
  * SUBTEST: single-wait-all-for-submit-signaled
+ * Functionality: semaphore
+ * Sub-category: DRM
  *
  * SUBTEST: single-wait-all-for-submit-submitted
+ * Functionality: semaphore
+ * Sub-category: DRM
  *
  * SUBTEST: single-wait-all-for-submit-unsubmitted
+ * Functionality: semaphore
+ * Sub-category: DRM
  *
  * SUBTEST: single-wait-all-signaled
+ * Functionality: semaphore
+ * Sub-category: DRM
  *
  * SUBTEST: single-wait-all-submitted
+ * Functionality: semaphore
+ * Sub-category: DRM
  *
  * SUBTEST: single-wait-for-submit-signaled
+ * Functionality: semaphore
+ * Sub-category: DRM
  *
  * SUBTEST: single-wait-for-submit-submitted
+ * Functionality: semaphore
+ * Sub-category: DRM
  *
  * SUBTEST: single-wait-for-submit-unsubmitted
+ * Functionality: semaphore
+ * Sub-category: DRM
  *
  * SUBTEST: single-wait-signaled
+ * Functionality: semaphore
+ * Sub-category: DRM
  *
  * SUBTEST: single-wait-submitted
+ * Functionality: semaphore
+ * Sub-category: DRM
  *
  * SUBTEST: wait-all-complex
+ * Functionality: semaphore
+ * Sub-category: DRM
  *
  * SUBTEST: wait-all-delayed-signal
+ * Functionality: semaphore
+ * Sub-category: DRM
  *
  * SUBTEST: wait-all-for-submit-complex
+ * Functionality: semaphore
+ * Sub-category: DRM
  *
  * SUBTEST: wait-all-for-submit-delayed-submit
+ * Functionality: semaphore
+ * Sub-category: DRM
  *
  * SUBTEST: wait-all-for-submit-snapshot
+ * Functionality: semaphore
+ * Sub-category: DRM
  *
  * SUBTEST: wait-all-interrupted
+ * Functionality: semaphore
+ * Sub-category: DRM
  *
  * SUBTEST: wait-all-snapshot
+ * Functionality: semaphore
+ * Sub-category: DRM
  *
  * SUBTEST: wait-any-complex
+ * Functionality: semaphore
+ * Sub-category: DRM
  *
  * SUBTEST: wait-any-interrupted
+ * Functionality: semaphore
+ * Sub-category: DRM
  *
  * SUBTEST: wait-any-snapshot
+ * Functionality: semaphore
+ * Sub-category: DRM
  *
  * SUBTEST: wait-delayed-signal
+ * Functionality: semaphore
+ * Sub-category: DRM
  *
  * SUBTEST: wait-for-submit-complex
+ * Functionality: semaphore
+ * Sub-category: DRM
  *
  * SUBTEST: wait-for-submit-delayed-submit
+ * Functionality: semaphore
+ * Sub-category: DRM
  *
  * SUBTEST: wait-for-submit-snapshot
+ * Functionality: driver handler
+ * Sub-category: i915
  */
 
 IGT_TEST_DESCRIPTION("Tests for the drm sync object wait API");
diff --git a/tests/vgem_basic.c b/tests/vgem_basic.c
index 2a5f6242e995..91911d4260c9 100644
--- a/tests/vgem_basic.c
+++ b/tests/vgem_basic.c
@@ -33,86 +33,109 @@
 #include <dirent.h>
 /**
  * TEST: vgem basic
+ * Category: Infrastructure
  * Description: Basic sanity check of Virtual GEM module (vGEM).
+ * Sub-category: DRM
+ * Test category: GEM_Legacy
  *
  * SUBTEST: bad-fence
  * Description: Make sure a non-existent fence cannot be signaled.
  * Feature: vgem
+ * Functionality: mock device
  * Run type: FULL
  *
  * SUBTEST: bad-flag
  * Description: Make sure a fence cannot be attached and signaled with invalid flags.
  * Feature: vgem
+ * Functionality: mock device
  * Run type: FULL
  *
  * SUBTEST: bad-handle
  * Description: Make sure a fence cannot be attached to a invalid handle.
  * Feature: vgem
+ * Functionality: mock device
  * Run type: FULL
  *
  * SUBTEST: bad-pad
  * Description: Make sure a non-zero pad is rejected.
  * Feature: vgem
+ * Functionality: mock device
  * Run type: FULL
  *
  * SUBTEST: busy-fence
  * Description: Make sure a conflicting fence cannot be attached.
  * Feature: vgem
+ * Functionality: mock device
  * Run type: FULL
  *
  * SUBTEST: create
  * Description: Check the basic working of vgem_create ioctl.
  * Feature: vgem
+ * Functionality: mock device
  * Run type: BAT
  *
  * SUBTEST: debugfs
  * Description: Check the basic access to debugfs and also try to read entries in the directory.
  * Feature: vgem
+ * Functionality: mock device
  * Run type: BAT
  *
  * SUBTEST: dmabuf-export
  * Description: Check whether it can export/import the vgem handle using prime.
  * Feature: prime, vgem
+ * Functionality: mock device
  * Run type: BAT
  *
  * SUBTEST: dmabuf-fence
  * Description: Check the working of dma-buf fence interop.
  * Feature: prime, vgem
+ * Functionality: mock device
  * Run type: BAT
  *
  * SUBTEST: dmabuf-fence-before
  * Description: Attach a fence before exporting a vgem handle and check the working of fence.
  * Feature: prime, vgem
+ * Functionality: mock device
  * Run type: BAT
  *
  * SUBTEST: dmabuf-mmap
  * Description: Export the vgem handle along with RDWR capabilities using prime and check if it can be mmaped.
  * Feature: prime, vgem
+ * Functionality: mock device
  * Run type: BAT
  *
  * SUBTEST: mmap
  * Description: Create a vgem handle and check if it can be mmaped.
  * Feature: vgem
+ * Functionality: mock device
  * Run type: BAT
  *
  * SUBTEST: second-client
  * Description: Check whether it can open multiple clients.
  * Feature: vgem
+ * Functionality: mock device
  * Run type: BAT
  *
  * SUBTEST: setversion
  * Description: Check the working of SET_VERSION ioctl.
  * Feature: vgem
+ * Functionality: mock device
  * Run type: BAT
  *
  * SUBTEST: sysfs
- * Description: Check the basic access to sysfs and also try to read entries in the directory.
+ * Description:
+ *   Check the basic access to sysfs and also try to read entries in the directory.
+ *   Mock Device
  * Feature: vgem
+ * Functionality: rta basic
  * Run type: BAT
  *
  * SUBTEST: unload
- * Description: Basic test for handling of module unload.
+ * Description:
+ *   Basic test for handling of module unload.
+ *   Mock Device
  * Feature: vgem
+ * Functionality: driver handler
  * Run type: BAT
  */
 
diff --git a/tests/vgem_slow.c b/tests/vgem_slow.c
index d2a7effff115..e35728ed7c83 100644
--- a/tests/vgem_slow.c
+++ b/tests/vgem_slow.c
@@ -32,11 +32,16 @@
 #include <dirent.h>
 /**
  * TEST: vgem slow
+ * Category: Infrastructure
  * Description: Extended sanity check of Virtual GEM module (vGEM).
  * Feature: vgem
+ * Functionality: dma fence
  * Run type: FULL
+ * Sub-category: DRM
+ * Test category: EUDebug
  *
  * SUBTEST: nohang
+ * Description: dma fence SW validation
  */
 
 IGT_TEST_DESCRIPTION("Extended sanity check of Virtual GEM module (vGEM).");
-- 
2.40.1

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [igt-dev] ✓ Fi.CI.BAT: success for Better document i915 tests
  2023-05-05 12:46 [igt-dev] [PATCH i-g-t 0/4] Better document i915 tests Mauro Carvalho Chehab
                   ` (3 preceding siblings ...)
  2023-05-05 12:46 ` [igt-dev] [PATCH i-g-t 4/4] tests/i915: Enhance " Mauro Carvalho Chehab
@ 2023-05-05 13:39 ` Patchwork
  2023-05-06  3:06 ` [igt-dev] ✗ Fi.CI.IGT: failure " Patchwork
  5 siblings, 0 replies; 7+ messages in thread
From: Patchwork @ 2023-05-05 13:39 UTC (permalink / raw)
  To: Mauro Carvalho Chehab; +Cc: igt-dev

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

== Series Details ==

Series: Better document i915 tests
URL   : https://patchwork.freedesktop.org/series/117382/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_13112 -> IGTPW_8922
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8922/index.html

Participating hosts (40 -> 40)
------------------------------

  Additional (1): bat-mtlp-6 
  Missing    (1): fi-snb-2520m 

Known issues
------------

  Here are the changes found in IGTPW_8922 that come from known issues:

### IGT changes ###

#### Issues hit ####

  * igt@i915_selftest@live@reset:
    - bat-rpls-1:         [PASS][1] -> [ABORT][2] ([i915#4983] / [i915#7461] / [i915#8347] / [i915#8384])
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13112/bat-rpls-1/igt@i915_selftest@live@reset.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8922/bat-rpls-1/igt@i915_selftest@live@reset.html

  * igt@i915_suspend@basic-s3-without-i915:
    - bat-atsm-1:         NOTRUN -> [SKIP][3] ([i915#6645])
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8922/bat-atsm-1/igt@i915_suspend@basic-s3-without-i915.html

  * igt@kms_chamelium_hpd@common-hpd-after-suspend:
    - bat-atsm-1:         NOTRUN -> [SKIP][4] ([i915#6078])
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8922/bat-atsm-1/igt@kms_chamelium_hpd@common-hpd-after-suspend.html

  * igt@kms_pipe_crc_basic@suspend-read-crc:
    - bat-atsm-1:         NOTRUN -> [SKIP][5] ([i915#1836])
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8922/bat-atsm-1/igt@kms_pipe_crc_basic@suspend-read-crc.html

  
#### Possible fixes ####

  * igt@gem_exec_fence@basic-await@bcs0:
    - bat-rplp-1:         [FAIL][6] -> [PASS][7]
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13112/bat-rplp-1/igt@gem_exec_fence@basic-await@bcs0.html
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8922/bat-rplp-1/igt@gem_exec_fence@basic-await@bcs0.html

  * igt@i915_selftest@live@gt_heartbeat:
    - fi-kbl-soraka:      [DMESG-FAIL][8] ([i915#5334] / [i915#7872]) -> [PASS][9]
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13112/fi-kbl-soraka/igt@i915_selftest@live@gt_heartbeat.html
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8922/fi-kbl-soraka/igt@i915_selftest@live@gt_heartbeat.html
    - fi-kbl-guc:         [DMESG-FAIL][10] ([i915#5334] / [i915#7872]) -> [PASS][11]
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13112/fi-kbl-guc/igt@i915_selftest@live@gt_heartbeat.html
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8922/fi-kbl-guc/igt@i915_selftest@live@gt_heartbeat.html

  * igt@i915_selftest@live@hangcheck:
    - fi-hsw-4770:        [DMESG-WARN][12] -> [PASS][13]
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13112/fi-hsw-4770/igt@i915_selftest@live@hangcheck.html
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8922/fi-hsw-4770/igt@i915_selftest@live@hangcheck.html

  
  {name}: This element is suppressed. This means it is ignored when computing
          the status of the difference (SUCCESS, WARNING, or FAILURE).

  [fdo#109285]: https://bugs.freedesktop.org/show_bug.cgi?id=109285
  [i915#1072]: https://gitlab.freedesktop.org/drm/intel/issues/1072
  [i915#1836]: https://gitlab.freedesktop.org/drm/intel/issues/1836
  [i915#1845]: https://gitlab.freedesktop.org/drm/intel/issues/1845
  [i915#2582]: https://gitlab.freedesktop.org/drm/intel/issues/2582
  [i915#3546]: https://gitlab.freedesktop.org/drm/intel/issues/3546
  [i915#3595]: https://gitlab.freedesktop.org/drm/intel/issues/3595
  [i915#3637]: https://gitlab.freedesktop.org/drm/intel/issues/3637
  [i915#3708]: https://gitlab.freedesktop.org/drm/intel/issues/3708
  [i915#4077]: https://gitlab.freedesktop.org/drm/intel/issues/4077
  [i915#4078]: https://gitlab.freedesktop.org/drm/intel/issues/4078
  [i915#4079]: https://gitlab.freedesktop.org/drm/intel/issues/4079
  [i915#4083]: https://gitlab.freedesktop.org/drm/intel/issues/4083
  [i915#4212]: https://gitlab.freedesktop.org/drm/intel/issues/4212
  [i915#4342]: https://gitlab.freedesktop.org/drm/intel/issues/4342
  [i915#4579]: https://gitlab.freedesktop.org/drm/intel/issues/4579
  [i915#4613]: https://gitlab.freedesktop.org/drm/intel/issues/4613
  [i915#4983]: https://gitlab.freedesktop.org/drm/intel/issues/4983
  [i915#5190]: https://gitlab.freedesktop.org/drm/intel/issues/5190
  [i915#5274]: https://gitlab.freedesktop.org/drm/intel/issues/5274
  [i915#5334]: https://gitlab.freedesktop.org/drm/intel/issues/5334
  [i915#6078]: https://gitlab.freedesktop.org/drm/intel/issues/6078
  [i915#6621]: https://gitlab.freedesktop.org/drm/intel/issues/6621
  [i915#6645]: https://gitlab.freedesktop.org/drm/intel/issues/6645
  [i915#7456]: https://gitlab.freedesktop.org/drm/intel/issues/7456
  [i915#7461]: https://gitlab.freedesktop.org/drm/intel/issues/7461
  [i915#7828]: https://gitlab.freedesktop.org/drm/intel/issues/7828
  [i915#7872]: https://gitlab.freedesktop.org/drm/intel/issues/7872
  [i915#7920]: https://gitlab.freedesktop.org/drm/intel/issues/7920
  [i915#8347]: https://gitlab.freedesktop.org/drm/intel/issues/8347
  [i915#8368]: https://gitlab.freedesktop.org/drm/intel/issues/8368
  [i915#8384]: https://gitlab.freedesktop.org/drm/intel/issues/8384


Build changes
-------------

  * CI: CI-20190529 -> None
  * IGT: IGT_7279 -> IGTPW_8922

  CI-20190529: 20190529
  CI_DRM_13112: 90ecd907cd4b9c1fe1275a9da536e79e10ca85ec @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_8922: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8922/index.html
  IGT_7279: 3c22c8491f753d513892c479e9f4ab2f1336d5bb @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8922/index.html

[-- Attachment #2: Type: text/html, Size: 5222 bytes --]

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [igt-dev] ✗ Fi.CI.IGT: failure for Better document i915 tests
  2023-05-05 12:46 [igt-dev] [PATCH i-g-t 0/4] Better document i915 tests Mauro Carvalho Chehab
                   ` (4 preceding siblings ...)
  2023-05-05 13:39 ` [igt-dev] ✓ Fi.CI.BAT: success for Better document i915 tests Patchwork
@ 2023-05-06  3:06 ` Patchwork
  5 siblings, 0 replies; 7+ messages in thread
From: Patchwork @ 2023-05-06  3:06 UTC (permalink / raw)
  To: Mauro Carvalho Chehab; +Cc: igt-dev

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

== Series Details ==

Series: Better document i915 tests
URL   : https://patchwork.freedesktop.org/series/117382/
State : failure

== Summary ==

CI Bug Log - changes from CI_DRM_13112_full -> IGTPW_8922_full
====================================================

Summary
-------

  **FAILURE**

  Serious unknown changes coming with IGTPW_8922_full absolutely need to be
  verified manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in IGTPW_8922_full, please notify your bug team to allow them
  to document this new failure mode, which will reduce false positives in CI.

  External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8922/index.html

Participating hosts (7 -> 7)
------------------------------

  No changes in participating hosts

Possible new issues
-------------------

  Here are the unknown changes that may have been introduced in IGTPW_8922_full:

### IGT changes ###

#### Possible regressions ####

  * igt@kms_flip@flip-vs-suspend-interruptible@b-dp1:
    - shard-apl:          [PASS][1] -> [ABORT][2]
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13112/shard-apl1/igt@kms_flip@flip-vs-suspend-interruptible@b-dp1.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8922/shard-apl2/igt@kms_flip@flip-vs-suspend-interruptible@b-dp1.html

  
#### Suppressed ####

  The following results come from untrusted machines, tests, or statuses.
  They do not affect the overall result.

  * igt@kms_dsc@dsc-with-output-formats:
    - {shard-rkl}:        NOTRUN -> [SKIP][3]
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8922/shard-rkl-7/igt@kms_dsc@dsc-with-output-formats.html
    - {shard-tglu}:       NOTRUN -> [SKIP][4]
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8922/shard-tglu-9/igt@kms_dsc@dsc-with-output-formats.html

  
Known issues
------------

  Here are the changes found in IGTPW_8922_full that come from known issues:

### IGT changes ###

#### Issues hit ####

  * igt@gem_exec_capture@capture-invisible@smem0:
    - shard-apl:          NOTRUN -> [SKIP][5] ([fdo#109271] / [i915#6334])
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8922/shard-apl6/igt@gem_exec_capture@capture-invisible@smem0.html

  * igt@gem_exec_fair@basic-pace@vcs0:
    - shard-glk:          [PASS][6] -> [FAIL][7] ([i915#2842]) +1 similar issue
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13112/shard-glk7/igt@gem_exec_fair@basic-pace@vcs0.html
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8922/shard-glk9/igt@gem_exec_fair@basic-pace@vcs0.html

  * igt@gem_lmem_swapping@heavy-verify-multi-ccs:
    - shard-apl:          NOTRUN -> [SKIP][8] ([fdo#109271] / [i915#4613])
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8922/shard-apl6/igt@gem_lmem_swapping@heavy-verify-multi-ccs.html

  * igt@kms_async_flips@alternate-sync-async-flip@pipe-a-hdmi-a-1:
    - shard-glk:          [PASS][9] -> [FAIL][10] ([i915#2521])
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13112/shard-glk7/igt@kms_async_flips@alternate-sync-async-flip@pipe-a-hdmi-a-1.html
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8922/shard-glk3/igt@kms_async_flips@alternate-sync-async-flip@pipe-a-hdmi-a-1.html

  * igt@kms_ccs@pipe-b-crc-sprite-planes-basic-y_tiled_gen12_rc_ccs_cc:
    - shard-apl:          NOTRUN -> [SKIP][11] ([fdo#109271] / [i915#3886]) +1 similar issue
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8922/shard-apl2/igt@kms_ccs@pipe-b-crc-sprite-planes-basic-y_tiled_gen12_rc_ccs_cc.html

  * igt@kms_ccs@pipe-b-random-ccs-data-4_tiled_dg2_rc_ccs:
    - shard-apl:          NOTRUN -> [SKIP][12] ([fdo#109271]) +29 similar issues
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8922/shard-apl2/igt@kms_ccs@pipe-b-random-ccs-data-4_tiled_dg2_rc_ccs.html

  * igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size:
    - shard-apl:          [PASS][13] -> [FAIL][14] ([i915#2346])
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13112/shard-apl2/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size.html
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8922/shard-apl3/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size.html
    - shard-glk:          [PASS][15] -> [FAIL][16] ([i915#2346])
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13112/shard-glk9/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size.html
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8922/shard-glk1/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size.html

  * igt@kms_plane_scaling@planes-downscale-factor-0-5-unity-scaling@pipe-b-vga-1:
    - shard-snb:          NOTRUN -> [SKIP][17] ([fdo#109271]) +95 similar issues
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8922/shard-snb5/igt@kms_plane_scaling@planes-downscale-factor-0-5-unity-scaling@pipe-b-vga-1.html

  * igt@kms_psr2_su@page_flip-nv12:
    - shard-apl:          NOTRUN -> [SKIP][18] ([fdo#109271] / [i915#658])
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8922/shard-apl1/igt@kms_psr2_su@page_flip-nv12.html

  * igt@perf@stress-open-close@0-rcs0:
    - shard-glk:          [PASS][19] -> [ABORT][20] ([i915#5213] / [i915#7941])
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13112/shard-glk7/igt@perf@stress-open-close@0-rcs0.html
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8922/shard-glk7/igt@perf@stress-open-close@0-rcs0.html

  
#### Possible fixes ####

  * igt@drm_fdinfo@most-busy-check-all@rcs0:
    - {shard-rkl}:        [FAIL][21] ([i915#7742]) -> [PASS][22]
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13112/shard-rkl-1/igt@drm_fdinfo@most-busy-check-all@rcs0.html
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8922/shard-rkl-6/igt@drm_fdinfo@most-busy-check-all@rcs0.html

  * igt@gem_barrier_race@remote-request@rcs0:
    - {shard-tglu}:       [ABORT][23] ([i915#8211] / [i915#8234]) -> [PASS][24]
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13112/shard-tglu-4/igt@gem_barrier_race@remote-request@rcs0.html
   [24]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8922/shard-tglu-4/igt@gem_barrier_race@remote-request@rcs0.html

  * igt@gem_ctx_freq@sysfs:
    - {shard-dg1}:        [FAIL][25] ([i915#6786]) -> [PASS][26]
   [25]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13112/shard-dg1-16/igt@gem_ctx_freq@sysfs.html
   [26]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8922/shard-dg1-14/igt@gem_ctx_freq@sysfs.html

  * igt@gem_exec_fair@basic-none@bcs0:
    - {shard-rkl}:        [FAIL][27] ([i915#2842]) -> [PASS][28]
   [27]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13112/shard-rkl-2/igt@gem_exec_fair@basic-none@bcs0.html
   [28]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8922/shard-rkl-2/igt@gem_exec_fair@basic-none@bcs0.html

  * igt@gem_exec_fair@basic-pace-solo@rcs0:
    - shard-apl:          [FAIL][29] ([i915#2842]) -> [PASS][30]
   [29]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13112/shard-apl1/igt@gem_exec_fair@basic-pace-solo@rcs0.html
   [30]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8922/shard-apl4/igt@gem_exec_fair@basic-pace-solo@rcs0.html

  * igt@gen9_exec_parse@allowed-single:
    - shard-apl:          [ABORT][31] ([i915#5566]) -> [PASS][32]
   [31]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13112/shard-apl4/igt@gen9_exec_parse@allowed-single.html
   [32]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8922/shard-apl6/igt@gen9_exec_parse@allowed-single.html

  * igt@i915_pm_dc@dc9-dpms:
    - {shard-tglu}:       [SKIP][33] ([i915#4281]) -> [PASS][34]
   [33]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13112/shard-tglu-7/igt@i915_pm_dc@dc9-dpms.html
   [34]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8922/shard-tglu-10/igt@i915_pm_dc@dc9-dpms.html

  * igt@i915_pm_rc6_residency@rc6-idle@rcs0:
    - {shard-dg1}:        [FAIL][35] ([i915#3591]) -> [PASS][36]
   [35]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13112/shard-dg1-15/igt@i915_pm_rc6_residency@rc6-idle@rcs0.html
   [36]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8922/shard-dg1-15/igt@i915_pm_rc6_residency@rc6-idle@rcs0.html

  * igt@i915_pm_rpm@dpms-mode-unset-lpsp:
    - {shard-rkl}:        [SKIP][37] ([i915#1397]) -> [PASS][38] +3 similar issues
   [37]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13112/shard-rkl-2/igt@i915_pm_rpm@dpms-mode-unset-lpsp.html
   [38]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8922/shard-rkl-7/igt@i915_pm_rpm@dpms-mode-unset-lpsp.html

  * igt@i915_selftest@live@sanitycheck:
    - shard-snb:          [ABORT][39] ([i915#4528]) -> [PASS][40]
   [39]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13112/shard-snb2/igt@i915_selftest@live@sanitycheck.html
   [40]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8922/shard-snb1/igt@i915_selftest@live@sanitycheck.html

  * igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions:
    - shard-glk:          [FAIL][41] ([i915#2346]) -> [PASS][42]
   [41]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13112/shard-glk7/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions.html
   [42]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8922/shard-glk5/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions.html
    - shard-apl:          [FAIL][43] ([i915#2346]) -> [PASS][44]
   [43]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13112/shard-apl4/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions.html
   [44]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8922/shard-apl3/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions.html

  * igt@kms_fbcon_fbt@fbc-suspend:
    - {shard-tglu}:       [FAIL][45] ([i915#4767]) -> [PASS][46]
   [45]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13112/shard-tglu-10/igt@kms_fbcon_fbt@fbc-suspend.html
   [46]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8922/shard-tglu-8/igt@kms_fbcon_fbt@fbc-suspend.html

  * igt@kms_flip@flip-vs-expired-vblank-interruptible@a-hdmi-a1:
    - shard-glk:          [FAIL][47] ([i915#79]) -> [PASS][48]
   [47]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13112/shard-glk9/igt@kms_flip@flip-vs-expired-vblank-interruptible@a-hdmi-a1.html
   [48]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8922/shard-glk2/igt@kms_flip@flip-vs-expired-vblank-interruptible@a-hdmi-a1.html

  * igt@kms_hdr@bpc-switch-suspend@pipe-a-dp-1:
    - shard-apl:          [FAIL][49] ([i915#1188]) -> [PASS][50]
   [49]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13112/shard-apl1/igt@kms_hdr@bpc-switch-suspend@pipe-a-dp-1.html
   [50]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8922/shard-apl7/igt@kms_hdr@bpc-switch-suspend@pipe-a-dp-1.html

  * igt@kms_plane@pixel-format-source-clamping@pipe-a-planes:
    - shard-glk:          [DMESG-FAIL][51] ([i915#118]) -> [PASS][52]
   [51]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13112/shard-glk2/igt@kms_plane@pixel-format-source-clamping@pipe-a-planes.html
   [52]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8922/shard-glk3/igt@kms_plane@pixel-format-source-clamping@pipe-a-planes.html

  
  {name}: This element is suppressed. This means it is ignored when computing
          the status of the difference (SUCCESS, WARNING, or FAILURE).

  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [fdo#109274]: https://bugs.freedesktop.org/show_bug.cgi?id=109274
  [fdo#109279]: https://bugs.freedesktop.org/show_bug.cgi?id=109279
  [fdo#109280]: https://bugs.freedesktop.org/show_bug.cgi?id=109280
  [fdo#109289]: https://bugs.freedesktop.org/show_bug.cgi?id=109289
  [fdo#109300]: https://bugs.freedesktop.org/show_bug.cgi?id=109300
  [fdo#109315]: https://bugs.freedesktop.org/show_bug.cgi?id=109315
  [fdo#110189]: https://bugs.freedesktop.org/show_bug.cgi?id=110189
  [fdo#110723]: https://bugs.freedesktop.org/show_bug.cgi?id=110723
  [fdo#111614]: https://bugs.freedesktop.org/show_bug.cgi?id=111614
  [fdo#111615]: https://bugs.freedesktop.org/show_bug.cgi?id=111615
  [fdo#111825]: https://bugs.freedesktop.org/show_bug.cgi?id=111825
  [i915#1072]: https://gitlab.freedesktop.org/drm/intel/issues/1072
  [i915#118]: https://gitlab.freedesktop.org/drm/intel/issues/118
  [i915#1188]: https://gitlab.freedesktop.org/drm/intel/issues/1188
  [i915#1257]: https://gitlab.freedesktop.org/drm/intel/issues/1257
  [i915#1397]: https://gitlab.freedesktop.org/drm/intel/issues/1397
  [i915#1825]: https://gitlab.freedesktop.org/drm/intel/issues/1825
  [i915#2190]: https://gitlab.freedesktop.org/drm/intel/issues/2190
  [i915#2346]: https://gitlab.freedesktop.org/drm/intel/issues/2346
  [i915#2433]: https://gitlab.freedesktop.org/drm/intel/issues/2433
  [i915#2435]: https://gitlab.freedesktop.org/drm/intel/issues/2435
  [i915#2521]: https://gitlab.freedesktop.org/drm/intel/issues/2521
  [i915#2527]: https://gitlab.freedesktop.org/drm/intel/issues/2527
  [i915#2575]: https://gitlab.freedesktop.org/drm/intel/issues/2575
  [i915#2587]: https://gitlab.freedesktop.org/drm/intel/issues/2587
  [i915#2672]: https://gitlab.freedesktop.org/drm/intel/issues/2672
  [i915#2842]: https://gitlab.freedesktop.org/drm/intel/issues/2842
  [i915#2856]: https://gitlab.freedesktop.org/drm/intel/issues/2856
  [i915#3023]: https://gitlab.freedesktop.org/drm/intel/issues/3023
  [i915#3281]: https://gitlab.freedesktop.org/drm/intel/issues/3281
  [i915#3282]: https://gitlab.freedesktop.org/drm/intel/issues/3282
  [i915#3297]: https://gitlab.freedesktop.org/drm/intel/issues/3297
  [i915#3359]: https://gitlab.freedesktop.org/drm/intel/issues/3359
  [i915#3458]: https://gitlab.freedesktop.org/drm/intel/issues/3458
  [i915#3539]: https://gitlab.freedesktop.org/drm/intel/issues/3539
  [i915#3555]: https://gitlab.freedesktop.org/drm/intel/issues/3555
  [i915#3591]: https://gitlab.freedesktop.org/drm/intel/issues/3591
  [i915#3638]: https://gitlab.freedesktop.org/drm/intel/issues/3638
  [i915#3689]: https://gitlab.freedesktop.org/drm/intel/issues/3689
  [i915#3734]: https://gitlab.freedesktop.org/drm/intel/issues/3734
  [i915#3742]: https://gitlab.freedesktop.org/drm/intel/issues/3742
  [i915#3840]: https://gitlab.freedesktop.org/drm/intel/issues/3840
  [i915#3886]: https://gitlab.freedesktop.org/drm/intel/issues/3886
  [i915#3936]: https://gitlab.freedesktop.org/drm/intel/issues/3936
  [i915#3955]: https://gitlab.freedesktop.org/drm/intel/issues/3955
  [i915#404]: https://gitlab.freedesktop.org/drm/intel/issues/404
  [i915#4070]: https://gitlab.freedesktop.org/drm/intel/issues/4070
  [i915#4077]: https://gitlab.freedesktop.org/drm/intel/issues/4077
  [i915#4078]: https://gitlab.freedesktop.org/drm/intel/issues/4078
  [i915#4103]: https://gitlab.freedesktop.org/drm/intel/issues/4103
  [i915#4270]: https://gitlab.freedesktop.org/drm/intel/issues/4270
  [i915#4281]: https://gitlab.freedesktop.org/drm/intel/issues/4281
  [i915#4525]: https://gitlab.freedesktop.org/drm/intel/issues/4525
  [i915#4528]: https://gitlab.freedesktop.org/drm/intel/issues/4528
  [i915#4538]: https://gitlab.freedesktop.org/drm/intel/issues/4538
  [i915#4579]: https://gitlab.freedesktop.org/drm/intel/issues/4579
  [i915#4613]: https://gitlab.freedesktop.org/drm/intel/issues/4613
  [i915#4767]: https://gitlab.freedesktop.org/drm/intel/issues/4767
  [i915#4833]: https://gitlab.freedesktop.org/drm/intel/issues/4833
  [i915#4885]: https://gitlab.freedesktop.org/drm/intel/issues/4885
  [i915#4958]: https://gitlab.freedesktop.org/drm/intel/issues/4958
  [i915#5176]: https://gitlab.freedesktop.org/drm/intel/issues/5176
  [i915#5213]: https://gitlab.freedesktop.org/drm/intel/issues/5213
  [i915#5235]: https://gitlab.freedesktop.org/drm/intel/issues/5235
  [i915#5286]: https://gitlab.freedesktop.org/drm/intel/issues/5286
  [i915#533]: https://gitlab.freedesktop.org/drm/intel/issues/533
  [i915#5354]: https://gitlab.freedesktop.org/drm/intel/issues/5354
  [i915#5566]: https://gitlab.freedesktop.org/drm/intel/issues/5566
  [i915#6095]: https://gitlab.freedesktop.org/drm/intel/issues/6095
  [i915#6268]: https://gitlab.freedesktop.org/drm/intel/issues/6268
  [i915#6334]: https://gitlab.freedesktop.org/drm/intel/issues/6334
  [i915#6433]: https://gitlab.freedesktop.org/drm/intel/issues/6433
  [i915#658]: https://gitlab.freedesktop.org/drm/intel/issues/658
  [i915#6768]: https://gitlab.freedesktop.org/drm/intel/issues/6768
  [i915#6786]: https://gitlab.freedesktop.org/drm/intel/issues/6786
  [i915#7116]: https://gitlab.freedesktop.org/drm/intel/issues/7116
  [i915#7711]: https://gitlab.freedesktop.org/drm/intel/issues/7711
  [i915#7742]: https://gitlab.freedesktop.org/drm/intel/issues/7742
  [i915#7828]: https://gitlab.freedesktop.org/drm/intel/issues/7828
  [i915#79]: https://gitlab.freedesktop.org/drm/intel/issues/79
  [i915#7941]: https://gitlab.freedesktop.org/drm/intel/issues/7941
  [i915#8011]: https://gitlab.freedesktop.org/drm/intel/issues/8011
  [i915#8211]: https://gitlab.freedesktop.org/drm/intel/issues/8211
  [i915#8224]: https://gitlab.freedesktop.org/drm/intel/issues/8224
  [i915#8234]: https://gitlab.freedesktop.org/drm/intel/issues/8234
  [i915#8399]: https://gitlab.freedesktop.org/drm/intel/issues/8399
  [i915#8414]: https://gitlab.freedesktop.org/drm/intel/issues/8414


Build changes
-------------

  * CI: CI-20190529 -> None
  * IGT: IGT_7279 -> IGTPW_8922
  * Piglit: piglit_4509 -> None

  CI-20190529: 20190529
  CI_DRM_13112: 90ecd907cd4b9c1fe1275a9da536e79e10ca85ec @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_8922: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8922/index.html
  IGT_7279: 3c22c8491f753d513892c479e9f4ab2f1336d5bb @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
  piglit_4509: fdc5a4ca11124ab8413c7988896eec4c97336694 @ git://anongit.freedesktop.org/piglit

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8922/index.html

[-- Attachment #2: Type: text/html, Size: 15489 bytes --]

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2023-05-06  3:06 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-05-05 12:46 [igt-dev] [PATCH i-g-t 0/4] Better document i915 tests Mauro Carvalho Chehab
2023-05-05 12:46 ` [igt-dev] [PATCH i-g-t 1/4] scripts/test_list.py: add support to exclude files Mauro Carvalho Chehab
2023-05-05 12:46 ` [igt-dev] [PATCH i-g-t 2/4] testplan/meson.build: add i915 support for a testplan document Mauro Carvalho Chehab
2023-05-05 12:46 ` [igt-dev] [PATCH i-g-t 3/4] tests/i915: Improve test documentation Mauro Carvalho Chehab
2023-05-05 12:46 ` [igt-dev] [PATCH i-g-t 4/4] tests/i915: Enhance " Mauro Carvalho Chehab
2023-05-05 13:39 ` [igt-dev] ✓ Fi.CI.BAT: success for Better document i915 tests Patchwork
2023-05-06  3:06 ` [igt-dev] ✗ Fi.CI.IGT: failure " Patchwork

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.