History

Merge tag 'drm-next-2022-03-24' of git://anongit.freedesktop.org/drm/drm

Pull drm updates from Dave Airlie: "Lots of work all over, Intel improving DG2 support, amdkfd CRIU support, msm new hw support, and faster fbdev support. dma-buf: - rename dma-buf-map to iosys-map core: - move buddy allocator to core - add pci/platform init macros - improve EDID parser deep color handling - EDID timing type 7 support - add GPD Win Max quirk - add yes/no helpers to string_helpers - flatten syncobj chains - add nomodeset support to lots of drivers - improve fb-helper clipping support - add default property value interface fbdev: - improve fbdev ops speed ttm: - add a backpointer from ttm bo->ttm resource dp: - move displayport headers - add a dp helper module bridge: - anx7625 atomic support, HDCP support panel: - split out panel-lvds and lvds bindings - find panels in OF subnodes privacy: - add chromeos privacy screen support fb: - hot unplug fw fb on forced removal simpledrm: - request region instead of marking ioresource busy - add panel oreintation property udmabuf: - fix oops with 0 pages amdgpu: - power management code cleanup - Enable freesync video mode by default - RAS code cleanup - Improve VRAM access for debug using SDMA - SR-IOV rework special register access and fixes - profiling power state request ioctl - expose IP discovery via sysfs - Cyan skillfish updates - GC 10.3.7, SDMA 5.2.7, DCN 3.1.6 updates - expose benchmark tests via debugfs - add module param to disable XGMI for testing - GPU reset debugfs register dumping support amdkfd: - CRIU support - SDMA queue fixes radeon: - UVD suspend fix - iMac backlight fix i915: - minimal parallel submission for execlists - DG2-G12 subplatform added - DG2 programming workarounds - DG2 accelerated migration support - flat CCS and CCS engine support for XeHP - initial small BAR support - drop fake LMEM support - ADL-N PCH support - bigjoiner updates - introduce VMA resources and async unbinding - register definitions cleanups - multi-FBC refactoring - DG1 OPROM over SPI support - ADL-N platform enabling - opregion mailbox #5 support - DP MST ESI improvements - drm device based logging - async flip optimisation for DG2 - CPU arch abstraction fixes - improve GuC ADS init to work on aarch64 - tweak TTM LRU priority hint - GuC 69.0.3 support - remove short term execbuf pins nouveau: - higher DP/eDP bitrates - backlight fixes msm: - dpu + dp support for sc8180x - dp support for sm8350 - dpu + dsi support for qcm2290 - 10nm dsi phy tuning support - bridge support for dp encoder - gpu support for additional 7c3 SKUs ingenic: - HDMI support for JZ4780 - aux channel EDID support ast: - AST2600 support - add wide screen support - create DP/DVI connectors omapdrm: - fix implicit dma_buf fencing vc4: - add CSC + full range support - better display firmware handoff panfrost: - add initial dual-core GPU support stm: - new revision support - fb handover support mediatek: - transfer display binding document to yaml format. - add mt8195 display device binding. - allow commands to be sent during video mode. - add wait_for_event for crtc disable by cmdq. tegra: - YUV format support rcar-du: - LVDS support for M3-W+ (R8A77961) exynos: - BGR pixel format for FIMD device" * tag 'drm-next-2022-03-24' of git://anongit.freedesktop.org/drm/drm: (1529 commits) drm/i915/display: Do not re-enable PSR after it was marked as not reliable drm/i915/display: Fix HPD short pulse handling for eDP drm/amdgpu: Use drm_mode_copy() drm/radeon: Use drm_mode_copy() drm/amdgpu: Use ternary operator in `vcn_v1_0_start()` drm/amdgpu: Remove pointless on stack mode copies drm/amd/pm: fix indenting in __smu_cmn_reg_print_error() drm/amdgpu/dc: fix typos in comments drm/amdgpu: fix typos in comments drm/amd/pm: fix typos in comments drm/amdgpu: Add stolen reserved memory for MI25 SRIOV. drm/amdgpu: Merge get_reserved_allocation to get_vbios_allocations. drm/amdkfd: evict svm bo worker handle error drm/amdgpu/vcn: fix vcn ring test failure in igt reload test drm/amdgpu: only allow secure submission on rings which support that drm/amdgpu: fixed the warnings reported by kernel test robot drm/amd/display: 3.2.177 drm/amd/display: [FW Promotion] Release 0.0.108.0 drm/amd/display: Add save/restore PANEL_PWRSEQ_REF_DIV2 drm/amd/display: Wait for hubp read line for Pollock ...

