]> git.karo-electronics.de Git - karo-tx-linux.git/commit
ENGR00219601-01: mmc: queue: enlarge the size of bounce buffer for SDMA.
authorRyan QIAN <b32804@freescale.com>
Thu, 2 Aug 2012 01:46:53 +0000 (09:46 +0800)
committerOliver Wendt <ow@karo-electronics.de>
Mon, 30 Sep 2013 12:12:47 +0000 (14:12 +0200)
commit3a9ce4a43437b8260f7aa5b28507da503511e5b5
tree4113002ffe61943ed2c7b2558a11c9b05dc68fc4
parent882a0c191feb444a4fb4584948814d5934ef5c65
ENGR00219601-01: mmc: queue: enlarge the size of bounce buffer for SDMA.

- set bounce buffer to 512KB from 64K, which is hw max seg size for
fsl sd host controller
- by enlarging the size of bounce buffer, it will reduce the number
of irq on writing by merging small requests into a large one, which
will improve writing throughput.
- the side effect is that the reading throughput of 512KB bounce buffer
is lower than the one of 64KB bounce buffer, when cpu freq is at 200Mhz.

Test Env:
1. MX6DL SabreSD board
2. On board eMMC (Sandisk: SDIN5C2-8G) running at 8-bit DDR @ 52Mhz
3. Test commands:
  3.1 Writing test command:
  # dd if=/dev/zero of=/dev/mmcblk0 bs=1M count=100 conv=fsync
  3.2 Reading test command:
  # echo 1 > /proc/sys/vm/drop_caches
  # echo 1 > /proc/sys/vm/drop_caches
  # sleep 1
  # dd if=/dev/mmcblk0 of=/dev/null bs=1M count=100

Performance result:
-------------------------------------------------------
| CPU freq | SDMA (512KB) | SDMA (64KB) |    ADMA     |
|----------+--------------+-------------+-------------|
|   1Ghz   |  ~10MB/s (w) | ~5MB/s (w)  | ~10MB/s (w) |
|          |  ~22MB/s (r) | ~23MB/s (r) | ~22MB/s (r) |
|----------+--------------+-------------+-------------|
|  200Mhz  |  ~8MB/s (w)  | ~4MB/s (w)  | ~8MB/s (w)  |
|          |  ~13MB/s (r) | ~16MB/s (r) | ~11MB/s (r) |
-------------------------------------------------------

Signed-off-by: Ryan QIAN <b32804@freescale.com>
drivers/mmc/card/queue.c