Re: [RFC] ITS fails to allocate on rk3568/rk3566

From: Peter Geis
Date: Wed Apr 14 2021 - 07:41:41 EST


On Tue, Apr 13, 2021 at 11:51 AM Marc Zyngier <maz@xxxxxxxxxx> wrote:
>
> On Tue, 13 Apr 2021 16:03:51 +0100,
> Peter Geis <pgwipeout@xxxxxxxxx> wrote:
> >
> > On Tue, Apr 13, 2021 at 10:01 AM Marc Zyngier <maz@xxxxxxxxxx> wrote:
>
> [...]
>
> > > What happens if you hack all the allocations to happen in the low 4GB
> > > of the PA space?
> >
> > It seems to work correctly.
> > The downstream hacks used GFP_DMA32 which gets discarded by
> > kmalloc_fix_flags on certain allocations.
> > Switching to GFP_DMA seems to have satisfied it, but it feels wrong
> > using this code.
> > Need to check the corner cases to make sure I'm not missing something.
>
> The problem is that GFP_DMA doesn't always mean the same thing.
> Overall, we need to hear from Rockchip about the exact nature of the
> problem, and then we *may* be able to work something out.

>From what I've read, GFP_DMA allocates as low as possible, while
GFP_DMA32 ensures it's in the 32 bit address range, am I understanding
this correctly?
Is there a reason GFP_DMA is permitted while GFP_DMA32 is not, aside
from backwards compatibility?
(I saw the notes about how we aren't really supposed to rely on these flags)

I've also confirmed that their disabling shareability and caching is necessary.

>
> I'd also like to understand whether it is broken because you happen to
> have pre-release silicon that will never make it into the wild, or if
> this is the real thing that is going to ship on millions of devices.

My understanding is these chips are samples prior to the full
production run, but we are waiting on official comment from Rockchip
about this particular errata.

>
> Thanks,
>
> M.
>
> --
> Without deviation from the norm, progress is not possible.