Commit 971c2b68 authored by Dave Airlie's avatar Dave Airlie
Browse files

Merge tag 'drm-xe-next-2026-01-15' of https://gitlab.freedesktop.org/drm/xe/kernel into drm-next



UAPI Changes:
 - Remove unused KEEP_ACTIVE flag in the new multi queue uAPI (Niranjana)
 - Expose new temperature attributes in HWMON (Karthik)

Driver Changes:
 - Force i2c into polling mode when in survivability (Raag)
 - Validate preferred system memory placement in xe_svm_range_validate (Brost)
 - Adjust page count tracepoints in shrinker (Brost)
 - Fix a couple drm_pagemap issues with multi-GPU (Brost)
 - Define GuC firmware for NVL-S (Roper)
 - Handle GT resume failure (Raag)
 - Improve wedged mode handling (Lukasz)
 - Add missing newlines to drm_warn messages (Osama)
 - Fix WQ_MEM_RECLAIM passed as max_active to alloc_workqueue (Marco)
 - Page-reclaim fixes and PRL stats addition (Brian)
 - Fix struct guc_lfd_file_header kernel-doc (Jani)
 - Allow compressible surfaces to be 1-way coherent (Xin)
 - Fix DRM scheduler layering violations in Xe (Brost)
 - Minor improvements to MERT code (Michal)
 - Privatize struct xe_ggtt_node (Maarten)
 - Convert wait for lmem init into an assert (Bala)
 - Enable GSC loading and PXP for PTL (Daniele)
 - Replace use of system_wq with tlb_inval->timeout_wq (Marco)
 - VRAM addr range bit expansion (Fei)
 - Cleanup unused header includes (Roper)

Signed-off-by: default avatarDave Airlie <airlied@redhat.com>

From: Rodrigo Vivi <rodrigo.vivi@intel.com>
Link: https://patch.msgid.link/aWkSxRQK7VhTlP32@intel.com
parents 9d10cd52 83675851
Loading
Loading
Loading
Loading
+110 −0
Original line number Diff line number Diff line
@@ -109,6 +109,22 @@ Description: RO. Package current voltage in millivolt.

		Only supported for particular Intel Xe graphics platforms.

What:		/sys/bus/pci/drivers/xe/.../hwmon/hwmon<i>/temp2_crit
Date:		January 2026
KernelVersion:	7.0
Contact:	intel-xe@lists.freedesktop.org
Description:	RO. Package critical temperature in millidegree Celsius.

		Only supported for particular Intel Xe graphics platforms.

What:		/sys/bus/pci/drivers/xe/.../hwmon/hwmon<i>/temp2_emergency
Date:		January 2026
KernelVersion:	7.0
Contact:	intel-xe@lists.freedesktop.org
Description:	RO. Package shutdown temperature in millidegree Celsius.

		Only supported for particular Intel Xe graphics platforms.

What:		/sys/bus/pci/drivers/xe/.../hwmon/hwmon<i>/temp2_input
Date:		March 2025
KernelVersion:	6.15
@@ -117,6 +133,30 @@ Description: RO. Package temperature in millidegree Celsius.

		Only supported for particular Intel Xe graphics platforms.

What:		/sys/bus/pci/drivers/xe/.../hwmon/hwmon<i>/temp2_max
Date:		January 2026
KernelVersion:	7.0
Contact:	intel-xe@lists.freedesktop.org
Description:	RO. Package maximum temperature limit in millidegree Celsius.

		Only supported for particular Intel Xe graphics platforms.

What:		/sys/bus/pci/drivers/xe/.../hwmon/hwmon<i>/temp3_crit
Date:		January 2026
KernelVersion:	7.0
Contact:	intel-xe@lists.freedesktop.org
Description:	RO. VRAM critical temperature in millidegree Celsius.

		Only supported for particular Intel Xe graphics platforms.

What:		/sys/bus/pci/drivers/xe/.../hwmon/hwmon<i>/temp3_emergency
Date:		January 2026
KernelVersion:	7.0
Contact:	intel-xe@lists.freedesktop.org
Description:	RO. VRAM shutdown temperature in millidegree Celsius.

		Only supported for particular Intel Xe graphics platforms.

What:		/sys/bus/pci/drivers/xe/.../hwmon/hwmon<i>/temp3_input
Date:		March 2025
KernelVersion:	6.15
@@ -125,6 +165,76 @@ Description: RO. VRAM temperature in millidegree Celsius.

		Only supported for particular Intel Xe graphics platforms.

What:		/sys/bus/pci/drivers/xe/.../hwmon/hwmon<i>/temp4_crit
Date:		January 2026
KernelVersion:	7.0
Contact:	intel-xe@lists.freedesktop.org
Description:	RO. Memory controller critical temperature in millidegree Celsius.

		Only supported for particular Intel Xe graphics platforms.

What:		/sys/bus/pci/drivers/xe/.../hwmon/hwmon<i>/temp4_emergency
Date:		January 2026
KernelVersion:	7.0
Contact:	intel-xe@lists.freedesktop.org
Description:	RO. Memory controller shutdown temperature in millidegree Celsius.

		Only supported for particular Intel Xe graphics platforms.

What:		/sys/bus/pci/drivers/xe/.../hwmon/hwmon<i>/temp4_input
Date:		January 2026
KernelVersion:	7.0
Contact:	intel-xe@lists.freedesktop.org
Description:	RO. Memory controller average temperature in millidegree Celsius.

		Only supported for particular Intel Xe graphics platforms.

What:		/sys/bus/pci/drivers/xe/.../hwmon/hwmon<i>/temp5_crit
Date:		January 2026
KernelVersion:	7.0
Contact:	intel-xe@lists.freedesktop.org
Description:	RO. GPU PCIe critical temperature in millidegree Celsius.

		Only supported for particular Intel Xe graphics platforms.

What:		/sys/bus/pci/drivers/xe/.../hwmon/hwmon<i>/temp5_emergency
Date:		January 2026
KernelVersion:	7.0
Contact:	intel-xe@lists.freedesktop.org
Description:	RO. GPU PCIe shutdown temperature in millidegree Celsius.

		Only supported for particular Intel Xe graphics platforms.

What:		/sys/bus/pci/drivers/xe/.../hwmon/hwmon<i>/temp5_input
Date:		January 2026
KernelVersion:	7.0
Contact:	intel-xe@lists.freedesktop.org
Description:	RO. GPU PCIe temperature in millidegree Celsius.

What:		/sys/bus/pci/drivers/xe/.../hwmon/hwmon<i>/temp[6-21]_crit
Date:		January 2026
KernelVersion:	7.0
Contact:	intel-xe@lists.freedesktop.org
Description:	RO. VRAM channel critical temperature in millidegree Celsius.

		Only supported for particular Intel Xe graphics platforms.

What:		/sys/bus/pci/drivers/xe/.../hwmon/hwmon<i>/temp[6-21]_emergency
Date:		January 2026
KernelVersion:	7.0
Contact:	intel-xe@lists.freedesktop.org
Description:	RO. VRAM channel shutdown temperature in millidegree Celsius.

		Only supported for particular Intel Xe graphics platforms.

What:		/sys/bus/pci/drivers/xe/.../hwmon/hwmon<i>/temp[6-21]_input
Date:		January 2026
KernelVersion:	7.0
Contact:	intel-xe@lists.freedesktop.org
Description:	RO. VRAM channel temperature in millidegree Celsius.

		Only supported for particular Intel Xe graphics platforms.

What:		/sys/bus/pci/drivers/xe/.../hwmon/hwmon<i>/fan1_input
Date:		March 2025
KernelVersion:	6.16
+17 −5
Original line number Diff line number Diff line
@@ -480,8 +480,18 @@ int drm_pagemap_migrate_to_devmem(struct drm_pagemap_devmem *devmem_allocation,
		.start		= start,
		.end		= end,
		.pgmap_owner	= pagemap->owner,
		.flags		= MIGRATE_VMA_SELECT_SYSTEM | MIGRATE_VMA_SELECT_DEVICE_COHERENT |
		MIGRATE_VMA_SELECT_DEVICE_PRIVATE,
		/*
		 * FIXME: MIGRATE_VMA_SELECT_DEVICE_PRIVATE intermittently
		 * causes 'xe_exec_system_allocator --r *race*no*' to trigger aa
		 * engine reset and a hard hang due to getting stuck on a folio
		 * lock. This should work and needs to be root-caused. The only
		 * downside of not selecting MIGRATE_VMA_SELECT_DEVICE_PRIVATE
		 * is that device-to-device migrations won’t work; instead,
		 * memory will bounce through system memory. This path should be
		 * rare and only occur when the madvise attributes of memory are
		 * changed or atomics are being used.
		 */
		.flags		= MIGRATE_VMA_SELECT_SYSTEM | MIGRATE_VMA_SELECT_DEVICE_COHERENT,
	};
	unsigned long i, npages = npages_in_range(start, end);
	unsigned long own_pages = 0, migrated_pages = 0;
