Re: [PATCH] drm/amdgpu: always allocate cleared VRAM for GEM allocations

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

 



On Fri, Sep 6, 2024 at 10:18 AM Marek Olšák <maraeo@xxxxxxxxx> wrote:
>
> Can you also bump the DRM version, so that userspace knows when to
> skip its own clear?

Sure, although going forward, it might be better to migrate to a
generic flags query in the INFO ioctl so we can just check for various
feature bits so we can backport functionality to older kernels more
easily.

Alex

>
> Also, clearing with SDMA takes up to 33 times more time (= is up to
> 97% slower) than clearing with compute.
>
> Marek
>
> On Thu, Aug 29, 2024 at 2:23 PM Paneer Selvam, Arunpravin
> <arunpravin.paneerselvam@xxxxxxx> wrote:
> >
> > this will fix performance issues,
> > Acked-by: Arunpravin Paneer Selvam <Arunpravin.PaneerSelvam@xxxxxxx>
> >
> > On 8/29/2024 10:56 PM, Alex Deucher wrote:
> >
> > This adds allocation latency, but aligns better with user
> > expectations.  The latency should improve with the drm buddy
> > clearing patches that Arun has been working on.
> >
> > In addition this fixes the high CPU spikes seen when doing
> > wipe on release.
> >
> > v2: always set AMDGPU_GEM_CREATE_VRAM_CLEARED (Christian)
> >
> > Closes: https://gitlab.freedesktop.org/drm/amd/-/issues/3528
> > Fixes: a68c7eaa7a8f ("drm/amdgpu: Enable clear page functionality")
> > Reviewed-by: Michel Dänzer <mdaenzer@xxxxxxxxxx> (v1)
> > Signed-off-by: Alex Deucher <alexander.deucher@xxxxxxx>
> > Cc: Arunpravin Paneer Selvam <Arunpravin.PaneerSelvam@xxxxxxx>
> > Cc: Christian König <christian.koenig@xxxxxxx>
> > ---
> >  drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c | 3 +++
> >  1 file changed, 3 insertions(+)
> >
> > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c
> > index 1f149c9e2177..8794661b0bfa 100644
> > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c
> > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c
> > @@ -349,6 +349,9 @@ int amdgpu_gem_create_ioctl(struct drm_device *dev, void *data,
> >   return -EINVAL;
> >   }
> >
> > + /* always clear VRAM */
> > + flags |= AMDGPU_GEM_CREATE_VRAM_CLEARED;
> > +
> >   /* create a gem object to contain this object in */
> >   if (args->in.domains & (AMDGPU_GEM_DOMAIN_GDS |
> >      AMDGPU_GEM_DOMAIN_GWS | AMDGPU_GEM_DOMAIN_OA)) {
> >
> >




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

  Powered by Linux