Re: [PATCH 2/2] staging: vc04_services: Replace dmac_map_area with dmac_map_sg

From: Eric Anholt
Date: Mon Oct 24 2016 - 12:56:43 EST


Greg KH <gregkh@xxxxxxxxxxxxxxxxxxx> writes:

> On Sun, Oct 23, 2016 at 10:29:32PM -0700, mzoran@xxxxxxxxxxxx wrote:
>> From: Michael Zoran <mzoran@xxxxxxxxxxxx>
>>
>> The original arm implementation uses dmac_map_area which is not
>> portable. Replace it with an architecture neutral version
>> which uses dma_map_sg.
>>
>> As you can see that for larger page sizes, the dma_map_sg
>> implementation is faster then the original unportable dma_map_area
>> implementation.
>>
>> Test dmac_map_area dma_map_page dma_map_sg
>> vchiq_test -b 4 10000 51us/iter 76us/iter 76us
>> vchiq_test -b 8 10000 70us/iter 82us/iter 91us
>> vchiq_test -b 16 10000 94us/iter 118us/iter 121us
>> vchiq_test -b 32 10000 146us/iter 173us/iter 187us
>> vchiq_test -b 64 10000 263us/iter 328us/iter 299us
>> vchiq_test -b 128 10000 529us/iter 631us/iter 595us
>> vchiq_test -b 256 10000 2285us/iter 2275us/iter 2001us
>> vchiq_test -b 512 10000 4372us/iter 4616us/iter 4123us
>>
>> For message sizes >= 64KB, dma_map_sg is faster then dma_map_page.
>>
>> For message size >= 256KB, the dma_map_sg is the fastest
>> implementation.
>
> What is the "normal" message size value when using this driver?

For the contents of a bulk transfer, the performance case you care about
is moving an image (video decode, camera, etc.), so on the order of 1MB.

Attachment: signature.asc
Description: PGP signature