[PATCH 08/20] mmc: host: pxamci: switch over to dmaengine use

Sergei Ianovich ynvich at gmail.com
Tue Dec 10 10:04:00 EST 2013


On Tue, 2013-12-10 at 11:48 +0100, Daniel Mack wrote:
> I'd say something like bonnie++ is a more deterministic test for such
> things, considering that the first fsck might have fixed things that the
> 2nd didn't have to touch.

The old driver:
Version  1.96       ------Sequential Output------ --Sequential Input- --Random-
Concurrency   1     -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
Machine        Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP  /sec %CP
pac26          300M    41  81   280   1   246   2   278  96  3056  10  99.2  23
Latency              1424ms    1054ms     510ms   95978us   86277us    3510ms
Version  1.96       ------Sequential Create------ --------Random Create--------
pac26               -Create-- --Read--- -Delete-- -Create-- --Read--- -Delete--
              files  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP
                 16   354  42 16254  97   325  10   490  30 +++++ +++  1320  37
Latency              2354ms   48094us    6165ms    2979ms     586us    1116us
1.96,1.96,pac26,1,1386675098,300M,,41,81,280,1,246,2,278,96,3056,10,99.2,23,16,,,,,354,42,16254,97,325,10,490,30,+++++,+++,1320,37,1424ms,1054ms,510ms,95978us,86277us,3510ms,2354ms,48094us,6165ms,2979ms,586us,1116us

The new driver:
Version  1.96       ------Sequential Output------ --Sequential Input- --Random-
Concurrency   1     -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
Machine        Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP  /sec %CP
pac26          300M    38  77     0   0   218   2   267  93  1762   6  84.0  19
Latency              2522ms 138668225     792ms   67960us     141ms   16313ms
Version  1.96       ------Sequential Create------ --------Random Create--------
pac26               -Create-- --Read--- -Delete-- -Create-- --Read--- -Delete--
              files  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP
                 16   304  38 14930  95   383  13   525  31 +++++ +++  1042  28
Latency             13481ms   49916us    7144ms    4075ms     624us     993us
1.96,1.96,pac26,1,1639,300M,,38,77,0,0,218,2,267,93,1762,6,84.0,19,16,,,,,304,38,14930,95,383,13,525,31,+++++,+++,1042,28,2522ms,138668225,792ms,67960us,141ms,16313ms,13481ms,49916us,7144ms,4075ms,624us,993us

I forgot to run 'time bonnie++', so there is no hard numbers about total
time. My impression is that the old and new driver tests have run for 30
and 60 minutes respectively.

> Apart from that, your findings are interesting. I only tested pxamci
> with a Wifi card connected via SDIO, and didn't see such a big
> difference in performance.
> 
> > Conclusions:
> > 1. The card itself is fine.
> > 
> > 2. There are issues with new DMA driver. I am ready to test patches,
> > without questions.
> > 
> > 3. There are issues with the MMC stack in my ARM device. Please drop a
> > pointer where to start digging.
> 
> Alright, thanks a lot for offering help! You could start having a look
> at the DMA descriptors and see whether they differ in size, compared to
> the old implementation. Taking time stamps to measure the turnaround
> cycle of the transfers would be another thing that you can try.
> 
> I'm not aware of any code in the mmp_pdma driver that would burn lots of
> CPU cycles, but that doesn't mean there aren't any.

I can test patches, but I am not sure I can provide any meaningful help
with performance. Sorry.

In point 3 I was talking about non-DMA related performance. The device
has been busy running bonnie++, so I haven't had a change to verify. It
looks like my device is working with 1-bit-wide bus instead of
4-bit-wide (Bad block checking ran at 19500000 bits per second which
matches bus clock speed).




More information about the linux-arm-kernel mailing list