Re: [PATCH] drm: enable uncached DMA optimization for ARM and arm64

From: Ard Biesheuvel
Date: Thu Feb 07 2019 - 11:01:42 EST


On Thu, 7 Feb 2019 at 16:33, Alex Deucher <alexdeucher@xxxxxxxxx> wrote:
>
> On Thu, Feb 7, 2019 at 10:20 AM Ard Biesheuvel
> <ard.biesheuvel@xxxxxxxxxx> wrote:
> >
> > On Wed, 6 Feb 2019 at 19:38, Christian KÃnig
> > <ckoenig.leichtzumerken@xxxxxxxxx> wrote:
> > >
> > > Am 06.02.19 um 18:23 schrieb Ard Biesheuvel:
> > > > On Fri, 25 Jan 2019 at 11:35, Ard Biesheuvel <ard.biesheuvel@xxxxxxxxxx> wrote:
> > > >> On Fri, 25 Jan 2019 at 12:30, Christian KÃnig
> > > >> <ckoenig.leichtzumerken@xxxxxxxxx> wrote:
> > > >>> Am 25.01.19 um 09:43 schrieb Ard Biesheuvel:
> > > >>>> On Thu, 24 Jan 2019 at 15:01, Alex Deucher <alexdeucher@xxxxxxxxx> wrote:
> > > >>>>> On Thu, Jan 24, 2019 at 9:00 AM Ard Biesheuvel
> > > >>>>> <ard.biesheuvel@xxxxxxxxxx> wrote:
> > > >>>>>> On Thu, 24 Jan 2019 at 13:31, Koenig, Christian
> > > >>>>>> <Christian.Koenig@xxxxxxx> wrote:
> > > >>>>>>> Am 24.01.19 um 13:06 schrieb Ard Biesheuvel:
> > > >>>>>>>> The DRM driver stack is designed to work with cache coherent devices
> > > >>>>>>>> only, but permits an optimization to be enabled in some cases, where
> > > >>>>>>>> for some buffers, both the CPU and the GPU use uncached mappings,
> > > >>>>>>>> removing the need for DMA snooping and allocation in the CPU caches.
> > > >>>>>>>>
> > > >>>>>>>> The use of uncached GPU mappings relies on the correct implementation
> > > >>>>>>>> of the PCIe NoSnoop TLP attribute by the platform, otherwise the GPU
> > > >>>>>>>> will use cached mappings nonetheless. On x86 platforms, this does not
> > > >>>>>>>> seem to matter, as uncached CPU mappings will snoop the caches in any
> > > >>>>>>>> case. However, on ARM and arm64, enabling this optimization on a
> > > >>>>>>>> platform where NoSnoop is ignored results in loss of coherency, which
> > > >>>>>>>> breaks correct operation of the device. Since we have no way of
> > > >>>>>>>> detecting whether NoSnoop works or not, just disable this
> > > >>>>>>>> optimization entirely for ARM and arm64.
> > > >>>>>>>>
> > > >>>>>>>> Cc: Christian Koenig <christian.koenig@xxxxxxx>
> > > >>>>>>>> Cc: Alex Deucher <alexander.deucher@xxxxxxx>
> > > >>>>>>>> Cc: David Zhou <David1.Zhou@xxxxxxx>
> > > >>>>>>>> Cc: Huang Rui <ray.huang@xxxxxxx>
> > > >>>>>>>> Cc: Junwei Zhang <Jerry.Zhang@xxxxxxx>
> > > >>>>>>>> Cc: Michel Daenzer <michel.daenzer@xxxxxxx>
> > > >>>>>>>> Cc: David Airlie <airlied@xxxxxxxx>
> > > >>>>>>>> Cc: Daniel Vetter <daniel@xxxxxxxx>
> > > >>>>>>>> Cc: Maarten Lankhorst <maarten.lankhorst@xxxxxxxxxxxxxxx>
> > > >>>>>>>> Cc: Maxime Ripard <maxime.ripard@xxxxxxxxxxx>
> > > >>>>>>>> Cc: Sean Paul <sean@xxxxxxxxxx>
> > > >>>>>>>> Cc: Michael Ellerman <mpe@xxxxxxxxxxxxxx>
> > > >>>>>>>> Cc: Benjamin Herrenschmidt <benh@xxxxxxxxxxxxxxxxxxx>
> > > >>>>>>>> Cc: Will Deacon <will.deacon@xxxxxxx>
> > > >>>>>>>> Cc: Christoph Hellwig <hch@xxxxxxxxxxxxx>
> > > >>>>>>>> Cc: Robin Murphy <robin.murphy@xxxxxxx>
> > > >>>>>>>> Cc: amd-gfx list <amd-gfx@xxxxxxxxxxxxxxxxxxxxx>
> > > >>>>>>>> Cc: dri-devel <dri-devel@xxxxxxxxxxxxxxxxxxxxx>
> > > >>>>>>>> Reported-by: Carsten Haitzler <Carsten.Haitzler@xxxxxxx>
> > > >>>>>>>> Signed-off-by: Ard Biesheuvel <ard.biesheuvel@xxxxxxxxxx>
> > > >>>>>>> The subject line should probably read "disable uncached...".
> > > >>>>>>>
> > > >>>>>> Ugh, of course ...
> > > >>>>>>
> > > >>>>>>> With that fixed the patch is Reviewed-by: Christian KÃnig
> > > >>>>>>> <christian.koenig@xxxxxxx>.
> > > >>>>>>>
> > > >>>>> Same:
> > > >>>>> Reviewed-by: Alex Deucher <alexander.deucher@xxxxxxx>
> > > >>>>>
> > > >>>> Thanks all
> > > >>>>
> > > >>>> Should I resend the patch with the subject corrected?
> > > >>> I will update the subject line and push it upstream through
> > > >>> drm-misc-next if nobody objects.
> > > >>>
> > > >> Wonderful, thanks.
> > > > Hi Christian,
> > > >
> > > > Are you still planning to merge this for v5.1?
> > >
> > > My bad, only pushed this to our internal branch, but forgot out
> > > drm-misc-next.
> > >
> > > Fixed now, thanks for the reminder.
> > >
> >
> > Thanks,
> >
> > Does anyone mind if I propose this patch for backporting to v4.19 or
> > earlier once it gets merged for v5.1?
>
> Go for it. I was going to suggest that this should probably go to stable.
>

Excellent. Note that I actually prefer sending it manually rather than
let Greg or Sasha pick it up automatically, given that they are
usually a bit trigger happy, i.e., patches tend to get backported
before anyone has had a chance to actually check that it doesn't break
anything in mainline.

In other words, please don't add a cc -stable or fixes tag. I will
track it myself instead.

Thanks,
Ard.