[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <abc2a8ab-0969-fbb6-8dec-b15c81df38e4@collabora.com>
Date: Mon, 22 May 2023 16:27:50 +0300
From: Dmitry Osipenko <dmitry.osipenko@...labora.com>
To: Emil Velikov <emil.l.velikov@...il.com>
Cc: Sumit Semwal <sumit.semwal@...aro.org>,
Christian König <christian.koenig@....com>,
Benjamin Gaignard <benjamin.gaignard@...labora.com>,
Liam Mark <lmark@...eaurora.org>,
Brian Starkey <Brian.Starkey@....com>,
John Stultz <jstultz@...gle.com>,
Gerd Hoffmann <kraxel@...hat.com>,
Daniel Vetter <daniel@...ll.ch>,
Jani Nikula <jani.nikula@...ux.intel.com>,
Arnd Bergmann <arnd@...db.de>,
Thomas Zimmermann <tzimmermann@...e.de>,
Tomi Valkeinen <tomba@...nel.org>,
Thierry Reding <thierry.reding@...il.com>,
Tomasz Figa <tfiga@...omium.org>,
Marek Szyprowski <m.szyprowski@...sung.com>,
Mauro Carvalho Chehab <mchehab@...nel.org>,
linux-media@...r.kernel.org, dri-devel@...ts.freedesktop.org,
linux-kernel@...r.kernel.org, intel-gfx@...ts.freedesktop.org,
linux-tegra@...r.kernel.org, kernel@...labora.com
Subject: Re: [PATCH v3 6/6] drm/shmem-helper: Switch to reservation lock
On 5/22/23 16:02, Emil Velikov wrote:
> Hi Dmitry,
>
> Saw v3 fly by, so I had a quick look. Original RB still stands,
> although I noticed a couple of non-blocking nitpicks.
>
> On Sun, 21 May 2023 at 22:00, Dmitry Osipenko
> <dmitry.osipenko@...labora.com> wrote:
>
>> -static int drm_gem_shmem_get_pages_locked(struct drm_gem_shmem_object *shmem)
>> +static int drm_gem_shmem_get_pages(struct drm_gem_shmem_object *shmem)
>> {
>
> Should this getter have a dma_resv_assert_held(shmem->base.resv); like
> it's put brethren?
>
>
>> -void drm_gem_shmem_put_pages(struct drm_gem_shmem_object *shmem)
>> +static int drm_gem_shmem_pin_locked(struct drm_gem_shmem_object *shmem)
>> +{
>> + int ret;
>> +
>> + dma_resv_assert_held(shmem->base.resv);
>> +
>> + ret = drm_gem_shmem_get_pages(shmem);
>> +
>> + return ret;
>
> With the assert_held in the getter, it would be less confusing to
> inline this and the unpin_locked functions.
>
>> +}
>> +
>> +static void drm_gem_shmem_unpin_locked(struct drm_gem_shmem_object *shmem)
>> {
>> - mutex_lock(&shmem->pages_lock);
>> - drm_gem_shmem_put_pages_locked(shmem);
>> - mutex_unlock(&shmem->pages_lock);
>> + dma_resv_assert_held(shmem->base.resv);
>> +
>> + drm_gem_shmem_put_pages(shmem);
>
> Side note: the putter has an assert_held so the extra one here seems quite odd.
>
> As said at the top - with or w/o these nitpicks, the original RB still stands.
Good catch. I actually added assert_held to get_pages(), but in a later
patch that is not part of this series.
--
Best regards,
Dmitry
Powered by blists - more mailing lists