Linus Torvalds committed 4 years ago

Commit b14ffae2 parents 52deda9 c6e90a11466 files · +487504 −33843Browse files

Showing the changes to include/uapi/linux (1 of 1466 files). Show all

Unified · Split

include/uapi/linux/kfd_ioctl.h+91−7
@@ -32,9 +32,11 @@ · 31 unmodified lines
3232 * - 1.4 - Indicate new SRAM EDC bit in device properties
3333 * - 1.5 - Add SVM API
3434 * - 1.6 - Query clear flags in SVM get_attr API
35+ * - 1.7 - Checkpoint Restore (CRIU) API
36+ * - 1.8 - CRIU - Support for SDMA transfers with GTT BOs
3537 */
3638 #define KFD_IOCTL_MAJOR_VERSION 1
37−#define KFD_IOCTL_MINOR_VERSION 6
39+#define KFD_IOCTL_MINOR_VERSION 8
3840
3941 struct kfd_ioctl_get_version_args {
4042 __u32 major_version; /* from KFD */
@@ -194,6 +196,8 @@ struct kfd_ioctl_dbg_wave_control_args { · 153 unmodified lines
194196 __u32 buf_size_in_bytes; /*including gpu_id and buf_size */
195197 };
196198
199+#define KFD_INVALID_FD 0xffffffff
200+
197201 /* Matching HSA_EVENTTYPE */
198202 #define KFD_IOC_EVENT_SIGNAL 0
199203 #define KFD_IOC_EVENT_NODECHANGE 1
@@ -462,12 +466,89 @@ enum kfd_smi_event { · 262 unmodified lines
462466 };
463467
464468 #define KFD_SMI_EVENT_MASK_FROM_INDEX(i) (1ULL << ((i) - 1))
469+#define KFD_SMI_EVENT_MSG_SIZE 96
465470
466471 struct kfd_ioctl_smi_events_args {
467472 __u32 gpuid; /* to KFD */
468473 __u32 anon_fd; /* from KFD */
469474 };
470475
476+/**************************************************************************************************
477+ * CRIU IOCTLs (Checkpoint Restore In Userspace)
478+ *
479+ * When checkpointing a process, the userspace application will perform:
480+ * 1. PROCESS_INFO op to determine current process information. This pauses execution and evicts
481+ * all the queues.
482+ * 2. CHECKPOINT op to checkpoint process contents (BOs, queues, events, svm-ranges)
483+ * 3. UNPAUSE op to un-evict all the queues
484+ *
485+ * When restoring a process, the CRIU userspace application will perform:
486+ *
487+ * 1. RESTORE op to restore process contents
488+ * 2. RESUME op to start the process
489+ *
490+ * Note: Queues are forced into an evicted state after a successful PROCESS_INFO. User
491+ * application needs to perform an UNPAUSE operation after calling PROCESS_INFO.
492+ */
493+
494+enum kfd_criu_op {
495+ KFD_CRIU_OP_PROCESS_INFO,
496+ KFD_CRIU_OP_CHECKPOINT,
497+ KFD_CRIU_OP_UNPAUSE,
498+ KFD_CRIU_OP_RESTORE,
499+ KFD_CRIU_OP_RESUME,
500+};
501+
502+/**
503+ * kfd_ioctl_criu_args - Arguments perform CRIU operation
504+ * @devices: [in/out] User pointer to memory location for devices information.
505+ * This is an array of type kfd_criu_device_bucket.
506+ * @bos: [in/out] User pointer to memory location for BOs information
507+ * This is an array of type kfd_criu_bo_bucket.
508+ * @priv_data: [in/out] User pointer to memory location for private data
509+ * @priv_data_size: [in/out] Size of priv_data in bytes
510+ * @num_devices: [in/out] Number of GPUs used by process. Size of @devices array.
511+ * @num_bos [in/out] Number of BOs used by process. Size of @bos array.
512+ * @num_objects: [in/out] Number of objects used by process. Objects are opaque to
513+ * user application.
514+ * @pid: [in/out] PID of the process being checkpointed
515+ * @op [in] Type of operation (kfd_criu_op)
516+ *
517+ * Return: 0 on success, -errno on failure
518+ */
519+struct kfd_ioctl_criu_args {
520+ __u64 devices; /* Used during ops: CHECKPOINT, RESTORE */
521+ __u64 bos; /* Used during ops: CHECKPOINT, RESTORE */
522+ __u64 priv_data; /* Used during ops: CHECKPOINT, RESTORE */
523+ __u64 priv_data_size; /* Used during ops: PROCESS_INFO, RESTORE */
524+ __u32 num_devices; /* Used during ops: PROCESS_INFO, RESTORE */
525+ __u32 num_bos; /* Used during ops: PROCESS_INFO, RESTORE */
526+ __u32 num_objects; /* Used during ops: PROCESS_INFO, RESTORE */
527+ __u32 pid; /* Used during ops: PROCESS_INFO, RESUME */
528+ __u32 op;
529+};
530+
531+struct kfd_criu_device_bucket {
532+ __u32 user_gpu_id;
533+ __u32 actual_gpu_id;
534+ __u32 drm_fd;
535+ __u32 pad;
536+};
537+
538+struct kfd_criu_bo_bucket {
539+ __u64 addr;
540+ __u64 size;
541+ __u64 offset;
542+ __u64 restored_offset; /* During restore, updated offset for BO */
543+ __u32 gpu_id; /* This is the user_gpu_id */
544+ __u32 alloc_flags;
545+ __u32 dmabuf_fd;
546+ __u32 pad;
547+};
548+
549+/* CRIU IOCTLs - END */
550+/**************************************************************************************************/
551+
471552 /* Register offset inside the remapped mmio page
472553 */
473554 enum kfd_mmio_remap {
@@ -596,7 +677,7 @@ struct kfd_ioctl_svm_args { · 122 unmodified lines
596677 __u32 op;
597678 __u32 nattr;
598679 /* Variable length array of attributes */
599− struct kfd_ioctl_svm_attribute attrs[0];
680+ struct kfd_ioctl_svm_attribute attrs[];
600681 };
601682
602683 /**
@@ -679,16 +760,16 @@ struct kfd_ioctl_set_xnack_mode_args { · 76 unmodified lines
679760 #define AMDKFD_IOC_WAIT_EVENTS \
680761 AMDKFD_IOWR(0x0C, struct kfd_ioctl_wait_events_args)
681762
682−#define AMDKFD_IOC_DBG_REGISTER \
763+#define AMDKFD_IOC_DBG_REGISTER_DEPRECATED \
683764 AMDKFD_IOW(0x0D, struct kfd_ioctl_dbg_register_args)
684765
685−#define AMDKFD_IOC_DBG_UNREGISTER \
766+#define AMDKFD_IOC_DBG_UNREGISTER_DEPRECATED \
686767 AMDKFD_IOW(0x0E, struct kfd_ioctl_dbg_unregister_args)
687768
688−#define AMDKFD_IOC_DBG_ADDRESS_WATCH \
769+#define AMDKFD_IOC_DBG_ADDRESS_WATCH_DEPRECATED \
689770 AMDKFD_IOW(0x0F, struct kfd_ioctl_dbg_address_watch_args)
690771
691−#define AMDKFD_IOC_DBG_WAVE_CONTROL \
772+#define AMDKFD_IOC_DBG_WAVE_CONTROL_DEPRECATED \
692773 AMDKFD_IOW(0x10, struct kfd_ioctl_dbg_wave_control_args)
693774
694775 #define AMDKFD_IOC_SET_SCRATCH_BACKING_VA \
@@ -742,7 +823,10 @@ struct kfd_ioctl_set_xnack_mode_args { · 47 unmodified lines
742823 #define AMDKFD_IOC_SET_XNACK_MODE \
743824 AMDKFD_IOWR(0x21, struct kfd_ioctl_set_xnack_mode_args)
744825
826+#define AMDKFD_IOC_CRIU_OP \
827+ AMDKFD_IOWR(0x22, struct kfd_ioctl_criu_args)
828+
745829 #define AMDKFD_COMMAND_START 0x01
746−#define AMDKFD_COMMAND_END 0x22
830+#define AMDKFD_COMMAND_END 0x23
747831
748832 #endif