Updating kfd_ioctl.h 1.17 (#872)
The KFD minor version has been bumped to 17.
[ROCm/rocprofiler-sdk commit: 05890c2231]
此提交包含在:
@@ -41,10 +41,11 @@
|
||||
* - 1.13 - Add debugger API
|
||||
* - 1.14 - Update kfd_event_data
|
||||
* - 1.15 - Enable managing mappings in compute VMs with GEM_VA ioctl
|
||||
* - 1.16 - Add PC Sampling ioctl
|
||||
* - 1.16 - Add contiguous VRAM allocation flag
|
||||
* - 1.17 - Add PC Sampling ioctl
|
||||
*/
|
||||
#define KFD_IOCTL_MAJOR_VERSION 1
|
||||
#define KFD_IOCTL_MINOR_VERSION 16
|
||||
#define KFD_IOCTL_MINOR_VERSION 17
|
||||
|
||||
struct kfd_ioctl_get_version_args
|
||||
{
|
||||
@@ -451,6 +452,7 @@ struct kfd_ioctl_acquire_vm_args
|
||||
#define KFD_IOC_ALLOC_MEM_FLAGS_COHERENT (1 << 26)
|
||||
#define KFD_IOC_ALLOC_MEM_FLAGS_UNCACHED (1 << 25)
|
||||
#define KFD_IOC_ALLOC_MEM_FLAGS_EXT_COHERENT (1 << 24)
|
||||
#define KFD_IOC_ALLOC_MEM_FLAGS_CONTIGUOUS (1 << 23)
|
||||
|
||||
/* Allocate memory for later SVM (shared virtual memory) mapping.
|
||||
*
|
||||
@@ -1037,6 +1039,7 @@ enum kfd_dbg_trap_address_watch_mode
|
||||
enum kfd_dbg_trap_flags
|
||||
{
|
||||
KFD_DBG_TRAP_FLAG_SINGLE_MEM_OP = 1,
|
||||
KFD_DBG_TRAP_FLAG_SINGLE_ALU_OP = 2,
|
||||
};
|
||||
|
||||
/* Trap exceptions */
|
||||
@@ -1094,11 +1097,25 @@ enum kfd_dbg_trap_exception_code
|
||||
KFD_EC_MASK(EC_DEVICE_NEW))
|
||||
#define KFD_EC_MASK_PROCESS \
|
||||
(KFD_EC_MASK(EC_PROCESS_RUNTIME) | KFD_EC_MASK(EC_PROCESS_DEVICE_REMOVE))
|
||||
#define KFD_EC_MASK_PACKET \
|
||||
(KFD_EC_MASK(EC_QUEUE_PACKET_DISPATCH_DIM_INVALID) | \
|
||||
KFD_EC_MASK(EC_QUEUE_PACKET_DISPATCH_GROUP_SEGMENT_SIZE_INVALID) | \
|
||||
KFD_EC_MASK(EC_QUEUE_PACKET_DISPATCH_CODE_INVALID) | KFD_EC_MASK(EC_QUEUE_PACKET_RESERVED) | \
|
||||
KFD_EC_MASK(EC_QUEUE_PACKET_UNSUPPORTED) | \
|
||||
KFD_EC_MASK(EC_QUEUE_PACKET_DISPATCH_WORK_GROUP_SIZE_INVALID) | \
|
||||
KFD_EC_MASK(EC_QUEUE_PACKET_DISPATCH_REGISTER_INVALID) | \
|
||||
KFD_EC_MASK(EC_QUEUE_PACKET_VENDOR_UNSUPPORTED))
|
||||
|
||||
/* Checks for exception code types for KFD search */
|
||||
#define KFD_DBG_EC_TYPE_IS_QUEUE(ecode) (!!(KFD_EC_MASK(ecode) & KFD_EC_MASK_QUEUE))
|
||||
#define KFD_DBG_EC_TYPE_IS_DEVICE(ecode) (!!(KFD_EC_MASK(ecode) & KFD_EC_MASK_DEVICE))
|
||||
#define KFD_DBG_EC_TYPE_IS_PROCESS(ecode) (!!(KFD_EC_MASK(ecode) & KFD_EC_MASK_PROCESS))
|
||||
#define KFD_DBG_EC_IS_VALID(ecode) (ecode > EC_NONE && ecode < EC_MAX)
|
||||
#define KFD_DBG_EC_TYPE_IS_QUEUE(ecode) \
|
||||
(KFD_DBG_EC_IS_VALID(ecode) && !!(KFD_EC_MASK(ecode) & KFD_EC_MASK_QUEUE))
|
||||
#define KFD_DBG_EC_TYPE_IS_DEVICE(ecode) \
|
||||
(KFD_DBG_EC_IS_VALID(ecode) && !!(KFD_EC_MASK(ecode) & KFD_EC_MASK_DEVICE))
|
||||
#define KFD_DBG_EC_TYPE_IS_PROCESS(ecode) \
|
||||
(KFD_DBG_EC_IS_VALID(ecode) && !!(KFD_EC_MASK(ecode) & KFD_EC_MASK_PROCESS))
|
||||
#define KFD_DBG_EC_TYPE_IS_PACKET(ecode) \
|
||||
(KFD_DBG_EC_IS_VALID(ecode) && !!(KFD_EC_MASK(ecode) & KFD_EC_MASK_PACKET))
|
||||
|
||||
/* Runtime enable states */
|
||||
enum kfd_dbg_runtime_state
|
||||
|
||||
@@ -46,12 +46,12 @@ namespace ioctl
|
||||
rocprofiler_ioctl_version_info_t&
|
||||
get_ioctl_version();
|
||||
|
||||
// IOCTL 1.16 is the first one supporting PC sampling.
|
||||
// IOCTL 1.17 is the first one supporting PC sampling.
|
||||
#define CHECK_IOCTL_VERSION \
|
||||
do \
|
||||
{ \
|
||||
auto ioctl_version = get_ioctl_version(); \
|
||||
if(ioctl_version.major_version < 1 || ioctl_version.minor_version < 16) \
|
||||
if(ioctl_version.major_version < 1 || ioctl_version.minor_version < 17) \
|
||||
{ \
|
||||
LOG(ERROR) << "PC sampling unavailable\n"; \
|
||||
return ROCPROFILER_STATUS_ERROR_INCOMPATIBLE_KERNEL; \
|
||||
|
||||
新增問題並參考
封鎖使用者