[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <049f8b0c-7c3e-8ee1-5ae0-a4348278ee63@arm.com>
Date: Fri, 18 Mar 2022 14:47:44 +0000
From: Steven Price <steven.price@....com>
To: Dmitry Osipenko <dmitry.osipenko@...labora.com>
Cc: dri-devel@...ts.freedesktop.org, linux-kernel@...r.kernel.org,
Gustavo Padovan <gustavo.padovan@...labora.com>,
Daniel Stone <daniel@...ishbar.org>,
virtualization@...ts.linux-foundation.org,
Dmitry Osipenko <digetx@...il.com>,
David Airlie <airlied@...ux.ie>,
Gerd Hoffmann <kraxel@...hat.com>,
Gurchetan Singh <gurchetansingh@...omium.org>,
Chia-I Wu <olvaffe@...il.com>, Daniel Vetter <daniel@...ll.ch>,
Daniel Almeida <daniel.almeida@...labora.com>,
Gert Wollny <gert.wollny@...labora.com>,
Tomeu Vizoso <tomeu.vizoso@...labora.com>,
Maarten Lankhorst <maarten.lankhorst@...ux.intel.com>,
Maxime Ripard <mripard@...nel.org>,
Thomas Zimmermann <tzimmermann@...e.de>,
Rob Herring <robh@...nel.org>,
Alyssa Rosenzweig <alyssa.rosenzweig@...labora.com>
Subject: Re: [PATCH v2 8/8] drm/panfrost: Switch to generic memory shrinker
On 18/03/2022 14:41, Dmitry Osipenko wrote:
>
> On 3/17/22 02:04, Dmitry Osipenko wrote:
>>
>> On 3/16/22 18:04, Steven Price wrote:
>>> On 14/03/2022 22:42, Dmitry Osipenko wrote:
>>>> Replace Panfrost's memory shrinker with a generic DRM memory shrinker.
>>>>
>>>> Signed-off-by: Dmitry Osipenko <dmitry.osipenko@...labora.com>
>>>> ---
>>> I gave this a spin on my Firefly-RK3288 board and everything seems to
>>> work. So feel free to add a:
>>>
>>> Tested-by: Steven Price <steven.price@....com>
>>>
>>> As Alyssa has already pointed out you need to remove the
>>> panfrost_gem_shrinker.c file. But otherwise everything looks fine, and
>>> I'm very happy to see the shrinker code gone ;)
>>
>> Awesome, thank you.
>
> Steven, could you please tell me how exactly you tested the shrinker?
>
> I realized that today's IGT doesn't have any tests for the Panfrost's
> madvise ioctl.
>
> You may invoke "echo 2 > /proc/sys/vm/drop_caches" manually in order to
> trigger shrinker while 3d app is running actively (like a game or
> benchmark). Nothing crashing will be a good enough indicator that it
> works okay.
>
> I may get an RK board next week and then will be able to test it by
> myself, so please don't hurry.
I have to admit it wasn't a very thorough test. I run glmark on the
board with the following hack:
diff --git a/drivers/gpu/drm/panfrost/panfrost_drv.c b/drivers/gpu/drm/panfrost/panfrost_drv.c
index b014dadcf51f..194dec00695a 100644
--- a/drivers/gpu/drm/panfrost/panfrost_drv.c
+++ b/drivers/gpu/drm/panfrost/panfrost_drv.c
@@ -279,6 +279,14 @@ static int panfrost_ioctl_submit(struct drm_device *dev, void *data,
if (ret)
goto out_cleanup_job;
+ {
+ struct shrink_control sc = {
+ .nr_to_scan = 1000
+ };
+ dev->shmem_shrinker->base.scan_objects(&dev->shmem_shrinker->base,
+ &sc);
+ }
+
ret = panfrost_job_push(job);
if (ret)
goto out_cleanup_job;
That hack was specifically because I had some doubts about the removal
of the 'gpu_usecount' counter and wanted to ensure that purging as the
job is submitted wouldn't cause problems.
The drop_caches file should also work AFAIK.
Steve
Powered by blists - more mailing lists