Intel-XE Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH RFC] drm/xe/hwmon: refresh B70 temperature inputs after GT idle
@ 2026-09-26 10:21 Bata Roland Krisztián via B4 Relay
  2026-09-26 15:19 ` ✓ CI.KUnit: success for " Patchwork
                   ` (3 more replies)
  0 siblings, 4 replies; 6+ messages in thread
From: Bata Roland Krisztián via B4 Relay @ 2026-09-26 10:21 UTC (permalink / raw)
  To: intel-xe
  Cc: batarolandkrisztian, karthik.poosa, matthew.brost, raag.jadav,
	rodrigo.vivi, thomas.hellstrom

From: Bata Roland Krisztián <batarolandkrisztian@gmail.com>

Two Arc Pro B70 devices (8086:e223) retain their package temperature
after compute workloads despite both GTs returning to C6. A device
runtime PM reference does not refresh the sample while power/control
is already on.

With GuC 70.72.1 on Fedora kernel 7.1.10, a 60-second OpenCL workload
followed by 45 seconds of idle left package temperature at 55 C on both
cards. Acquiring all GT forcewake references still returned 55 C in
the first read, about 57 us after open completed. At about 1053 us the
reported value became 34 C on both cards. A brief GT-only pulse from
reading cur_freq did not refresh the package value.

As an RFC, acquire forcewake references for the temperature input read,
allow time for a new sample, then release the references on both the
success and partial-acquisition failure paths. Limit the experiment to
the measured PCI ID and leave labels, limits and other hwmon types on
their existing paths.

The 2 ms interval and use of all domains are empirical, not a hardware
specification guarantee. This needs review of the sensor conversion
time, minimum wake domains and alternatives such as a PCODE refresh or
readiness indication before it can become a production fix.

Compile-tested xe_hwmon.o on current drm-tip with W=1 and Xe display both
disabled and enabled. The wake/wait/read sequence was measured through
debugfs on two B70s; the modified kernel has not been boot-tested.

Link: https://gitlab.freedesktop.org/drm/xe/kernel/-/work_items/7805
Assisted-by: OpenAI:gpt-6-astra
Signed-off-by: Bata Roland Krisztián <batarolandkrisztian@gmail.com>
---
RFC: proposed direction for issue 7805, not a claim of a production-ready fix.

Hi Xe maintainers,

I am following up on my B70 stale-temperature report with a smaller
reproduction, timing measurements, and a prototype read-side change.

Questions before turning this into v1:

1. Is there a PCODE operation or freshness/conversion-ready indication that
   should be used instead of a fixed settling interval? The first MMIO read
   after successful forcewake still returned the old temperature.
2. Which wake domains are actually required? A GT0 hw_engines read, which
   holds all domains for that GT while dumping registers, also refreshed
   package/mctrl/PCIe readings. The conservative prototype mirrors the
   device forcewake_all sequence used for the controlled timing experiment.
3. Should a refresh cover/cache several temperature channels together? The
   prototype wakes per input read. The power measurements below are for one
   batch per device every two seconds, not for reading every hwmon channel
   at high frequency and not measurements of this compiled patch.
4. Is this a known firmware issue with a preferred fix? Should the eventual
   driver handling apply to other Battlemage IDs? This RFC only opts in the
   tested 8086:e223 devices.

Hardware and reproduction
-------------------------
Two Intel Arc Pro B70s, PCI ID 8086:e223, on an ASRock X870E Taichi / Ryzen
5 9600X. Fedora CoreOS 44.20260829.3.1, kernel 7.1.10-200.fc44.x86_64,
GuC 70.72.1, HuC 8.2.10. power/control=on was kept throughout; it is an
existing workaround for noisy PCI runtime suspend/resume cycling.

A bounded 60-second OpenCL workload used a private 1 MiB output buffer per
device, followed by 45 seconds without GPU submissions. Both GTs reached
C6, actual frequency was zero, and idle residency continued advancing.
Package readings stayed at 55 C on both cards. A short GT0 cur_freq read
(itself a GT-only forcewake pulse) did not correct the package reading.

Opening forcewake_all, then reading temperatures while holding the fd:

                    B70 A                  B70 B
before              55 C                   55 C
first read          55 C at 57.769 us       55 C at 56.119 us
first correction    34 C at 1053.529 us     34 C at 1053.039 us

Times are measured from completion of open, not the initial wake request.
The 2, 5, 10 ms and later samples were also refreshed. These two observations
are not a guaranteed maximum sensor-conversion latency.

In a separate 30-second observation / short-pulse / observation sequence,
16 two-millisecond holds at two-second intervals returned approximately
24 C and 22-23 C. The complete open/wait/read/close scope was about 3.06 ms
and 3.07 ms median. GT idle residency during the pulse phase exceeded 99.7%.

Energy-counter-derived card power, W:
                    before       pulses       after
B70 A               5.30         5.51         4.87
B70 B               4.31         4.48         4.39

These are short observations with normal background system activity; they
are not a general power-regression benchmark. Holding all domains for two
seconds during the timing experiment cost about 81 W per card at the
retained 2800 MHz request and caused self-heating. A permanent forcewake is
therefore unsuitable. References were released and both GTs returned to C6
after every completed experiment. No reset, rebind or PM-policy change was
used for these measurements.

Source/build checks
-------------------
The BMG temperature read path is unchanged between v7.1.10, v7.2.5 and the
current drm-tip version examined here. The newer Fedora 20260910 firmware
collection contains byte-identical BMG GuC/HuC files to 20260810.

Base: drm-tip 666d2f09d9045fc8f72cc1f71528a04acbaf5229
      2026-09-26 04:44:20 UTC integration manifest
Checked: checkpatch --strict, zero errors/warnings/checks for the patch;
         xe_hwmon.o compile with W=1, Xe display disabled and enabled.
Not yet tested: booted patched kernel, IGT/CI, suspend/resume, hardware
               acquisition-error paths, other GPU variants, high-rate
               multi-channel reads.

The attached change is deliberately an RFC. I would appreciate guidance on
the correct hardware handshake and domain scope, and can test a revised
approach on these two cards.

A later smoke test of the standalone reproducer below also changed a
previously low reading upward (26 to 44 C on one card). I therefore do not
use an unchanged/high-value heuristic to declare a value stale, or replace
readings with an inferred idle temperature. The observations concern the
reported values; independent physical thermometry was not performed.

Standalone reproduction aid
---------------------------
After a GPU workload and idle interval, save this as repro.py and run:
  sudo python3 repro.py 0000:03:00.0 0000:08:00.0
Use your cards' PCI addresses. This script itself starts no workload.

#!/usr/bin/env python3
# SPDX-License-Identifier: MIT
"""Measure B70 temperature refresh after forcewake; run after workload/idle.

No workload, PM-policy/frequency write, reset or driver rebind is performed.
Only the requested 8086:e223 Xe devices are read. Each wake lasts about 10 ms;
readings are printed after the descriptor has been closed.
"""
import argparse
import json
import os
from pathlib import Path
import re
import signal
import time


def text(path):
    return path.read_text().strip()


def card(bdf, debugfs):
    if not re.fullmatch(r"[0-9a-f]{4}:[0-9a-f]{2}:[0-9a-f]{2}\.[0-7]", bdf):
        raise ValueError("Expected a full lowercase PCI address")
    pci = Path("/sys/bus/pci/devices") / bdf
    if (text(pci / "vendor"), text(pci / "device")) != ("0x8086", "0xe223"):
        raise ValueError(f"Not the tested B70 PCI ID: {bdf}")
    if (pci / "driver").resolve() != Path("/sys/bus/pci/drivers/xe"):
        raise ValueError(f"Not bound to xe: {bdf}")
    hw = list((pci / "hwmon").glob("hwmon*"))
    if len(hw) != 1 or text(hw[0] / "name") != "xe":
        raise ValueError(f"Ambiguous hwmon: {bdf}")
    labels = {text(p): p.with_name(p.name.replace("_label", "_input"))
              for p in hw[0].glob("temp*_label")}
    if "pkg" not in labels:
        raise ValueError(f"Missing package sensor: {bdf}")
    paths = {label: labels[label] for label in ("pkg", "vram", "mctrl", "pcie")
             if label in labels}
    return bdf, pci, paths, debugfs / bdf / "forcewake_all"


def snapshot(pci, paths):
    start = time.monotonic_ns()
    values = {label: int(text(path)) for label, path in paths.items()}
    return {"temp_read_start_ns": start, "temp_read_end_ns": time.monotonic_ns(),
            "millidegrees": values,
            "gt_idle": [text(pci / "tile0" / f"gt{n}" / "gtidle/idle_status")
                        for n in (0, 1)]}


def interrupted(signum, _frame):
    raise SystemExit(f"Interrupted by signal {signum}; descriptors will close")


def main():
    parser = argparse.ArgumentParser(description=__doc__)
    parser.add_argument("--debugfs-root", type=Path, default=Path("/sys/kernel/debug/dri"))
    parser.add_argument("devices", nargs="+")
    args = parser.parse_args()
    if os.geteuid() != 0:
        parser.error("Run with sudo for debugfs access")
    if len(args.devices) > 8 or len(set(args.devices)) != len(args.devices):
        parser.error("Select at most eight distinct devices")
    cards = [card(bdf, args.debugfs_root) for bdf in args.devices]
    signal.signal(signal.SIGTERM, interrupted)
    signal.signal(signal.SIGALRM, interrupted)
    signal.alarm(30)
    for bdf, pci, paths, wake in cards:
        before = snapshot(pci, paths)
        if before["gt_idle"] != ["gt-c6", "gt-c6"]:
            print(json.dumps({"bdf": bdf, "skipped": "GT is active", "before": before}))
            continue
        samples = []
        opened_at = time.monotonic_ns()
        with wake.open("rb"):
            open_returned_at = time.monotonic_ns()
            for target_us in (0, 1000, 2000, 5000, 10000):
                remaining_ns = open_returned_at + target_us * 1000 - time.monotonic_ns()
                if remaining_ns > 0:
                    time.sleep(remaining_ns / 1e9)
                value = snapshot(pci, paths)
                samples.append({"target_us": target_us,
                                "since_open_us": (value["temp_read_start_ns"] - open_returned_at) / 1000,
                                **value})
        closed_at = time.monotonic_ns()
        time.sleep(1)
        print(json.dumps({"bdf": bdf, "kernel": os.uname().release,
                          "power_control": text(pci / "power/control"),
                          "before": before, "samples": samples,
                          "open_us": (open_returned_at - opened_at) / 1000,
                          "total_scope_us": (closed_at - opened_at) / 1000,
                          "after_close": snapshot(pci, paths)}), flush=True)


if __name__ == "__main__":
    main()

 drivers/gpu/drm/xe/xe_hwmon.c | 38 +++++++++++++++++++++++++++++++++++
 1 file changed, 38 insertions(+)

diff --git a/drivers/gpu/drm/xe/xe_hwmon.c b/drivers/gpu/drm/xe/xe_hwmon.c
index 5edeac96..2bb5bca2 100644
--- a/drivers/gpu/drm/xe/xe_hwmon.c
+++ b/drivers/gpu/drm/xe/xe_hwmon.c
@@ -3,6 +3,7 @@
  * Copyright © 2023 Intel Corporation
  */
 
+#include <linux/delay.h>
 #include <linux/hwmon-sysfs.h>
 #include <linux/hwmon.h>
 #include <linux/jiffies.h>
@@ -14,6 +15,8 @@
 #include "regs/xe_mchbar_regs.h"
 #include "regs/xe_pcode_regs.h"
 #include "xe_device.h"
+#include "xe_force_wake.h"
+#include "xe_gt.h"
 #include "xe_hwmon.h"
 #include "xe_mmio.h"
 #include "xe_pcode.h"
@@ -1096,6 +1099,35 @@ xe_hwmon_temp_read(struct xe_hwmon *hwmon, u32 attr, int channel, long *val)
 	}
 }
 
