Re: [RFC PATCH 34/42] drm/i915/query: Expose memory regions through the query uAPI

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Quoting Chris Wilson (2019-02-14 16:31:13)
> Quoting Matthew Auld (2019-02-14 14:57:32)
> >  int i915_query_ioctl(struct drm_device *dev, void *data, struct drm_file *file)
> > diff --git a/include/uapi/drm/i915_drm.h b/include/uapi/drm/i915_drm.h
> > index 26d2274b5d2b..5a102a5cb415 100644
> > --- a/include/uapi/drm/i915_drm.h
> > +++ b/include/uapi/drm/i915_drm.h
> > @@ -1744,6 +1744,7 @@ struct drm_i915_perf_oa_config {
> >  struct drm_i915_query_item {
> >         __u64 query_id;
> >  #define DRM_I915_QUERY_TOPOLOGY_INFO    1
> > +#define DRM_I915_QUERY_MEMREGION_INFO   3
> 
> Ahem.
> 
> >         /*
> >          * When set to zero by userspace, this is filled with the size of the
> > @@ -1832,7 +1833,6 @@ struct drm_i915_query_topology_info {
> >          * Offset in data[] at which the EU masks are stored.
> >          */
> >         __u16 eu_offset;
> > -
> >         /*
> >          * Stride at which each of the EU masks for each subslice are stored.
> >          */
> > @@ -1841,6 +1841,44 @@ struct drm_i915_query_topology_info {
> >         __u8 data[];
> >  };
> >  
> > +struct drm_i915_memory_region_info {
> > +
> > +       /** Base type of a region
> > +        */
> > +#define I915_SYSTEM_MEMORY         0
> > +#define I915_DEVICE_MEMORY         1
> > +
> > +       /** The region id is encoded in a layout which makes it possible to
> > +        *  retrieve the following information:
> > +        *
> > +        *  Base type: log2(ID >> 16)
> > +        *  Instance:  log2(ID & 0xffff)
> > +        */
> > +       __u32 id;
> > +
> > +       /** Reserved field. MBZ */
> > +       __u32 rsvd0;
> > +
> > +       /** Unused for now. MBZ */
> > +       __u64 flags;
> > +
> > +       __u64 size;
> > +
> > +       /** Reserved fields must be cleared to zero. */
> > +       __u64 rsvd1[4];
> > +};
> 
> If you were to apply this to stolen memory as an example, can you spot
> how much information is missing?
> 
> Userspace would need to know total size, largest allocation chunk (i.e
> largest object), rough estimate of availability, and most importantly a
> list of API that is not allowed (such as CPU mmap, fencing). There's
> without a doubt more that would be needed to actually wire it up to Vk.

Cross-process/ppgtt and cross-device sharing for example...
-Chris
_______________________________________________
Intel-gfx mailing list
Intel-gfx@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/intel-gfx




[Index of Archives]     [AMD Graphics]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux