[PATCH 2/2] staging: vc04_services: Replace dmac_map_area with dmac_map_sg
Michael Zoran
mzoran at crowfest.net
Mon Oct 24 14:01:48 UTC 2016
On Mon, 2016-10-24 at 15:24 +0200, Greg KH wrote:
> On Sun, Oct 23, 2016 at 10:29:32PM -0700, mzoran at crowfest.net wrote:
> > From: Michael Zoran <mzoran at crowfest.net>
> >
> > 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?
>
> thanks,
>
> greg k-h
I honestly have no idea. From what I understand, the only code that
actually uses this code path is the closed source multimedia drivers
which I know nothing about.
Obviously, one approach would be to have the kernel collect data on
what the typical size is after running some benchmarks.
More information about the devel
mailing list