The Linux Kernel Logo
  • Development process
  • Submitting patches
  • Code of conduct
  • Maintainer handbook
  • All development-process docs
  • Core API
  • Driver APIs
  • Subsystems
    • Core subsystems
    • Human interfaces
      • Input Documentation
      • Human Interface Devices (HID)
      • Sound Subsystem Documentation
      • GPU Driver Developer’s Guide
        • Introduction
        • DRM Internals
        • DRM Memory Management
        • Kernel Mode Setting (KMS)
        • Mode Setting Helper Functions
        • Userland interfaces
        • DRM client usage stats
        • DRM Driver uAPI
        • Kernel clients
        • Long running workloads and compute
        • GPU Driver Documentation
        • Backlight support
        • VGA Switcheroo
        • VGA Arbiter
        • Automated testing of the DRM subsystem
        • Misc DRM driver uAPI- and feature implementation guidelines
          • Asynchronous VM_BIND
          • VM_BIND locking
        • TODO list
        • GPU RFC Section
      • Frame Buffer
      • LEDs
    • Networking interfaces
    • Storage interfaces
    • Other subsystems
  • Locking
  • Licensing rules
  • Writing documentation
  • Development tools
  • Testing guide
  • Hacking guide
  • Tracing
  • Fault injection
  • Livepatching
  • Rust
  • Administration
  • Build system
  • Reporting issues
  • Userspace tools
  • Userspace API
  • Firmware
  • Firmware and Devicetree
  • CPU architectures
  • Unsorted documentation
  • Translations
The Linux Kernel
  • Kernel subsystem documentation
  • GPU Driver Developer’s Guide
  • Misc DRM driver uAPI- and feature implementation guidelines
  • View page source

Misc DRM driver uAPI- and feature implementation guidelines¶

  • Asynchronous VM_BIND
    • Nomenclature:
    • Synchronous / Asynchronous VM_BIND operation
      • Synchronous VM_BIND
      • Asynchronous VM_BIND
    • Multi-operation VM_BIND IOCTL error handling and interrupts
    • Example: The Xe VM_BIND uAPI
  • VM_BIND locking
    • The DRM GPUVM set of helpers
    • Nomenclature
    • Locks and locking order
    • Protection and lifetime of gpu_vm_bos and gpu_vmas
    • Revalidation and eviction of local objects
      • Revalidation
      • Eviction
    • Locking with external buffer objects
    • Accessing the gpu_vm’s lists without the dma_resv lock held
    • userptr gpu_vmas
      • Efficient userptr gpu_vma exec_function iteration
    • Locking at bind and unbind time
    • Locking for recoverable page-fault page-table updates
Previous Next

© Copyright The kernel development community.

Built with Sphinx using a theme provided by Read the Docs.