[Intel-xe] [RFC PATCH] drm/xe/uAPi: Clarify the meaning of min_page_size and MIN_ALIGNMENT

Francois Dugast francois.dugast at intel.com
Mon Oct 16 11:30:55 UTC 2023


On Mon, Oct 16, 2023 at 01:03:07PM +0200, Thomas Hellström wrote:
> Hi,
> 
> On 10/13/23 22:16, Rodrigo Vivi wrote:
> > On Fri, Oct 13, 2023 at 12:22:26PM +0200, Thomas Hellström wrote:
> > > In particular, don't *enforce* alignment of buffer object sizes to
> > > MIN_ALIGNMENT, as enforcing that for imported dma-bufs would not
> > > really make sense.
> > > 
> > > Cc: Maarten Lankhorst <maarten.lankhorst at linux.intel.com>
> > > Cc: Zbigniew Kempczyński <zbigniew.kempczynski at intel.com>
> > > Cc: Rodrigo Vivi <rodrigo.vivi at intel.com>
> > > Cc: Matthew Brost <matthew.brost at intel.com>
> > > Cc: Francois Dugast <francois.dugast at intel.com>
> > > Signed-off-by: Thomas Hellström <thomas.hellstrom at linux.intel.com>
> > > ---
> > >   include/uapi/drm/xe_drm.h | 17 ++++++++++++-----
> > >   1 file changed, 12 insertions(+), 5 deletions(-)
> > > 
> > > diff --git a/include/uapi/drm/xe_drm.h b/include/uapi/drm/xe_drm.h
> > > index d48d8e3c898c..5895c95879d1 100644
> > > --- a/include/uapi/drm/xe_drm.h
> > > +++ b/include/uapi/drm/xe_drm.h
> > > @@ -167,11 +167,10 @@ struct drm_xe_query_mem_region {
> > >   	 *
> > >   	 * When the kernel allocates memory for this region, the
> > >   	 * underlying pages will be at least @min_page_size in size.
> > > -	 *
> > > -	 * Important note: When userspace allocates a GTT address which
> > > -	 * can point to memory allocated from this region, it must also
> > > -	 * respect this minimum alignment. This is enforced by the
> > > -	 * kernel.
> > This old statement seems bold on the kernel is enforcing it. If we are
> > but intend to not enforce anymore we should also change the code in
> > the same patch, no?!
> > Also by the commit message I had the impression that this was removing
> > the enforcement, and not just the documentation about it.
> 
> This RFC was more intended to trigger a discussion on how to handle this.
> I'll actually bring back the above somewhat reworded and also rework the
> commit message a bit to reflect that this is an RFC for an uAPI change under
> discussion.
> 
> > 
> > > +	 * Buffer objects with an allowable placement in this region may
> > > +	 * be created with a smaller size, but for increased performance,
> > > +	 * user-space drivers should align sizes of such buffer objects
> > > +	 * to this value whenever possible.
> > >   	 */
> > >   	__u32 min_page_size;
> > >   	/**
> > > @@ -252,6 +251,14 @@ struct drm_xe_query_config {
> > >   #define XE_QUERY_CONFIG_REV_AND_DEVICE_ID	0
> > >   #define XE_QUERY_CONFIG_FLAGS			1
> > >   	#define XE_QUERY_CONFIG_FLAGS_HAS_VRAM		(0x1 << 0)
> > > +/*
> > > + * XE_QUERY_CONFIG_MIN_ALIGNMENT - GPU VM bind address - and size alignment.
> > > + * GPU virtual address mappings of buffer objects must have their VM addr and
> > > + * range aligned to this value, with the exception of buffer objects with
> > > + * allowable placement in system memory only. If this alignment results in
> > > + * a mapping beyond the end of the buffer object, accesses beyond the
> > > + * end of the buffer object have undefined reslut.
> > s/reslut/result.
> > 
> > Should we make this into a kernel doc?
> 
> It looks like all other defines of constants in this file doesn't use
> kerneldoc. If we want to do that, It looks like we need to break this out to
> a top-level DOC: section, similar to what's done for 
> XE_RESET_FAILED_UEVENT.
> 
> /Thomas
> 
> 

Hi Thomas,

A proposal to make constants visible in kernel doc is part of the
uAPI alignment series take 2:
https://patchwork.freedesktop.org/patch/562078/?series=124977&rev=1

Francois


More information about the Intel-xe mailing list