>Subject: Re: [PATCH 7/7] drm/i915: Allow user to set cache at BO creation > >On 04/04/2023 19:04, Yang, Fei wrote: >>> Subject: Re: [PATCH 7/7] drm/i915: Allow user to set >>> cache at BO creation >>> >>> On 01/04/2023 09:38, fei.yang@xxxxxxxxx wrote: >>>> From: Fei Yang <fei.yang@xxxxxxxxx> >>>> >>>> To comply with the design that buffer objects shall have immutable >>>> cache setting through out its life cycle, {set, get}_caching ioctl's >>>> are no longer supported from MTL onward. With that change caching >>>> policy can only be set at object creation time. The current code >>>> applies a default (platform dependent) cache setting for all objects. >>>> However this is not optimal for performance tuning. The patch >>>> extends the existing gem_create uAPI to let user set PAT index for >>>> the object at creation time. >>>> The new extension is platform independent, so UMD's can switch to >>>> using this extension for older platforms as well, while {set, >>>> get}_caching are still supported on these legacy paltforms for >>>> compatibility reason. >>>> >>>> Cc: Chris Wilson <chris.p.wilson@xxxxxxxxxxxxxxx> >>>> Cc: Matt Roper <matthew.d.roper@xxxxxxxxx> >>>> Signed-off-by: Fei Yang <fei.yang@xxxxxxxxx> >>>> Reviewed-by: Andi Shyti <andi.shyti@xxxxxxxxxxxxxxx> >>> >>> Just like the protected content uAPI, there is no way for userspace >>> to tell this feature is available other than trying using it. >>> >>> Given the issues with protected content, is it not thing we could want to add? >> Sorry I'm not aware of the issues with protected content, could you elaborate? >> There was a long discussion on teams uAPI channel, could you comment >> there if any concerns? >> >> https://teams.microsoft.com/l/message/19:f1767bda6734476ba0a9c7d147b92 >> 8d1@thread.skype/1675860924675?tenantId=46c98d88-e344-4ed4-8496-4ed771 >> 2e255d&groupId=379f3ae1-d138-4205-bb65-d4c7d38cb481&parentMessageId=16 >> 75860924675&teamName=GSE%20OSGC&channelName=i915%20uAPI%20changes&crea >> tedTime=1675860924675&allowXTenantAccess=false >> >> Thanks, >> -Fei > > > We wanted to have a getparam to detect protected support and were told > to detect it by trying to create a context with it. > > Now it appears trying to create a protected context can block for several > seconds. > > Since we have to report capabilities to the user even before it creates > protected contexts, any app is at risk of blocking. Can we detect this capability by creating a buffer object? This extension is not blocking, it just provide a way to set caching policy, and should complete very fast. There is a IGT test I created for this extension (not merged yet), please take a look at http://intel-gfx-pw.fi.intel.com/series/19149/ I'm not familiar with getparam, will take a look there as well. But I think it would be easier just create an object. -Fei >-Lionel > > >> >>> Thanks, >>> >>> -Lionel >>> >>> >>>> --- >>>> drivers/gpu/drm/i915/gem/i915_gem_create.c | 33 ++++++++++++++++++++ >>>> include/uapi/drm/i915_drm.h | 36 ++++++++++++++++++++++ >>>> tools/include/uapi/drm/i915_drm.h | 36 ++++++++++++++++++++++ >>>> 3 files changed, 105 insertions(+) >>>>