[PATCH v3 4/8] drm/panthor: Add support for alloc-on-fault buffers

Boris Brezillon boris.brezillon at collabora.com
Fri Apr 4 12:17:20 UTC 2025


On Fri,  4 Apr 2025 11:26:30 +0200
Boris Brezillon <boris.brezillon at collabora.com> wrote:

> diff --git a/include/uapi/drm/panthor_drm.h b/include/uapi/drm/panthor_drm.h
> index 97e2c4510e69..8071f1c438e2 100644
> --- a/include/uapi/drm/panthor_drm.h
> +++ b/include/uapi/drm/panthor_drm.h
> @@ -615,6 +615,16 @@ struct drm_panthor_vm_get_state {
>  enum drm_panthor_bo_flags {
>  	/** @DRM_PANTHOR_BO_NO_MMAP: The buffer object will never be CPU-mapped in userspace. */
>  	DRM_PANTHOR_BO_NO_MMAP = (1 << 0),
> +
> +	/**
> +	 * @DRM_PANTHOR_BO_ALLOC_ON_FAULT: The buffer sections will be allocated on-demand.
> +	 *
> +	 * When alloc-on-faut is used, the user should expect job failures, because the
> +	 * allocation happens in a path where waiting is not allowed, meaning the allocation
> +	 * can fail and there's nothing the kernel will do to mitigate that. The group will
> +	 * be unusable after such a failure.
> +	 */
> +	DRM_PANTHOR_BO_ALLOC_ON_FAULT = (1 << 1),

I forgot to increment the driver version to reflect those uAPI changes.
Will fix that in v2.

>  };
>  
>  /**
> @@ -649,8 +659,13 @@ struct drm_panthor_bo_create {
>  	 */
>  	__u32 handle;
>  
> -	/** @pad: MBZ. */
> -	__u32 pad;
> +	/**
> +	 * @alloc_on_fault_granularity: Granularity of the alloc-on-fault behavior.
> +	 *
> +	 * Must be zero when DRM_PANTHOR_BO_ALLOC_ON_FAULT is not set.
> +	 * Must be a power-of-two, at least a page size, and less or equal to @size.
> +	 */
> +	__u32 alloc_on_faut_granularity;
>  };
>  
>  /**



More information about the dri-devel mailing list