[U-Boot] [PATCH] sunxi: improve throughput in the sunxi_mmc driver

Mylène Josserand mylene.josserand at bootlin.com
Thu Mar 29 13:40:30 UTC 2018


Hello,

On Wed, 21 Mar 2018 12:18:58 +0100
Maxime Ripard <maxime.ripard at bootlin.com> wrote:

> From: Philipp Tomsich <philipp.tomsich at theobroma-systems.com>
> 
> Throughput tests have shown the sunxi_mmc driver to take over 10s to
> read 10MB from a fast eMMC device due to excessive delays in polling
> loops.
> 
> This commit restructures the main polling loops to use get_timer(...)
> to determine whether a (millisecond) timeout has expired.  We choose
> not to use the wait_bit function, as we don't need interruptability
> with ctrl-c and have at least one case where two bits (one for an
> error condition and another one for completion) need to be read and
> using wait_bit would have not added to the clarity.
> 
> The observed speedup in testing on a A31 is greater than 10x (e.g. a
> 10MB write decreases from 9.302s to 0.884s).
> 
> Signed-off-by: Philipp Tomsich <philipp.tomsich at theobroma-systems.com>
> Signed-off-by: Maxime Ripard <maxime.ripard at bootlin.com>

Tested-by: Mylène Josserand <mylene.josserand at bootlin.com>

Thanks,

-- 
Mylène Josserand, Bootlin (formerly Free Electrons)
Embedded Linux and Kernel engineering
http://bootlin.com


More information about the U-Boot mailing list