STRUCT KFD_IOCTL_DBG_TRAP_CLEAR_NODE_ADDRESS_WATCH_ARGS(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

🌸 struct kfd_ioctl_dbg_trap_clear_node_address_watch_args(9) 🌸

okay so bestie, welcome to the Kernel API Manual ✨ β€” this page is all about struct kfd_ioctl_dbg_trap_clear_node_address_watch_args, and ngl the name is a whole mouthful, but the vibe is simple: it's the args struct for KFD_IOC_DBG_TRAP_CLEAR_NODE_ADDRESS_WATCH. Basically the cleanup-crew struct. It shows up, it clears the watch point, it leaves. main character energy but make it ✨housekeeping✨ πŸ’…


πŸŽ€ SYNOPSIS πŸŽ€

here's the whole struct, and like, that's literally all of it:

struct kfd_ioctl_dbg_trap_clear_node_address_watch_args {
    __u32 gpu_id;
    __u32 id;
 };

two __u32 fields. tiny struct. huge responsibility. the way that it fits in a single cache line is lowkey iconic 😭🫢


πŸ’– Members πŸ’–

  • gpu_id β€” (IN) β€” the target device whose watch point we're clearing out. like, which GPU are we doing this to, bestie? this field answers that. πŸ–₯️✨
  • id β€” (IN) β€” the allocated watch id that you want to clear. it's the little name tag on the watch point you're yeeting. πŸ·οΈπŸ’€

πŸ¦‹ Description πŸ¦‹

so what does it do? Clear address watch for device. periodt. that's the whole thing. you're un-watching an address on a device, and this struct is how you tell the kernel which device and which watch. πŸ’…

the generic errors apply too β€” check out kfd_dbg_trap_operations for the full menu of them, iykyk. and on the happy path it returns - 0 on SUCCESS. slay. 🌈⭐

and here are the specific ones you might catch in the wild:

  • ENODEV β€” if gpu_id isn't found. like, bestie, that GPU doesn't exist?? πŸ™ˆ
  • EINVAL β€” if the watch ID has not been allocated. you can't clear something that was never allocated, that's giving "cancelled before it aired" πŸ“ΊπŸ’€
not me stressing the error codes β€” but fr fr, check them, or your debugger session will be confused and sad 😭

πŸ”₯ SEE ALSO πŸ”₯

go read the whole family, they're all linked in the kernel file ./include/uapi/linux/kfd_ioctl.h πŸ‘‘

  • struct kfd_ioctl_criu_args(9)
  • 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_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)

that's the whole page, bestie. no notes. 🫢

sign-off szn: this lil beauty lives in ./include/uapi/linux πŸ’– and the version/date situation is October 2026 β€” yes, from the future, we stay ahead of the timeline 😌✨ go forth and clear those watches, you absolute icon πŸ‘‘πŸ’œ

πŸ“¦ where this page comes from