[PATCH 0/6] Etnaviv cmdbuf suballocator

Christian Gmeiner christian.gmeiner at gmail.com
Mon Jan 30 11:52:18 UTC 2017


Hi Lucas,

2017-01-30 12:48 GMT+01:00 Lucas Stach <l.stach at pengutronix.de>:
> 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.
>

Will have a look at it later the day.

greets
--
Christian Gmeiner, MSc

https://www.youtube.com/user/AloryOFFICIAL
https://soundcloud.com/christian-gmeiner


More information about the etnaviv mailing list