[U-Boot] [RFC PATCH 2/2] mmc: add support for block device cache

Stephen Warren swarren at wwwdotorg.org
Thu Mar 17 22:23:44 CET 2016


On 03/16/2016 03:40 PM, Eric Nelson wrote:
> Signed-off-by: Eric Nelson <eric at nelint.com>

Patch description.

> ---
>   drivers/mmc/mmc.c       | 10 +++++++++-
>   drivers/mmc/mmc_write.c |  7 +++++++

Presumably it makes sense for the cache to work for IDE, SATA, USB, 
SCSI, ... too. I wonder if it's possible to put this code somewhere more 
central than mmc*.c so it automatically applies to 
dev_desc->block_read() (see include/part.h). Perhaps not since each 
implementation supplies its own block_read function directly, so the 
cache calls do need to be duplicated everywhere.

> diff --git a/drivers/mmc/mmc.c b/drivers/mmc/mmc.c
>    *
>    * SPDX-License-Identifier:	GPL-2.0+
>    */
> -
>   #include <config.h>

Nit: unrelated change.

I think there is a missing call to cache_block_invalidate() when the MMC 
device gets re-enumerated/re-initialized. The user would do something to 
trigger this (e.g. mmc rescan) when they'd swapped an SD card out for 
example.

Do you have any stats on how many operations this saves for typical FS 
operations such as:

- Partition table type identification (with various types such as 
MBR/DOS, GPT, ...)
- Partition enumeration
- Filesystem identification (with various filesystems such as FAT, ext, ...)
- File reads


More information about the U-Boot mailing list