STRUCT KFD_IOCTL_CRIU_ARGS(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… struct kfd_ioctl_criu_args(9) ✨

okay bestie, welcome to the Kernel API Manual, section 9 β€” grab a lil snack because we're talking about struct kfd_ioctl_criu_args, and honestly it's giving "checkpoint/restore main character energy" πŸŽ€


🌸 NAME 🌸

struct kfd_ioctl_criu_args β€” the argument bundle you hand over to perform a CRIU operation 🧚


πŸ¦‹ SYNOPSIS πŸ¦‹

struct kfd_ioctl_criu_args {
    __u64 devices;
    __u64 bos;
    __u64 priv_data;
    __u64 priv_data_size;
    __u32 num_devices;
    __u32 num_bos;
    __u32 num_objects;
    __u32 pid;
    __u32 op;
 };

like, that's the whole squad right there πŸ‘‘ every field copied verbatim, no cap.


✨ Members ✨

  • devices β€” [in/out] a user pointer to the memory location where the devices info lives. it's an array of type kfd_criu_device_bucket πŸ’–
  • bos β€” [in/out] a user pointer to the memory location for the BOs info. this one's an array of type kfd_criu_bo_bucket 🫢
  • priv_data β€” [in/out] a user pointer to the memory location for private data πŸ™ˆ
  • priv_data_size β€” [in/out] the size of priv_data, counted in bytes πŸ“
  • num_devices β€” [in/out] how many GPUs the process is using. literally the size of the devices array πŸ”₯
  • num_bos β€” [in/out] how many BOs the process is using. that's the size of the bos array ⭐
  • num_objects β€” [in/out] how many objects the process is using. and important: these objects are opaque to the user application, so don't go peeking bestie πŸ’€
  • pid β€” [in/out] the PID of the process that's being checkpointed 🌈
  • op β€” [in] the type of operation, typed as kfd_criu_op (note: this one's input-only, no output, periodt) πŸ’…

πŸ“ Return πŸ“

0 on success, -errno on failure β€” iconic either way, but like, you want the 0 😭


πŸ”₯ SEE ALSO πŸ”₯

Kernel file ./include/uapi/linux/kfd_ioctl.h, plus these absolute icons:

  • enum kfd_ioctl_svm_op(9)
  • enum kfd_ioctl_svm_attr_type(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)

and that's the whole page, bestie β€” go checkpoint something gorgeous πŸ’œ

this lil gem lives in ./include/uapi/linux, dated October 2026, and it's filed under struct kfd_ioctl_criu_args(9) if you ever need to find it again πŸŽ€

fr fr: every member is [in/out] except op, which is [in] only. don't forget or the vibe check will fail 😭
πŸ“¦ where this page comes from