@@ -582,7 +592,7 @@ int drm_pagemap_migrate_to_devmem(struct drm_pagemap_devmem *devmem_allocation,

	err = ops->populate_devmem_pfn(devmem_allocation, npages, migrate.dst);
	if (err)
		goto err_finalize;
		goto err_aborted_migration;

	own_pages = 0;

@@ -621,9 +631,11 @@ int drm_pagemap_migrate_to_devmem(struct drm_pagemap_devmem *devmem_allocation,
		err = drm_pagemap_migrate_range(devmem_allocation, migrate.src, migrate.dst,
						pages, pagemap_addr, &last, &cur,
						mdetails);
		if (err)
		if (err) {
			npages = i + 1;
			goto err_finalize;
		}
	}
	cur.start = npages;
	cur.ops = NULL; /* Force migration */
	err = drm_pagemap_migrate_range(devmem_allocation, migrate.src, migrate.dst,
@@ -646,7 +658,7 @@ int drm_pagemap_migrate_to_devmem(struct drm_pagemap_devmem *devmem_allocation,
err_aborted_migration:
	migrate_vma_pages(&migrate);

	for (i = 0; i < npages;) {
	for (i = 0; !err && i < npages;) {
		struct page *page = migrate_pfn_to_page(migrate.src[i]);
		unsigned long nr_pages = page ? NR_PAGES(folio_order(page_folio(page))) : 1;

+2 −1
Original line number Diff line number Diff line
@@ -370,7 +370,8 @@ always-$(CONFIG_DRM_XE_WERROR) += \
	$(patsubst %.h,%.hdrtest, $(shell cd $(src) && find * -name '*.h' $(hdrtest_find_args)))

quiet_cmd_hdrtest = HDRTEST $(patsubst %.hdrtest,%.h,$@)
      cmd_hdrtest = $(CC) -DHDRTEST $(filter-out $(CFLAGS_GCOV), $(c_flags)) -S -o /dev/null -x c /dev/null -include $<; touch $@
      cmd_hdrtest = $(CC) $(filter-out $(CFLAGS_GCOV), $(c_flags)) -S -o /dev/null -x c /dev/null -include $< -include $<; \
		$(srctree)/scripts/kernel-doc -none -Werror $<; touch $@

$(obj)/%.hdrtest: $(src)/%.h FORCE
	$(call if_changed_dep,hdrtest)
+2 −3
Original line number Diff line number Diff line
@@ -148,7 +148,7 @@ struct guc_lfd_data_os_info {
} __packed;

/**
 * struct guc_logfile_header - Header of GuC Log Streaming-LFD-File Format.
 * struct guc_lfd_file_header - Header of GuC Log Streaming-LFD-File Format.
 * This structure encapsulates the layout of the guc-log-file format
 */
struct guc_lfd_file_header {
@@ -163,8 +163,7 @@ struct guc_lfd_file_header {
#define GUC_LFD_FILE_HEADER_VERSION_MASK_MAJOR	GENMASK(31, 16)
#define GUC_LFD_FILE_HEADER_VERSION_MASK_MINOR	GENMASK(15, 0)

	/** @stream: A stream of one or more guc_lfd_data LFD blocks
	 */
	/** @stream: A stream of one or more guc_lfd_data LFD blocks */
	u32 stream[];
} __packed;

+2 −2
Original line number Diff line number Diff line
@@ -8,7 +8,7 @@

#include <uapi/drm/i915_drm.h>

#include "xe_ggtt_types.h"
#include "xe_ggtt.h"

#include <linux/refcount.h>

@@ -30,7 +30,7 @@ struct i915_vma {

static inline u32 i915_ggtt_offset(const struct i915_vma *vma)
{
	return vma->node->base.start;
	return xe_ggtt_node_addr(vma->node);
}

#endif
Loading