mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2025-08-27 10:34:13 +00:00

Mixing GPU and CPU atomics does not work unless a strict migration policy of GPU atomics must be device memory. Enforce a policy of must be in VRAM with a retry loop of 3 attempts, if retry loop fails abort fault. Removing always_migrate_to_vram modparam as we now have real migration policy. v2: - Only retry migration on atomics - Drop alway migrate modparam v3: - Only set vram_only on DGFX (Himal) - Bail on get_pages failure if vram_only and retry count exceeded (Himal) - s/vram_only/devmem_only - Update xe_svm_range_is_valid to accept devmem_only argument v4: - Fix logic bug get_pages failure v5: - Fix commit message (Himal) - Mention removing always_migrate_to_vram in commit message (Lucas) - Fix xe_svm_range_is_valid to check for devmem pages - Bail on devmem_only && !migrate_devmem (Thomas) v6: - Add READ_ONCE barriers for opportunistic checks (Thomas) - Pair READ_ONCE with WRITE_ONCE (Thomas) v7: - Adjust comments (Thomas) Fixes:2f118c9491
("drm/xe: Add SVM VRAM migration") Cc: stable@vger.kernel.org Signed-off-by: Himal Prasad Ghimiray <himal.prasad.ghimiray@intel.com> Signed-off-by: Matthew Brost <matthew.brost@intel.com> Acked-by: Himal Prasad Ghimiray <himal.prasad.ghimiray@intel.com> Reviewed-by: Thomas Hellström <thomas.hellstrom@linux.intel.com> Link: https://lore.kernel.org/r/20250512135500.1405019-3-matthew.brost@intel.com (cherry picked from commita9ac0fa455
) Signed-off-by: Lucas De Marchi <lucas.demarchi@intel.com>
32 lines
539 B
C
32 lines
539 B
C
/* SPDX-License-Identifier: MIT */
|
|
/*
|
|
* Copyright © 2023 Intel Corporation
|
|
*/
|
|
|
|
#ifndef _XE_MODULE_H_
|
|
#define _XE_MODULE_H_
|
|
|
|
#include <linux/types.h>
|
|
|
|
/* Module modprobe variables */
|
|
struct xe_modparam {
|
|
bool force_execlist;
|
|
bool probe_display;
|
|
u32 force_vram_bar_size;
|
|
int guc_log_level;
|
|
char *guc_firmware_path;
|
|
char *huc_firmware_path;
|
|
char *gsc_firmware_path;
|
|
char *force_probe;
|
|
#ifdef CONFIG_PCI_IOV
|
|
unsigned int max_vfs;
|
|
#endif
|
|
int wedged_mode;
|
|
u32 svm_notifier_size;
|
|
};
|
|
|
|
extern struct xe_modparam xe_modparam;
|
|
|
|
#endif
|
|
|