[PATCH] drm/amdgpu: always allocate cleared VRAM for GEM allocations
Alex Deucher
alexdeucher at gmail.com
Fri Sep 6 17:53:42 UTC 2024
On Fri, Sep 6, 2024 at 10:18 AM Marek Olšák <maraeo at gmail.com> 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 at amd.com> wrote:
> >
> > this will fix performance issues,
> > Acked-by: Arunpravin Paneer Selvam <Arunpravin.PaneerSelvam at amd.com>
> >
> > 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 at redhat.com> (v1)
> > Signed-off-by: Alex Deucher <alexander.deucher at amd.com>
> > Cc: Arunpravin Paneer Selvam <Arunpravin.PaneerSelvam at amd.com>
> > Cc: Christian König <christian.koenig at amd.com>
> > ---
> > 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)) {
> >
> >
More information about the amd-gfx
mailing list