Skip to content
  • Yair Shachar's avatar
    drm/amdkfd: add H/W debugger IOCTL set definitions · aef11009
    Yair Shachar authored
    
    
    This patch adds four new IOCTLs to amdkfd. These IOCTLs expose a H/W
    debugger functionality to the userspace.
    
    The IOCTLs are:
    
    - AMDKFD_IOC_DBG_REGISTER:
    
    The purpose of this IOCTL is to notify amdkfd that a process wants to use
    GPU debugging facilities on itself only.
    It is expected that this IOCTL would be called before any other H/W
    debugger requests are sent to amdkfd and for each GPU where the H/W
    debugging needs to be enabled. The use of this IOCTL ensures that only
    one instance of a debugger is active in the system.
    
    - AMDKFD_IOC_DBG_UNREGISTER:
    
    This IOCTL detaches the debugger/debugged process from the H/W
    Debug which was established by the AMDKFD_IOC_DBG_REGISTER IOCTL.
    
    - AMDKFD_IOC_DBG_ADDRESS_WATCH:
    
    This IOCTL allows to set different watchpoints with various conditions as
    indicated by the IOCTL's arguments. The available number of watchpoints
    is retrieved from topology. This operation is confined to the current
    debugged process, which was registered through AMDKFD_IOC_DBG_REGISTER.
    
    - AMDKFD_IOC_DBG_WAVE_CONTROL:
    
    This IOCTL allows to control a wavefront as indicated by the IOCTL's
    arguments. For example, you can halt/resume or kill either a
    single wavefront or a set of wavefronts. This operation is confined to
    the current debugged process, which was registered through
    AMDKFD_IOC_DBG_REGISTER.
    
    Because the arguments for the address watch IOCTL and wave control IOCTL
    are dynamic, meaning that they could vary in size, the userspace passes a
    pointer to a structure (in userspace) that contains the value of the
    arguments. The kernel driver is responsible to parse this structure and
    validate its contents.
    
    v2: change void* to uint64_t inside ioctl arguments
    
    Signed-off-by: default avatarYair Shachar <yair.shachar@amd.com>
    Signed-off-by: default avatarOded Gabbay <oded.gabbay@gmail.com>
    aef11009