[PATCH 0/6] Etnaviv cmdbuf suballocator
Lucas Stach
l.stach at pengutronix.de
Mon Jan 30 11:48:43 UTC 2017
Am Mittwoch, den 18.01.2017, 12:25 +0100 schrieb Lucas Stach:
> Hi all,
>
> the following patches introduce a cmduf suballocator in the Etnaviv
> kernel driver, which has the following benefits:
>
> 1. Allocating and freeing a CMA buffer for each user command submission
> is taking a big toll on the CPU, as CMA is not exactly low overhead.
> By suballocating a single buffer we avoid all this overhead.
>
> 2. Less TLB flushes on MMUv2. Each time a new buffer gets mapped into
> the GPU address space on MMUv2 the TLBs need to be flushed. Mapping
> the suballocated area once allows to skip the TLB flushes (at least
> as long as userspace re-uses existing buffers).
>
> 3. No workarounds for GC3000 required anymore. The FE TLB flush on
> GC3000 doesn't work reliably, which required us to map the cmdbufs
> into the GPU address space at specific positions, which also isn't
> guaranteed to work if the address space is already crowded. Having
> a single static area for the cmdbufs side-steps the erratum completely.
>
> If I can get reviews and/or enough testing, I would like to include this
> code in kernel 4.11.
If this helps in testing this change, I have pushed my queue out into my
public git repo at:
https://git.pengutronix.de/git/lst/linux drm-etnaviv-next
The branch is based on v4.10-rc1, but is trivial to rebase onto
something more recent.
Regards,
Lucas
More information about the dri-devel
mailing list