ENUM KFD_IOCTL_SVM_ATTR_TYPE(9)
β¨ enum kfd_ioctl_svm_attr_type(9) β¨
okay bestie, gather round because this is the manual page for enum kfd_ioctl_svm_attr_type β the kernel API enum that tells you what kind of SVM attribute you're dealing with. her full name is enum kfd_ioc...vm_attr_type(9) and yes it's a long name, we're not shortening it, periodt π
πΈ NAME πΈ
enum kfd_ioctl_svm_attr_type β the SVM attribute types, aka the vibe check for every attribute you can set on your SVM memory π¦
β¨ SYNOPSIS β¨
enum kfd_ioctl_svm_attr_type {
KFD_IOCTL_SVM_ATTR_PREFERRED_LOC ,
KFD_IOCTL_SVM_ATTR_PREFETCH_LOC ,
KFD_IOCTL_SVM_ATTR_ACCESS ,
KFD_IOCTL_SVM_ATTR_ACCESS_IN_PLACE ,
KFD_IOCTL_SVM_ATTR_NO_ACCESS ,
KFD_IOCTL_SVM_ATTR_SET_FLAGS ,
KFD_IOCTL_SVM_ATTR_CLR_FLAGS ,
KFD_IOCTL_SVM_ATTR_GRANULARITY
};
literally the entire roster π
π CONSTANTS π
π KFD_IOCTL_SVM_ATTR_PREFERRED_LOC
the gpuid of the preferred location, 0 for system memory. that's it, that's the whole vibe π«Ά
π KFD_IOCTL_SVM_ATTR_PREFETCH_LOC
the gpuid of the prefetch location, 0 for system memory. setting this triggers an immediate prefetch (migration) β so bestie, when you set this, the migration is happening like right now, no waiting, no thinking about it ππ₯
π KFD_IOCTL_SVM_ATTR_ACCESS
no extra description in the original, she's just there being iconic π
π KFD_IOCTL_SVM_ATTR_ACCESS_IN_PLACE
same situation β no extra description, just the constant living her truth β¨
π KFD_IOCTL_SVM_ATTR_NO_ACCESS
specify memory access for the gpuid given by the attribute value π
π KFD_IOCTL_SVM_ATTR_SET_FLAGS
bitmask of flags to set β see KFD_IOCTL_SVM_FLAG_... for the flag family π
π KFD_IOCTL_SVM_ATTR_CLR_FLAGS
bitmask of flags to clear π
π KFD_IOCTL_SVM_ATTR_GRANULARITY
migration granularity, and it's measured in log2 num pages β so yes, it's math, but make it cute ππ
π¦ SEE ALSO π¦
okay this section is a whole friend group, buckle up:
Kernel file ./include/uapi/linux/kfd_ioctl.h struct kfd_ioctl_criu_args(9), enum kfd_ioctl_svm_op(9), struct kfd_ioctl_svm_attribute(9), struct kfd_ioctl_svm_args(9), struct kfd_ioctl_set_xnack_mode_args(9), struct kfd_ioctl_runtime_enable_args(9), struct kfd_ioctl_dbg_trap_enable_args(9), struct kfd_ioctl_dbg_trap_send_runtime_event_args(9), struct kfd_ioctl_dbg_trap_set_exceptions_enabled_args(9), struct kfd_ioctl_dbg_trap_set_wave_launch_override_args(9), struct kfd_ioctl_dbg_trap_set_wave_launch_mode_args(9), struct kfd_ioctl_dbg_trap_suspend_queues_args(9), struct kfd_ioctl_dbg_trap_resume_queues_args(9), struct kfd_ioctl_dbg_trap_set_node_address_watch_args(9), struct kfd_ioctl_dbg_trap_clear_node_address_watch_args(9), struct kfd_ioctl_dbg_trap_set_flags_args(9), struct kfd_ioctl_dbg_trap_query_debug_event_args(9), struct kfd_ioctl_dbg_trap_query_exception_info_args(9), struct kfd_ioctl_dbg_trap_queue_snapshot_args(9), struct kfd_ioctl_dbg_trap_device_snapshot_args(9), struct kfd_ioctl_dbg_trap_args(9), struct kfd_ioctl_pmc_settings(9)
like I said β a whole friend group, and they all ate π π₯
and that's the page bestie! this iconic little doc lives at ./include/uapi/linux, dated October 2026, and it's titled enum kfd_ioc...vm_attr_type(9) β mwah, no notes, slay πβ¨π
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms