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
32 * - 1.4 - Indicate new SRAM EDC bit in device properties32 * - 1.4 - Indicate new SRAM EDC bit in device properties
33 * - 1.5 - Add SVM API33 * - 1.5 - Add SVM API
34 * - 1.6 - Query clear flags in SVM get_attr API34 * - 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
35 */37 */
36#define KFD_IOCTL_MAJOR_VERSION 138#define KFD_IOCTL_MAJOR_VERSION 1
37#define KFD_IOCTL_MINOR_VERSION 639#define KFD_IOCTL_MINOR_VERSION 8
38 40
39struct kfd_ioctl_get_version_args {41struct kfd_ioctl_get_version_args {
40 __u32 major_version; /* from KFD */42 __u32 major_version; /* from KFD */
@@ -194,6 +196,8 @@ struct kfd_ioctl_dbg_wave_control_args { · 153 unmodified lines
194 __u32 buf_size_in_bytes; /*including gpu_id and buf_size */196 __u32 buf_size_in_bytes; /*including gpu_id and buf_size */
195};197};
196 198
199#define KFD_INVALID_FD 0xffffffff
200
197/* Matching HSA_EVENTTYPE */201/* Matching HSA_EVENTTYPE */
198#define KFD_IOC_EVENT_SIGNAL 0202#define KFD_IOC_EVENT_SIGNAL 0
199#define KFD_IOC_EVENT_NODECHANGE 1203#define KFD_IOC_EVENT_NODECHANGE 1
@@ -462,12 +466,89 @@ enum kfd_smi_event { · 262 unmodified lines
462};466};
463 467
464#define KFD_SMI_EVENT_MASK_FROM_INDEX(i) (1ULL << ((i) - 1))468#define KFD_SMI_EVENT_MASK_FROM_INDEX(i) (1ULL << ((i) - 1))
469#define KFD_SMI_EVENT_MSG_SIZE 96
465 470
466struct kfd_ioctl_smi_events_args {471struct kfd_ioctl_smi_events_args {
467 __u32 gpuid; /* to KFD */472 __u32 gpuid; /* to KFD */
468 __u32 anon_fd; /* from KFD */473 __u32 anon_fd; /* from KFD */
469};474};
470 475
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
494enum 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 */
519struct 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
531struct kfd_criu_device_bucket {
532 __u32 user_gpu_id;
533 __u32 actual_gpu_id;
534 __u32 drm_fd;
535 __u32 pad;
536};
537
538struct 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
471/* Register offset inside the remapped mmio page552/* Register offset inside the remapped mmio page
472 */553 */
473enum kfd_mmio_remap {554enum kfd_mmio_remap {
@@ -596,7 +677,7 @@ struct kfd_ioctl_svm_args { · 122 unmodified lines
596 __u32 op;677 __u32 op;
597 __u32 nattr;678 __u32 nattr;
598 /* Variable length array of attributes */679 /* Variable length array of attributes */
599 struct kfd_ioctl_svm_attribute attrs[0];680 struct kfd_ioctl_svm_attribute attrs[];
600};681};
601 682
602/**683/**
@@ -679,16 +760,16 @@ struct kfd_ioctl_set_xnack_mode_args { · 76 unmodified lines
679#define AMDKFD_IOC_WAIT_EVENTS \760#define AMDKFD_IOC_WAIT_EVENTS \
680 AMDKFD_IOWR(0x0C, struct kfd_ioctl_wait_events_args)761 AMDKFD_IOWR(0x0C, struct kfd_ioctl_wait_events_args)
681 762
682#define AMDKFD_IOC_DBG_REGISTER \763#define AMDKFD_IOC_DBG_REGISTER_DEPRECATED \
683 AMDKFD_IOW(0x0D, struct kfd_ioctl_dbg_register_args)764 AMDKFD_IOW(0x0D, struct kfd_ioctl_dbg_register_args)
684 765
685#define AMDKFD_IOC_DBG_UNREGISTER \766#define AMDKFD_IOC_DBG_UNREGISTER_DEPRECATED \
686 AMDKFD_IOW(0x0E, struct kfd_ioctl_dbg_unregister_args)767 AMDKFD_IOW(0x0E, struct kfd_ioctl_dbg_unregister_args)
687 768
688#define AMDKFD_IOC_DBG_ADDRESS_WATCH \769#define AMDKFD_IOC_DBG_ADDRESS_WATCH_DEPRECATED \
689 AMDKFD_IOW(0x0F, struct kfd_ioctl_dbg_address_watch_args)770 AMDKFD_IOW(0x0F, struct kfd_ioctl_dbg_address_watch_args)
690 771
691#define AMDKFD_IOC_DBG_WAVE_CONTROL \772#define AMDKFD_IOC_DBG_WAVE_CONTROL_DEPRECATED \
692 AMDKFD_IOW(0x10, struct kfd_ioctl_dbg_wave_control_args)773 AMDKFD_IOW(0x10, struct kfd_ioctl_dbg_wave_control_args)
693 774
694#define AMDKFD_IOC_SET_SCRATCH_BACKING_VA \775#define AMDKFD_IOC_SET_SCRATCH_BACKING_VA \
@@ -742,7 +823,10 @@ struct kfd_ioctl_set_xnack_mode_args { · 47 unmodified lines
742#define AMDKFD_IOC_SET_XNACK_MODE \823#define AMDKFD_IOC_SET_XNACK_MODE \
743 AMDKFD_IOWR(0x21, struct kfd_ioctl_set_xnack_mode_args)824 AMDKFD_IOWR(0x21, struct kfd_ioctl_set_xnack_mode_args)
744 825
826#define AMDKFD_IOC_CRIU_OP \
827 AMDKFD_IOWR(0x22, struct kfd_ioctl_criu_args)
828
745#define AMDKFD_COMMAND_START 0x01829#define AMDKFD_COMMAND_START 0x01
746#define AMDKFD_COMMAND_END 0x22830#define AMDKFD_COMMAND_END 0x23
747 831
748#endif832#endif