+static int xe_hwmon_b70_temp_read(struct xe_hwmon *hwmon, u32 attr,
+				  int channel, long *val)
+{
+	unsigned int refs[XE_MAX_TILES_PER_DEVICE * XE_MAX_GT_PER_TILE] = {};
+	struct xe_device *xe = hwmon->xe;
+	struct xe_gt *gt;
+	int ret = -ETIMEDOUT;
+	u8 id;
+
+	for_each_gt(gt, xe, id) {
+		refs[id] = xe_force_wake_get(gt_to_fw(gt), XE_FORCEWAKE_ALL);
+		if (!xe_force_wake_ref_has_domain(refs[id], XE_FORCEWAKE_ALL))
+			goto out;
+	}
+
+	/*
+	 * A forcewake acknowledgment does not imply a fresh thermal sample.
+	 * RFC: this interval is empirical on 8086:e223; the conversion time
+	 * and minimum required wake domains need hardware-spec confirmation.
+	 */
+	usleep_range(2000, 2500);
+	ret = xe_hwmon_temp_read(hwmon, attr, channel, val);
+out:
+	for_each_gt(gt, xe, id)
+		xe_force_wake_put(gt_to_fw(gt), refs[id]);
+
+	return ret;
+}
+
 static umode_t
 xe_hwmon_power_is_visible(struct xe_hwmon *hwmon, u32 attr, int channel)
 {
@@ -1408,6 +1440,12 @@ xe_hwmon_read(struct device *dev, enum hwmon_sensor_types type, u32 attr,
 
 	switch (type) {
 	case hwmon_temp:
+		/* Limit the RFC workaround to the PCI ID measured in issue 7805. */
+		if (attr == hwmon_temp_input &&
+		    hwmon->xe->info.platform == XE_BATTLEMAGE &&
+		    hwmon->xe->info.devid == 0xe223)
+			return xe_hwmon_b70_temp_read(hwmon, attr, channel, val);
+
 		return xe_hwmon_temp_read(hwmon, attr, channel, val);
 	case hwmon_power:
 		return xe_hwmon_power_read(hwmon, attr, channel, val);

base-commit: 666d2f09d9045fc8f72cc1f71528a04acbaf5229
-- 
2.55.0



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

* ✓ CI.KUnit: success for drm/xe/hwmon: refresh B70 temperature inputs after GT idle
  2026-09-26 10:21 [PATCH RFC] drm/xe/hwmon: refresh B70 temperature inputs after GT idle Bata Roland Krisztián via B4 Relay
@ 2026-09-26 15:19 ` Patchwork
  2026-09-26 16:00 ` ✓ Xe.CI.BAT: " Patchwork
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 6+ messages in thread
From: Patchwork @ 2026-09-26 15:19 UTC (permalink / raw)
  To: Bata Roland Krisztián via B4 Relay; +Cc: intel-xe

== Series Details ==

Series: drm/xe/hwmon: refresh B70 temperature inputs after GT idle
URL   : https://patchwork.freedesktop.org/series/175039/
State : success

== Summary ==

+ trap cleanup EXIT
+ kunitconfigs=('/kernel/drivers/gpu/tests/.kunitconfig' '/kernel/drivers/gpu/drm/xe/.kunitconfig' '/kernel/drivers/gpu/drm/tests/.kunitconfig' '/kernel/drivers/gpu/drm/ttm/tests/.kunitconfig' '/kernel/drivers/dma-buf/.kunitconfig')
+ for kcfg in "${kunitconfigs[@]}"
+ [[ ! -f /kernel/drivers/gpu/tests/.kunitconfig ]]
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/tests/.kunitconfig
[15:17:43] Configuring KUnit Kernel ...
Generating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[15:17:47] Building KUnit Kernel ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
Building with:
$ make all compile_commands.json scripts_gdb ARCH=um O=.kunit --jobs=48
[15:18:08] Starting KUnit Kernel (1/1)...
[15:18:08] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[15:18:08] ============= refcount_interrupt (4 subtests) ==============
[15:18:08] [PASSED] test_single_irq_change
[15:18:08] [PASSED] test_nested_irq_change
[15:18:08] [PASSED] test_multiple_irq_change
[15:18:08] [PASSED] test_irq_save
[15:18:08] =============== [PASSED] refcount_interrupt ================
[15:18:08] ================= gpu_buddy (14 subtests) ==================
[15:18:08] [PASSED] gpu_test_buddy_alloc_limit
[15:18:08] [PASSED] gpu_test_buddy_alloc_optimistic
[15:18:08] [PASSED] gpu_test_buddy_alloc_pessimistic
[15:18:08] [PASSED] gpu_test_buddy_alloc_pathological
[15:18:08] [PASSED] gpu_test_buddy_alloc_contiguous
[15:18:08] [PASSED] gpu_test_buddy_alloc_clear
[15:18:08] [PASSED] gpu_test_buddy_alloc_range
[15:18:08] [PASSED] gpu_test_buddy_alloc_range_bias
[15:18:09] [PASSED] gpu_test_buddy_fragmentation_performance
[15:18:09] [PASSED] gpu_test_buddy_dirty_tracker_performance
[15:18:09] [PASSED] gpu_test_buddy_alloc_exceeds_max_order
[15:18:09] [PASSED] gpu_test_buddy_offset_aligned_allocation
[15:18:09] [PASSED] gpu_test_buddy_subtree_offset_alignment_stress
[15:18:09] [PASSED] gpu_test_buddy_addr_to_block
[15:18:09] ==================== [PASSED] gpu_buddy ====================
[15:18:09] ============================================================
[15:18:09] Testing complete. Ran 18 tests: passed: 18
[15:18:09] Elapsed time: 26.618s total, 4.326s configuring, 20.374s building, 1.879s running

+ for kcfg in "${kunitconfigs[@]}"
+ [[ ! -f /kernel/drivers/gpu/drm/xe/.kunitconfig ]]
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/xe/.kunitconfig
[15:18:10] Configuring KUnit Kernel ...
Regenerating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[15:18:11] Building KUnit Kernel ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
Building with:
$ make all compile_commands.json scripts_gdb ARCH=um O=.kunit --jobs=48
[15:18:46] Starting KUnit Kernel (1/1)...
[15:18:46] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[15:18:46] ============= refcount_interrupt (4 subtests) ==============
[15:18:46] [PASSED] test_single_irq_change
[15:18:46] [PASSED] test_nested_irq_change
[15:18:46] [PASSED] test_multiple_irq_change
[15:18:46] [PASSED] test_irq_save
[15:18:46] =============== [PASSED] refcount_interrupt ================
[15:18:46] ================== guc_buf (11 subtests) ===================
[15:18:46] [PASSED] test_smallest
[15:18:46] [PASSED] test_largest
[15:18:46] [PASSED] test_granular
[15:18:46] [PASSED] test_unique
[15:18:46] [PASSED] test_overlap
[15:18:46] [PASSED] test_reusable
[15:18:46] [PASSED] test_too_big
[15:18:46] [PASSED] test_flush
[15:18:46] [PASSED] test_lookup
[15:18:46] [PASSED] test_data
[15:18:46] [PASSED] test_class
[15:18:46] ===================== [PASSED] guc_buf =====================
[15:18:46] =================== guc_dbm (7 subtests) ===================
[15:18:46] [PASSED] test_empty
[15:18:46] [PASSED] test_default
[15:18:46] ======================== test_size  ========================
[15:18:46] [PASSED] 4
[15:18:46] [PASSED] 8
[15:18:46] [PASSED] 32
[15:18:46] [PASSED] 256
[15:18:46] ==================== [PASSED] test_size ====================
[15:18:46] ======================= test_reuse  ========================
[15:18:46] [PASSED] 4
[15:18:46] [PASSED] 8
[15:18:46] [PASSED] 32
[15:18:46] [PASSED] 256
[15:18:46] =================== [PASSED] test_reuse ====================
[15:18:46] =================== test_range_overlap  ====================
[15:18:46] [PASSED] 4
[15:18:46] [PASSED] 8
[15:18:46] [PASSED] 32
[15:18:46] [PASSED] 256
[15:18:46] =============== [PASSED] test_range_overlap ================
[15:18:46] =================== test_range_compact  ====================
[15:18:46] [PASSED] 4
[15:18:46] [PASSED] 8
[15:18:46] [PASSED] 32
[15:18:46] [PASSED] 256
[15:18:46] =============== [PASSED] test_range_compact ================
[15:18:46] ==================== test_range_spare  =====================
[15:18:46] [PASSED] 4
[15:18:46] [PASSED] 8
[15:18:46] [PASSED] 32
[15:18:46] [PASSED] 256
[15:18:46] ================ [PASSED] test_range_spare =================
[15:18:46] ===================== [PASSED] guc_dbm =====================
[15:18:46] =================== guc_idm (6 subtests) ===================
[15:18:46] [PASSED] bad_init
[15:18:46] [PASSED] no_init
[15:18:46] [PASSED] init_fini
[15:18:46] [PASSED] check_used
[15:18:46] [PASSED] check_quota
[15:18:46] [PASSED] check_all
[15:18:46] ===================== [PASSED] guc_idm =====================
[15:18:46] ============== guc_klv_helpers (13 subtests) ===============
[15:18:46] [PASSED] test_count
[15:18:46] [PASSED] test_encode_u32
[15:18:46] [PASSED] test_encode_u64
[15:18:46] [PASSED] test_encode_string
[15:18:46] [PASSED] test_encode_object_raw
[15:18:46] [PASSED] test_encode_object_klv
[15:18:46] [PASSED] test_encode_object_nested
[15:18:46] [PASSED] test_encode_object_basic
[15:18:46] ===================== test_decode_u16  =====================
[15:18:46] [PASSED] empty
[15:18:46] [PASSED] valid
[15:18:46] [PASSED] max
[15:18:46] [PASSED] big
[15:18:46] [PASSED] long
[15:18:46] ================= [PASSED] test_decode_u16 =================
[15:18:46] ===================== test_decode_u32  =====================
[15:18:46] [PASSED] empty
[15:18:46] [PASSED] valid
[15:18:46] [PASSED] max
[15:18:46] [PASSED] long
[15:18:46] ================= [PASSED] test_decode_u32 =================
[15:18:46] ===================== test_decode_u64  =====================
[15:18:46] [PASSED] empty
[15:18:46] [PASSED] short
[15:18:46] [PASSED] valid
[15:18:46] [PASSED] max
[15:18:46] [PASSED] long
[15:18:46] ================= [PASSED] test_decode_u64 =================
[15:18:46] ===================== test_decode_str  =====================
[15:18:46] [PASSED] empty
[15:18:46] [PASSED] one
[15:18:46] [PASSED] one_trash
[15:18:46] [PASSED] two
[15:18:46] [PASSED] two_trash
[15:18:46] [PASSED] three
[15:18:46] [PASSED] dword
[15:18:46] [PASSED] four
[15:18:46] [PASSED] five
[15:18:46] [PASSED] six
[15:18:46] [PASSED] seven
[15:18:46] [PASSED] qword
[15:18:46] ================= [PASSED] test_decode_str =================
[15:18:46] [PASSED] test_print
[15:18:46] ================= [PASSED] guc_klv_helpers =================
[15:18:46] =================== xe_log (4 subtests) ====================
[15:18:46] [PASSED] demo_cper
[15:18:46] [PASSED] demo_dmesg
[15:18:46] ======================= test_dmesg  ========================
[15:18:46] [PASSED] test_fatal
[15:18:46] [PASSED] test_fatal_tile
[15:18:46] [PASSED] test_fatal_gt
[15:18:46] [PASSED] test_fatal_comp
[15:18:46] [PASSED] test_fatal_comp_tile
[15:18:46] [PASSED] test_fatal_comp_gt
[15:18:46] [PASSED] test_fatal_all
[15:18:46] [PASSED] test_recoverable
[15:18:46] [PASSED] test_recoverable_tile
[15:18:46] [PASSED] test_recoverable_gt
[15:18:46] [PASSED] test_recoverable_comp
[15:18:46] [PASSED] test_recoverable_comp_tile
[15:18:46] [PASSED] test_recoverable_comp_gt
[15:18:46] [PASSED] test_recoverable_all
[15:18:46] [PASSED] test_info
[15:18:46] [PASSED] test_info_tile
[15:18:46] [PASSED] test_info_gt
[15:18:46] [PASSED] test_info_err
[15:18:46] [PASSED] test_info_comp
[15:18:46] [PASSED] test_info_comp_tile
[15:18:46] [PASSED] test_info_comp_gt
[15:18:46] [PASSED] test_info_all
[15:18:46] [PASSED] test_hw_fatal
[15:18:46] [PASSED] test_hw_recoverable
[15:18:46] [PASSED] test_hw_corrected
[15:18:46] [PASSED] test_hw_informational
[15:18:46] =================== [PASSED] test_dmesg ====================
[15:18:46] ====================== test_invalid  =======================
[15:18:46] [SKIPPED] no-component no-location no-warn (requires CONFIG_DRM_XE_DEBUG)
[15:18:46] [SKIPPED] reserved location (requires CONFIG_DRM_XE_DEBUG)
[15:18:46] [SKIPPED] unknown location (requires CONFIG_DRM_XE_DEBUG)
[15:18:46] [SKIPPED] nonzero-device-id location (requires CONFIG_DRM_XE_DEBUG)
[15:18:46] [SKIPPED] invalid-tile-id location (requires CONFIG_DRM_XE_DEBUG)
[15:18:46] [SKIPPED] invalid-gt-id location (requires CONFIG_DRM_XE_DEBUG)
[15:18:46] [SKIPPED] unknown component class (requires CONFIG_DRM_XE_DEBUG)
[15:18:46] [SKIPPED] unknown system component (requires CONFIG_DRM_XE_DEBUG)
[15:18:46] [SKIPPED] unknown hardware component (requires CONFIG_DRM_XE_DEBUG)
[15:18:46] [SKIPPED] unknown component and location (requires CONFIG_DRM_XE_DEBUG)
[15:18:46] ================== [SKIPPED] test_invalid ==================
[15:18:46] ===================== [PASSED] xe_log ======================
[15:18:46] ================== no_relay (3 subtests) ===================
[15:18:46] [PASSED] xe_drops_guc2pf_if_not_ready
[15:18:46] [PASSED] xe_drops_guc2vf_if_not_ready
[15:18:46] [PASSED] xe_rejects_send_if_not_ready
[15:18:46] ==================== [PASSED] no_relay =====================
[15:18:46] ================== pf_relay (14 subtests) ==================
[15:18:46] [PASSED] pf_rejects_guc2pf_too_short
[15:18:46] [PASSED] pf_rejects_guc2pf_too_long
[15:18:46] [PASSED] pf_rejects_guc2pf_no_payload
[15:18:46] [PASSED] pf_fails_no_payload
[15:18:46] [PASSED] pf_fails_bad_origin
[15:18:46] [PASSED] pf_fails_bad_type
[15:18:46] [PASSED] pf_txn_reports_error
[15:18:46] [PASSED] pf_txn_sends_pf2guc
[15:18:46] [PASSED] pf_sends_pf2guc
[15:18:46] [SKIPPED] pf_loopback_nop (requires CONFIG_DRM_XE_DEBUG_SRIOV)
[15:18:46] [SKIPPED] pf_loopback_echo (requires CONFIG_DRM_XE_DEBUG_SRIOV)
[15:18:46] [SKIPPED] pf_loopback_fail (requires CONFIG_DRM_XE_DEBUG_SRIOV)
[15:18:46] [SKIPPED] pf_loopback_busy (requires CONFIG_DRM_XE_DEBUG_SRIOV)
[15:18:46] [SKIPPED] pf_loopback_retry (requires CONFIG_DRM_XE_DEBUG_SRIOV)
[15:18:46] ==================== [PASSED] pf_relay =====================
[15:18:46] ================== vf_relay (3 subtests) ===================
[15:18:46] [PASSED] vf_rejects_guc2vf_too_short
[15:18:46] [PASSED] vf_rejects_guc2vf_too_long
[15:18:46] [PASSED] vf_rejects_guc2vf_no_payload
[15:18:46] ==================== [PASSED] vf_relay =====================
[15:18:46] ================ pf_gt_config (9 subtests) =================
[15:18:46] [PASSED] fair_contexts_1vf
[15:18:46] [PASSED] fair_doorbells_1vf
[15:18:46] [PASSED] fair_ggtt_1vf
[15:18:46] ====================== fair_vram_1vf  ======================
[15:18:46] [PASSED] 3.50 GiB
[15:18:46] [PASSED] 11.5 GiB
[15:18:46] [PASSED] 15.5 GiB
[15:18:46] [PASSED] 31.5 GiB
[15:18:46] [PASSED] 63.5 GiB
[15:18:46] [PASSED] 1.91 GiB
[15:18:46] ================== [PASSED] fair_vram_1vf ==================
[15:18:46] ================ fair_vram_1vf_admin_only  =================
[15:18:46] [PASSED] 3.50 GiB
[15:18:46] [PASSED] 11.5 GiB
[15:18:46] [PASSED] 15.5 GiB
[15:18:46] [PASSED] 31.5 GiB
[15:18:46] [PASSED] 63.5 GiB
[15:18:46] [PASSED] 1.91 GiB
[15:18:46] ============ [PASSED] fair_vram_1vf_admin_only =============
[15:18:46] ====================== fair_contexts  ======================
[15:18:46] [PASSED] 1 VF
[15:18:46] [PASSED] 2 VFs
[15:18:46] [PASSED] 3 VFs
[15:18:46] [PASSED] 4 VFs
[15:18:46] [PASSED] 5 VFs
[15:18:46] [PASSED] 6 VFs
[15:18:46] [PASSED] 7 VFs
[15:18:46] [PASSED] 8 VFs
[15:18:46] [PASSED] 9 VFs
[15:18:46] [PASSED] 10 VFs
[15:18:46] [PASSED] 11 VFs
[15:18:46] [PASSED] 12 VFs
[15:18:46] [PASSED] 13 VFs
[15:18:46] [PASSED] 14 VFs
[15:18:46] [PASSED] 15 VFs
[15:18:46] [PASSED] 16 VFs
[15:18:46] [PASSED] 17 VFs
[15:18:46] [PASSED] 18 VFs
[15:18:46] [PASSED] 19 VFs
[15:18:46] [PASSED] 20 VFs
[15:18:46] [PASSED] 21 VFs
[15:18:46] [PASSED] 22 VFs
[15:18:46] [PASSED] 23 VFs
[15:18:46] [PASSED] 24 VFs
[15:18:46] [PASSED] 25 VFs
[15:18:46] [PASSED] 26 VFs
[15:18:46] [PASSED] 27 VFs
[15:18:46] [PASSED] 28 VFs
[15:18:46] [PASSED] 29 VFs
[15:18:46] [PASSED] 30 VFs
[15:18:46] [PASSED] 31 VFs
[15:18:46] [PASSED] 32 VFs
[15:18:46] [PASSED] 33 VFs
[15:18:46] [PASSED] 34 VFs
[15:18:46] [PASSED] 35 VFs
[15:18:46] [PASSED] 36 VFs
[15:18:46] [PASSED] 37 VFs
[15:18:46] [PASSED] 38 VFs
[15:18:46] [PASSED] 39 VFs
[15:18:46] [PASSED] 40 VFs
[15:18:46] [PASSED] 41 VFs
[15:18:46] [PASSED] 42 VFs
[15:18:46] [PASSED] 43 VFs
[15:18:46] [PASSED] 44 VFs
[15:18:46] [PASSED] 45 VFs
[15:18:46] [PASSED] 46 VFs
[15:18:46] [PASSED] 47 VFs
[15:18:46] [PASSED] 48 VFs
[15:18:46] [PASSED] 49 VFs
[15:18:46] [PASSED] 50 VFs
[15:18:46] [PASSED] 51 VFs
[15:18:46] [PASSED] 52 VFs
[15:18:46] [PASSED] 53 VFs
[15:18:46] [PASSED] 54 VFs
[15:18:46] [PASSED] 55 VFs
[15:18:46] [PASSED] 56 VFs
[15:18:46] [PASSED] 57 VFs
[15:18:46] [PASSED] 58 VFs
[15:18:46] [PASSED] 59 VFs
[15:18:46] [PASSED] 60 VFs
[15:18:46] [PASSED] 61 VFs
[15:18:46] [PASSED] 62 VFs
[15:18:46] [PASSED] 63 VFs
[15:18:46] ================== [PASSED] fair_contexts ==================
[15:18:46] ===================== fair_doorbells  ======================
[15:18:46] [PASSED] 1 VF
[15:18:46] [PASSED] 2 VFs
[15:18:46] [PASSED] 3 VFs
[15:18:46] [PASSED] 4 VFs
[15:18:46] [PASSED] 5 VFs
[15:18:46] [PASSED] 6 VFs
[15:18:46] [PASSED] 7 VFs
[15:18:46] [PASSED] 8 VFs
[15:18:46] [PASSED] 9 VFs
[15:18:46] [PASSED] 10 VFs
[15:18:46] [PASSED] 11 VFs
[15:18:46] [PASSED] 12 VFs
[15:18:46] [PASSED] 13 VFs
[15:18:46] [PASSED] 14 VFs
[15:18:46] [PASSED] 15 VFs
[15:18:46] [PASSED] 16 VFs
[15:18:46] [PASSED] 17 VFs
[15:18:46] [PASSED] 18 VFs
[15:18:46] [PASSED] 19 VFs
[15:18:46] [PASSED] 20 VFs
[15:18:46] [PASSED] 21 VFs
[15:18:46] [PASSED] 22 VFs
[15:18:46] [PASSED] 23 VFs
[15:18:46] [PASSED] 24 VFs
[15:18:46] [PASSED] 25 VFs
[15:18:46] [PASSED] 26 VFs
[15:18:46] [PASSED] 27 VFs
[15:18:46] [PASSED] 28 VFs
[15:18:46] [PASSED] 29 VFs
[15:18:46] [PASSED] 30 VFs
[15:18:46] [PASSED] 31 VFs
[15:18:46] [PASSED] 32 VFs
[15:18:46] [PASSED] 33 VFs
[15:18:46] [PASSED] 34 VFs
[15:18:46] [PASSED] 35 VFs
[15:18:46] [PASSED] 36 VFs
[15:18:46] [PASSED] 37 VFs
[15:18:46] [PASSED] 38 VFs
[15:18:46] [PASSED] 39 VFs
[15:18:46] [PASSED] 40 VFs
[15:18:46] [PASSED] 41 VFs
[15:18:46] [PASSED] 42 VFs
[15:18:46] [PASSED] 43 VFs
[15:18:46] [PASSED] 44 VFs
[15:18:46] [PASSED] 45 VFs
[15:18:46] [PASSED] 46 VFs
[15:18:46] [PASSED] 47 VFs
[15:18:46] [PASSED] 48 VFs
[15:18:46] [PASSED] 49 VFs
[15:18:46] [PASSED] 50 VFs
[15:18:46] [PASSED] 51 VFs
[15:18:46] [PASSED] 52 VFs
[15:18:46] [PASSED] 53 VFs
[15:18:46] [PASSED] 54 VFs
[15:18:46] [PASSED] 55 VFs
[15:18:46] [PASSED] 56 VFs
[15:18:46] [PASSED] 57 VFs
[15:18:46] [PASSED] 58 VFs
[15:18:46] [PASSED] 59 VFs
[15:18:46] [PASSED] 60 VFs
[15:18:46] [PASSED] 61 VFs
[15:18:46] [PASSED] 62 VFs
[15:18:46] [PASSED] 63 VFs
[15:18:46] ================= [PASSED] fair_doorbells ==================
[15:18:46] ======================== fair_ggtt  ========================
[15:18:46] [PASSED] 1 VF
[15:18:46] [PASSED] 2 VFs
[15:18:46] [PASSED] 3 VFs
[15:18:46] [PASSED] 4 VFs
[15:18:46] [PASSED] 5 VFs
[15:18:46] [PASSED] 6 VFs
[15:18:46] [PASSED] 7 VFs
[15:18:46] [PASSED] 8 VFs
[15:18:46] [PASSED] 9 VFs
[15:18:46] [PASSED] 10 VFs
[15:18:46] [PASSED] 11 VFs
[15:18:46] [PASSED] 12 VFs
[15:18:46] [PASSED] 13 VFs
[15:18:46] [PASSED] 14 VFs
[15:18:46] [PASSED] 15 VFs
[15:18:46] [PASSED] 16 VFs
[15:18:46] [PASSED] 17 VFs
[15:18:46] [PASSED] 18 VFs
[15:18:46] [PASSED] 19 VFs
[15:18:46] [PASSED] 20 VFs
[15:18:46] [PASSED] 21 VFs
[15:18:46] [PASSED] 22 VFs
[15:18:46] [PASSED] 23 VFs
[15:18:46] [PASSED] 24 VFs
[15:18:46] [PASSED] 25 VFs
[15:18:46] [PASSED] 26 VFs
[15:18:46] [PASSED] 27 VFs
[15:18:46] [PASSED] 28 VFs
[15:18:46] [PASSED] 29 VFs
[15:18:46] [PASSED] 30 VFs
[15:18:46] [PASSED] 31 VFs
[15:18:46] [PASSED] 32 VFs
[15:18:46] [PASSED] 33 VFs
[15:18:46] [PASSED] 34 VFs
[15:18:46] [PASSED] 35 VFs
[15:18:46] [PASSED] 36 VFs
[15:18:46] [PASSED] 37 VFs
[15:18:46] [PASSED] 38 VFs
[15:18:46] [PASSED] 39 VFs
[15:18:46] [PASSED] 40 VFs
[15:18:46] [PASSED] 41 VFs
[15:18:46] [PASSED] 42 VFs
[15:18:46] [PASSED] 43 VFs
[15:18:46] [PASSED] 44 VFs
[15:18:46] [PASSED] 45 VFs
[15:18:46] [PASSED] 46 VFs
[15:18:46] [PASSED] 47 VFs
[15:18:46] [PASSED] 48 VFs
[15:18:46] [PASSED] 49 VFs
[15:18:46] [PASSED] 50 VFs
[15:18:46] [PASSED] 51 VFs
[15:18:46] [PASSED] 52 VFs
[15:18:46] [PASSED] 53 VFs
[15:18:46] [PASSED] 54 VFs
[15:18:46] [PASSED] 55 VFs
[15:18:46] [PASSED] 56 VFs
[15:18:46] [PASSED] 57 VFs
[15:18:46] [PASSED] 58 VFs
[15:18:46] [PASSED] 59 VFs
[15:18:46] [PASSED] 60 VFs
[15:18:46] [PASSED] 61 VFs
[15:18:46] [PASSED] 62 VFs
[15:18:46] [PASSED] 63 VFs
[15:18:46] ==================== [PASSED] fair_ggtt ====================
[15:18:46] ======================== fair_vram  ========================
[15:18:46] [PASSED] 1 VF
[15:18:46] [PASSED] 2 VFs
[15:18:46] [PASSED] 3 VFs
[15:18:46] [PASSED] 4 VFs
[15:18:46] [PASSED] 5 VFs
[15:18:46] [PASSED] 6 VFs
[15:18:46] [PASSED] 7 VFs
[15:18:46] [PASSED] 8 VFs
[15:18:46] [PASSED] 9 VFs
[15:18:46] [PASSED] 10 VFs
[15:18:46] [PASSED] 11 VFs
[15:18:46] [PASSED] 12 VFs
[15:18:46] [PASSED] 13 VFs
[15:18:46] [PASSED] 14 VFs
[15:18:46] [PASSED] 15 VFs
[15:18:46] [PASSED] 16 VFs
[15:18:46] [PASSED] 17 VFs
[15:18:46] [PASSED] 18 VFs
[15:18:46] [PASSED] 19 VFs
[15:18:46] [PASSED] 20 VFs
[15:18:46] [PASSED] 21 VFs
[15:18:46] [PASSED] 22 VFs
[15:18:46] [PASSED] 23 VFs
[15:18:46] [PASSED] 24 VFs
[15:18:46] [PASSED] 25 VFs
[15:18:46] [PASSED] 26 VFs
[15:18:46] [PASSED] 27 VFs
[15:18:46] [PASSED] 28 VFs
[15:18:46] [PASSED] 29 VFs
[15:18:46] [PASSED] 30 VFs
[15:18:46] [PASSED] 31 VFs
[15:18:46] [PASSED] 32 VFs
[15:18:46] [PASSED] 33 VFs
[15:18:46] [PASSED] 34 VFs
[15:18:46] [PASSED] 35 VFs
[15:18:46] [PASSED] 36 VFs
[15:18:46] [PASSED] 37 VFs
[15:18:46] [PASSED] 38 VFs
[15:18:46] [PASSED] 39 VFs
[15:18:46] [PASSED] 40 VFs
[15:18:46] [PASSED] 41 VFs
[15:18:46] [PASSED] 42 VFs
[15:18:46] [PASSED] 43 VFs
[15:18:46] [PASSED] 44 VFs
[15:18:46] [PASSED] 45 VFs
[15:18:46] [PASSED] 46 VFs
[15:18:46] [PASSED] 47 VFs
[15:18:46] [PASSED] 48 VFs
[15:18:46] [PASSED] 49 VFs
[15:18:46] [PASSED] 50 VFs
[15:18:46] [PASSED] 51 VFs
[15:18:46] [PASSED] 52 VFs
[15:18:46] [PASSED] 53 VFs
[15:18:46] [PASSED] 54 VFs
[15:18:46] [PASSED] 55 VFs
[15:18:46] [PASSED] 56 VFs
[15:18:46] [PASSED] 57 VFs
[15:18:46] [PASSED] 58 VFs
[15:18:46] [PASSED] 59 VFs
[15:18:46] [PASSED] 60 VFs
[15:18:46] [PASSED] 61 VFs
[15:18:46] [PASSED] 62 VFs
[15:18:46] [PASSED] 63 VFs
[15:18:46] ==================== [PASSED] fair_vram ====================
[15:18:46] ================== [PASSED] pf_gt_config ===================
[15:18:46] ===================== lmtt (1 subtest) =====================
[15:18:46] ======================== test_ops  =========================
[15:18:46] [PASSED] 2-level
[15:18:46] [PASSED] multi-level
[15:18:46] ==================== [PASSED] test_ops =====================
[15:18:46] ====================== [PASSED] lmtt =======================
[15:18:46] ================= sriov_packet (1 subtest) =================
[15:18:46] [PASSED] test_descriptor_init
[15:18:46] ================== [PASSED] sriov_packet ===================
[15:18:46] ================= pf_service (11 subtests) =================
[15:18:46] [PASSED] pf_negotiate_any
[15:18:46] [PASSED] pf_negotiate_base_match
[15:18:46] [PASSED] pf_negotiate_base_newer
[15:18:46] [PASSED] pf_negotiate_base_next
[15:18:46] [SKIPPED] pf_negotiate_base_older (no older minor)
[15:18:46] [PASSED] pf_negotiate_base_prev
[15:18:46] [PASSED] pf_negotiate_latest_match
[15:18:46] [PASSED] pf_negotiate_latest_newer
[15:18:46] [PASSED] pf_negotiate_latest_next
[15:18:46] [SKIPPED] pf_negotiate_latest_older (no older minor)
[15:18:46] [SKIPPED] pf_negotiate_latest_prev (no prev major)
[15:18:46] =================== [PASSED] pf_service ====================
[15:18:46] ================= xe_guc_g2g (2 subtests) ==================
[15:18:46] ============== xe_live_guc_g2g_kunit_default  ==============
[15:18:46] ========= [SKIPPED] xe_live_guc_g2g_kunit_default ==========
[15:18:46] ============== xe_live_guc_g2g_kunit_allmem  ===============
[15:18:46] ========== [SKIPPED] xe_live_guc_g2g_kunit_allmem ==========
[15:18:46] =================== [SKIPPED] xe_guc_g2g ===================
[15:18:46] =================== xe_mocs (2 subtests) ===================
[15:18:46] ================ xe_live_mocs_kernel_kunit  ================
[15:18:46] =========== [SKIPPED] xe_live_mocs_kernel_kunit ============
[15:18:46] ================ xe_live_mocs_reset_kunit  =================
[15:18:46] ============ [SKIPPED] xe_live_mocs_reset_kunit ============
[15:18:46] ==================== [SKIPPED] xe_mocs =====================
[15:18:46] ================= xe_migrate (2 subtests) ==================
[15:18:46] ================= xe_migrate_sanity_kunit  =================
[15:18:46] ============ [SKIPPED] xe_migrate_sanity_kunit =============
[15:18:46] ================== xe_validate_ccs_kunit  ==================
[15:18:46] ============= [SKIPPED] xe_validate_ccs_kunit ==============
[15:18:46] =================== [SKIPPED] xe_migrate ===================
[15:18:46] ================== xe_dma_buf (1 subtest) ==================
[15:18:46] ==================== xe_dma_buf_kunit  =====================
[15:18:46] ================ [SKIPPED] xe_dma_buf_kunit ================
[15:18:46] =================== [SKIPPED] xe_dma_buf ===================
[15:18:46] ================= xe_bo_shrink (1 subtest) =================
[15:18:46] =================== xe_bo_shrink_kunit  ====================
[15:18:46] =============== [SKIPPED] xe_bo_shrink_kunit ===============
[15:18:46] ================== [SKIPPED] xe_bo_shrink ==================
[15:18:46] ==================== xe_bo (2 subtests) ====================
[15:18:46] ================== xe_ccs_migrate_kunit  ===================
[15:18:46] ============== [SKIPPED] xe_ccs_migrate_kunit ==============
[15:18:46] ==================== xe_bo_evict_kunit  ====================
[15:18:46] =============== [SKIPPED] xe_bo_evict_kunit ================
[15:18:46] ===================== [SKIPPED] xe_bo ======================
[15:18:46] =================== xe_any (9 subtests) ====================
[15:18:46] [PASSED] test_to_xe
[15:18:46] [PASSED] test_to_dev
[15:18:46] [PASSED] test_to_pdev
[15:18:46] [PASSED] test_to_drm
[15:18:46] [PASSED] test_if_pdev
[15:18:46] [PASSED] test_if_xe
[15:18:46] [PASSED] test_if_tile
[15:18:46] [PASSED] test_if_gt
[15:18:46] [PASSED] test_to_id
[15:18:46] ===================== [PASSED] xe_any ======================
[15:18:46] ==================== args (13 subtests) ====================
[15:18:46] [PASSED] count_args_test
[15:18:46] [PASSED] call_args_example
[15:18:46] [PASSED] call_args_test
[15:18:46] [PASSED] drop_first_arg_example
[15:18:46] [PASSED] drop_first_arg_test
[15:18:46] [PASSED] first_arg_example
[15:18:46] [PASSED] first_arg_test
[15:18:46] [PASSED] last_arg_example
[15:18:46] [PASSED] last_arg_test
[15:18:46] [PASSED] pick_arg_example
[15:18:46] [PASSED] if_args_example
[15:18:46] [PASSED] if_args_test
[15:18:46] [PASSED] sep_comma_example
[15:18:46] ====================== [PASSED] args =======================
[15:18:46] =================== xe_pci (3 subtests) ====================
[15:18:46] ==================== check_graphics_ip  ====================
[15:18:46] [PASSED] 12.00 Xe_LP
[15:18:46] [PASSED] 12.10 Xe_LP+
[15:18:46] [PASSED] 12.55 Xe_HPG
[15:18:46] [PASSED] 12.60 Xe_HPC
[15:18:46] [PASSED] 12.70 Xe_LPG
[15:18:46] [PASSED] 12.71 Xe_LPG
[15:18:46] [PASSED] 12.74 Xe_LPG+
[15:18:46] [PASSED] 20.01 Xe2_HPG
[15:18:46] [PASSED] 20.02 Xe2_HPG
[15:18:46] [PASSED] 20.04 Xe2_LPG
[15:18:46] [PASSED] 30.00 Xe3_LPG
[15:18:46] [PASSED] 30.01 Xe3_LPG
[15:18:46] [PASSED] 30.03 Xe3_LPG
[15:18:46] [PASSED] 30.04 Xe3_LPG
[15:18:46] [PASSED] 30.05 Xe3_LPG
[15:18:46] [PASSED] 35.10 Xe3p_LPG
[15:18:46] [PASSED] 35.11 Xe3p_XPC
[15:18:46] ================ [PASSED] check_graphics_ip ================
[15:18:46] ===================== check_media_ip  ======================
[15:18:46] [PASSED] 12.00 Xe_M
[15:18:46] [PASSED] 12.55 Xe_HPM
[15:18:46] [PASSED] 13.00 Xe_LPM+
[15:18:46] [PASSED] 13.01 Xe2_HPM
[15:18:46] [PASSED] 20.00 Xe2_LPM
[15:18:46] [PASSED] 30.00 Xe3_LPM
[15:18:46] [PASSED] 30.02 Xe3_LPM
[15:18:46] [PASSED] 35.00 Xe3p_LPM
[15:18:46] [PASSED] 35.03 Xe3p_HPM
[15:18:46] ================= [PASSED] check_media_ip ==================
[15:18:46] =================== check_platform_desc  ===================
[15:18:46] [PASSED] 0x9A60 (TIGERLAKE)
[15:18:46] [PASSED] 0x9A68 (TIGERLAKE)
[15:18:46] [PASSED] 0x9A70 (TIGERLAKE)
[15:18:46] [PASSED] 0x9A40 (TIGERLAKE)
[15:18:46] [PASSED] 0x9A49 (TIGERLAKE)
[15:18:46] [PASSED] 0x9A59 (TIGERLAKE)
[15:18:46] [PASSED] 0x9A78 (TIGERLAKE)
[15:18:46] [PASSED] 0x9AC0 (TIGERLAKE)
[15:18:46] [PASSED] 0x9AC9 (TIGERLAKE)
[15:18:46] [PASSED] 0x9AD9 (TIGERLAKE)
[15:18:46] [PASSED] 0x9AF8 (TIGERLAKE)
[15:18:46] [PASSED] 0x4C80 (ROCKETLAKE)
[15:18:46] [PASSED] 0x4C8A (ROCKETLAKE)
[15:18:46] [PASSED] 0x4C8B (ROCKETLAKE)
[15:18:46] [PASSED] 0x4C8C (ROCKETLAKE)
[15:18:46] [PASSED] 0x4C90 (ROCKETLAKE)
[15:18:46] [PASSED] 0x4C9A (ROCKETLAKE)
[15:18:46] [PASSED] 0x4680 (ALDERLAKE_S)
[15:18:46] [PASSED] 0x4682 (ALDERLAKE_S)
[15:18:46] [PASSED] 0x4688 (ALDERLAKE_S)
[15:18:46] [PASSED] 0x468A (ALDERLAKE_S)
[15:18:46] [PASSED] 0x468B (ALDERLAKE_S)
[15:18:46] [PASSED] 0x4690 (ALDERLAKE_S)
[15:18:46] [PASSED] 0x4692 (ALDERLAKE_S)
[15:18:46] [PASSED] 0x4693 (ALDERLAKE_S)
[15:18:46] [PASSED] 0x46A0 (ALDERLAKE_P)
[15:18:46] [PASSED] 0x46A1 (ALDERLAKE_P)
[15:18:46] [PASSED] 0x46A2 (ALDERLAKE_P)
[15:18:46] [PASSED] 0x46A3 (ALDERLAKE_P)
[15:18:46] [PASSED] 0x46A6 (ALDERLAKE_P)
[15:18:46] [PASSED] 0x46A8 (ALDERLAKE_P)
[15:18:46] [PASSED] 0x46AA (ALDERLAKE_P)
[15:18:46] [PASSED] 0x462A (ALDERLAKE_P)
[15:18:46] [PASSED] 0x4626 (ALDERLAKE_P)
[15:18:46] [PASSED] 0x4628 (ALDERLAKE_P)
[15:18:46] [PASSED] 0x46B0 (ALDERLAKE_P)
[15:18:46] [PASSED] 0x46B1 (ALDERLAKE_P)
[15:18:46] [PASSED] 0x46B2 (ALDERLAKE_P)
[15:18:46] [PASSED] 0x46B3 (ALDERLAKE_P)
[15:18:46] [PASSED] 0x46C0 (ALDERLAKE_P)
[15:18:46] [PASSED] 0x46C1 (ALDERLAKE_P)
[15:18:46] [PASSED] 0x46C2 (ALDERLAKE_P)
[15:18:46] [PASSED] 0x46C3 (ALDERLAKE_P)
[15:18:46] [PASSED] 0x46D0 (ALDERLAKE_N)
[15:18:46] [PASSED] 0x46D1 (ALDERLAKE_N)
[15:18:46] [PASSED] 0x46D2 (ALDERLAKE_N)
[15:18:46] [PASSED] 0x46D3 (ALDERLAKE_N)
[15:18:46] [PASSED] 0x46D4 (ALDERLAKE_N)
[15:18:46] [PASSED] 0xA721 (ALDERLAKE_P)
[15:18:46] [PASSED] 0xA7A1 (ALDERLAKE_P)
[15:18:46] [PASSED] 0xA7A9 (ALDERLAKE_P)
[15:18:46] [PASSED] 0xA7AC (ALDERLAKE_P)
[15:18:46] [PASSED] 0xA7AD (ALDERLAKE_P)
[15:18:46] [PASSED] 0xA720 (ALDERLAKE_P)
[15:18:46] [PASSED] 0xA7A0 (ALDERLAKE_P)
[15:18:46] [PASSED] 0xA7A8 (ALDERLAKE_P)
[15:18:46] [PASSED] 0xA7AA (ALDERLAKE_P)
[15:18:46] [PASSED] 0xA7AB (ALDERLAKE_P)
[15:18:46] [PASSED] 0xA780 (ALDERLAKE_S)
[15:18:46] [PASSED] 0xA781 (ALDERLAKE_S)
[15:18:46] [PASSED] 0xA782 (ALDERLAKE_S)
[15:18:46] [PASSED] 0xA783 (ALDERLAKE_S)
[15:18:46] [PASSED] 0xA788 (ALDERLAKE_S)
[15:18:46] [PASSED] 0xA789 (ALDERLAKE_S)
[15:18:46] [PASSED] 0xA78A (ALDERLAKE_S)
[15:18:46] [PASSED] 0xA78B (ALDERLAKE_S)
[15:18:46] [PASSED] 0x4905 (DG1)
[15:18:46] [PASSED] 0x4906 (DG1)
[15:18:46] [PASSED] 0x4907 (DG1)
[15:18:46] [PASSED] 0x4908 (DG1)
[15:18:46] [PASSED] 0x4909 (DG1)
[15:18:46] [PASSED] 0x56C0 (DG2)
[15:18:46] [PASSED] 0x56C2 (DG2)
[15:18:46] [PASSED] 0x56C1 (DG2)
[15:18:46] [PASSED] 0x7D51 (METEORLAKE)
[15:18:46] [PASSED] 0x7DD1 (METEORLAKE)
[15:18:46] [PASSED] 0x7D41 (METEORLAKE)
[15:18:46] [PASSED] 0x7D67 (METEORLAKE)
[15:18:46] [PASSED] 0xB640 (METEORLAKE)
[15:18:46] [PASSED] 0x56A0 (DG2)
[15:18:46] [PASSED] 0x56A1 (DG2)
[15:18:46] [PASSED] 0x56A2 (DG2)
[15:18:46] [PASSED] 0x56BE (DG2)
[15:18:46] [PASSED] 0x56BF (DG2)
[15:18:46] [PASSED] 0x5690 (DG2)
[15:18:46] [PASSED] 0x5691 (DG2)
[15:18:46] [PASSED] 0x5692 (DG2)
[15:18:46] [PASSED] 0x56A5 (DG2)
[15:18:46] [PASSED] 0x56A6 (DG2)
[15:18:46] [PASSED] 0x56B0 (DG2)
[15:18:46] [PASSED] 0x56B1 (DG2)
[15:18:46] [PASSED] 0x56BA (DG2)
[15:18:46] [PASSED] 0x56BB (DG2)
[15:18:46] [PASSED] 0x56BC (DG2)
[15:18:46] [PASSED] 0x56BD (DG2)
[15:18:46] [PASSED] 0x5693 (DG2)
[15:18:46] [PASSED] 0x5694 (DG2)
[15:18:46] [PASSED] 0x5695 (DG2)
[15:18:46] [PASSED] 0x56A3 (DG2)
[15:18:46] [PASSED] 0x56A4 (DG2)
[15:18:46] [PASSED] 0x56B2 (DG2)
[15:18:46] [PASSED] 0x56B3 (DG2)
[15:18:46] [PASSED] 0x5696 (DG2)
[15:18:46] [PASSED] 0x5697 (DG2)
[15:18:46] [PASSED] 0xB69 (PVC)
[15:18:46] [PASSED] 0xB6E (PVC)
[15:18:46] [PASSED] 0xBD4 (PVC)
[15:18:46] [PASSED] 0xBD5 (PVC)
[15:18:46] [PASSED] 0xBD6 (PVC)
[15:18:46] [PASSED] 0xBD7 (PVC)
[15:18:46] [PASSED] 0xBD8 (PVC)
[15:18:46] [PASSED] 0xBD9 (PVC)
[15:18:46] [PASSED] 0xBDA (PVC)
[15:18:46] [PASSED] 0xBDB (PVC)
[15:18:46] [PASSED] 0xBE0 (PVC)
[15:18:46] [PASSED] 0xBE1 (PVC)
[15:18:46] [PASSED] 0xBE5 (PVC)
[15:18:46] [PASSED] 0x7D40 (METEORLAKE)
[15:18:46] [PASSED] 0x7D45 (METEORLAKE)
[15:18:46] [PASSED] 0x7D55 (METEORLAKE)
[15:18:46] [PASSED] 0x7D60 (METEORLAKE)
[15:18:46] [PASSED] 0x7DD5 (METEORLAKE)
[15:18:46] [PASSED] 0x6420 (LUNARLAKE)
[15:18:46] [PASSED] 0x64A0 (LUNARLAKE)
[15:18:46] [PASSED] 0x64B0 (LUNARLAKE)
[15:18:46] [PASSED] 0xE202 (BATTLEMAGE)
[15:18:46] [PASSED] 0xE209 (BATTLEMAGE)
[15:18:46] [PASSED] 0xE20B (BATTLEMAGE)
[15:18:46] [PASSED] 0xE20C (BATTLEMAGE)
[15:18:46] [PASSED] 0xE20D (BATTLEMAGE)
[15:18:46] [PASSED] 0xE210 (BATTLEMAGE)
[15:18:46] [PASSED] 0xE211 (BATTLEMAGE)
[15:18:46] [PASSED] 0xE212 (BATTLEMAGE)
[15:18:46] [PASSED] 0xE216 (BATTLEMAGE)
[15:18:46] [PASSED] 0xE220 (BATTLEMAGE)
[15:18:46] [PASSED] 0xE221 (BATTLEMAGE)
[15:18:46] [PASSED] 0xE222 (BATTLEMAGE)
[15:18:46] [PASSED] 0xE223 (BATTLEMAGE)
[15:18:46] [PASSED] 0xB080 (PANTHERLAKE)
[15:18:46] [PASSED] 0xB081 (PANTHERLAKE)
[15:18:46] [PASSED] 0xB082 (PANTHERLAKE)
[15:18:46] [PASSED] 0xB083 (PANTHERLAKE)
[15:18:46] [PASSED] 0xB084 (PANTHERLAKE)
[15:18:46] [PASSED] 0xB085 (PANTHERLAKE)
[15:18:46] [PASSED] 0xB086 (PANTHERLAKE)
[15:18:46] [PASSED] 0xB087 (PANTHERLAKE)
[15:18:46] [PASSED] 0xB08F (PANTHERLAKE)
[15:18:46] [PASSED] 0xB090 (PANTHERLAKE)
[15:18:46] [PASSED] 0xB0A0 (PANTHERLAKE)
[15:18:46] [PASSED] 0xB0A1 (PANTHERLAKE)
[15:18:46] [PASSED] 0xB0B0 (PANTHERLAKE)
[15:18:46] [PASSED] 0xFD80 (PANTHERLAKE)
[15:18:46] [PASSED] 0xFD81 (PANTHERLAKE)
[15:18:46] [PASSED] 0xD740 (NOVALAKE_S)
[15:18:46] [PASSED] 0xD741 (NOVALAKE_S)
[15:18:46] [PASSED] 0xD742 (NOVALAKE_S)
[15:18:46] [PASSED] 0xD743 (NOVALAKE_S)
[15:18:46] [PASSED] 0xD745 (NOVALAKE_S)
[15:18:46] [PASSED] 0xD74A (NOVALAKE_S)
[15:18:46] [PASSED] 0xD74B (NOVALAKE_S)
[15:18:46] [PASSED] 0x674C (CRESCENTISLAND)
[15:18:46] [PASSED] 0x674D (CRESCENTISLAND)
[15:18:46] [PASSED] 0x674E (CRESCENTISLAND)
[15:18:46] [PASSED] 0x674F (CRESCENTISLAND)
[15:18:46] [PASSED] 0x6750 (CRESCENTISLAND)
[15:18:46] [PASSED] 0xD750 (NOVALAKE_P)
[15:18:46] [PASSED] 0xD751 (NOVALAKE_P)
[15:18:46] [PASSED] 0xD752 (NOVALAKE_P)
[15:18:46] [PASSED] 0xD753 (NOVALAKE_P)
[15:18:46] [PASSED] 0xD754 (NOVALAKE_P)
[15:18:46] [PASSED] 0xD755 (NOVALAKE_P)
[15:18:46] [PASSED] 0xD756 (NOVALAKE_P)
[15:18:46] [PASSED] 0xD757 (NOVALAKE_P)
[15:18:46] [PASSED] 0xD75F (NOVALAKE_P)
[15:18:46] =============== [PASSED] check_platform_desc ===============
[15:18:46] ===================== [PASSED] xe_pci ======================
[15:18:46] ============= xe_rtp_tables_test (5 subtests) ==============
[15:18:46] ================== xe_rtp_table_gt_test  ===================
[15:18:46] [PASSED] gt_was/14011060649
[15:18:46] [PASSED] gt_was/14011059788
[15:18:46] [PASSED] gt_was/14015795083
[15:18:46] [PASSED] gt_was/16021867713
[15:18:46] [PASSED] gt_was/14019449301
[15:18:46] [PASSED] gt_was/16028005424
[15:18:46] [PASSED] gt_was/14026578760
[15:18:46] [PASSED] gt_was/1409420604
[15:18:46] [PASSED] gt_was/1408615072
[15:18:46] [PASSED] gt_was/22010523718
[15:18:46] [PASSED] gt_was/14011006942
[15:18:46] [PASSED] gt_was/14014830051
[15:18:46] [PASSED] gt_was/18018781329
[15:18:46] [PASSED] gt_was/1509235366
[15:18:46] [PASSED] gt_was/18018781329
[15:18:46] [PASSED] gt_was/16016694945
[15:18:46] [PASSED] gt_was/14018575942
[15:18:46] [PASSED] gt_was/22016670082
[15:18:46] [PASSED] gt_was/22016670082
[15:18:46] [PASSED] gt_was/14017421178
[15:18:46] [PASSED] gt_was/16025250150
[15:18:46] [PASSED] gt_was/14021871409
[15:18:46] [PASSED] gt_was/16021865536
[15:18:46] [PASSED] gt_was/14021486841
[15:18:46] [PASSED] gt_was/14025160223
[15:18:46] [PASSED] gt_was/14026144927, 16029437861, 14026127056
[15:18:46] [PASSED] gt_was/14025635424
[15:18:46] [PASSED] gt_was/16028005424
[15:18:46] ============== [PASSED] xe_rtp_table_gt_test ===============
[15:18:46] ================== xe_rtp_table_gt_test  ===================
[15:18:46] [PASSED] gt_tunings/Tuning: Blend Fill Caching Optimization Disable
[15:18:46] [PASSED] gt_tunings/Tuning: 32B Access Enable
[15:18:46] [PASSED] gt_tunings/Tuning: L3 cache
[15:18:46] [PASSED] gt_tunings/Tuning: L3 cache - media
[15:18:46] [PASSED] gt_tunings/Tuning: Compression Overfetch
[15:18:46] [PASSED] gt_tunings/Tuning: Compression Overfetch - media
[15:18:46] [PASSED] gt_tunings/Tuning: Enable compressible partial write overfetch in L3
[15:18:46] [PASSED] gt_tunings/Tuning: Enable compressible partial write overfetch in L3 - media
[15:18:46] [PASSED] gt_tunings/Tuning: L2 Overfetch Compressible Only
[15:18:46] [PASSED] gt_tunings/Tuning: L2 Overfetch Compressible Only - media
[15:18:46] [PASSED] gt_tunings/Tuning: Stateless compression control
[15:18:46] [PASSED] gt_tunings/Tuning: Stateless compression control - media
[15:18:46] [PASSED] gt_tunings/Tuning: L3 RW flush all Cache
[15:18:46] [PASSED] gt_tunings/Tuning: L3 RW flush all cache - media
[15:18:46] [PASSED] gt_tunings/Tuning: Set STLB Bank Hash Mode to 4KB
[15:18:46] ============== [PASSED] xe_rtp_table_gt_test ===============
[15:18:46] ================== xe_rtp_table_oob_test  ==================
[15:18:46] [PASSED] oob_was/1607983814
[15:18:46] [PASSED] oob_was/16010904313
[15:18:46] [PASSED] oob_was/18022495364
[15:18:46] [PASSED] oob_was/22012773006
[15:18:46] [PASSED] oob_was/14014475959
[15:18:46] [PASSED] oob_was/22011391025
[15:18:46] [PASSED] oob_was/22012727170
[15:18:46] [PASSED] oob_was/22012727685
[15:18:46] [PASSED] oob_was/22016596838
[15:18:46] [PASSED] oob_was/18020744125
[15:18:46] [PASSED] oob_was/1409600907
[15:18:46] [PASSED] oob_was/22014953428
[15:18:46] [PASSED] oob_was/16017236439
[15:18:46] [PASSED] oob_was/14019821291
[15:18:46] [PASSED] oob_was/14015076503
[15:18:46] [PASSED] oob_was/22016122933
[15:18:46] [PASSED] oob_was/14018913170
[15:18:46] [PASSED] oob_was/14018094691
[15:18:46] [PASSED] oob_was/18024947630
[15:18:46] [PASSED] oob_was/16022287689
[15:18:46] [PASSED] oob_was/13011645652
[15:18:46] [PASSED] oob_was/14022293748
[15:18:46] [PASSED] oob_was/22019794406
[15:18:46] [PASSED] oob_was/22019338487
[15:18:46] [PASSED] oob_was/16023588340
[15:18:46] [PASSED] oob_was/14019789679
[15:18:46] [PASSED] oob_was/14022866841
[15:18:46] [PASSED] oob_was/16021333562
[15:18:46] [PASSED] oob_was/14016712196
[15:18:46] [PASSED] oob_was/14015568240
[15:18:46] [PASSED] oob_was/18013179988
[15:18:46] [PASSED] oob_was/1508761755
[15:18:46] [PASSED] oob_was/16023105232
[15:18:46] [PASSED] oob_was/16026508708
[15:18:46] [PASSED] oob_was/14020001231
[15:18:46] [PASSED] oob_was/16023683509
[15:18:46] [PASSED] oob_was/14025515070
[15:18:46] [PASSED] oob_was/15015404425_disable
[15:18:46] [PASSED] oob_was/16026007364
[15:18:46] [PASSED] oob_was/14020316580
[15:18:46] [PASSED] oob_was/14025883347
[15:18:46] [PASSED] oob_was/16029380221
[15:18:46] [PASSED] oob_was/22022079272
[15:18:46] [PASSED] oob_was/16029897822
[15:18:46] [PASSED] oob_was/14027054324
[15:18:46] [PASSED] oob_was/14025941587
[15:18:46] ============== [PASSED] xe_rtp_table_oob_test ==============
[15:18:46] ================ xe_rtp_table_dev_oob_test  ================
[15:18:46] [PASSED] device_oob_was/22010954014
[15:18:46] [PASSED] device_oob_was/15015404425
[15:18:46] [PASSED] device_oob_was/22019338487_display
[15:18:46] [PASSED] device_oob_was/14022085890
[15:18:46] [PASSED] device_oob_was/14026539277
[15:18:46] [PASSED] device_oob_was/14026633728
[15:18:46] [PASSED] device_oob_was/14026746987
[15:18:46] [PASSED] device_oob_was/14026779378
[15:18:46] ============ [PASSED] xe_rtp_table_dev_oob_test ============
[15:18:46] ========== xe_rtp_table_missing_upper_bound_test  ==========
[15:18:46] [PASSED] register_whitelist/WaAllowPMDepthAndInvocationCountAccessFromUMD, 1408556865
[15:18:46] [PASSED] register_whitelist/1508744258, 14012131227, 1808121037
[15:18:46] [PASSED] register_whitelist/1806527549
[15:18:46] [PASSED] register_whitelist/allow_read_ctx_timestamp
[15:18:46] [PASSED] register_whitelist/allow_read_queue_timestamp
[15:18:46] [PASSED] register_whitelist/16014440446
[15:18:46] [PASSED] register_whitelist/16017236439
[15:18:46] [PASSED] register_whitelist/16020183090
[15:18:46] [PASSED] register_whitelist/14024997852
[15:18:46] [PASSED] register_whitelist/14024997852
[15:18:46] ====== [PASSED] xe_rtp_table_missing_upper_bound_test ======
[15:18:46] =============== [PASSED] xe_rtp_tables_test ================
[15:18:46] =================== xe_rtp (3 subtests) ====================
[15:18:46] =================== xe_rtp_rules_tests  ====================
[15:18:46] [PASSED] no
[15:18:46] [PASSED] yes
[15:18:46] [PASSED] no-and-no
[15:18:46] [PASSED] no-and-yes
[15:18:46] [PASSED] yes-and-no
[15:18:46] [PASSED] yes-and-yes
[15:18:46] [PASSED] no-or-no
[15:18:46] [PASSED] no-or-yes
[15:18:46] [PASSED] yes-or-no
[15:18:46] [PASSED] yes-or-yes
[15:18:46] [PASSED] no-yes-or-yes-no
[15:18:46] [PASSED] no-yes-or-yes-yes
[15:18:46] [PASSED] yes-yes-or-no-yes
[15:18:46] [PASSED] yes-yes-or-yes-yes
[15:18:46] [PASSED] no-no-or-yes-or-no
[15:18:46] [PASSED] or
[15:18:46] [PASSED] or-yes
[15:18:46] [PASSED] or-no
[15:18:46] [PASSED] yes-or
[15:18:46] [PASSED] no-or
[15:18:46] [PASSED] no-or-or-yes
[15:18:46] [PASSED] yes-or-or-no
[15:18:46] [PASSED] no-or-or-no
[15:18:46] [PASSED] missing-context-engine-class
[15:18:46] [PASSED] missing-context-engine-class-or-yes
[15:18:46] [PASSED] missing-context-engine-class-or-or-yes
[15:18:46] =============== [PASSED] xe_rtp_rules_tests ================
[15:18:46] =============== xe_rtp_process_to_sr_tests  ================
[15:18:46] [PASSED] coalesce-same-reg
[15:18:46] [PASSED] coalesce-same-reg-literal-and-func
[15:18:46] [PASSED] no-match-no-add
[15:18:46] [PASSED] two-regs-two-entries
[15:18:46] [PASSED] clr-one-set-other
[15:18:46] [PASSED] set-field
[15:18:46] [PASSED] conflict-duplicate
[15:18:46] [PASSED] conflict-not-disjoint
[15:18:46] [PASSED] conflict-not-disjoint-literal-and-func
[15:18:46] [PASSED] conflict-reg-type
[15:18:46] [PASSED] bad-mcr-reg-forced-to-regular
[15:18:46] [PASSED] bad-regular-reg-forced-to-mcr
[15:18:46] =========== [PASSED] xe_rtp_process_to_sr_tests ============
[15:18:46] ================== xe_rtp_process_tests  ===================
[15:18:46] [PASSED] active1
[15:18:46] [PASSED] active2
[15:18:46] [PASSED] active-inactive
[15:18:46] [PASSED] inactive-active
[15:18:46] [PASSED] inactive-active-inactive
[15:18:46] [PASSED] inactive-inactive-inactive
[15:18:46] ============== [PASSED] xe_rtp_process_tests ===============
[15:18:46] ===================== [PASSED] xe_rtp ======================
[15:18:46] ==================== xe_wa (1 subtest) =====================
[15:18:46] ======================== xe_wa_gt  =========================
[15:18:46] [PASSED] TIGERLAKE B0
[15:18:46] [PASSED] DG1 A0
[15:18:46] [PASSED] DG1 B0
[15:18:46] [PASSED] ALDERLAKE_S A0
[15:18:46] [PASSED] ALDERLAKE_S B0
[15:18:46] [PASSED] ALDERLAKE_S C0
[15:18:46] [PASSED] ALDERLAKE_S D0
[15:18:46] [PASSED] ALDERLAKE_P A0
[15:18:46] [PASSED] ALDERLAKE_P B0
[15:18:46] [PASSED] ALDERLAKE_P C0
[15:18:46] [PASSED] ALDERLAKE_S RPLS D0
[15:18:46] [PASSED] ALDERLAKE_P RPLU E0
[15:18:46] [PASSED] DG2 G10 C0
[15:18:46] [PASSED] DG2 G11 B1
[15:18:46] [PASSED] DG2 G12 A1
[15:18:46] [PASSED] METEORLAKE 12.70(Xe_LPG) A0 13.00(Xe_LPM+) A0
[15:18:46] [PASSED] METEORLAKE 12.71(Xe_LPG) A0 13.00(Xe_LPM+) A0
[15:18:46] [PASSED] METEORLAKE 12.74(Xe_LPG+) A0 13.00(Xe_LPM+) A0
[15:18:46] [PASSED] LUNARLAKE 20.04(Xe2_LPG) A0 20.00(Xe2_LPM) A0
[15:18:46] [PASSED] LUNARLAKE 20.04(Xe2_LPG) B0 20.00(Xe2_LPM) A0
[15:18:46] [PASSED] BATTLEMAGE 20.01(Xe2_HPG) A0 13.01(Xe2_HPM) A1
[15:18:46] [PASSED] PANTHERLAKE 30.00(Xe3_LPG) A0 30.00(Xe3_LPM) A0
[15:18:46] ==================== [PASSED] xe_wa_gt =====================
[15:18:46] ====================== [PASSED] xe_wa ======================
[15:18:46] ============================================================
[15:18:46] Testing complete. Ran 822 tests: passed: 794, skipped: 28
[15:18:46] Elapsed time: 36.902s total, 1.825s configuring, 34.362s building, 0.708s running

+ for kcfg in "${kunitconfigs[@]}"
+ [[ ! -f /kernel/drivers/gpu/drm/tests/.kunitconfig ]]
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/tests/.kunitconfig
[15:18:47] Configuring KUnit Kernel ...
Regenerating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[15:18:48] Building KUnit Kernel ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
Building with:
$ make all compile_commands.json scripts_gdb ARCH=um O=.kunit --jobs=48
[15:19:14] Starting KUnit Kernel (1/1)...
[15:19:14] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[15:19:14] ============= refcount_interrupt (4 subtests) ==============
[15:19:14] [PASSED] test_single_irq_change
[15:19:14] [PASSED] test_nested_irq_change
[15:19:14] [PASSED] test_multiple_irq_change
[15:19:14] [PASSED] test_irq_save
[15:19:14] =============== [PASSED] refcount_interrupt ================
[15:19:14] ============ drm_test_pick_cmdline (2 subtests) ============
[15:19:14] [PASSED] drm_test_pick_cmdline_res_1920_1080_60
[15:19:14] =============== drm_test_pick_cmdline_named  ===============
[15:19:14] [PASSED] NTSC
[15:19:14] [PASSED] NTSC-J
[15:19:14] [PASSED] PAL
[15:19:14] [PASSED] PAL-M
[15:19:14] =========== [PASSED] drm_test_pick_cmdline_named ===========
[15:19:14] ============== [PASSED] drm_test_pick_cmdline ==============
[15:19:14] == drm_test_atomic_get_connector_for_encoder (1 subtest) ===
[15:19:14] [PASSED] drm_test_drm_atomic_get_connector_for_encoder
[15:19:14] ==== [PASSED] drm_test_atomic_get_connector_for_encoder ====
[15:19:14] =========== drm_validate_clone_mode (2 subtests) ===========
[15:19:14] ============== drm_test_check_in_clone_mode  ===============
[15:19:14] [PASSED] in_clone_mode
[15:19:14] [PASSED] not_in_clone_mode
[15:19:14] ========== [PASSED] drm_test_check_in_clone_mode ===========
[15:19:14] =============== drm_test_check_valid_clones  ===============
[15:19:14] [PASSED] not_in_clone_mode
[15:19:14] [PASSED] valid_clone
[15:19:14] [PASSED] invalid_clone
[15:19:14] =========== [PASSED] drm_test_check_valid_clones ===========
[15:19:14] ============= [PASSED] drm_validate_clone_mode =============
[15:19:14] ============= drm_validate_modeset (1 subtest) =============
[15:19:14] [PASSED] drm_test_check_connector_changed_modeset
[15:19:14] ============== [PASSED] drm_validate_modeset ===============
[15:19:14] ====== drm_test_bridge_get_current_state (1 subtest) =======
[15:19:14] [PASSED] drm_test_drm_bridge_get_current_state_atomic
[15:19:14] ======== [PASSED] drm_test_bridge_get_current_state ========
[15:19:14] ====== drm_test_bridge_helper_reset_crtc (3 subtests) ======
[15:19:14] [PASSED] drm_test_drm_bridge_helper_reset_crtc_atomic
[15:19:14] [PASSED] drm_test_drm_bridge_helper_reset_crtc_atomic_disabled
[15:19:14] [PASSED] drm_test_drm_bridge_helper_hdmi_output_bus_fmts
[15:19:14] ======== [PASSED] drm_test_bridge_helper_reset_crtc ========
[15:19:14] ============== drm_bridge_alloc (2 subtests) ===============
[15:19:14] [PASSED] drm_test_drm_bridge_alloc_basic
[15:19:14] [PASSED] drm_test_drm_bridge_alloc_get_put
[15:19:14] ================ [PASSED] drm_bridge_alloc =================
[15:19:14] ============= drm_bridge_bus_fmt (5 subtests) ==============
[15:19:14] [PASSED] drm_test_bridge_rgb_yuv_rgb
[15:19:14] [PASSED] drm_test_bridge_must_convert_to_yuv444
[15:19:14] [PASSED] drm_test_bridge_hdmi_auto_rgb
[15:19:14] [PASSED] drm_test_bridge_auto_first
[15:19:14] [PASSED] drm_test_bridge_rgb_yuv_no_path
[15:19:14] =============== [PASSED] drm_bridge_bus_fmt ================
[15:19:14] ============= drm_cmdline_parser (40 subtests) =============
[15:19:14] [PASSED] drm_test_cmdline_force_d_only
[15:19:14] [PASSED] drm_test_cmdline_force_D_only_dvi
[15:19:14] [PASSED] drm_test_cmdline_force_D_only_hdmi
[15:19:14] [PASSED] drm_test_cmdline_force_D_only_not_digital
[15:19:14] [PASSED] drm_test_cmdline_force_e_only
[15:19:14] [PASSED] drm_test_cmdline_res
[15:19:14] [PASSED] drm_test_cmdline_res_vesa
[15:19:14] [PASSED] drm_test_cmdline_res_vesa_rblank
[15:19:14] [PASSED] drm_test_cmdline_res_rblank
[15:19:14] [PASSED] drm_test_cmdline_res_bpp
[15:19:14] [PASSED] drm_test_cmdline_res_refresh
[15:19:14] [PASSED] drm_test_cmdline_res_bpp_refresh
[15:19:14] [PASSED] drm_test_cmdline_res_bpp_refresh_interlaced
[15:19:14] [PASSED] drm_test_cmdline_res_bpp_refresh_margins
[15:19:14] [PASSED] drm_test_cmdline_res_bpp_refresh_force_off
[15:19:14] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on
[15:19:14] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on_analog
[15:19:14] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on_digital
[15:19:14] [PASSED] drm_test_cmdline_res_bpp_refresh_interlaced_margins_force_on
[15:19:14] [PASSED] drm_test_cmdline_res_margins_force_on
[15:19:14] [PASSED] drm_test_cmdline_res_vesa_margins
[15:19:14] [PASSED] drm_test_cmdline_name
[15:19:14] [PASSED] drm_test_cmdline_name_bpp
[15:19:14] [PASSED] drm_test_cmdline_name_option
[15:19:14] [PASSED] drm_test_cmdline_name_bpp_option
[15:19:14] [PASSED] drm_test_cmdline_rotate_0
[15:19:14] [PASSED] drm_test_cmdline_rotate_90
[15:19:14] [PASSED] drm_test_cmdline_rotate_180
[15:19:14] [PASSED] drm_test_cmdline_rotate_270
[15:19:14] [PASSED] drm_test_cmdline_hmirror
[15:19:14] [PASSED] drm_test_cmdline_vmirror
[15:19:14] [PASSED] drm_test_cmdline_margin_options
[15:19:14] [PASSED] drm_test_cmdline_multiple_options
[15:19:14] [PASSED] drm_test_cmdline_bpp_extra_and_option
[15:19:14] [PASSED] drm_test_cmdline_extra_and_option
[15:19:14] [PASSED] drm_test_cmdline_freestanding_options
[15:19:14] [PASSED] drm_test_cmdline_freestanding_force_e_and_options
[15:19:14] [PASSED] drm_test_cmdline_panel_orientation
[15:19:14] ================ drm_test_cmdline_invalid  =================
[15:19:14] [PASSED] margin_only
[15:19:14] [PASSED] interlace_only
[15:19:14] [PASSED] res_missing_x
[15:19:14] [PASSED] res_missing_y
[15:19:14] [PASSED] res_bad_y
[15:19:14] [PASSED] res_missing_y_bpp
[15:19:14] [PASSED] res_bad_bpp
[15:19:14] [PASSED] res_bad_refresh
[15:19:14] [PASSED] res_bpp_refresh_force_on_off
[15:19:14] [PASSED] res_invalid_mode
[15:19:14] [PASSED] res_bpp_wrong_place_mode
[15:19:14] [PASSED] name_bpp_refresh
[15:19:14] [PASSED] name_refresh
[15:19:14] [PASSED] name_refresh_wrong_mode
[15:19:14] [PASSED] name_refresh_invalid_mode
[15:19:14] [PASSED] rotate_multiple
[15:19:14] [PASSED] rotate_invalid_val
[15:19:14] [PASSED] rotate_truncated
[15:19:14] [PASSED] invalid_option
[15:19:14] [PASSED] invalid_tv_option
[15:19:14] [PASSED] truncated_tv_option
[15:19:14] ============ [PASSED] drm_test_cmdline_invalid =============
[15:19:14] =============== drm_test_cmdline_tv_options  ===============
[15:19:14] [PASSED] NTSC
[15:19:14] [PASSED] NTSC_443
[15:19:14] [PASSED] NTSC_J
[15:19:14] [PASSED] PAL
[15:19:14] [PASSED] PAL_M
[15:19:14] [PASSED] PAL_N
[15:19:14] [PASSED] SECAM
[15:19:14] [PASSED] MONO_525
[15:19:14] [PASSED] MONO_625
[15:19:14] =========== [PASSED] drm_test_cmdline_tv_options ===========
[15:19:14] =============== [PASSED] drm_cmdline_parser ================
[15:19:14] ========== drmm_connector_hdmi_init (20 subtests) ==========
[15:19:14] [PASSED] drm_test_connector_hdmi_init_valid
[15:19:14] [PASSED] drm_test_connector_hdmi_init_bpc_8
[15:19:14] [PASSED] drm_test_connector_hdmi_init_bpc_10
[15:19:14] [PASSED] drm_test_connector_hdmi_init_bpc_12
[15:19:14] [PASSED] drm_test_connector_hdmi_init_bpc_invalid
[15:19:14] [PASSED] drm_test_connector_hdmi_init_bpc_null
[15:19:14] [PASSED] drm_test_connector_hdmi_init_formats_empty
[15:19:14] [PASSED] drm_test_connector_hdmi_init_formats_no_rgb
[15:19:14] === drm_test_connector_hdmi_init_formats_yuv420_allowed  ===
[15:19:14] [PASSED] supported_formats=0x9 yuv420_allowed=1
[15:19:14] [PASSED] supported_formats=0x9 yuv420_allowed=0
[15:19:14] [PASSED] supported_formats=0x5 yuv420_allowed=1
[15:19:14] [PASSED] supported_formats=0x5 yuv420_allowed=0
[15:19:14] === [PASSED] drm_test_connector_hdmi_init_formats_yuv420_allowed ===
[15:19:14] [PASSED] drm_test_connector_hdmi_init_null_ddc
[15:19:14] [PASSED] drm_test_connector_hdmi_init_null_product
[15:19:14] [PASSED] drm_test_connector_hdmi_init_null_vendor
[15:19:14] [PASSED] drm_test_connector_hdmi_init_product_length_exact
[15:19:14] [PASSED] drm_test_connector_hdmi_init_product_length_too_long
[15:19:14] [PASSED] drm_test_connector_hdmi_init_product_valid
[15:19:14] [PASSED] drm_test_connector_hdmi_init_vendor_length_exact
[15:19:14] [PASSED] drm_test_connector_hdmi_init_vendor_length_too_long
[15:19:14] [PASSED] drm_test_connector_hdmi_init_vendor_valid
[15:19:14] ========= drm_test_connector_hdmi_init_type_valid  =========
[15:19:14] [PASSED] HDMI-A
[15:19:14] [PASSED] HDMI-B
[15:19:14] ===== [PASSED] drm_test_connector_hdmi_init_type_valid =====
[15:19:14] ======== drm_test_connector_hdmi_init_type_invalid  ========
[15:19:14] [PASSED] Unknown
[15:19:14] [PASSED] VGA
[15:19:14] [PASSED] DVI-I
[15:19:14] [PASSED] DVI-D
[15:19:14] [PASSED] DVI-A
[15:19:14] [PASSED] Composite
[15:19:14] [PASSED] SVIDEO
[15:19:14] [PASSED] LVDS
[15:19:14] [PASSED] Component
[15:19:14] [PASSED] DIN
[15:19:14] [PASSED] DP
[15:19:14] [PASSED] TV
[15:19:14] [PASSED] eDP
[15:19:14] [PASSED] Virtual
[15:19:14] [PASSED] DSI
[15:19:14] [PASSED] DPI
[15:19:14] [PASSED] Writeback
[15:19:14] [PASSED] SPI
[15:19:14] [PASSED] USB
[15:19:14] ==== [PASSED] drm_test_connector_hdmi_init_type_invalid ====
[15:19:14] ============ [PASSED] drmm_connector_hdmi_init =============
[15:19:14] ============= drmm_connector_init (3 subtests) =============
[15:19:14] [PASSED] drm_test_drmm_connector_init
[15:19:14] [PASSED] drm_test_drmm_connector_init_null_ddc
[15:19:14] ========= drm_test_drmm_connector_init_type_valid  =========
[15:19:14] [PASSED] Unknown
[15:19:14] [PASSED] VGA
[15:19:14] [PASSED] DVI-I
[15:19:14] [PASSED] DVI-D
[15:19:14] [PASSED] DVI-A
[15:19:14] [PASSED] Composite
[15:19:14] [PASSED] SVIDEO
[15:19:14] [PASSED] LVDS
[15:19:14] [PASSED] Component
[15:19:14] [PASSED] DIN
[15:19:14] [PASSED] DP
[15:19:14] [PASSED] HDMI-A
[15:19:14] [PASSED] HDMI-B
[15:19:14] [PASSED] TV
[15:19:14] [PASSED] eDP
[15:19:14] [PASSED] Virtual
[15:19:14] [PASSED] DSI
[15:19:14] [PASSED] DPI
[15:19:14] [PASSED] Writeback
[15:19:14] [PASSED] SPI
[15:19:14] [PASSED] USB
[15:19:14] ===== [PASSED] drm_test_drmm_connector_init_type_valid =====
[15:19:14] =============== [PASSED] drmm_connector_init ===============
[15:19:14] ========= drm_connector_dynamic_init (6 subtests) ==========
[15:19:14] [PASSED] drm_test_drm_connector_dynamic_init
[15:19:14] [PASSED] drm_test_drm_connector_dynamic_init_null_ddc
[15:19:14] [PASSED] drm_test_drm_connector_dynamic_init_not_added
[15:19:14] [PASSED] drm_test_drm_connector_dynamic_init_properties
[15:19:14] ===== drm_test_drm_connector_dynamic_init_type_valid  ======
[15:19:14] [PASSED] Unknown
[15:19:14] [PASSED] VGA
[15:19:14] [PASSED] DVI-I
[15:19:14] [PASSED] DVI-D
[15:19:14] [PASSED] DVI-A
[15:19:14] [PASSED] Composite
[15:19:14] [PASSED] SVIDEO
[15:19:14] [PASSED] LVDS
[15:19:14] [PASSED] Component
[15:19:14] [PASSED] DIN
[15:19:14] [PASSED] DP
[15:19:14] [PASSED] HDMI-A
[15:19:14] [PASSED] HDMI-B
[15:19:14] [PASSED] TV
[15:19:14] [PASSED] eDP
[15:19:14] [PASSED] Virtual
[15:19:14] [PASSED] DSI
[15:19:14] [PASSED] DPI
[15:19:14] [PASSED] Writeback
[15:19:14] [PASSED] SPI
[15:19:14] [PASSED] USB
[15:19:14] = [PASSED] drm_test_drm_connector_dynamic_init_type_valid ==
[15:19:14] ======== drm_test_drm_connector_dynamic_init_name  =========
[15:19:14] [PASSED] Unknown
[15:19:14] [PASSED] VGA
[15:19:14] [PASSED] DVI-I
[15:19:14] [PASSED] DVI-D
[15:19:14] [PASSED] DVI-A
[15:19:14] [PASSED] Composite
[15:19:14] [PASSED] SVIDEO
[15:19:14] [PASSED] LVDS
[15:19:14] [PASSED] Component
[15:19:14] [PASSED] DIN
[15:19:14] [PASSED] DP
[15:19:14] [PASSED] HDMI-A
[15:19:14] [PASSED] HDMI-B
[15:19:14] [PASSED] TV
[15:19:14] [PASSED] eDP
[15:19:14] [PASSED] Virtual
[15:19:14] [PASSED] DSI
[15:19:14] [PASSED] DPI
[15:19:14] [PASSED] Writeback
[15:19:14] [PASSED] SPI
[15:19:14] [PASSED] USB
[15:19:14] ==== [PASSED] drm_test_drm_connector_dynamic_init_name =====
[15:19:14] =========== [PASSED] drm_connector_dynamic_init ============
[15:19:14] ==== drm_connector_dynamic_register_early (4 subtests) =====
[15:19:14] [PASSED] drm_test_drm_connector_dynamic_register_early_on_list
[15:19:14] [PASSED] drm_test_drm_connector_dynamic_register_early_defer
[15:19:14] [PASSED] drm_test_drm_connector_dynamic_register_early_no_init
[15:19:14] [PASSED] drm_test_drm_connector_dynamic_register_early_no_mode_object
[15:19:14] ====== [PASSED] drm_connector_dynamic_register_early =======
[15:19:14] ======= drm_connector_dynamic_register (7 subtests) ========
[15:19:14] [PASSED] drm_test_drm_connector_dynamic_register_on_list
[15:19:14] [PASSED] drm_test_drm_connector_dynamic_register_no_defer
[15:19:14] [PASSED] drm_test_drm_connector_dynamic_register_no_init
[15:19:14] [PASSED] drm_test_drm_connector_dynamic_register_mode_object
[15:19:14] [PASSED] drm_test_drm_connector_dynamic_register_sysfs
[15:19:14] [PASSED] drm_test_drm_connector_dynamic_register_sysfs_name
[15:19:14] [PASSED] drm_test_drm_connector_dynamic_register_debugfs
[15:19:14] ========= [PASSED] drm_connector_dynamic_register ==========
[15:19:14] = drm_connector_attach_broadcast_rgb_property (2 subtests) =
[15:19:14] [PASSED] drm_test_drm_connector_attach_broadcast_rgb_property
[15:19:14] [PASSED] drm_test_drm_connector_attach_broadcast_rgb_property_hdmi_connector
[15:19:14] === [PASSED] drm_connector_attach_broadcast_rgb_property ===
[15:19:14] ========== drm_get_tv_mode_from_name (2 subtests) ==========
[15:19:14] ========== drm_test_get_tv_mode_from_name_valid  ===========
[15:19:14] [PASSED] NTSC
[15:19:14] [PASSED] NTSC-443
[15:19:14] [PASSED] NTSC-J
[15:19:14] [PASSED] PAL
[15:19:14] [PASSED] PAL-M
[15:19:14] [PASSED] PAL-N
[15:19:14] [PASSED] SECAM
[15:19:14] [PASSED] Mono
[15:19:14] ====== [PASSED] drm_test_get_tv_mode_from_name_valid =======
[15:19:14] [PASSED] drm_test_get_tv_mode_from_name_truncated
[15:19:14] ============ [PASSED] drm_get_tv_mode_from_name ============
[15:19:14] = drm_test_connector_hdmi_compute_mode_clock (12 subtests) =
[15:19:14] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb
[15:19:14] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_10bpc
[15:19:14] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_10bpc_vic_1
[15:19:14] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_12bpc
[15:19:14] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_12bpc_vic_1
[15:19:14] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_double
[15:19:14] = drm_test_connector_hdmi_compute_mode_clock_yuv420_valid  =
[15:19:14] [PASSED] VIC 96
[15:19:14] [PASSED] VIC 97
[15:19:14] [PASSED] VIC 101
[15:19:14] [PASSED] VIC 102
[15:19:14] [PASSED] VIC 106
[15:19:14] [PASSED] VIC 107
[15:19:14] === [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_valid ===
[15:19:14] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_10_bpc
[15:19:14] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_12_bpc
[15:19:14] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_8_bpc
[15:19:14] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_10_bpc
[15:19:14] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_12_bpc
[15:19:14] === [PASSED] drm_test_connector_hdmi_compute_mode_clock ====
[15:19:14] == drm_hdmi_connector_get_broadcast_rgb_name (2 subtests) ==
[15:19:14] === drm_test_drm_hdmi_connector_get_broadcast_rgb_name  ====
[15:19:14] [PASSED] Automatic
[15:19:14] [PASSED] Full
[15:19:14] [PASSED] Limited 16:235
[15:19:14] === [PASSED] drm_test_drm_hdmi_connector_get_broadcast_rgb_name ===
[15:19:14] [PASSED] drm_test_drm_hdmi_connector_get_broadcast_rgb_name_invalid
[15:19:14] ==== [PASSED] drm_hdmi_connector_get_broadcast_rgb_name ====
[15:19:14] == drm_hdmi_connector_get_output_format_name (2 subtests) ==
[15:19:14] === drm_test_drm_hdmi_connector_get_output_format_name  ====
[15:19:14] [PASSED] RGB
[15:19:14] [PASSED] YUV 4:2:0
[15:19:14] [PASSED] YUV 4:2:2
[15:19:14] [PASSED] YUV 4:4:4
[15:19:14] === [PASSED] drm_test_drm_hdmi_connector_get_output_format_name ===
[15:19:14] [PASSED] drm_test_drm_hdmi_connector_get_output_format_name_invalid
[15:19:14] ==== [PASSED] drm_hdmi_connector_get_output_format_name ====
[15:19:14] ============= drm_damage_helper (21 subtests) ==============
[15:19:14] [PASSED] drm_test_damage_iter_no_damage
[15:19:14] [PASSED] drm_test_damage_iter_no_damage_fractional_src
[15:19:14] [PASSED] drm_test_damage_iter_no_damage_src_moved
[15:19:14] [PASSED] drm_test_damage_iter_no_damage_fractional_src_moved
[15:19:14] [PASSED] drm_test_damage_iter_no_damage_not_visible
[15:19:14] [PASSED] drm_test_damage_iter_no_damage_no_crtc
[15:19:14] [PASSED] drm_test_damage_iter_no_damage_no_fb
[15:19:14] [PASSED] drm_test_damage_iter_simple_damage
[15:19:14] [PASSED] drm_test_damage_iter_single_damage
[15:19:14] [PASSED] drm_test_damage_iter_single_damage_intersect_src
[15:19:14] [PASSED] drm_test_damage_iter_single_damage_outside_src
[15:19:14] [PASSED] drm_test_damage_iter_single_damage_fractional_src
[15:19:14] [PASSED] drm_test_damage_iter_single_damage_intersect_fractional_src
[15:19:14] [PASSED] drm_test_damage_iter_single_damage_outside_fractional_src
[15:19:14] [PASSED] drm_test_damage_iter_single_damage_src_moved
[15:19:14] [PASSED] drm_test_damage_iter_single_damage_fractional_src_moved
[15:19:14] [PASSED] drm_test_damage_iter_damage
[15:19:14] [PASSED] drm_test_damage_iter_damage_one_intersect
[15:19:14] [PASSED] drm_test_damage_iter_damage_one_outside
[15:19:14] [PASSED] drm_test_damage_iter_damage_src_moved
[15:19:14] [PASSED] drm_test_damage_iter_damage_not_visible
[15:19:14] ================ [PASSED] drm_damage_helper ================
[15:19:14] ============== drm_dp_mst_helper (3 subtests) ==============
[15:19:14] ============== drm_test_dp_mst_calc_pbn_mode  ==============
[15:19:14] [PASSED] Clock 154000 BPP 30 DSC disabled
[15:19:14] [PASSED] Clock 234000 BPP 30 DSC disabled
[15:19:14] [PASSED] Clock 297000 BPP 24 DSC disabled
[15:19:14] [PASSED] Clock 332880 BPP 24 DSC enabled
[15:19:14] [PASSED] Clock 324540 BPP 24 DSC enabled
[15:19:14] ========== [PASSED] drm_test_dp_mst_calc_pbn_mode ==========
[15:19:14] ============== drm_test_dp_mst_calc_pbn_div  ===============
[15:19:14] [PASSED] Link rate 2000000 lane count 4
[15:19:14] [PASSED] Link rate 2000000 lane count 2
[15:19:14] [PASSED] Link rate 2000000 lane count 1
[15:19:14] [PASSED] Link rate 1350000 lane count 4
[15:19:14] [PASSED] Link rate 1350000 lane count 2
[15:19:14] [PASSED] Link rate 1350000 lane count 1
[15:19:14] [PASSED] Link rate 1000000 lane count 4
[15:19:14] [PASSED] Link rate 1000000 lane count 2
[15:19:14] [PASSED] Link rate 1000000 lane count 1
[15:19:14] [PASSED] Link rate 810000 lane count 4
[15:19:14] [PASSED] Link rate 810000 lane count 2
[15:19:14] [PASSED] Link rate 810000 lane count 1
[15:19:14] [PASSED] Link rate 540000 lane count 4
[15:19:14] [PASSED] Link rate 540000 lane count 2
[15:19:14] [PASSED] Link rate 540000 lane count 1
[15:19:14] [PASSED] Link rate 270000 lane count 4
[15:19:14] [PASSED] Link rate 270000 lane count 2
[15:19:14] [PASSED] Link rate 270000 lane count 1
[15:19:14] [PASSED] Link rate 162000 lane count 4
[15:19:14] [PASSED] Link rate 162000 lane count 2
[15:19:14] [PASSED] Link rate 162000 lane count 1
[15:19:14] ========== [PASSED] drm_test_dp_mst_calc_pbn_div ===========
[15:19:14] ========= drm_test_dp_mst_sideband_msg_req_decode  =========
[15:19:14] [PASSED] DP_ENUM_PATH_RESOURCES with port number
[15:19:14] [PASSED] DP_POWER_UP_PHY with port number
[15:19:14] [PASSED] DP_POWER_DOWN_PHY with port number
[15:19:14] [PASSED] DP_ALLOCATE_PAYLOAD with SDP stream sinks
[15:19:14] [PASSED] DP_ALLOCATE_PAYLOAD with port number
[15:19:14] [PASSED] DP_ALLOCATE_PAYLOAD with VCPI
[15:19:14] [PASSED] DP_ALLOCATE_PAYLOAD with PBN
[15:19:14] [PASSED] DP_QUERY_PAYLOAD with port number
[15:19:14] [PASSED] DP_QUERY_PAYLOAD with VCPI
[15:19:14] [PASSED] DP_REMOTE_DPCD_READ with port number
[15:19:14] [PASSED] DP_REMOTE_DPCD_READ with DPCD address
[15:19:14] [PASSED] DP_REMOTE_DPCD_READ with max number of bytes
[15:19:14] [PASSED] DP_REMOTE_DPCD_WRITE with port number
[15:19:14] [PASSED] DP_REMOTE_DPCD_WRITE with DPCD address
[15:19:14] [PASSED] DP_REMOTE_DPCD_WRITE with data array
[15:19:14] [PASSED] DP_REMOTE_I2C_READ with port number
[15:19:14] [PASSED] DP_REMOTE_I2C_READ with I2C device ID
[15:19:14] [PASSED] DP_REMOTE_I2C_READ with transactions array
[15:19:14] [PASSED] DP_REMOTE_I2C_WRITE with port number
[15:19:14] [PASSED] DP_REMOTE_I2C_WRITE with I2C device ID
[15:19:14] [PASSED] DP_REMOTE_I2C_WRITE with data array
[15:19:14] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream ID
[15:19:14] [PASSED] DP_QUERY_STREAM_ENC_STATUS with client ID
[15:19:14] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream event
[15:19:14] [PASSED] DP_QUERY_STREAM_ENC_STATUS with valid stream event
[15:19:14] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream behavior
[15:19:14] [PASSED] DP_QUERY_STREAM_ENC_STATUS with a valid stream behavior
[15:19:14] ===== [PASSED] drm_test_dp_mst_sideband_msg_req_decode =====
[15:19:14] ================ [PASSED] drm_dp_mst_helper ================
[15:19:14] ================== drm_exec (7 subtests) ===================
[15:19:14] [PASSED] sanitycheck
[15:19:14] [PASSED] test_lock
[15:19:14] [PASSED] test_lock_unlock
[15:19:14] [PASSED] test_duplicates
[15:19:14] [PASSED] test_prepare
[15:19:14] [PASSED] test_prepare_array
[15:19:14] [PASSED] test_multiple_loops
[15:19:14] ==================== [PASSED] drm_exec =====================
[15:19:14] =========== drm_format_helper_test (17 subtests) ===========
[15:19:14] ============== drm_test_fb_xrgb8888_to_gray8  ==============
[15:19:14] [PASSED] single_pixel_source_buffer
[15:19:14] [PASSED] single_pixel_clip_rectangle
[15:19:14] [PASSED] well_known_colors
[15:19:14] [PASSED] destination_pitch
[15:19:14] ========== [PASSED] drm_test_fb_xrgb8888_to_gray8 ==========
[15:19:14] ============= drm_test_fb_xrgb8888_to_rgb332  ==============
[15:19:14] [PASSED] single_pixel_source_buffer
[15:19:14] [PASSED] single_pixel_clip_rectangle
[15:19:14] [PASSED] well_known_colors
[15:19:14] [PASSED] destination_pitch
[15:19:14] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb332 ==========
[15:19:14] ============= drm_test_fb_xrgb8888_to_rgb565  ==============
[15:19:14] [PASSED] single_pixel_source_buffer
[15:19:14] [PASSED] single_pixel_clip_rectangle
[15:19:14] [PASSED] well_known_colors
[15:19:14] [PASSED] destination_pitch
[15:19:14] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb565 ==========
[15:19:14] ============ drm_test_fb_xrgb8888_to_xrgb1555  =============
[15:19:14] [PASSED] single_pixel_source_buffer
[15:19:14] [PASSED] single_pixel_clip_rectangle
[15:19:14] [PASSED] well_known_colors
[15:19:14] [PASSED] destination_pitch
[15:19:14] ======== [PASSED] drm_test_fb_xrgb8888_to_xrgb1555 =========
[15:19:14] ============ drm_test_fb_xrgb8888_to_argb1555  =============
[15:19:14] [PASSED] single_pixel_source_buffer
[15:19:14] [PASSED] single_pixel_clip_rectangle
[15:19:14] [PASSED] well_known_colors
[15:19:14] [PASSED] destination_pitch
[15:19:14] ======== [PASSED] drm_test_fb_xrgb8888_to_argb1555 =========
[15:19:14] ============ drm_test_fb_xrgb8888_to_rgba5551  =============
[15:19:14] [PASSED] single_pixel_source_buffer
[15:19:14] [PASSED] single_pixel_clip_rectangle
[15:19:14] [PASSED] well_known_colors
[15:19:14] [PASSED] destination_pitch
[15:19:14] ======== [PASSED] drm_test_fb_xrgb8888_to_rgba5551 =========
[15:19:14] ============= drm_test_fb_xrgb8888_to_rgb888  ==============
[15:19:14] [PASSED] single_pixel_source_buffer
[15:19:14] [PASSED] single_pixel_clip_rectangle
[15:19:14] [PASSED] well_known_colors
[15:19:14] [PASSED] destination_pitch
[15:19:14] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb888 ==========
[15:19:14] ============= drm_test_fb_xrgb8888_to_bgr888  ==============
[15:19:14] [PASSED] single_pixel_source_buffer
[15:19:14] [PASSED] single_pixel_clip_rectangle
[15:19:14] [PASSED] well_known_colors
[15:19:14] [PASSED] destination_pitch
[15:19:14] ========= [PASSED] drm_test_fb_xrgb8888_to_bgr888 ==========
[15:19:14] ============ drm_test_fb_xrgb8888_to_argb8888  =============
[15:19:14] [PASSED] single_pixel_source_buffer
[15:19:14] [PASSED] single_pixel_clip_rectangle
[15:19:14] [PASSED] well_known_colors
[15:19:14] [PASSED] destination_pitch
[15:19:14] ======== [PASSED] drm_test_fb_xrgb8888_to_argb8888 =========
[15:19:14] =========== drm_test_fb_xrgb8888_to_xrgb2101010  ===========
[15:19:14] [PASSED] single_pixel_source_buffer
[15:19:14] [PASSED] single_pixel_clip_rectangle
[15:19:14] [PASSED] well_known_colors
[15:19:14] [PASSED] destination_pitch
[15:19:14] ======= [PASSED] drm_test_fb_xrgb8888_to_xrgb2101010 =======
[15:19:14] =========== drm_test_fb_xrgb8888_to_argb2101010  ===========
[15:19:14] [PASSED] single_pixel_source_buffer
[15:19:14] [PASSED] single_pixel_clip_rectangle
[15:19:14] [PASSED] well_known_colors
[15:19:14] [PASSED] destination_pitch
[15:19:14] ======= [PASSED] drm_test_fb_xrgb8888_to_argb2101010 =======
[15:19:14] ============== drm_test_fb_xrgb8888_to_mono  ===============
[15:19:14] [PASSED] single_pixel_source_buffer
[15:19:14] [PASSED] single_pixel_clip_rectangle
[15:19:14] [PASSED] well_known_colors
[15:19:14] [PASSED] destination_pitch
[15:19:14] ========== [PASSED] drm_test_fb_xrgb8888_to_mono ===========
[15:19:14] ==================== drm_test_fb_swab  =====================
[15:19:14] [PASSED] single_pixel_source_buffer
[15:19:14] [PASSED] single_pixel_clip_rectangle
[15:19:14] [PASSED] well_known_colors
[15:19:14] [PASSED] destination_pitch
[15:19:14] ================ [PASSED] drm_test_fb_swab =================
[15:19:14] ============ drm_test_fb_xrgb8888_to_xbgr8888  =============
[15:19:14] [PASSED] single_pixel_source_buffer
[15:19:14] [PASSED] single_pixel_clip_rectangle
[15:19:14] [PASSED] well_known_colors
[15:19:14] [PASSED] destination_pitch
[15:19:14] ======== [PASSED] drm_test_fb_xrgb8888_to_xbgr8888 =========
[15:19:14] ============ drm_test_fb_xrgb8888_to_abgr8888  =============
[15:19:14] [PASSED] single_pixel_source_buffer
[15:19:14] [PASSED] single_pixel_clip_rectangle
[15:19:14] [PASSED] well_known_colors
[15:19:14] [PASSED] destination_pitch
[15:19:14] ======== [PASSED] drm_test_fb_xrgb8888_to_abgr8888 =========
[15:19:14] ================= drm_test_fb_clip_offset  =================
[15:19:14] [PASSED] pass through
[15:19:14] [PASSED] horizontal offset
[15:19:14] [PASSED] vertical offset
[15:19:14] [PASSED] horizontal and vertical offset
[15:19:14] [PASSED] horizontal offset (custom pitch)
[15:19:14] [PASSED] vertical offset (custom pitch)
[15:19:14] [PASSED] horizontal and vertical offset (custom pitch)
[15:19:14] ============= [PASSED] drm_test_fb_clip_offset =============
[15:19:14] =================== drm_test_fb_memcpy  ====================
[15:19:14] [PASSED] single_pixel_source_buffer: XR24 little-endian (0x34325258)
[15:19:14] [PASSED] single_pixel_source_buffer: XRA8 little-endian (0x38415258)
[15:19:14] [PASSED] single_pixel_source_buffer: YU24 little-endian (0x34325559)
[15:19:14] [PASSED] single_pixel_clip_rectangle: XB24 little-endian (0x34324258)
[15:19:14] [PASSED] single_pixel_clip_rectangle: XRA8 little-endian (0x38415258)
[15:19:14] [PASSED] single_pixel_clip_rectangle: YU24 little-endian (0x34325559)
[15:19:14] [PASSED] well_known_colors: XB24 little-endian (0x34324258)
[15:19:14] [PASSED] well_known_colors: XRA8 little-endian (0x38415258)
[15:19:14] [PASSED] well_known_colors: YU24 little-endian (0x34325559)
[15:19:14] [PASSED] destination_pitch: XB24 little-endian (0x34324258)
[15:19:14] [PASSED] destination_pitch: XRA8 little-endian (0x38415258)
[15:19:14] [PASSED] destination_pitch: YU24 little-endian (0x34325559)
[15:19:14] =============== [PASSED] drm_test_fb_memcpy ================
[15:19:14] ============= [PASSED] drm_format_helper_test ==============
[15:19:14] ================= drm_format (18 subtests) =================
[15:19:14] [PASSED] drm_test_format_block_width_invalid
[15:19:14] [PASSED] drm_test_format_block_width_one_plane
[15:19:14] [PASSED] drm_test_format_block_width_two_plane
[15:19:14] [PASSED] drm_test_format_block_width_three_plane
[15:19:14] [PASSED] drm_test_format_block_width_tiled
[15:19:14] [PASSED] drm_test_format_block_height_invalid
[15:19:14] [PASSED] drm_test_format_block_height_one_plane
[15:19:14] [PASSED] drm_test_format_block_height_two_plane
[15:19:14] [PASSED] drm_test_format_block_height_three_plane
[15:19:14] [PASSED] drm_test_format_block_height_tiled
[15:19:14] [PASSED] drm_test_format_min_pitch_invalid
[15:19:14] [PASSED] drm_test_format_min_pitch_one_plane_8bpp
[15:19:14] [PASSED] drm_test_format_min_pitch_one_plane_16bpp
[15:19:14] [PASSED] drm_test_format_min_pitch_one_plane_24bpp
[15:19:14] [PASSED] drm_test_format_min_pitch_one_plane_32bpp
[15:19:14] [PASSED] drm_test_format_min_pitch_two_plane
[15:19:14] [PASSED] drm_test_format_min_pitch_three_plane_8bpp
[15:19:14] [PASSED] drm_test_format_min_pitch_tiled
[15:19:14] =================== [PASSED] drm_format ====================
[15:19:14] ============== drm_framebuffer (10 subtests) ===============
[15:19:14] ========== drm_test_framebuffer_check_src_coords  ==========
[15:19:14] [PASSED] Success: source fits into fb
[15:19:14] [PASSED] Fail: overflowing fb with x-axis coordinate
[15:19:14] [PASSED] Fail: overflowing fb with y-axis coordinate
[15:19:14] [PASSED] Fail: overflowing fb with source width
[15:19:14] [PASSED] Fail: overflowing fb with source height
[15:19:14] ====== [PASSED] drm_test_framebuffer_check_src_coords ======
[15:19:14] [PASSED] drm_test_framebuffer_cleanup
[15:19:14] =============== drm_test_framebuffer_create  ===============
[15:19:14] [PASSED] ABGR8888 normal sizes
[15:19:14] [PASSED] ABGR8888 max sizes
[15:19:14] [PASSED] ABGR8888 pitch greater than min required
[15:19:14] [PASSED] ABGR8888 pitch less than min required
[15:19:14] [PASSED] ABGR8888 Invalid width
[15:19:14] [PASSED] ABGR8888 Invalid buffer handle
[15:19:14] [PASSED] No pixel format
[15:19:14] [PASSED] ABGR8888 Width 0
[15:19:14] [PASSED] ABGR8888 Height 0
[15:19:14] [PASSED] ABGR8888 Out of bound height * pitch combination
[15:19:14] [PASSED] ABGR8888 Large buffer offset
[15:19:14] [PASSED] ABGR8888 Buffer offset for inexistent plane
[15:19:14] [PASSED] ABGR8888 Invalid flag
[15:19:14] [PASSED] ABGR8888 Set DRM_MODE_FB_MODIFIERS without modifiers
[15:19:14] [PASSED] ABGR8888 Valid buffer modifier
[15:19:14] [PASSED] ABGR8888 Invalid buffer modifier(DRM_FORMAT_MOD_SAMSUNG_64_32_TILE)
[15:19:14] [PASSED] ABGR8888 Extra pitches without DRM_MODE_FB_MODIFIERS
[15:19:14] [PASSED] ABGR8888 Extra pitches with DRM_MODE_FB_MODIFIERS
[15:19:14] [PASSED] NV12 Normal sizes
[15:19:14] [PASSED] NV12 Max sizes
[15:19:14] [PASSED] NV12 Invalid pitch
[15:19:14] [PASSED] NV12 Invalid modifier/missing DRM_MODE_FB_MODIFIERS flag
[15:19:14] [PASSED] NV12 different  modifier per-plane
[15:19:14] [PASSED] NV12 with DRM_FORMAT_MOD_SAMSUNG_64_32_TILE
[15:19:14] [PASSED] NV12 Valid modifiers without DRM_MODE_FB_MODIFIERS
[15:19:14] [PASSED] NV12 Modifier for inexistent plane
[15:19:14] [PASSED] NV12 Handle for inexistent plane
[15:19:14] [PASSED] NV12 Handle for inexistent plane without DRM_MODE_FB_MODIFIERS
[15:19:14] [PASSED] YVU420 DRM_MODE_FB_MODIFIERS set without modifier
[15:19:14] [PASSED] YVU420 Normal sizes
[15:19:14] [PASSED] YVU420 Max sizes
[15:19:14] [PASSED] YVU420 Invalid pitch
[15:19:14] [PASSED] YVU420 Different pitches
[15:19:14] [PASSED] YVU420 Different buffer offsets/pitches
[15:19:14] [PASSED] YVU420 Modifier set just for plane 0, without DRM_MODE_FB_MODIFIERS
[15:19:14] [PASSED] YVU420 Modifier set just for planes 0, 1, without DRM_MODE_FB_MODIFIERS
[15:19:14] [PASSED] YVU420 Modifier set just for plane 0, 1, with DRM_MODE_FB_MODIFIERS
[15:19:14] [PASSED] YVU420 Valid modifier
[15:19:14] [PASSED] YVU420 Different modifiers per plane
[15:19:14] [PASSED] YVU420 Modifier for inexistent plane
[15:19:14] [PASSED] YUV420_10BIT Invalid modifier(DRM_FORMAT_MOD_LINEAR)
[15:19:14] [PASSED] X0L2 Normal sizes
[15:19:14] [PASSED] X0L2 Max sizes
[15:19:14] [PASSED] X0L2 Invalid pitch
[15:19:14] [PASSED] X0L2 Pitch greater than minimum required
[15:19:14] [PASSED] X0L2 Handle for inexistent plane
[15:19:14] [PASSED] X0L2 Offset for inexistent plane, without DRM_MODE_FB_MODIFIERS set
[15:19:14] [PASSED] X0L2 Modifier without DRM_MODE_FB_MODIFIERS set
[15:19:14] [PASSED] X0L2 Valid modifier
[15:19:14] [PASSED] X0L2 Modifier for inexistent plane
[15:19:14] =========== [PASSED] drm_test_framebuffer_create ===========
[15:19:14] [PASSED] drm_test_framebuffer_free
[15:19:14] [PASSED] drm_test_framebuffer_init
[15:19:14] [PASSED] drm_test_framebuffer_init_bad_format
[15:19:14] [PASSED] drm_test_framebuffer_init_dev_mismatch
[15:19:14] [PASSED] drm_test_framebuffer_lookup
[15:19:14] [PASSED] drm_test_framebuffer_lookup_inexistent
[15:19:14] [PASSED] drm_test_framebuffer_modifiers_not_supported
[15:19:14] ================= [PASSED] drm_framebuffer =================
[15:19:14] ================ drm_gem_shmem (8 subtests) ================
[15:19:14] [PASSED] drm_gem_shmem_test_obj_create
[15:19:14] [PASSED] drm_gem_shmem_test_obj_create_private
[15:19:14] [PASSED] drm_gem_shmem_test_pin_pages
[15:19:14] [PASSED] drm_gem_shmem_test_vmap
[15:19:14] [PASSED] drm_gem_shmem_test_get_sg_table
[15:19:14] [PASSED] drm_gem_shmem_test_get_pages_sgt
[15:19:14] [PASSED] drm_gem_shmem_test_madvise
[15:19:14] [PASSED] drm_gem_shmem_test_purge
[15:19:14] ================== [PASSED] drm_gem_shmem ==================
[15:19:14] === drm_atomic_helper_connector_hdmi_check (29 subtests) ===
[15:19:14] [PASSED] drm_test_check_broadcast_rgb_auto_cea_mode
[15:19:14] [PASSED] drm_test_check_broadcast_rgb_auto_cea_mode_vic_1
[15:19:14] [PASSED] drm_test_check_broadcast_rgb_full_cea_mode
[15:19:14] [PASSED] drm_test_check_broadcast_rgb_full_cea_mode_vic_1
[15:19:14] [PASSED] drm_test_check_broadcast_rgb_limited_cea_mode
[15:19:14] [PASSED] drm_test_check_broadcast_rgb_limited_cea_mode_vic_1
[15:19:14] ====== drm_test_check_broadcast_rgb_cea_mode_yuv420  =======
[15:19:14] [PASSED] Automatic
[15:19:14] [PASSED] Full
[15:19:14] [PASSED] Limited 16:235
[15:19:14] == [PASSED] drm_test_check_broadcast_rgb_cea_mode_yuv420 ===
[15:19:14] [PASSED] drm_test_check_broadcast_rgb_crtc_mode_changed
[15:19:14] [PASSED] drm_test_check_broadcast_rgb_crtc_mode_not_changed
[15:19:14] [PASSED] drm_test_check_disable_connector
[15:19:14] [PASSED] drm_test_check_hdmi_funcs_reject_rate
[15:19:14] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_rgb
[15:19:14] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_yuv420
[15:19:14] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_ignore_yuv422
[15:19:14] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_ignore_yuv420
[15:19:14] [PASSED] drm_test_check_driver_unsupported_fallback_yuv420
[15:19:14] [PASSED] drm_test_check_output_bpc_crtc_mode_changed
[15:19:14] [PASSED] drm_test_check_output_bpc_crtc_mode_not_changed
[15:19:14] [PASSED] drm_test_check_output_bpc_dvi
[15:19:14] [PASSED] drm_test_check_output_bpc_format_vic_1
[15:19:14] [PASSED] drm_test_check_output_bpc_format_display_8bpc_only
[15:19:14] [PASSED] drm_test_check_output_bpc_format_display_rgb_only
[15:19:14] [PASSED] drm_test_check_output_bpc_format_driver_8bpc_only
[15:19:14] [PASSED] drm_test_check_output_bpc_format_driver_rgb_only
[15:19:14] [PASSED] drm_test_check_tmds_char_rate_rgb_8bpc
[15:19:14] [PASSED] drm_test_check_tmds_char_rate_rgb_10bpc
[15:19:14] [PASSED] drm_test_check_tmds_char_rate_rgb_12bpc
[15:19:14] ============ drm_test_check_hdmi_color_format  =============
[15:19:14] [PASSED] AUTO -> RGB
[15:19:14] [PASSED] YCBCR422 -> YUV422
[15:19:14] [PASSED] YCBCR420 -> YUV420
[15:19:14] [PASSED] YCBCR444 -> YUV444
[15:19:14] [PASSED] RGB -> RGB
[15:19:14] ======== [PASSED] drm_test_check_hdmi_color_format =========
[15:19:14] ======== drm_test_check_hdmi_color_format_420_only  ========
[15:19:14] [PASSED] RGB should fail
[15:19:14] [PASSED] YUV444 should fail
[15:19:14] [PASSED] YUV422 should fail
[15:19:14] [PASSED] YUV420 should work
[15:19:14] ==== [PASSED] drm_test_check_hdmi_color_format_420_only ====
[15:19:14] ===== [PASSED] drm_atomic_helper_connector_hdmi_check ======
[15:19:14] === drm_atomic_helper_connector_hdmi_reset (6 subtests) ====
[15:19:14] [PASSED] drm_test_check_broadcast_rgb_value
[15:19:14] [PASSED] drm_test_check_bpc_8_value
[15:19:14] [PASSED] drm_test_check_bpc_10_value
[15:19:14] [PASSED] drm_test_check_bpc_12_value
[15:19:14] [PASSED] drm_test_check_format_value
[15:19:14] [PASSED] drm_test_check_tmds_char_value
[15:19:14] ===== [PASSED] drm_atomic_helper_connector_hdmi_reset ======
[15:19:14] = drm_atomic_helper_connector_hdmi_mode_valid (7 subtests) =
[15:19:14] [PASSED] drm_test_check_mode_valid
[15:19:14] [PASSED] drm_test_check_mode_valid_reject
[15:19:14] [PASSED] drm_test_check_mode_valid_reject_rate
[15:19:14] [PASSED] drm_test_check_mode_valid_reject_max_clock
[15:19:14] [PASSED] drm_test_check_mode_valid_yuv420_only_max_clock
[15:19:14] [PASSED] drm_test_check_mode_valid_reject_yuv420_only_connector
[15:19:14] [PASSED] drm_test_check_mode_valid_accept_yuv420_also_connector_rgb
[15:19:14] === [PASSED] drm_atomic_helper_connector_hdmi_mode_valid ===
[15:19:14] = drm_atomic_helper_connector_hdmi_infoframes (5 subtests) =
[15:19:14] [PASSED] drm_test_check_infoframes
[15:19:14] [PASSED] drm_test_check_reject_avi_infoframe
[15:19:14] [PASSED] drm_test_check_reject_hdr_infoframe_bpc_8
[15:19:14] [PASSED] drm_test_check_reject_hdr_infoframe_bpc_10
[15:19:14] [PASSED] drm_test_check_reject_audio_infoframe
[15:19:14] === [PASSED] drm_atomic_helper_connector_hdmi_infoframes ===
[15:19:14] ================= drm_managed (2 subtests) =================
[15:19:14] [PASSED] drm_test_managed_release_action
[15:19:14] [PASSED] drm_test_managed_run_action
[15:19:14] =================== [PASSED] drm_managed ===================
[15:19:14] =================== drm_mm (6 subtests) ====================
[15:19:14] [PASSED] drm_test_mm_init
[15:19:14] [PASSED] drm_test_mm_debug
[15:19:14] [PASSED] drm_test_mm_align32
[15:19:14] [PASSED] drm_test_mm_align64
[15:19:14] [PASSED] drm_test_mm_lowest
[15:19:14] [PASSED] drm_test_mm_highest
[15:19:14] ===================== [PASSED] drm_mm ======================
[15:19:14] ============= drm_modes_analog_tv (5 subtests) =============
[15:19:14] [PASSED] drm_test_modes_analog_tv_mono_576i
[15:19:14] [PASSED] drm_test_modes_analog_tv_ntsc_480i
[15:19:14] [PASSED] drm_test_modes_analog_tv_ntsc_480i_inlined
[15:19:14] [PASSED] drm_test_modes_analog_tv_pal_576i
[15:19:14] [PASSED] drm_test_modes_analog_tv_pal_576i_inlined
[15:19:14] =============== [PASSED] drm_modes_analog_tv ===============
[15:19:14] ============== drm_panic_helper (3 subtests) ===============
[15:19:14] ============= drm_test_panic_screen_user_map  ==============
[15:19:14] [PASSED] Panic screen user, mode: 1024 x 768 	XR24 little-endian (0x34325258)
[15:19:14] [PASSED] Panic screen user, mode: 494 x 494 	XR24 little-endian (0x34325258)
[15:19:14] [PASSED] Panic screen user, mode: 1920 x 1080 	XR24 little-endian (0x34325258)
[15:19:14] [PASSED] Panic screen user, mode: 1024 x 768 	RG16 little-endian (0x36314752)
[15:19:14] [PASSED] Panic screen user, mode: 1024 x 768 	RG24 little-endian (0x34324752)
[15:19:14] [PASSED] Panic screen kmsg, mode: 1024 x 768 	XR24 little-endian (0x34325258)
[15:19:14] [PASSED] Panic screen kmsg, mode: 494 x 494 	XR24 little-endian (0x34325258)
[15:19:14] [PASSED] Panic screen kmsg, mode: 1920 x 1080 	XR24 little-endian (0x34325258)
[15:19:14] [PASSED] Panic screen kmsg, mode: 1024 x 768 	RG16 little-endian (0x36314752)
[15:19:14] [PASSED] Panic screen kmsg, mode: 1024 x 768 	RG24 little-endian (0x34324752)
[15:19:14] ========= [PASSED] drm_test_panic_screen_user_map ==========
[15:19:14] ============= drm_test_panic_screen_user_page  =============
[15:19:14] [PASSED] Panic screen user, mode: 1024 x 768 	XR24 little-endian (0x34325258)
[15:19:14] [PASSED] Panic screen user, mode: 494 x 494 	XR24 little-endian (0x34325258)
[15:19:14] [PASSED] Panic screen user, mode: 1920 x 1080 	XR24 little-endian (0x34325258)
[15:19:14] [PASSED] Panic screen user, mode: 1024 x 768 	RG16 little-endian (0x36314752)
[15:19:14] [PASSED] Panic screen user, mode: 1024 x 768 	RG24 little-endian (0x34324752)
[15:19:14] [PASSED] Panic screen kmsg, mode: 1024 x 768 	XR24 little-endian (0x34325258)
[15:19:14] [PASSED] Panic screen kmsg, mode: 494 x 494 	XR24 little-endian (0x34325258)
[15:19:14] [PASSED] Panic screen kmsg, mode: 1920 x 1080 	XR24 little-endian (0x34325258)
[15:19:14] [PASSED] Panic screen kmsg, mode: 1024 x 768 	RG16 little-endian (0x36314752)
[15:19:14] [PASSED] Panic screen kmsg, mode: 1024 x 768 	RG24 little-endian (0x34324752)
[15:19:14] ========= [PASSED] drm_test_panic_screen_user_page =========
[15:19:14] ========== drm_test_panic_screen_user_set_pixel  ===========
[15:19:14] [PASSED] Panic screen user, mode: 1024 x 768 	XR24 little-endian (0x34325258)
[15:19:14] [PASSED] Panic screen user, mode: 494 x 494 	XR24 little-endian (0x34325258)
[15:19:14] [PASSED] Panic screen user, mode: 1920 x 1080 	XR24 little-endian (0x34325258)
[15:19:14] [PASSED] Panic screen user, mode: 1024 x 768 	RG16 little-endian (0x36314752)
[15:19:14] [PASSED] Panic screen user, mode: 1024 x 768 	RG24 little-endian (0x34324752)
[15:19:14] [PASSED] Panic screen kmsg, mode: 1024 x 768 	XR24 little-endian (0x34325258)
[15:19:14] [PASSED] Panic screen kmsg, mode: 494 x 494 	XR24 little-endian (0x34325258)
[15:19:14] [PASSED] Panic screen kmsg, mode: 1920 x 1080 	XR24 little-endian (0x34325258)
[15:19:14] [PASSED] Panic screen kmsg, mode: 1024 x 768 	RG16 little-endian (0x36314752)
[15:19:14] [PASSED] Panic screen kmsg, mode: 1024 x 768 	RG24 little-endian (0x34324752)
[15:19:14] ====== [PASSED] drm_test_panic_screen_user_set_pixel =======
[15:19:14] ================ [PASSED] drm_panic_helper =================
[15:19:14] ============== drm_plane_helper (2 subtests) ===============
[15:19:14] =============== drm_test_check_plane_state  ================
[15:19:14] [PASSED] clipping_simple
[15:19:14] [PASSED] clipping_rotate_reflect
[15:19:14] [PASSED] positioning_simple
[15:19:14] [PASSED] upscaling
[15:19:14] [PASSED] downscaling
[15:19:14] [PASSED] rounding1
[15:19:14] [PASSED] rounding2
[15:19:14] [PASSED] rounding3
[15:19:14] [PASSED] rounding4
[15:19:14] =========== [PASSED] drm_test_check_plane_state ============
[15:19:14] =========== drm_test_check_invalid_plane_state  ============
[15:19:14] [PASSED] positioning_invalid
[15:19:14] [PASSED] upscaling_invalid
[15:19:14] [PASSED] downscaling_invalid
[15:19:14] ======= [PASSED] drm_test_check_invalid_plane_state ========
[15:19:14] ================ [PASSED] drm_plane_helper =================
[15:19:14] ====== drm_connector_helper_tv_get_modes (1 subtest) =======
[15:19:14] ====== drm_test_connector_helper_tv_get_modes_check  =======
[15:19:14] [PASSED] None
[15:19:14] [PASSED] PAL
[15:19:14] [PASSED] NTSC
[15:19:14] [PASSED] Both, NTSC Default
[15:19:14] [PASSED] Both, PAL Default
[15:19:14] [PASSED] Both, NTSC Default, with PAL on command-line
[15:19:14] [PASSED] Both, PAL Default, with NTSC on command-line
[15:19:14] == [PASSED] drm_test_connector_helper_tv_get_modes_check ===
[15:19:14] ======== [PASSED] drm_connector_helper_tv_get_modes ========
[15:19:14] ================== drm_rect (9 subtests) ===================
[15:19:14] [PASSED] drm_test_rect_clip_scaled_div_by_zero
[15:19:14] [PASSED] drm_test_rect_clip_scaled_not_clipped
[15:19:14] [PASSED] drm_test_rect_clip_scaled_clipped
[15:19:14] [PASSED] drm_test_rect_clip_scaled_signed_vs_unsigned
[15:19:14] ================= drm_test_rect_intersect  =================
[15:19:14] [PASSED] top-left x bottom-right: 2x2+1+1 x 2x2+0+0
[15:19:14] [PASSED] top-right x bottom-left: 2x2+0+0 x 2x2+1-1
[15:19:14] [PASSED] bottom-left x top-right: 2x2+1-1 x 2x2+0+0
[15:19:14] [PASSED] bottom-right x top-left: 2x2+0+0 x 2x2+1+1
[15:19:14] [PASSED] right x left: 2x1+0+0 x 3x1+1+0
[15:19:14] [PASSED] left x right: 3x1+1+0 x 2x1+0+0
[15:19:14] [PASSED] up x bottom: 1x2+0+0 x 1x3+0-1
[15:19:14] [PASSED] bottom x up: 1x3+0-1 x 1x2+0+0
[15:19:14] [PASSED] touching corner: 1x1+0+0 x 2x2+1+1
[15:19:14] [PASSED] touching side: 1x1+0+0 x 1x1+1+0
[15:19:14] [PASSED] equal rects: 2x2+0+0 x 2x2+0+0
[15:19:14] [PASSED] inside another: 2x2+0+0 x 1x1+1+1
[15:19:14] [PASSED] far away: 1x1+0+0 x 1x1+3+6
[15:19:14] [PASSED] points intersecting: 0x0+5+10 x 0x0+5+10
[15:19:14] [PASSED] points not intersecting: 0x0+0+0 x 0x0+5+10
[15:19:14] ============= [PASSED] drm_test_rect_intersect =============
[15:19:14] ================ drm_test_rect_calc_hscale  ================
[15:19:14] [PASSED] normal use
[15:19:14] [PASSED] out of max range
[15:19:14] [PASSED] out of min range
[15:19:14] [PASSED] zero dst
[15:19:14] [PASSED] negative src
[15:19:14] [PASSED] negative dst
[15:19:14] ============ [PASSED] drm_test_rect_calc_hscale ============
[15:19:14] ================ drm_test_rect_calc_vscale  ================
[15:19:14] [PASSED] normal use
[15:19:14] [PASSED] out of max range
[15:19:14] [PASSED] out of min range
[15:19:14] [PASSED] zero dst
[15:19:14] [PASSED] negative src
[15:19:14] [PASSED] negative dst
[15:19:14] ============ [PASSED] drm_test_rect_calc_vscale ============
[15:19:14] ================== drm_test_rect_rotate  ===================
[15:19:14] [PASSED] reflect-x
[15:19:14] [PASSED] reflect-y
[15:19:14] [PASSED] rotate-0
[15:19:14] [PASSED] rotate-90
[15:19:14] [PASSED] rotate-180
[15:19:14] [PASSED] rotate-270
[15:19:14] ============== [PASSED] drm_test_rect_rotate ===============
[15:19:14] ================ drm_test_rect_rotate_inv  =================
[15:19:14] [PASSED] reflect-x
[15:19:14] [PASSED] reflect-y
[15:19:14] [PASSED] rotate-0
[15:19:14] [PASSED] rotate-90
[15:19:14] [PASSED] rotate-180
[15:19:14] [PASSED] rotate-270
[15:19:14] ============ [PASSED] drm_test_rect_rotate_inv =============
[15:19:14] ==================== [PASSED] drm_rect =====================
[15:19:14] ============ drm_sysfb_modeset_test (1 subtest) ============
[15:19:14] ============ drm_test_sysfb_build_fourcc_list  =============
[15:19:14] [PASSED] no native formats
[15:19:14] [PASSED] XRGB8888 as native format
[15:19:14] [PASSED] remove duplicates
[15:19:14] [PASSED] convert alpha formats
[15:19:14] [PASSED] random formats
[15:19:14] ======== [PASSED] drm_test_sysfb_build_fourcc_list =========
[15:19:14] ============= [PASSED] drm_sysfb_modeset_test ==============
[15:19:14] ================== drm_fixp (2 subtests) ===================
[15:19:14] [PASSED] drm_test_int2fixp
[15:19:14] [PASSED] drm_test_sm2fixp
[15:19:14] ==================== [PASSED] drm_fixp =====================
[15:19:14] ============================================================
[15:19:14] Testing complete. Ran 671 tests: passed: 671
[15:19:14] Elapsed time: 27.310s total, 1.838s configuring, 25.055s building, 0.412s running

+ for kcfg in "${kunitconfigs[@]}"
+ [[ ! -f /kernel/drivers/gpu/drm/ttm/tests/.kunitconfig ]]
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/ttm/tests/.kunitconfig
[15:19:14] Configuring KUnit Kernel ...
Regenerating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[15:19:16] Building KUnit Kernel ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
Building with:
$ make all compile_commands.json scripts_gdb ARCH=um O=.kunit --jobs=48
[15:19:26] Starting KUnit Kernel (1/1)...
[15:19:26] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[15:19:26] ============= refcount_interrupt (4 subtests) ==============
[15:19:26] [PASSED] test_single_irq_change
[15:19:26] [PASSED] test_nested_irq_change
[15:19:26] [PASSED] test_multiple_irq_change
[15:19:26] [PASSED] test_irq_save
[15:19:26] =============== [PASSED] refcount_interrupt ================
[15:19:26] ================= ttm_device (5 subtests) ==================
[15:19:26] [PASSED] ttm_device_init_basic
[15:19:26] [PASSED] ttm_device_init_multiple
[15:19:26] [PASSED] ttm_device_fini_basic
[15:19:26] [PASSED] ttm_device_init_no_vma_man
[15:19:26] ================== ttm_device_init_pools  ==================
[15:19:26] [PASSED] No DMA allocations, no DMA32 required
[15:19:26] [PASSED] DMA allocations, DMA32 required
[15:19:26] [PASSED] No DMA allocations, DMA32 required
[15:19:26] [PASSED] DMA allocations, no DMA32 required
[15:19:26] ============== [PASSED] ttm_device_init_pools ==============
[15:19:26] =================== [PASSED] ttm_device ====================
[15:19:26] ================== ttm_pool (8 subtests) ===================
[15:19:26] ================== ttm_pool_alloc_basic  ===================
[15:19:26] [PASSED] One page
[15:19:26] [PASSED] More than one page
[15:19:26] [PASSED] Above the allocation limit
[15:19:26] [PASSED] One page, with coherent DMA mappings enabled
[15:19:26] [PASSED] Above the allocation limit, with coherent DMA mappings enabled
[15:19:26] ============== [PASSED] ttm_pool_alloc_basic ===============
[15:19:26] ============== ttm_pool_alloc_basic_dma_addr  ==============
[15:19:26] [PASSED] One page
[15:19:26] [PASSED] More than one page
[15:19:26] [PASSED] Above the allocation limit
[15:19:26] [PASSED] One page, with coherent DMA mappings enabled
[15:19:26] [PASSED] Above the allocation limit, with coherent DMA mappings enabled
[15:19:26] ========== [PASSED] ttm_pool_alloc_basic_dma_addr ==========
[15:19:26] [PASSED] ttm_pool_alloc_order_caching_match
[15:19:26] [PASSED] ttm_pool_alloc_caching_mismatch
[15:19:26] [PASSED] ttm_pool_alloc_order_mismatch
[15:19:26] [PASSED] ttm_pool_free_dma_alloc
[15:19:26] [PASSED] ttm_pool_free_no_dma_alloc
[15:19:26] [PASSED] ttm_pool_fini_basic
[15:19:26] ==================== [PASSED] ttm_pool =====================
[15:19:26] ================ ttm_resource (8 subtests) =================
[15:19:26] ================= ttm_resource_init_basic  =================
[15:19:26] [PASSED] Init resource in TTM_PL_SYSTEM
[15:19:26] [PASSED] Init resource in TTM_PL_VRAM
[15:19:26] [PASSED] Init resource in a private placement
[15:19:26] [PASSED] Init resource in TTM_PL_SYSTEM, set placement flags
[15:19:26] ============= [PASSED] ttm_resource_init_basic =============
[15:19:26] [PASSED] ttm_resource_init_pinned
[15:19:26] [PASSED] ttm_resource_fini_basic
[15:19:26] [PASSED] ttm_resource_manager_init_basic
[15:19:26] [PASSED] ttm_resource_manager_usage_basic
[15:19:26] [PASSED] ttm_resource_manager_set_used_basic
[15:19:26] [PASSED] ttm_sys_man_alloc_basic
[15:19:26] [PASSED] ttm_sys_man_free_basic
[15:19:26] ================== [PASSED] ttm_resource ===================
[15:19:26] =================== ttm_tt (15 subtests) ===================
[15:19:26] ==================== ttm_tt_init_basic  ====================
[15:19:26] [PASSED] Page-aligned size
[15:19:26] [PASSED] Extra pages requested
[15:19:26] ================ [PASSED] ttm_tt_init_basic ================
[15:19:26] [PASSED] ttm_tt_init_misaligned
[15:19:26] [PASSED] ttm_tt_fini_basic
[15:19:26] [PASSED] ttm_tt_fini_sg
[15:19:26] [PASSED] ttm_tt_fini_shmem
[15:19:26] [PASSED] ttm_tt_create_basic
[15:19:26] [PASSED] ttm_tt_create_invalid_bo_type
[15:19:26] [PASSED] ttm_tt_create_ttm_exists
[15:19:26] [PASSED] ttm_tt_create_failed
[15:19:26] [PASSED] ttm_tt_destroy_basic
[15:19:26] [PASSED] ttm_tt_populate_null_ttm
[15:19:26] [PASSED] ttm_tt_populate_populated_ttm
[15:19:26] [PASSED] ttm_tt_unpopulate_basic
[15:19:26] [PASSED] ttm_tt_unpopulate_empty_ttm
[15:19:26] [PASSED] ttm_tt_swapin_basic
[15:19:26] ===================== [PASSED] ttm_tt ======================
[15:19:26] =================== ttm_bo (14 subtests) ===================
[15:19:26] =========== ttm_bo_reserve_optimistic_no_ticket  ===========
[15:19:26] [PASSED] Cannot be interrupted and sleeps
[15:19:26] [PASSED] Cannot be interrupted, locks straight away
[15:19:26] [PASSED] Can be interrupted, sleeps
[15:19:26] ======= [PASSED] ttm_bo_reserve_optimistic_no_ticket =======
[15:19:26] [PASSED] ttm_bo_reserve_locked_no_sleep
[15:19:26] [PASSED] ttm_bo_reserve_no_wait_ticket
[15:19:26] [PASSED] ttm_bo_reserve_double_resv
[15:19:26] [PASSED] ttm_bo_reserve_interrupted
[15:19:26] [PASSED] ttm_bo_reserve_deadlock
[15:19:26] [PASSED] ttm_bo_unreserve_basic
[15:19:26] [PASSED] ttm_bo_unreserve_pinned
[15:19:26] [PASSED] ttm_bo_unreserve_bulk
[15:19:26] [PASSED] ttm_bo_fini_basic
[15:19:26] [PASSED] ttm_bo_fini_shared_resv
[15:19:26] [PASSED] ttm_bo_pin_basic
[15:19:26] [PASSED] ttm_bo_pin_unpin_resource
[15:19:26] [PASSED] ttm_bo_multiple_pin_one_unpin
[15:19:26] ===================== [PASSED] ttm_bo ======================
[15:19:26] ============== ttm_bo_validate (22 subtests) ===============
[15:19:26] ============== ttm_bo_init_reserved_sys_man  ===============
[15:19:26] [PASSED] Buffer object for userspace
[15:19:26] [PASSED] Kernel buffer object
[15:19:26] [PASSED] Shared buffer object
[15:19:26] ========== [PASSED] ttm_bo_init_reserved_sys_man ===========
[15:19:26] ============== ttm_bo_init_reserved_mock_man  ==============
[15:19:26] [PASSED] Buffer object for userspace
[15:19:26] [PASSED] Kernel buffer object
[15:19:26] [PASSED] Shared buffer object
[15:19:26] ========== [PASSED] ttm_bo_init_reserved_mock_man ==========
[15:19:26] [PASSED] ttm_bo_init_reserved_resv
[15:19:26] ================== ttm_bo_validate_basic  ==================
[15:19:26] [PASSED] Buffer object for userspace
[15:19:26] [PASSED] Kernel buffer object
[15:19:26] [PASSED] Shared buffer object
[15:19:26] ============== [PASSED] ttm_bo_validate_basic ==============
[15:19:26] [PASSED] ttm_bo_validate_invalid_placement
[15:19:26] ============= ttm_bo_validate_same_placement  ==============
[15:19:26] [PASSED] System manager
[15:19:26] [PASSED] VRAM manager
[15:19:26] ========= [PASSED] ttm_bo_validate_same_placement ==========
[15:19:26] [PASSED] ttm_bo_validate_failed_alloc
[15:19:26] [PASSED] ttm_bo_validate_pinned
[15:19:26] [PASSED] ttm_bo_validate_busy_placement
[15:19:26] ================ ttm_bo_validate_multihop  =================
[15:19:26] [PASSED] Buffer object for userspace
[15:19:26] [PASSED] Kernel buffer object
[15:19:26] [PASSED] Shared buffer object
[15:19:26] ============ [PASSED] ttm_bo_validate_multihop =============
[15:19:26] ========== ttm_bo_validate_no_placement_signaled  ==========
[15:19:26] [PASSED] Buffer object in system domain, no page vector
[15:19:26] [PASSED] Buffer object in system domain with an existing page vector
[15:19:26] ====== [PASSED] ttm_bo_validate_no_placement_signaled ======
[15:19:26] ======== ttm_bo_validate_no_placement_not_signaled  ========
[15:19:26] [PASSED] Buffer object for userspace
[15:19:26] [PASSED] Kernel buffer object
[15:19:26] [PASSED] Shared buffer object
[15:19:26] ==== [PASSED] ttm_bo_validate_no_placement_not_signaled ====
[15:19:26] [PASSED] ttm_bo_validate_move_fence_signaled
[15:19:26] ========= ttm_bo_validate_move_fence_not_signaled  =========
[15:19:26] [PASSED] Waits for GPU
[15:19:26] [PASSED] Tries to lock straight away
[15:19:26] ===== [PASSED] ttm_bo_validate_move_fence_not_signaled =====
[15:19:26] [PASSED] ttm_bo_validate_swapout
[15:19:26] [PASSED] ttm_bo_validate_happy_evict
[15:19:26] [PASSED] ttm_bo_validate_all_pinned_evict
[15:19:26] [PASSED] ttm_bo_validate_allowed_only_evict
[15:19:26] [PASSED] ttm_bo_validate_deleted_evict
[15:19:26] [PASSED] ttm_bo_validate_busy_domain_evict
[15:19:26] [PASSED] ttm_bo_validate_evict_gutting
[15:19:26] [PASSED] ttm_bo_validate_recrusive_evict
[15:19:26] ================= [PASSED] ttm_bo_validate =================
[15:19:26] ============================================================
[15:19:26] Testing complete. Ran 106 tests: passed: 106
[15:19:26] Elapsed time: 12.103s total, 1.785s configuring, 10.053s building, 0.214s running

+ for kcfg in "${kunitconfigs[@]}"
+ [[ ! -f /kernel/drivers/dma-buf/.kunitconfig ]]
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/dma-buf/.kunitconfig
[15:19:26] Configuring KUnit Kernel ...
Regenerating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[15:19:28] Building KUnit Kernel ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
Building with:
$ make all compile_commands.json scripts_gdb ARCH=um O=.kunit --jobs=48
[15:19:37] Starting KUnit Kernel (1/1)...
[15:19:37] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[15:19:37] ============= refcount_interrupt (4 subtests) ==============
[15:19:37] [PASSED] test_single_irq_change
[15:19:37] [PASSED] test_nested_irq_change
[15:19:37] [PASSED] test_multiple_irq_change
[15:19:37] [PASSED] test_irq_save
[15:19:37] =============== [PASSED] refcount_interrupt ================
[15:19:37] =============== dma-buf-fence (12 subtests) ================
[15:19:37] [PASSED] test_sanitycheck
[15:19:37] [PASSED] test_signaling
[15:19:37] [PASSED] test_add_callback
[15:19:37] [PASSED] test_late_add_callback
[15:19:37] [PASSED] test_rm_callback
[15:19:37] [PASSED] test_late_rm_callback
[15:19:37] [PASSED] test_status
[15:19:37] [PASSED] test_error
[15:19:37] [PASSED] test_wait
[15:19:37] [PASSED] test_wait_timeout
[15:19:37] [PASSED] test_stub
[15:19:37] [SKIPPED] test_race_signal_callback (requires at least 2 CPUs)
[15:19:37] ================== [PASSED] dma-buf-fence ==================
[15:19:37] ============ dma-buf-fence-chain (11 subtests) =============
[15:19:37] [PASSED] test_sanitycheck
[15:19:37] [PASSED] test_find_seqno
[15:19:37] [PASSED] test_find_signaled
[15:19:37] [PASSED] test_find_out_of_order
[15:19:42] [PASSED] test_find_gap
[15:19:42] [PASSED] test_find_race
[15:19:42] [PASSED] test_signal_forward
[15:19:42] [PASSED] test_signal_backward
[15:19:42] [PASSED] test_wait_forward
[15:19:42] [PASSED] test_wait_backward
[15:19:42] [PASSED] test_wait_random
[15:19:42] =============== [PASSED] dma-buf-fence-chain ===============
[15:19:42] ============ dma-buf-fence-unwrap (10 subtests) ============
[15:19:42] [PASSED] test_sanitycheck
[15:19:42] [PASSED] test_unwrap_array
[15:19:42] [PASSED] test_unwrap_chain
[15:19:42] [PASSED] test_unwrap_chain_array
[15:19:42] [PASSED] test_unwrap_merge
[15:19:42] [PASSED] test_unwrap_merge_duplicate
[15:19:42] [PASSED] test_unwrap_merge_seqno
[15:19:42] [PASSED] test_unwrap_merge_order
[15:19:42] [PASSED] test_unwrap_merge_complex
[15:19:42] [PASSED] test_unwrap_merge_complex_seqno
[15:19:42] ============== [PASSED] dma-buf-fence-unwrap ===============
[15:19:42] ================ dma-buf-resv (5 subtests) =================
[15:19:42] [PASSED] test_sanitycheck
[15:19:42] ===================== test_signaling  ======================
[15:19:42] [PASSED] kernel
[15:19:42] [PASSED] write
[15:19:42] [PASSED] read
[15:19:42] [PASSED] bookkeep
[15:19:42] ================= [PASSED] test_signaling ==================
[15:19:42] ====================== test_for_each  ======================
[15:19:42] [PASSED] kernel
[15:19:42] [PASSED] write
[15:19:42] [PASSED] read
[15:19:42] [PASSED] bookkeep
[15:19:42] ================== [PASSED] test_for_each ==================
[15:19:42] ================= test_for_each_unlocked  ==================
[15:19:42] [PASSED] kernel
[15:19:42] [PASSED] write
[15:19:42] [PASSED] read
[15:19:42] [PASSED] bookkeep
[15:19:42] ============= [PASSED] test_for_each_unlocked ==============
[15:19:42] ===================== test_get_fences  =====================
[15:19:42] [PASSED] kernel
[15:19:42] [PASSED] write
[15:19:42] [PASSED] read
[15:19:42] [PASSED] bookkeep
[15:19:42] ================= [PASSED] test_get_fences =================
[15:19:42] ================== [PASSED] dma-buf-resv ===================
[15:19:42] ============================================================
[15:19:42] Testing complete. Ran 54 tests: passed: 53, skipped: 1
[15:19:42] Elapsed time: 15.862s total, 1.869s configuring, 8.669s building, 5.273s running

+ cleanup
++ stat -c %u:%g /kernel
+ chown -R 1003:1003 /kernel



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

* ✓ Xe.CI.BAT: success for drm/xe/hwmon: refresh B70 temperature inputs after GT idle
  2026-09-26 10:21 [PATCH RFC] drm/xe/hwmon: refresh B70 temperature inputs after GT idle Bata Roland Krisztián via B4 Relay
  2026-09-26 15:19 ` ✓ CI.KUnit: success for " Patchwork
@ 2026-09-26 16:00 ` Patchwork
  2026-09-26 17:47 ` ✓ Xe.CI.FULL: " Patchwork
  2026-09-28  0:06 ` [PATCH RFC] " Rodrigo Vivi
  3 siblings, 0 replies; 6+ messages in thread
From: Patchwork @ 2026-09-26 16:00 UTC (permalink / raw)
  To: Bata Roland Krisztián via B4 Relay; +Cc: intel-xe

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

== Series Details ==

Series: drm/xe/hwmon: refresh B70 temperature inputs after GT idle
URL   : https://patchwork.freedesktop.org/series/175039/
State : success

== Summary ==

CI Bug Log - changes from xe-5831-666d2f09d9045fc8f72cc1f71528a04acbaf5229_BAT -> xe-pw-175039v1_BAT
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  

Participating hosts (15 -> 15)
------------------------------

  No changes in participating hosts


Changes
-------

  No changes found


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

  * Linux: xe-5831-666d2f09d9045fc8f72cc1f71528a04acbaf5229 -> xe-pw-175039v1

  IGT_9113: 691cc6fd50d5a3f6f2b5805c9698af1df28f6830 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
  xe-5831-666d2f09d9045fc8f72cc1f71528a04acbaf5229: 666d2f09d9045fc8f72cc1f71528a04acbaf5229
  xe-pw-175039v1: 175039v1

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175039v1/index.html

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

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

* ✓ Xe.CI.FULL: success for drm/xe/hwmon: refresh B70 temperature inputs after GT idle
  2026-09-26 10:21 [PATCH RFC] drm/xe/hwmon: refresh B70 temperature inputs after GT idle Bata Roland Krisztián via B4 Relay
  2026-09-26 15:19 ` ✓ CI.KUnit: success for " Patchwork
  2026-09-26 16:00 ` ✓ Xe.CI.BAT: " Patchwork
@ 2026-09-26 17:47 ` Patchwork
  2026-09-28  0:06 ` [PATCH RFC] " Rodrigo Vivi
  3 siblings, 0 replies; 6+ messages in thread
From: Patchwork @ 2026-09-26 17:47 UTC (permalink / raw)
  To: Bata Roland Krisztián via B4 Relay; +Cc: intel-xe

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

== Series Details ==

Series: drm/xe/hwmon: refresh B70 temperature inputs after GT idle
URL   : https://patchwork.freedesktop.org/series/175039/
State : success

== Summary ==

CI Bug Log - changes from xe-5831-666d2f09d9045fc8f72cc1f71528a04acbaf5229_FULL -> xe-pw-175039v1_FULL
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  

Participating hosts (3 -> 3)
------------------------------

  No changes in participating hosts

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

  Here are the changes found in xe-pw-175039v1_FULL that come from known issues:

### IGT changes ###

#### Issues hit ####

  * igt@kms_big_fb@linear-16bpp-rotate-90:
    - shard-ptl:          NOTRUN -> [SKIP][1] ([Intel XE#5901]) +1 other test skip
   [1]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175039v1/shard-ptl-8/igt@kms_big_fb@linear-16bpp-rotate-90.html

  * igt@kms_big_fb@x-tiled-32bpp-rotate-180:
    - shard-ptl:          NOTRUN -> [SKIP][2] ([Intel XE#5808]) +4 other tests skip
   [2]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175039v1/shard-ptl-3/igt@kms_big_fb@x-tiled-32bpp-rotate-180.html

  * igt@kms_big_fb@yf-tiled-8bpp-rotate-90:
    - shard-bmg:          NOTRUN -> [SKIP][3] ([Intel XE#1124])
   [3]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175039v1/shard-bmg-9/igt@kms_big_fb@yf-tiled-8bpp-rotate-90.html

  * igt@kms_ccs@bad-rotation-90-y-tiled-gen12-rc-ccs-cc:
    - shard-ptl:          NOTRUN -> [SKIP][4] ([Intel XE#5822]) +2 other tests skip
   [4]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175039v1/shard-ptl-8/igt@kms_ccs@bad-rotation-90-y-tiled-gen12-rc-ccs-cc.html

  * igt@kms_ccs@crc-primary-suspend-4-tiled-lnl-ccs:
    - shard-ptl:          [PASS][5] -> [ABORT][6] ([Intel XE#9364] / [Intel XE#9378])
   [5]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5831-666d2f09d9045fc8f72cc1f71528a04acbaf5229/shard-ptl-3/igt@kms_ccs@crc-primary-suspend-4-tiled-lnl-ccs.html
   [6]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175039v1/shard-ptl-7/igt@kms_ccs@crc-primary-suspend-4-tiled-lnl-ccs.html

  * igt@kms_ccs@crc-primary-suspend-4-tiled-lnl-ccs@pipe-b-edp-1:
    - shard-ptl:          [PASS][7] -> [ABORT][8] ([Intel XE#9378])
   [7]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5831-666d2f09d9045fc8f72cc1f71528a04acbaf5229/shard-ptl-3/igt@kms_ccs@crc-primary-suspend-4-tiled-lnl-ccs@pipe-b-edp-1.html
   [8]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175039v1/shard-ptl-7/igt@kms_ccs@crc-primary-suspend-4-tiled-lnl-ccs@pipe-b-edp-1.html

  * igt@kms_ccs@crc-primary-suspend-4-tiled-lnl-ccs@pipe-c-edp-1:
    - shard-ptl:          [PASS][9] -> [DMESG-WARN][10] ([Intel XE#9389])
   [9]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5831-666d2f09d9045fc8f72cc1f71528a04acbaf5229/shard-ptl-3/igt@kms_ccs@crc-primary-suspend-4-tiled-lnl-ccs@pipe-c-edp-1.html
   [10]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175039v1/shard-ptl-7/igt@kms_ccs@crc-primary-suspend-4-tiled-lnl-ccs@pipe-c-edp-1.html

  * igt@kms_ccs@crc-primary-suspend-4-tiled-mtl-rc-ccs:
    - shard-bmg:          NOTRUN -> [SKIP][11] ([Intel XE#3432])
   [11]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175039v1/shard-bmg-8/igt@kms_ccs@crc-primary-suspend-4-tiled-mtl-rc-ccs.html

  * igt@kms_chamelium_color@degamma:
    - shard-bmg:          NOTRUN -> [SKIP][12] ([Intel XE#2325] / [Intel XE#7358])
   [12]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175039v1/shard-bmg-8/igt@kms_chamelium_color@degamma.html
    - shard-ptl:          NOTRUN -> [SKIP][13] ([Intel XE#5824])
   [13]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175039v1/shard-ptl-3/igt@kms_chamelium_color@degamma.html

  * igt@kms_content_protection@dp-mst-lic-type-1:
    - shard-bmg:          NOTRUN -> [SKIP][14] ([Intel XE#2390] / [Intel XE#6974])
   [14]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175039v1/shard-bmg-9/igt@kms_content_protection@dp-mst-lic-type-1.html
    - shard-ptl:          NOTRUN -> [SKIP][15] ([Intel XE#5832] / [Intel XE#6974])
   [15]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175039v1/shard-ptl-6/igt@kms_content_protection@dp-mst-lic-type-1.html

  * igt@kms_cursor_crc@cursor-rapid-movement-512x512:
    - shard-ptl:          NOTRUN -> [SKIP][16] ([Intel XE#5846]) +1 other test skip
   [16]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175039v1/shard-ptl-3/igt@kms_cursor_crc@cursor-rapid-movement-512x512.html
    - shard-bmg:          NOTRUN -> [SKIP][17] ([Intel XE#2321] / [Intel XE#7355])
   [17]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175039v1/shard-bmg-8/igt@kms_cursor_crc@cursor-rapid-movement-512x512.html

  * igt@kms_cursor_legacy@cursora-vs-flipb-varying-size:
    - shard-ptl:          NOTRUN -> [SKIP][18] ([Intel XE#5962]) +1 other test skip
   [18]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175039v1/shard-ptl-8/igt@kms_cursor_legacy@cursora-vs-flipb-varying-size.html

  * igt@kms_cursor_legacy@short-busy-flip-before-cursor-atomic-transitions-varying-size:
    - shard-ptl:          NOTRUN -> [SKIP][19] ([Intel XE#6035])
   [19]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175039v1/shard-ptl-8/igt@kms_cursor_legacy@short-busy-flip-before-cursor-atomic-transitions-varying-size.html

  * igt@kms_dsc@dsc-with-bpc-ultrajoiner:
    - shard-ptl:          NOTRUN -> [SKIP][20] ([Intel XE#5907])
   [20]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175039v1/shard-ptl-8/igt@kms_dsc@dsc-with-bpc-ultrajoiner.html

  * igt@kms_flip@basic-flip-vs-wf_vblank:
    - shard-bmg:          [PASS][21] -> [FAIL][22] ([Intel XE#3098]) +1 other test fail
   [21]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5831-666d2f09d9045fc8f72cc1f71528a04acbaf5229/shard-bmg-4/igt@kms_flip@basic-flip-vs-wf_vblank.html
   [22]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175039v1/shard-bmg-7/igt@kms_flip@basic-flip-vs-wf_vblank.html

  * igt@kms_flip@dpms-vs-vblank-race@b-edp1:
    - shard-lnl:          [PASS][23] -> [FAIL][24] ([Intel XE#3098]) +1 other test fail
   [23]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5831-666d2f09d9045fc8f72cc1f71528a04acbaf5229/shard-lnl-1/igt@kms_flip@dpms-vs-vblank-race@b-edp1.html
   [24]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175039v1/shard-lnl-8/igt@kms_flip@dpms-vs-vblank-race@b-edp1.html

  * igt@kms_flip@flip-vs-expired-vblank-interruptible@d-hdmi-a3:
    - shard-bmg:          [PASS][25] -> [FAIL][26] ([Intel XE#3149] / [Intel XE#3321]) +1 other test fail
   [25]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5831-666d2f09d9045fc8f72cc1f71528a04acbaf5229/shard-bmg-7/igt@kms_flip@flip-vs-expired-vblank-interruptible@d-hdmi-a3.html
   [26]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175039v1/shard-bmg-5/igt@kms_flip@flip-vs-expired-vblank-interruptible@d-hdmi-a3.html

  * igt@kms_flip@flip-vs-expired-vblank@b-edp1:
    - shard-lnl:          [PASS][27] -> [FAIL][28] ([Intel XE#301])
   [27]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5831-666d2f09d9045fc8f72cc1f71528a04acbaf5229/shard-lnl-3/igt@kms_flip@flip-vs-expired-vblank@b-edp1.html
   [28]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175039v1/shard-lnl-5/igt@kms_flip@flip-vs-expired-vblank@b-edp1.html

  * igt@kms_frontbuffer_tracking@drrshdr-rgb101010-draw-blt:
    - shard-bmg:          NOTRUN -> [SKIP][29] ([Intel XE#2311]) +7 other tests skip
   [29]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175039v1/shard-bmg-8/igt@kms_frontbuffer_tracking@drrshdr-rgb101010-draw-blt.html

  * igt@kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-spr-indfb-draw-render:
    - shard-ptl:          NOTRUN -> [SKIP][30] ([Intel XE#5800] / [Intel XE#6312]) +1 other test skip
   [30]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175039v1/shard-ptl-6/igt@kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-spr-indfb-draw-render.html

  * igt@kms_frontbuffer_tracking@fbcdrrs-abgr161616f-draw-render:
    - shard-ptl:          NOTRUN -> [SKIP][31] ([Intel XE#7061] / [Intel XE#7356]) +1 other test skip
   [31]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175039v1/shard-ptl-8/igt@kms_frontbuffer_tracking@fbcdrrs-abgr161616f-draw-render.html

  * igt@kms_frontbuffer_tracking@fbcdrrs-argb161616f-draw-blt:
    - shard-bmg:          NOTRUN -> [SKIP][32] ([Intel XE#7061] / [Intel XE#7356])
   [32]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175039v1/shard-bmg-8/igt@kms_frontbuffer_tracking@fbcdrrs-argb161616f-draw-blt.html

  * igt@kms_frontbuffer_tracking@fbcdrrshdr-1p-primscrn-indfb-msflip-blt:
    - shard-ptl:          NOTRUN -> [SKIP][33] ([Intel XE#6312]) +2 other tests skip
   [33]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175039v1/shard-ptl-8/igt@kms_frontbuffer_tracking@fbcdrrshdr-1p-primscrn-indfb-msflip-blt.html

  * igt@kms_frontbuffer_tracking@fbcdrrshdr-2p-scndscrn-spr-indfb-draw-blt:
    - shard-ptl:          NOTRUN -> [SKIP][34] ([Intel XE#5812]) +22 other tests skip
   [34]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175039v1/shard-ptl-8/igt@kms_frontbuffer_tracking@fbcdrrshdr-2p-scndscrn-spr-indfb-draw-blt.html

  * igt@kms_frontbuffer_tracking@hdr-abgr161616f-draw-mmap-wc:
    - shard-ptl:          NOTRUN -> [SKIP][35] ([Intel XE#7061]) +1 other test skip
   [35]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175039v1/shard-ptl-6/igt@kms_frontbuffer_tracking@hdr-abgr161616f-draw-mmap-wc.html

  * igt@kms_frontbuffer_tracking@psr-2p-primscrn-cur-indfb-draw-blt:
    - shard-bmg:          NOTRUN -> [SKIP][36] ([Intel XE#2313]) +5 other tests skip
   [36]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175039v1/shard-bmg-8/igt@kms_frontbuffer_tracking@psr-2p-primscrn-cur-indfb-draw-blt.html

  * igt@kms_frontbuffer_tracking@psrhdr-1p-primscrn-pri-indfb-draw-blt:
    - shard-ptl:          NOTRUN -> [SKIP][37] ([Intel XE#7865]) +4 other tests skip
   [37]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175039v1/shard-ptl-3/igt@kms_frontbuffer_tracking@psrhdr-1p-primscrn-pri-indfb-draw-blt.html

  * igt@kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-75@pipe-d:
    - shard-ptl:          NOTRUN -> [SKIP][38] ([Intel XE#6886]) +6 other tests skip
   [38]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175039v1/shard-ptl-6/igt@kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-75@pipe-d.html

  * igt@kms_pm_backlight@fade-with-suspend:
    - shard-ptl:          [PASS][39] -> [ABORT][40] ([Intel XE#9362]) +1 other test abort
   [39]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5831-666d2f09d9045fc8f72cc1f71528a04acbaf5229/shard-ptl-8/igt@kms_pm_backlight@fade-with-suspend.html
   [40]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175039v1/shard-ptl-7/igt@kms_pm_backlight@fade-with-suspend.html

  * igt@kms_psr@fbc-psr2-cursor-plane-move:
    - shard-bmg:          NOTRUN -> [SKIP][41] ([Intel XE#2234] / [Intel XE#2850])
   [41]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175039v1/shard-bmg-8/igt@kms_psr@fbc-psr2-cursor-plane-move.html
    - shard-ptl:          NOTRUN -> [SKIP][42] ([Intel XE#1406] / [Intel XE#5835]) +1 other test skip
   [42]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175039v1/shard-ptl-3/igt@kms_psr@fbc-psr2-cursor-plane-move.html

  * igt@kms_psr_stress_test@flip-primary-invalidate-overlay:
    - shard-bmg:          NOTRUN -> [SKIP][43] ([Intel XE#7795])
   [43]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175039v1/shard-bmg-8/igt@kms_psr_stress_test@flip-primary-invalidate-overlay.html

  * igt@kms_vrr@flipline@pipe-a-edp-1:
    - shard-ptl:          [PASS][44] -> [FAIL][45] ([Intel XE#4227] / [Intel XE#7397]) +1 other test fail
   [44]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5831-666d2f09d9045fc8f72cc1f71528a04acbaf5229/shard-ptl-6/igt@kms_vrr@flipline@pipe-a-edp-1.html
   [45]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175039v1/shard-ptl-2/igt@kms_vrr@flipline@pipe-a-edp-1.html

  * igt@kms_vrr@lobf:
    - shard-ptl:          NOTRUN -> [SKIP][46] ([Intel XE#5950] / [Intel XE#9277])
   [46]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175039v1/shard-ptl-8/igt@kms_vrr@lobf.html

  * igt@kms_vrr@lobf@pipe-a-edp-1:
    - shard-ptl:          NOTRUN -> [SKIP][47] ([Intel XE#7638] / [Intel XE#9277])
   [47]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175039v1/shard-ptl-8/igt@kms_vrr@lobf@pipe-a-edp-1.html

  * igt@xe_evict_ccs@evict-overcommit-parallel-nofree-samefd:
    - shard-ptl:          NOTRUN -> [SKIP][48] ([Intel XE#5764]) +1 other test skip
   [48]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175039v1/shard-ptl-3/igt@xe_evict_ccs@evict-overcommit-parallel-nofree-samefd.html

  * igt@xe_exec_balancer@twice-virtual-userptr-rebind:
    - shard-ptl:          NOTRUN -> [SKIP][49] ([Intel XE#7482]) +1 other test skip
   [49]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175039v1/shard-ptl-3/igt@xe_exec_balancer@twice-virtual-userptr-rebind.html

  * igt@xe_exec_basic@multigpu-no-exec-bindexecqueue-userptr:
    - shard-ptl:          NOTRUN -> [SKIP][50] ([Intel XE#5575] / [Intel XE#7484])
   [50]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175039v1/shard-ptl-8/igt@xe_exec_basic@multigpu-no-exec-bindexecqueue-userptr.html

  * igt@xe_exec_compute_mode@twice-preempt-fence-early:
    - shard-bmg:          [PASS][51] -> [INCOMPLETE][52] ([Intel XE#2594])
   [51]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5831-666d2f09d9045fc8f72cc1f71528a04acbaf5229/shard-bmg-4/igt@xe_exec_compute_mode@twice-preempt-fence-early.html
   [52]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175039v1/shard-bmg-1/igt@xe_exec_compute_mode@twice-preempt-fence-early.html

  * igt@xe_exec_fault_mode@many-multi-queue-invalid-fault:
    - shard-ptl:          NOTRUN -> [SKIP][53] ([Intel XE#8374]) +1 other test skip
   [53]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175039v1/shard-ptl-6/igt@xe_exec_fault_mode@many-multi-queue-invalid-fault.html

  * igt@xe_exec_multi_queue@many-execs-close-fd-smem:
    - shard-bmg:          NOTRUN -> [SKIP][54] ([Intel XE#8364]) +1 other test skip
   [54]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175039v1/shard-bmg-9/igt@xe_exec_multi_queue@many-execs-close-fd-smem.html

  * igt@xe_exec_multi_queue@one-queue-close-fd-smem:
    - shard-ptl:          NOTRUN -> [SKIP][55] ([Intel XE#8364]) +4 other tests skip
   [55]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175039v1/shard-ptl-8/igt@xe_exec_multi_queue@one-queue-close-fd-smem.html

  * igt@xe_exec_threads@threads-multi-queue-mixed-shared-vm-userptr-invalidate-race:
    - shard-bmg:          NOTRUN -> [SKIP][56] ([Intel XE#8378])
   [56]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175039v1/shard-bmg-8/igt@xe_exec_threads@threads-multi-queue-mixed-shared-vm-userptr-invalidate-race.html
    - shard-ptl:          NOTRUN -> [SKIP][57] ([Intel XE#8378])
   [57]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175039v1/shard-ptl-3/igt@xe_exec_threads@threads-multi-queue-mixed-shared-vm-userptr-invalidate-race.html

  * igt@xe_fault_injection@probe-fail-guc-xe_guc_mmio_send_recv:
    - shard-lnl:          [PASS][58] -> [ABORT][59] ([Intel XE#6652] / [Intel XE#8007])
   [58]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5831-666d2f09d9045fc8f72cc1f71528a04acbaf5229/shard-lnl-3/igt@xe_fault_injection@probe-fail-guc-xe_guc_mmio_send_recv.html
   [59]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175039v1/shard-lnl-2/igt@xe_fault_injection@probe-fail-guc-xe_guc_mmio_send_recv.html

  * igt@xe_madvise@atomic-cpu:
    - shard-ptl:          NOTRUN -> [SKIP][60] ([Intel XE#7980])
   [60]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175039v1/shard-ptl-8/igt@xe_madvise@atomic-cpu.html

  * igt@xe_media_fill@media-fill:
    - shard-ptl:          NOTRUN -> [SKIP][61] ([Intel XE#5830] / [Intel XE#7453])
   [61]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175039v1/shard-ptl-8/igt@xe_media_fill@media-fill.html

  * igt@xe_pat@pat-index-xelp:
    - shard-ptl:          NOTRUN -> [SKIP][62] ([Intel XE#5771] / [Intel XE#7590])
   [62]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175039v1/shard-ptl-8/igt@xe_pat@pat-index-xelp.html

  * igt@xe_pat@xa-app-transient-media-on:
    - shard-bmg:          NOTRUN -> [SKIP][63] ([Intel XE#7590])
   [63]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175039v1/shard-bmg-8/igt@xe_pat@xa-app-transient-media-on.html
    - shard-ptl:          NOTRUN -> [SKIP][64] ([Intel XE#7590])
   [64]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175039v1/shard-ptl-3/igt@xe_pat@xa-app-transient-media-on.html

  * igt@xe_pm@s4-basic-exec:
    - shard-lnl:          [PASS][65] -> [ABORT][66] ([Intel XE#9362])
   [65]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5831-666d2f09d9045fc8f72cc1f71528a04acbaf5229/shard-lnl-4/igt@xe_pm@s4-basic-exec.html
   [66]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175039v1/shard-lnl-5/igt@xe_pm@s4-basic-exec.html

  * igt@xe_pm@s4-mocs:
    - shard-ptl:          NOTRUN -> [ABORT][67] ([Intel XE#9362])
   [67]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175039v1/shard-ptl-6/igt@xe_pm@s4-mocs.html

  * igt@xe_pm@s4-multiple-execs:
    - shard-ptl:          [PASS][68] -> [DMESG-WARN][69] ([Intel XE#7727])
   [68]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5831-666d2f09d9045fc8f72cc1f71528a04acbaf5229/shard-ptl-4/igt@xe_pm@s4-multiple-execs.html
   [69]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175039v1/shard-ptl-1/igt@xe_pm@s4-multiple-execs.html

  * igt@xe_pm_residency@cpg-basic:
    - shard-bmg:          [PASS][70] -> [ABORT][71] ([Intel XE#9362])
   [70]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5831-666d2f09d9045fc8f72cc1f71528a04acbaf5229/shard-bmg-8/igt@xe_pm_residency@cpg-basic.html
   [71]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175039v1/shard-bmg-5/igt@xe_pm_residency@cpg-basic.html

  
#### Possible fixes ####

  * igt@kms_async_flips@alternate-sync-async-flip:
    - shard-bmg:          [FAIL][72] ([Intel XE#3718] / [Intel XE#6078]) -> [PASS][73]
   [72]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5831-666d2f09d9045fc8f72cc1f71528a04acbaf5229/shard-bmg-2/igt@kms_async_flips@alternate-sync-async-flip.html
   [73]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175039v1/shard-bmg-7/igt@kms_async_flips@alternate-sync-async-flip.html

  * igt@kms_async_flips@alternate-sync-async-flip@pipe-a-dp-2:
    - shard-bmg:          [FAIL][74] ([Intel XE#6078]) -> [PASS][75]
   [74]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5831-666d2f09d9045fc8f72cc1f71528a04acbaf5229/shard-bmg-2/igt@kms_async_flips@alternate-sync-async-flip@pipe-a-dp-2.html
   [75]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175039v1/shard-bmg-7/igt@kms_async_flips@alternate-sync-async-flip@pipe-a-dp-2.html

  * igt@kms_cursor_crc@cursor-suspend:
    - shard-bmg:          [INCOMPLETE][76] ([Intel XE#9210]) -> [PASS][77] +1 other test pass
   [76]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5831-666d2f09d9045fc8f72cc1f71528a04acbaf5229/shard-bmg-7/igt@kms_cursor_crc@cursor-suspend.html
   [77]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175039v1/shard-bmg-8/igt@kms_cursor_crc@cursor-suspend.html
    - shard-ptl:          [ABORT][78] ([Intel XE#9375]) -> [PASS][79] +1 other test pass
   [78]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5831-666d2f09d9045fc8f72cc1f71528a04acbaf5229/shard-ptl-3/igt@kms_cursor_crc@cursor-suspend.html
   [79]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175039v1/shard-ptl-3/igt@kms_cursor_crc@cursor-suspend.html

  * igt@kms_cursor_crc@cursor-suspend@pipe-a-dp-2:
    - shard-bmg:          [DMESG-WARN][80] ([Intel XE#9390]) -> [PASS][81]
   [80]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5831-666d2f09d9045fc8f72cc1f71528a04acbaf5229/shard-bmg-7/igt@kms_cursor_crc@cursor-suspend@pipe-a-dp-2.html
   [81]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175039v1/shard-bmg-8/igt@kms_cursor_crc@cursor-suspend@pipe-a-dp-2.html

  * igt@kms_flip@2x-wf_vblank-ts-check:
    - shard-bmg:          [FAIL][82] ([Intel XE#5408] / [Intel XE#6266]) -> [PASS][83] +1 other test pass
   [82]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5831-666d2f09d9045fc8f72cc1f71528a04acbaf5229/shard-bmg-3/igt@kms_flip@2x-wf_vblank-ts-check.html
   [83]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175039v1/shard-bmg-1/igt@kms_flip@2x-wf_vblank-ts-check.html

  * igt@kms_flip@flip-vs-expired-vblank-interruptible:
    - shard-lnl:          [FAIL][84] ([Intel XE#301]) -> [PASS][85] +1 other test pass
   [84]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5831-666d2f09d9045fc8f72cc1f71528a04acbaf5229/shard-lnl-4/igt@kms_flip@flip-vs-expired-vblank-interruptible.html
   [85]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175039v1/shard-lnl-7/igt@kms_flip@flip-vs-expired-vblank-interruptible.html

  * igt@kms_hdr@bpc-switch-suspend:
    - shard-ptl:          [ABORT][86] ([Intel XE#9362]) -> [PASS][87] +3 other tests pass
   [86]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5831-666d2f09d9045fc8f72cc1f71528a04acbaf5229/shard-ptl-5/igt@kms_hdr@bpc-switch-suspend.html
   [87]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175039v1/shard-ptl-6/igt@kms_hdr@bpc-switch-suspend.html

  * igt@kms_hdr@bpc-switch-suspend@pipe-a-hdmi-a-3-xrgb2101010:
    - shard-bmg:          [INCOMPLETE][88] ([Intel XE#9320]) -> [PASS][89] +1 other test pass
   [88]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5831-666d2f09d9045fc8f72cc1f71528a04acbaf5229/shard-bmg-5/igt@kms_hdr@bpc-switch-suspend@pipe-a-hdmi-a-3-xrgb2101010.html
   [89]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175039v1/shard-bmg-9/igt@kms_hdr@bpc-switch-suspend@pipe-a-hdmi-a-3-xrgb2101010.html

  * igt@xe_evict@evict-beng-mixed-many-threads-small:
    - shard-bmg:          [INCOMPLETE][90] ([Intel XE#6321] / [Intel XE#8355]) -> [PASS][91]
   [90]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5831-666d2f09d9045fc8f72cc1f71528a04acbaf5229/shard-bmg-9/igt@xe_evict@evict-beng-mixed-many-threads-small.html
   [91]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175039v1/shard-bmg-2/igt@xe_evict@evict-beng-mixed-many-threads-small.html

  
#### Warnings ####

  * igt@kms_tiled_display@basic-test-pattern:
    - shard-bmg:          [SKIP][92] ([Intel XE#2426] / [Intel XE#5848]) -> [FAIL][93] ([Intel XE#1729] / [Intel XE#7424])
   [92]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5831-666d2f09d9045fc8f72cc1f71528a04acbaf5229/shard-bmg-9/igt@kms_tiled_display@basic-test-pattern.html
   [93]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175039v1/shard-bmg-4/igt@kms_tiled_display@basic-test-pattern.html

  
  [Intel XE#1124]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1124
  [Intel XE#1406]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1406
  [Intel XE#1729]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1729
  [Intel XE#2234]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2234
  [Intel XE#2311]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2311
  [Intel XE#2313]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2313
  [Intel XE#2321]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2321
  [Intel XE#2325]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2325
  [Intel XE#2390]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2390
  [Intel XE#2426]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2426
  [Intel XE#2594]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2594
  [Intel XE#2850]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2850
  [Intel XE#301]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/301
  [Intel XE#3098]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3098
  [Intel XE#3149]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3149
  [Intel XE#3321]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3321
  [Intel XE#3432]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3432
  [Intel XE#3718]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3718
  [Intel XE#4227]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4227
  [Intel XE#5408]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5408
  [Intel XE#5575]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5575
  [Intel XE#5764]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5764
  [Intel XE#5771]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5771
  [Intel XE#5800]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5800
  [Intel XE#5808]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5808
  [Intel XE#5812]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5812
  [Intel XE#5822]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5822
  [Intel XE#5824]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5824
  [Intel XE#5830]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5830
  [Intel XE#5832]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5832
  [Intel XE#5835]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5835
  [Intel XE#5846]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5846
  [Intel XE#5848]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5848
  [Intel XE#5901]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5901
  [Intel XE#5907]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5907
  [Intel XE#5950]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5950
  [Intel XE#5962]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5962
  [Intel XE#6035]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6035
  [Intel XE#6078]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6078
  [Intel XE#6266]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6266
  [Intel XE#6312]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6312
  [Intel XE#6321]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6321
  [Intel XE#6652]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6652
  [Intel XE#6886]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6886
  [Intel XE#6974]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6974
  [Intel XE#7061]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7061
  [Intel XE#7355]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7355
  [Intel XE#7356]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7356
  [Intel XE#7358]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7358
  [Intel XE#7397]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7397
  [Intel XE#7424]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7424
  [Intel XE#7453]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7453
  [Intel XE#7482]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7482
  [Intel XE#7484]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7484
  [Intel XE#7590]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7590
  [Intel XE#7638]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7638
  [Intel XE#7727]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7727
  [Intel XE#7795]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7795
  [Intel XE#7865]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7865
  [Intel XE#7980]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7980
  [Intel XE#8007]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8007
  [Intel XE#8355]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8355
  [Intel XE#8364]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8364
  [Intel XE#8374]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8374
  [Intel XE#8378]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8378
  [Intel XE#9210]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/9210
  [Intel XE#9277]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/9277
  [Intel XE#9320]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/9320
  [Intel XE#9362]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/9362
  [Intel XE#9364]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/9364
  [Intel XE#9375]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/9375
  [Intel XE#9378]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/9378
  [Intel XE#9389]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/9389
  [Intel XE#9390]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/9390


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

  * Linux: xe-5831-666d2f09d9045fc8f72cc1f71528a04acbaf5229 -> xe-pw-175039v1

  IGT_9113: 691cc6fd50d5a3f6f2b5805c9698af1df28f6830 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
  xe-5831-666d2f09d9045fc8f72cc1f71528a04acbaf5229: 666d2f09d9045fc8f72cc1f71528a04acbaf5229
  xe-pw-175039v1: 175039v1

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175039v1/index.html

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

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

* Re: [PATCH RFC] drm/xe/hwmon: refresh B70 temperature inputs after GT idle
  2026-09-26 10:21 [PATCH RFC] drm/xe/hwmon: refresh B70 temperature inputs after GT idle Bata Roland Krisztián via B4 Relay
                   ` (2 preceding siblings ...)
  2026-09-26 17:47 ` ✓ Xe.CI.FULL: " Patchwork
@ 2026-09-28  0:06 ` Rodrigo Vivi
  2026-09-29 11:59   ` Roland Bata
  3 siblings, 1 reply; 6+ messages in thread
From: Rodrigo Vivi @ 2026-09-28  0:06 UTC (permalink / raw)
  To: batarolandkrisztian
  Cc: intel-xe, karthik.poosa, matthew.brost, raag.jadav,
	thomas.hellstrom

On Sat, Sep 26, 2026 at 12:21:55PM +0200, Bata Roland Krisztián via B4 Relay wrote:
> From: Bata Roland Krisztián <batarolandkrisztian@gmail.com>
> 
> Two Arc Pro B70 devices (8086:e223) retain their package temperature
> after compute workloads despite both GTs returning to C6. A device
> runtime PM reference does not refresh the sample while power/control
> is already on.
> 
> With GuC 70.72.1 on Fedora kernel 7.1.10, a 60-second OpenCL workload
> followed by 45 seconds of idle left package temperature at 55 C on both
> cards. Acquiring all GT forcewake references still returned 55 C in
> the first read, about 57 us after open completed. At about 1053 us the
> reported value became 34 C on both cards. A brief GT-only pulse from
> reading cur_freq did not refresh the package value.
> 
> As an RFC, acquire forcewake references for the temperature input read,
> allow time for a new sample, then release the references on both the
> success and partial-acquisition failure paths. Limit the experiment to
> the measured PCI ID and leave labels, limits and other hwmon types on
> their existing paths.
> 
> The 2 ms interval and use of all domains are empirical, not a hardware
> specification guarantee. This needs review of the sensor conversion
> time, minimum wake domains and alternatives such as a PCODE refresh or
> readiness indication before it can become a production fix.
> 
> Compile-tested xe_hwmon.o on current drm-tip with W=1 and Xe display both
> disabled and enabled. The wake/wait/read sequence was measured through
> debugfs on two B70s; the modified kernel has not been boot-tested.
> 
> Link: https://gitlab.freedesktop.org/drm/xe/kernel/-/work_items/7805
> Assisted-by: OpenAI:gpt-6-astra
> Signed-off-by: Bata Roland Krisztián <batarolandkrisztian@gmail.com>
> ---
> RFC: proposed direction for issue 7805, not a claim of a production-ready fix.

The fundamental question here is, do we want to burn power in order to check
for the power?
If so, is grabbing the debugfs/forcewake_all an option before reading this?

But if we decide that this is what we want, we need a generic solution,
not only for this part...

> 
> Hi Xe maintainers,
> 
> I am following up on my B70 stale-temperature report with a smaller
> reproduction, timing measurements, and a prototype read-side change.
> 
> Questions before turning this into v1:
> 
> 1. Is there a PCODE operation or freshness/conversion-ready indication that
>    should be used instead of a fixed settling interval? The first MMIO read
>    after successful forcewake still returned the old temperature.
> 2. Which wake domains are actually required? A GT0 hw_engines read, which
>    holds all domains for that GT while dumping registers, also refreshed
>    package/mctrl/PCIe readings. The conservative prototype mirrors the
>    device forcewake_all sequence used for the controlled timing experiment.
> 3. Should a refresh cover/cache several temperature channels together? The
>    prototype wakes per input read. The power measurements below are for one
>    batch per device every two seconds, not for reading every hwmon channel
>    at high frequency and not measurements of this compiled patch.
> 4. Is this a known firmware issue with a preferred fix? Should the eventual
>    driver handling apply to other Battlemage IDs? This RFC only opts in the
>    tested 8086:e223 devices.
> 
> Hardware and reproduction
> -------------------------
> Two Intel Arc Pro B70s, PCI ID 8086:e223, on an ASRock X870E Taichi / Ryzen
> 5 9600X. Fedora CoreOS 44.20260829.3.1, kernel 7.1.10-200.fc44.x86_64,
> GuC 70.72.1, HuC 8.2.10. power/control=on was kept throughout; it is an
> existing workaround for noisy PCI runtime suspend/resume cycling.
> 
> A bounded 60-second OpenCL workload used a private 1 MiB output buffer per
> device, followed by 45 seconds without GPU submissions. Both GTs reached
> C6, actual frequency was zero, and idle residency continued advancing.
> Package readings stayed at 55 C on both cards. A short GT0 cur_freq read
> (itself a GT-only forcewake pulse) did not correct the package reading.
> 
> Opening forcewake_all, then reading temperatures while holding the fd:
> 
>                     B70 A                  B70 B
> before              55 C                   55 C
> first read          55 C at 57.769 us       55 C at 56.119 us
> first correction    34 C at 1053.529 us     34 C at 1053.039 us
> 
> Times are measured from completion of open, not the initial wake request.
> The 2, 5, 10 ms and later samples were also refreshed. These two observations
> are not a guaranteed maximum sensor-conversion latency.
> 
> In a separate 30-second observation / short-pulse / observation sequence,
> 16 two-millisecond holds at two-second intervals returned approximately
> 24 C and 22-23 C. The complete open/wait/read/close scope was about 3.06 ms
> and 3.07 ms median. GT idle residency during the pulse phase exceeded 99.7%.
> 
> Energy-counter-derived card power, W:
>                     before       pulses       after
> B70 A               5.30         5.51         4.87
> B70 B               4.31         4.48         4.39
> 
> These are short observations with normal background system activity; they
> are not a general power-regression benchmark. Holding all domains for two
> seconds during the timing experiment cost about 81 W per card at the
> retained 2800 MHz request and caused self-heating. A permanent forcewake is
> therefore unsuitable. References were released and both GTs returned to C6
> after every completed experiment. No reset, rebind or PM-policy change was
> used for these measurements.
> 
> Source/build checks
> -------------------
> The BMG temperature read path is unchanged between v7.1.10, v7.2.5 and the
> current drm-tip version examined here. The newer Fedora 20260910 firmware
> collection contains byte-identical BMG GuC/HuC files to 20260810.
> 
> Base: drm-tip 666d2f09d9045fc8f72cc1f71528a04acbaf5229
>       2026-09-26 04:44:20 UTC integration manifest
> Checked: checkpatch --strict, zero errors/warnings/checks for the patch;
>          xe_hwmon.o compile with W=1, Xe display disabled and enabled.
> Not yet tested: booted patched kernel, IGT/CI, suspend/resume, hardware
>                acquisition-error paths, other GPU variants, high-rate
>                multi-channel reads.
> 
> The attached change is deliberately an RFC. I would appreciate guidance on
> the correct hardware handshake and domain scope, and can test a revised
> approach on these two cards.
> 
> A later smoke test of the standalone reproducer below also changed a
> previously low reading upward (26 to 44 C on one card). I therefore do not
> use an unchanged/high-value heuristic to declare a value stale, or replace
> readings with an inferred idle temperature. The observations concern the
> reported values; independent physical thermometry was not performed.
> 
> Standalone reproduction aid
> ---------------------------
> After a GPU workload and idle interval, save this as repro.py and run:
>   sudo python3 repro.py 0000:03:00.0 0000:08:00.0
> Use your cards' PCI addresses. This script itself starts no workload.
> 
> #!/usr/bin/env python3
> # SPDX-License-Identifier: MIT
> """Measure B70 temperature refresh after forcewake; run after workload/idle.
> 
> No workload, PM-policy/frequency write, reset or driver rebind is performed.
> Only the requested 8086:e223 Xe devices are read. Each wake lasts about 10 ms;
> readings are printed after the descriptor has been closed.
> """
> import argparse
> import json
> import os
> from pathlib import Path
> import re
> import signal
> import time
> 
> 
> def text(path):
>     return path.read_text().strip()
> 
> 
> def card(bdf, debugfs):
>     if not re.fullmatch(r"[0-9a-f]{4}:[0-9a-f]{2}:[0-9a-f]{2}\.[0-7]", bdf):
>         raise ValueError("Expected a full lowercase PCI address")
>     pci = Path("/sys/bus/pci/devices") / bdf
>     if (text(pci / "vendor"), text(pci / "device")) != ("0x8086", "0xe223"):
>         raise ValueError(f"Not the tested B70 PCI ID: {bdf}")
>     if (pci / "driver").resolve() != Path("/sys/bus/pci/drivers/xe"):
>         raise ValueError(f"Not bound to xe: {bdf}")
>     hw = list((pci / "hwmon").glob("hwmon*"))
>     if len(hw) != 1 or text(hw[0] / "name") != "xe":
>         raise ValueError(f"Ambiguous hwmon: {bdf}")
>     labels = {text(p): p.with_name(p.name.replace("_label", "_input"))
>               for p in hw[0].glob("temp*_label")}
>     if "pkg" not in labels:
>         raise ValueError(f"Missing package sensor: {bdf}")
>     paths = {label: labels[label] for label in ("pkg", "vram", "mctrl", "pcie")
>              if label in labels}
>     return bdf, pci, paths, debugfs / bdf / "forcewake_all"
> 
> 
> def snapshot(pci, paths):
>     start = time.monotonic_ns()
>     values = {label: int(text(path)) for label, path in paths.items()}
>     return {"temp_read_start_ns": start, "temp_read_end_ns": time.monotonic_ns(),
>             "millidegrees": values,
>             "gt_idle": [text(pci / "tile0" / f"gt{n}" / "gtidle/idle_status")
>                         for n in (0, 1)]}
> 
> 
> def interrupted(signum, _frame):
>     raise SystemExit(f"Interrupted by signal {signum}; descriptors will close")
> 
> 
> def main():
>     parser = argparse.ArgumentParser(description=__doc__)
>     parser.add_argument("--debugfs-root", type=Path, default=Path("/sys/kernel/debug/dri"))
>     parser.add_argument("devices", nargs="+")
>     args = parser.parse_args()
>     if os.geteuid() != 0:
>         parser.error("Run with sudo for debugfs access")
>     if len(args.devices) > 8 or len(set(args.devices)) != len(args.devices):
>         parser.error("Select at most eight distinct devices")
>     cards = [card(bdf, args.debugfs_root) for bdf in args.devices]
>     signal.signal(signal.SIGTERM, interrupted)
>     signal.signal(signal.SIGALRM, interrupted)
>     signal.alarm(30)
>     for bdf, pci, paths, wake in cards:
>         before = snapshot(pci, paths)
>         if before["gt_idle"] != ["gt-c6", "gt-c6"]:
>             print(json.dumps({"bdf": bdf, "skipped": "GT is active", "before": before}))
>             continue
>         samples = []
>         opened_at = time.monotonic_ns()
>         with wake.open("rb"):
>             open_returned_at = time.monotonic_ns()
>             for target_us in (0, 1000, 2000, 5000, 10000):
>                 remaining_ns = open_returned_at + target_us * 1000 - time.monotonic_ns()
>                 if remaining_ns > 0:
>                     time.sleep(remaining_ns / 1e9)
>                 value = snapshot(pci, paths)
>                 samples.append({"target_us": target_us,
>                                 "since_open_us": (value["temp_read_start_ns"] - open_returned_at) / 1000,
>                                 **value})
>         closed_at = time.monotonic_ns()
>         time.sleep(1)
>         print(json.dumps({"bdf": bdf, "kernel": os.uname().release,
>                           "power_control": text(pci / "power/control"),
>                           "before": before, "samples": samples,
>                           "open_us": (open_returned_at - opened_at) / 1000,
>                           "total_scope_us": (closed_at - opened_at) / 1000,
>                           "after_close": snapshot(pci, paths)}), flush=True)
> 
> 
> if __name__ == "__main__":
>     main()
> 
>  drivers/gpu/drm/xe/xe_hwmon.c | 38 +++++++++++++++++++++++++++++++++++
>  1 file changed, 38 insertions(+)
> 
> diff --git a/drivers/gpu/drm/xe/xe_hwmon.c b/drivers/gpu/drm/xe/xe_hwmon.c
> index 5edeac96..2bb5bca2 100644
> --- a/drivers/gpu/drm/xe/xe_hwmon.c
> +++ b/drivers/gpu/drm/xe/xe_hwmon.c
> @@ -3,6 +3,7 @@
>   * Copyright © 2023 Intel Corporation
>   */
>  
> +#include <linux/delay.h>
>  #include <linux/hwmon-sysfs.h>
>  #include <linux/hwmon.h>
>  #include <linux/jiffies.h>
> @@ -14,6 +15,8 @@
>  #include "regs/xe_mchbar_regs.h"
>  #include "regs/xe_pcode_regs.h"
>  #include "xe_device.h"
> +#include "xe_force_wake.h"
> +#include "xe_gt.h"
>  #include "xe_hwmon.h"
>  #include "xe_mmio.h"
>  #include "xe_pcode.h"
> @@ -1096,6 +1099,35 @@ xe_hwmon_temp_read(struct xe_hwmon *hwmon, u32 attr, int channel, long *val)
>  	}
>  }
>  
> +static int xe_hwmon_b70_temp_read(struct xe_hwmon *hwmon, u32 attr,
> +				  int channel, long *val)
> +{
> +	unsigned int refs[XE_MAX_TILES_PER_DEVICE * XE_MAX_GT_PER_TILE] = {};
> +	struct xe_device *xe = hwmon->xe;
> +	struct xe_gt *gt;
> +	int ret = -ETIMEDOUT;
> +	u8 id;
> +
> +	for_each_gt(gt, xe, id) {
> +		refs[id] = xe_force_wake_get(gt_to_fw(gt), XE_FORCEWAKE_ALL);
> +		if (!xe_force_wake_ref_has_domain(refs[id], XE_FORCEWAKE_ALL))
> +			goto out;
> +	}
> +
> +	/*
> +	 * A forcewake acknowledgment does not imply a fresh thermal sample.
> +	 * RFC: this interval is empirical on 8086:e223; the conversion time
> +	 * and minimum required wake domains need hardware-spec confirmation.
> +	 */
> +	usleep_range(2000, 2500);
> +	ret = xe_hwmon_temp_read(hwmon, attr, channel, val);
> +out:
> +	for_each_gt(gt, xe, id)
> +		xe_force_wake_put(gt_to_fw(gt), refs[id]);
> +
> +	return ret;
> +}
> +
>  static umode_t
>  xe_hwmon_power_is_visible(struct xe_hwmon *hwmon, u32 attr, int channel)
>  {
> @@ -1408,6 +1440,12 @@ xe_hwmon_read(struct device *dev, enum hwmon_sensor_types type, u32 attr,
>  
>  	switch (type) {
>  	case hwmon_temp:
> +		/* Limit the RFC workaround to the PCI ID measured in issue 7805. */
> +		if (attr == hwmon_temp_input &&
> +		    hwmon->xe->info.platform == XE_BATTLEMAGE &&
> +		    hwmon->xe->info.devid == 0xe223)
> +			return xe_hwmon_b70_temp_read(hwmon, attr, channel, val);
> +
>  		return xe_hwmon_temp_read(hwmon, attr, channel, val);
>  	case hwmon_power:
>  		return xe_hwmon_power_read(hwmon, attr, channel, val);
> 
> base-commit: 666d2f09d9045fc8f72cc1f71528a04acbaf5229
> -- 
> 2.55.0
> 
> 

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

* Re: [PATCH RFC] drm/xe/hwmon: refresh B70 temperature inputs after GT idle
  2026-09-28  0:06 ` [PATCH RFC] " Rodrigo Vivi
@ 2026-09-29 11:59   ` Roland Bata
  0 siblings, 0 replies; 6+ messages in thread
From: Roland Bata @ 2026-09-29 11:59 UTC (permalink / raw)
  To: Rodrigo Vivi
  Cc: intel-xe, karthik.poosa, matthew.brost, raag.jadav,
	thomas.hellstrom


[-- Attachment #1.1: Type: text/plain, Size: 21682 bytes --]

Hi Rodrigo,

Thanks for the feedback. I share the concern about monitoring changing the
power state it is observing. For ordinary background collection, my
preference
is to leave runtime-suspended devices asleep and report the sample
unavailable.

Yes, holding debugfs/forcewake_all across the reads worked as an explicit
diagnostic workaround in the original two-card tests. That is how the RFC
measurements were obtained. The detail still needing hardware guidance is
that successful open/forcewake ACK did not immediately give a refreshed
temperature. The first read was still old; the first changed batch started
around 1.05 ms after successful open and finished around 1.17 ms. The RFC's
2 ms delay was empirical, not a conversion-time guarantee.

The use case motivating this report is temperature-based chassis cooling.
In the original measurements, the GTs did return to C6 after the workload;
the observed issue was the temperature value remaining latched afterward.
The energy-derived watt figures were intended to quantify the cost of the
refresh intervention. I have also observed a low latched reading change
upward, so the consumer cannot reliably identify stale data from its value.

There is an important update to the original setup: I have since installed
the vendor board firmware update (FWCODE 31.1062). It resolved the D3hot
whistle, allowing power/control=auto again. My collector now skips suspended
cards. A first current-auto pilot on one card completed 28 seconds of OpenCL
work and then spent 83.4% of a 180-second cooldown in runtime suspend.
The available package publications timestamped after load completion stayed
at 56 C through approximately 175 seconds. This pilot used no reference
wake.

I have now followed it with a matched diagnostic on that card using the
stock
7.1.10-200.fc44.x86_64 kernel and current board firmware, temporarily
holding
the device in D0. The fixed order was sham/wake/wake/sham, each with a
common
20 ms normalization, 30 s baseline, a fresh approximately 28 s workload, and
150 s cooldown. Both GTs reported C6/0 MHz before each primary comparison;
their sampled cooldown residency deltas were about 99.995% idle.

The primary package read/wait/read pairs were:

  sham: 57 -> 57 C       wake: 64 -> 39 C
  wake: 63 -> 39 C       sham: 63 -> 63 C

The wake endpoint was read while forcewake_all remained open; measured wake
fd scopes were 20.114 and 20.105 ms. Entry/return tracing verified the two
successful package reads and both GT forcewake acquisitions/releases, with
no foreign target reader/job/forcewake in the primary windows and no
recorded
trace loss or missed probes. Ordinary collection continued outside them.

There were coupled changes beyond package temperature. At the first +1 s
auxiliary checkpoint, mctrl/PCIe were 48/63 -> 29/40 C and 47/62 -> 30/40 C.
VRAM changed later. The driver's interval-averaged fan1 feedback went from
1254/1206 RPM before the wakes to 30/15 RPM at +5 s; the sham feedback
stayed
near its pre-probe level. These are exported values, not independent
thermometry/tachometry or a demonstrated firmware fan-control fix.

Existing card-energy-counter deltas gave approximately 41 W in the D0
cooldown windows, then 4.37/8.47 W in the two post-wake windows; sham
follow-ups
remained around 40-42 W. The second wake trial had a late counter-rate rise
and increasing fan feedback without a captured target job/forcewake, so this
is not evidence of a durable low-power fix. These are counter-derived values
with coarse collection timestamps, not external-meter measurements or the
isolated cost of the pulse. Both these diagnostics and the original power
tests used control=on; normal-auto resume and autosuspend-tail costs remain
unmeasured. The coupled behavior makes me wonder whether publication and
board power/fan control share some affected internal state.

For completeness, an earlier attempt stopped after one sham because an
optional fan read returned EAGAIN and exposed a buffered-reader error; it is
retained separately. During the complete run, GitOps recreated the LLM Pod,
but it remained pending until after the diagnostic and its follow-up ended.
No target job was captured in the instrumented cooldown/follow-up windows.
All temporary resources were removed and the normal auto policy restored.

This is one card and two primary trials per arm, with differing starting
temperatures and normalization as an intervention. It supports a current
wake-sensitive discrepancy, not a universal delay/domain requirement, a
firmware-only before/after effect, or a boot test of the RFC.

I agree that a per-input, all-domain wake with a hardcoded PCI ID is not a
generic final solution. I also found Yuta Higuchi's related series 172621
and September 27 follow-up:
https://lists.freedesktop.org/archives/intel-xe/2026-September/142524.html
His matched A/B results and newer GT-only versus RENDER-only pulse results
look useful to coordinate with. In particular, our short negative cur_freq
pulse should not be taken as proof that the GT domain cannot refresh this
telemetry.

Could you clarify the intended direction for a generic solution?

1. Is there a documented temperature publication/ready mechanism, required
   wake domain and latency, or a firmware-side fix? Could the related fan
and
   energy-counter behavior help identify the responsible internal state?
2. Should ordinary hwmon reads avoid waking the device/GT and expose missing
   data when freshness cannot be provided, with explicit refresh opt-in, or
   should a requested temperature read guarantee a fresh sample? What scope
   did you have in mind by generic: the affected Xe platforms/channels or a
   wider interface?
3. If driver-assisted refresh is appropriate, should one bounded refresh be
   shared across thermal channels/readers, with defined age/invalidation,
   rather than waking independently on each input read?

I can share the detailed matched records and help test the agreed sequence,
the other card, and the full PM cost under normal auto policy.

Attached are b70-d1-results-2026-09-29.txt and
b70-d1-summary-2026-09-29.json, containing a short measurement report and
structured results. Full raw logs and the measurement code are available
on request.

Thanks,
Roland

Rodrigo Vivi <rodrigo.vivi@intel.com> ezt írta (időpont: 2026. szept. 28.,
H, 2:06):

> On Sat, Sep 26, 2026 at 12:21:55PM +0200, Bata Roland Krisztián via B4
> Relay wrote:
> > From: Bata Roland Krisztián <batarolandkrisztian@gmail.com>
> >
> > Two Arc Pro B70 devices (8086:e223) retain their package temperature
> > after compute workloads despite both GTs returning to C6. A device
> > runtime PM reference does not refresh the sample while power/control
> > is already on.
> >
> > With GuC 70.72.1 on Fedora kernel 7.1.10, a 60-second OpenCL workload
> > followed by 45 seconds of idle left package temperature at 55 C on both
> > cards. Acquiring all GT forcewake references still returned 55 C in
> > the first read, about 57 us after open completed. At about 1053 us the
> > reported value became 34 C on both cards. A brief GT-only pulse from
> > reading cur_freq did not refresh the package value.
> >
> > As an RFC, acquire forcewake references for the temperature input read,
> > allow time for a new sample, then release the references on both the
> > success and partial-acquisition failure paths. Limit the experiment to
> > the measured PCI ID and leave labels, limits and other hwmon types on
> > their existing paths.
> >
> > The 2 ms interval and use of all domains are empirical, not a hardware
> > specification guarantee. This needs review of the sensor conversion
> > time, minimum wake domains and alternatives such as a PCODE refresh or
> > readiness indication before it can become a production fix.
> >
> > Compile-tested xe_hwmon.o on current drm-tip with W=1 and Xe display both
> > disabled and enabled. The wake/wait/read sequence was measured through
> > debugfs on two B70s; the modified kernel has not been boot-tested.
> >
> > Link: https://gitlab.freedesktop.org/drm/xe/kernel/-/work_items/7805
> > Assisted-by: OpenAI:gpt-6-astra
> > Signed-off-by: Bata Roland Krisztián <batarolandkrisztian@gmail.com>
> > ---
> > RFC: proposed direction for issue 7805, not a claim of a
> production-ready fix.
>
> The fundamental question here is, do we want to burn power in order to
> check
> for the power?
> If so, is grabbing the debugfs/forcewake_all an option before reading this?
>
> But if we decide that this is what we want, we need a generic solution,
> not only for this part...
>
> >
> > Hi Xe maintainers,
> >
> > I am following up on my B70 stale-temperature report with a smaller
> > reproduction, timing measurements, and a prototype read-side change.
> >
> > Questions before turning this into v1:
> >
> > 1. Is there a PCODE operation or freshness/conversion-ready indication
> that
> >    should be used instead of a fixed settling interval? The first MMIO
> read
> >    after successful forcewake still returned the old temperature.
> > 2. Which wake domains are actually required? A GT0 hw_engines read, which
> >    holds all domains for that GT while dumping registers, also refreshed
> >    package/mctrl/PCIe readings. The conservative prototype mirrors the
> >    device forcewake_all sequence used for the controlled timing
> experiment.
> > 3. Should a refresh cover/cache several temperature channels together?
> The
> >    prototype wakes per input read. The power measurements below are for
> one
> >    batch per device every two seconds, not for reading every hwmon
> channel
> >    at high frequency and not measurements of this compiled patch.
> > 4. Is this a known firmware issue with a preferred fix? Should the
> eventual
> >    driver handling apply to other Battlemage IDs? This RFC only opts in
> the
> >    tested 8086:e223 devices.
> >
> > Hardware and reproduction
> > -------------------------
> > Two Intel Arc Pro B70s, PCI ID 8086:e223, on an ASRock X870E Taichi /
> Ryzen
> > 5 9600X. Fedora CoreOS 44.20260829.3.1, kernel 7.1.10-200.fc44.x86_64,
> > GuC 70.72.1, HuC 8.2.10. power/control=on was kept throughout; it is an
> > existing workaround for noisy PCI runtime suspend/resume cycling.
> >
> > A bounded 60-second OpenCL workload used a private 1 MiB output buffer
> per
> > device, followed by 45 seconds without GPU submissions. Both GTs reached
> > C6, actual frequency was zero, and idle residency continued advancing.
> > Package readings stayed at 55 C on both cards. A short GT0 cur_freq read
> > (itself a GT-only forcewake pulse) did not correct the package reading.
> >
> > Opening forcewake_all, then reading temperatures while holding the fd:
> >
> >                     B70 A                  B70 B
> > before              55 C                   55 C
> > first read          55 C at 57.769 us       55 C at 56.119 us
> > first correction    34 C at 1053.529 us     34 C at 1053.039 us
> >
> > Times are measured from completion of open, not the initial wake request.
> > The 2, 5, 10 ms and later samples were also refreshed. These two
> observations
> > are not a guaranteed maximum sensor-conversion latency.
> >
> > In a separate 30-second observation / short-pulse / observation sequence,
> > 16 two-millisecond holds at two-second intervals returned approximately
> > 24 C and 22-23 C. The complete open/wait/read/close scope was about 3.06
> ms
> > and 3.07 ms median. GT idle residency during the pulse phase exceeded
> 99.7%.
> >
> > Energy-counter-derived card power, W:
> >                     before       pulses       after
> > B70 A               5.30         5.51         4.87
> > B70 B               4.31         4.48         4.39
> >
> > These are short observations with normal background system activity; they
> > are not a general power-regression benchmark. Holding all domains for two
> > seconds during the timing experiment cost about 81 W per card at the
> > retained 2800 MHz request and caused self-heating. A permanent forcewake
> is
> > therefore unsuitable. References were released and both GTs returned to
> C6
> > after every completed experiment. No reset, rebind or PM-policy change
> was
> > used for these measurements.
> >
> > Source/build checks
> > -------------------
> > The BMG temperature read path is unchanged between v7.1.10, v7.2.5 and
> the
> > current drm-tip version examined here. The newer Fedora 20260910 firmware
> > collection contains byte-identical BMG GuC/HuC files to 20260810.
> >
> > Base: drm-tip 666d2f09d9045fc8f72cc1f71528a04acbaf5229
> >       2026-09-26 04:44:20 UTC integration manifest
> > Checked: checkpatch --strict, zero errors/warnings/checks for the patch;
> >          xe_hwmon.o compile with W=1, Xe display disabled and enabled.
> > Not yet tested: booted patched kernel, IGT/CI, suspend/resume, hardware
> >                acquisition-error paths, other GPU variants, high-rate
> >                multi-channel reads.
> >
> > The attached change is deliberately an RFC. I would appreciate guidance
> on
> > the correct hardware handshake and domain scope, and can test a revised
> > approach on these two cards.
> >
> > A later smoke test of the standalone reproducer below also changed a
> > previously low reading upward (26 to 44 C on one card). I therefore do
> not
> > use an unchanged/high-value heuristic to declare a value stale, or
> replace
> > readings with an inferred idle temperature. The observations concern the
> > reported values; independent physical thermometry was not performed.
> >
> > Standalone reproduction aid
> > ---------------------------
> > After a GPU workload and idle interval, save this as repro.py and run:
> >   sudo python3 repro.py 0000:03:00.0 0000:08:00.0
> > Use your cards' PCI addresses. This script itself starts no workload.
> >
> > #!/usr/bin/env python3
> > # SPDX-License-Identifier: MIT
> > """Measure B70 temperature refresh after forcewake; run after
> workload/idle.
> >
> > No workload, PM-policy/frequency write, reset or driver rebind is
> performed.
> > Only the requested 8086:e223 Xe devices are read. Each wake lasts about
> 10 ms;
> > readings are printed after the descriptor has been closed.
> > """
> > import argparse
> > import json
> > import os
> > from pathlib import Path
> > import re
> > import signal
> > import time
> >
> >
> > def text(path):
> >     return path.read_text().strip()
> >
> >
> > def card(bdf, debugfs):
> >     if not re.fullmatch(r"[0-9a-f]{4}:[0-9a-f]{2}:[0-9a-f]{2}\.[0-7]",
> bdf):
> >         raise ValueError("Expected a full lowercase PCI address")
> >     pci = Path("/sys/bus/pci/devices") / bdf
> >     if (text(pci / "vendor"), text(pci / "device")) != ("0x8086",
> "0xe223"):
> >         raise ValueError(f"Not the tested B70 PCI ID: {bdf}")
> >     if (pci / "driver").resolve() != Path("/sys/bus/pci/drivers/xe"):
> >         raise ValueError(f"Not bound to xe: {bdf}")
> >     hw = list((pci / "hwmon").glob("hwmon*"))
> >     if len(hw) != 1 or text(hw[0] / "name") != "xe":
> >         raise ValueError(f"Ambiguous hwmon: {bdf}")
> >     labels = {text(p): p.with_name(p.name.replace("_label", "_input"))
> >               for p in hw[0].glob("temp*_label")}
> >     if "pkg" not in labels:
> >         raise ValueError(f"Missing package sensor: {bdf}")
> >     paths = {label: labels[label] for label in ("pkg", "vram", "mctrl",
> "pcie")
> >              if label in labels}
> >     return bdf, pci, paths, debugfs / bdf / "forcewake_all"
> >
> >
> > def snapshot(pci, paths):
> >     start = time.monotonic_ns()
> >     values = {label: int(text(path)) for label, path in paths.items()}
> >     return {"temp_read_start_ns": start, "temp_read_end_ns":
> time.monotonic_ns(),
> >             "millidegrees": values,
> >             "gt_idle": [text(pci / "tile0" / f"gt{n}" /
> "gtidle/idle_status")
> >                         for n in (0, 1)]}
> >
> >
> > def interrupted(signum, _frame):
> >     raise SystemExit(f"Interrupted by signal {signum}; descriptors will
> close")
> >
> >
> > def main():
> >     parser = argparse.ArgumentParser(description=__doc__)
> >     parser.add_argument("--debugfs-root", type=Path,
> default=Path("/sys/kernel/debug/dri"))
> >     parser.add_argument("devices", nargs="+")
> >     args = parser.parse_args()
> >     if os.geteuid() != 0:
> >         parser.error("Run with sudo for debugfs access")
> >     if len(args.devices) > 8 or len(set(args.devices)) !=
> len(args.devices):
> >         parser.error("Select at most eight distinct devices")
> >     cards = [card(bdf, args.debugfs_root) for bdf in args.devices]
> >     signal.signal(signal.SIGTERM, interrupted)
> >     signal.signal(signal.SIGALRM, interrupted)
> >     signal.alarm(30)
> >     for bdf, pci, paths, wake in cards:
> >         before = snapshot(pci, paths)
> >         if before["gt_idle"] != ["gt-c6", "gt-c6"]:
> >             print(json.dumps({"bdf": bdf, "skipped": "GT is active",
> "before": before}))
> >             continue
> >         samples = []
> >         opened_at = time.monotonic_ns()
> >         with wake.open("rb"):
> >             open_returned_at = time.monotonic_ns()
> >             for target_us in (0, 1000, 2000, 5000, 10000):
> >                 remaining_ns = open_returned_at + target_us * 1000 -
> time.monotonic_ns()
> >                 if remaining_ns > 0:
> >                     time.sleep(remaining_ns / 1e9)
> >                 value = snapshot(pci, paths)
> >                 samples.append({"target_us": target_us,
> >                                 "since_open_us":
> (value["temp_read_start_ns"] - open_returned_at) / 1000,
> >                                 **value})
> >         closed_at = time.monotonic_ns()
> >         time.sleep(1)
> >         print(json.dumps({"bdf": bdf, "kernel": os.uname().release,
> >                           "power_control": text(pci / "power/control"),
> >                           "before": before, "samples": samples,
> >                           "open_us": (open_returned_at - opened_at) /
> 1000,
> >                           "total_scope_us": (closed_at - opened_at) /
> 1000,
> >                           "after_close": snapshot(pci, paths)}),
> flush=True)
> >
> >
> > if __name__ == "__main__":
> >     main()
> >
> >  drivers/gpu/drm/xe/xe_hwmon.c | 38 +++++++++++++++++++++++++++++++++++
> >  1 file changed, 38 insertions(+)
> >
> > diff --git a/drivers/gpu/drm/xe/xe_hwmon.c
> b/drivers/gpu/drm/xe/xe_hwmon.c
> > index 5edeac96..2bb5bca2 100644
> > --- a/drivers/gpu/drm/xe/xe_hwmon.c
> > +++ b/drivers/gpu/drm/xe/xe_hwmon.c
> > @@ -3,6 +3,7 @@
> >   * Copyright Š 2023 Intel Corporation
> >   */
> >
> > +#include <linux/delay.h>
> >  #include <linux/hwmon-sysfs.h>
> >  #include <linux/hwmon.h>
> >  #include <linux/jiffies.h>
> > @@ -14,6 +15,8 @@
> >  #include "regs/xe_mchbar_regs.h"
> >  #include "regs/xe_pcode_regs.h"
> >  #include "xe_device.h"
> > +#include "xe_force_wake.h"
> > +#include "xe_gt.h"
> >  #include "xe_hwmon.h"
> >  #include "xe_mmio.h"
> >  #include "xe_pcode.h"
> > @@ -1096,6 +1099,35 @@ xe_hwmon_temp_read(struct xe_hwmon *hwmon, u32
> attr, int channel, long *val)
> >       }
> >  }
> >
> > +static int xe_hwmon_b70_temp_read(struct xe_hwmon *hwmon, u32 attr,
> > +                               int channel, long *val)
> > +{
> > +     unsigned int refs[XE_MAX_TILES_PER_DEVICE * XE_MAX_GT_PER_TILE] =
> {};
> > +     struct xe_device *xe = hwmon->xe;
> > +     struct xe_gt *gt;
> > +     int ret = -ETIMEDOUT;
> > +     u8 id;
> > +
> > +     for_each_gt(gt, xe, id) {
> > +             refs[id] = xe_force_wake_get(gt_to_fw(gt),
> XE_FORCEWAKE_ALL);
> > +             if (!xe_force_wake_ref_has_domain(refs[id],
> XE_FORCEWAKE_ALL))
> > +                     goto out;
> > +     }
> > +
> > +     /*
> > +      * A forcewake acknowledgment does not imply a fresh thermal
> sample.
> > +      * RFC: this interval is empirical on 8086:e223; the conversion
> time
> > +      * and minimum required wake domains need hardware-spec
> confirmation.
> > +      */
> > +     usleep_range(2000, 2500);
> > +     ret = xe_hwmon_temp_read(hwmon, attr, channel, val);
> > +out:
> > +     for_each_gt(gt, xe, id)
> > +             xe_force_wake_put(gt_to_fw(gt), refs[id]);
> > +
> > +     return ret;
> > +}
> > +
> >  static umode_t
> >  xe_hwmon_power_is_visible(struct xe_hwmon *hwmon, u32 attr, int channel)
> >  {
> > @@ -1408,6 +1440,12 @@ xe_hwmon_read(struct device *dev, enum
> hwmon_sensor_types type, u32 attr,
> >
> >       switch (type) {
> >       case hwmon_temp:
> > +             /* Limit the RFC workaround to the PCI ID measured in
> issue 7805. */
> > +             if (attr == hwmon_temp_input &&
> > +                 hwmon->xe->info.platform == XE_BATTLEMAGE &&
> > +                 hwmon->xe->info.devid == 0xe223)
> > +                     return xe_hwmon_b70_temp_read(hwmon, attr,
> channel, val);
> > +
> >               return xe_hwmon_temp_read(hwmon, attr, channel, val);
> >       case hwmon_power:
> >               return xe_hwmon_power_read(hwmon, attr, channel, val);
> >
> > base-commit: 666d2f09d9045fc8f72cc1f71528a04acbaf5229
> > --
> > 2.55.0
> >
> >
>

[-- Attachment #1.2: Type: text/html, Size: 25539 bytes --]

[-- Attachment #2: b70-d1-results-2026-09-29.txt --]
[-- Type: text/plain, Size: 7720 bytes --]

B70 D1: matched temperature-publication diagnostic, 2026-09-29
============================================================

Scope and method
----------------
One Intel Arc Pro B70 (8086:e223, 0000:08:00.0), stock Xe driver on
7.1.10-200.fc44.x86_64 / Fedora CoreOS 44.20260829.3.1. Board firmware:
FWCODE 31.1062, FWDATA 203.46, OptionROM 23.1066.0.0, verified during
2026-09-27 maintenance; no firmware hardware query inside the experiment.
Complete run: b70-p1-d1-20260929-c, 06:16:11-06:32:36 UTC.

Only the target was temporarily held in D0 (power/control=on); both GTs
could enter C6. Normal auto/1000 ms policy was saved and restored. Existing
cooling and collection remained enabled. The second card kept its policy.

Fixed order: sham / wake / wake / sham, each with a fresh workload episode:
1. Common nominal 20 ms forcewake_all normalization, then 30 s baseline.
2. Target-only OpenCL child, private 1 MiB buffer, about 28 s of dispatches;
   completion/readback and resource release before child exit/cooldown.
3. 150 s cooldown; direct checkpoints near 5/30/60/90/120/150 s.
4. Both GTs must report C6/0 MHz. Read package, open /dev/null (sham) or
   target forcewake_all (wake), wait nominal 20 ms, read package, then close.
5. Follow for 30 s, with sequential auxiliary reads near +1/+5/+15/+30 s.
   Those auxiliary reads are outside the primary descriptor-hold window.

Primary comparison (reported package temperature)
------------------------------------------------
Trial  Arm    Before C  After C  Delta C  FD scope ms  Read span ms
1      sham        57       57        0    20.335346     20.634674
2      wake        64       39      -25    20.114219     20.852782
3      wake        63       39      -24    20.104649     20.841902
4      sham        63       63        0    20.306966     20.606984

FD scope: open-return to close-return. Read span: before-read start to
after-read end. The wake endpoint was read while the descriptor was open.
Separate preparatory normalization pairs were 27->26, 57->40, 39->35 and
39->38 C. They are interventions, not additional primary comparisons.

Trial  Baseline pkg C  Load s     Dispatches  Max dispatch ms  Peak pkg/VRAM C
1                 26  28.001752       17269         8.023700            61/46
2                 40  28.002153       17217         6.176559            67/52
3                 35  28.001846       17221         5.341217            66/50
4                 38  28.001436       17216         6.249827            67/52

All readbacks: 1.5999352931976318. Both GTs were C6/0 MHz at every cooldown
and follow-up checkpoint. First-to-last cooldown checkpoint counter deltas
gave 99.994-99.996% GT idle; this excludes the immediate load tail. CPU
maximum was 54.875 C, all eight case-fan tach signals stayed positive, and
cooling had no restart/cutoff. Auxiliary VRAM reached 54 C in trial 4.

Auxiliary temperatures and GPU fan feedback
------------------------------------------
Temperature tuples below are pkg/VRAM/mctrl/PCIe, all in C. Within each
trial, all six cooldown temperature tuples were identical. At +5 s, each
trial still had its +1 s tuple; VRAM changed later in the wake trials.

Trial  Arm   Cooldown end  +1 s         +15 s        +30 s
1      sham  57/46/43/56   57/46/43/56   57/46/43/56  57/46/43/56
2      wake  64/52/48/63   39/52/29/40   39/44/29/40  39/36/29/40
3      wake  63/50/47/62   39/50/30/40   39/46/30/40  39/38/30/40
4      sham  63/54/48/62   63/54/48/62   63/54/48/62  63/54/48/62

Trial  GPU fan1 RPM: cooldown end   +1 s   +5 s   +15 s   +30 s
1                            978    949    975     978     976
2                           1254    653     30      12      20
3                           1206    593     15      12     284
4                           1253   1246   1244    1253    1255

These fan inputs are driver-reported interval averages, not independent
tachometry or proof of actual fan stop. Initial warm-up readings are omitted.

Existing card-energy-counter context
------------------------------------
Delta joules / delta publication seconds, under the deliberate D0 hold:

Trial  Arm   Baseline W  Late cooldown W  Follow-up W
1      sham        4.44            41.07        40.49
2      wake        4.48            41.78         4.37
3      wake        4.36            41.50         8.47
4      sham        4.36            41.69        42.33

Monotonic card counters, existing RAM publications, phase edges omitted.
Intervals: baseline 23-25 s, late cooldown 116 s, follow-up 22-23 s. Integer
publication timestamps cause rate quantization. These are not external-meter
measurements, isolated pulse costs, whole-host watts or normal-auto savings.

Trial 3's approximate +23.512 to +26.512 s publication interval rose to
34.53 counter-derived W; fan1 reported 284 RPM at +30 s while package stayed
39 C. No target job/forcewake callback was captured during that follow-up.
The cause is unresolved; a durable low-power/fan-control fix is not proven.

Trace attribution
-----------------
Run-wide probe counts (not target-only): hwmon entry/return 10592/10592;
forcewake get/return 350/350 and put/return 350/350. Zero ring-buffer loss,
malformed probe records, or recorded probe misses.

All four primary and four normalization comparisons passed the audit:
two own successful package callbacks, paired inside their timed reads;
calibrated monotonic markers; no foreign target/unknown-device read,
foreign target forcewake, target job, or unmatched callback in the window.
Each wake acquired two distinct GT references during open. Requested ALL
marker 0x10000; returned refs 0x10003/0x11829. Close released with 0x10000,
which stock Xe expands to the initialized domains. ACK is not sensor-ready.

For each sampled cooldown (first ~+5 s checkpoint through the pre-primary
read), 1306 target hwmon callbacks, zero target jobs and zero target forcewake
calls were captured. Each 30 s follow-up also had zero target jobs/forcewake.
Hwmon tracing was continuous; PM-get/forcewake/job tracing was disabled during
compute dispatches. This does not observe every autonomous firmware action.

Deviations, limits and retained evidence
--------------------------------------
Earlier partial run b70-p1-d1-20260929-b completed one sham (57->57 C), then
stopped before trial 2's normalization comparison: an optional fan read
returned -EAGAIN and exposed a buffered Python reader error. Raw reading and
optional-error handling were corrected. That run is retained separately.

During the complete run, GitOps undid the intended application pause and
created a replacement LLM Pod at 06:18:30 UTC. It remained pending until
06:32:34, after the diagnostic finished at 06:32:32.486072 and the last
primary comparison at 06:32:02.456821. No competing target job was captured
in the measured quiet windows. Future long-run coordination needs a durable
hold/live-state guard. Both runs' PM/application state and cleanup passed.

One card, two trials per arm, fixed sequential order, differing starting
temperatures and dynamically responding case fans. Normalization is itself
an intervention. The data support current-firmware wake-sensitive publication
and coupled fan/counter changes, not independent physical thermometry, a
universal delay/minimum domain, firmware-only causality, or an RFC boot test.

Companion: b70-d1-summary-2026-09-29.json (units and timing definitions inside).
Raw records and exact executed measurement code are available on request.
Retained result archive SHA-256, complete run:
bd594d6069aea0b9471fc6fe4e2722d09f9d8b20b5aa38971a37e9d3ef81d6b9
Retained result archive SHA-256, earlier partial run:
1d43c9fca655f034aa0a5eb7f72c6a0c9834deeb3b7d3d5766aa42b40bb81f67

[-- Attachment #3: b70-d1-summary-2026-09-29.json --]
[-- Type: application/json, Size: 18584 bytes --]

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

end of thread, other threads:[~2026-09-29 12:54 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-09-26 10:21 [PATCH RFC] drm/xe/hwmon: refresh B70 temperature inputs after GT idle Bata Roland Krisztián via B4 Relay
2026-09-26 15:19 ` ✓ CI.KUnit: success for " Patchwork
2026-09-26 16:00 ` ✓ Xe.CI.BAT: " Patchwork
2026-09-26 17:47 ` ✓ Xe.CI.FULL: " Patchwork
2026-09-28  0:06 ` [PATCH RFC] " Rodrigo Vivi
2026-09-29 11:59   ` Roland Bata

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox