u-boot-brain/cmd
Eric Nelson e40cf34a29 drivers: block: add block device cache
Add a block device cache to speed up repeated reads of block devices by
various filesystems.

This small amount of cache can dramatically speed up filesystem
operations by skipping repeated reads of common areas of a block
device (typically directory structures).

This has shown to have some benefit on FAT filesystem operations of
loading a kernel and RAM disk, but more dramatic benefits on ext4
filesystems when the kernel and/or RAM disk are spread across
multiple extent header structures as described in commit fc0fc50.

The cache is implemented through a minimal list (block_cache) maintained
in most-recently-used order and count of the current number of entries
(cache_count). It uses a maximum block count setting to prevent copies
of large block reads and an upper bound on the number of cached areas.

The maximum number of entries in the cache defaults to 32 and the maximum
number of blocks per cache entry has a default of 2, which has shown to
produce the best results on testing of ext4 and FAT filesystems.

The 'blkcache' command (enabled through CONFIG_CMD_BLOCK_CACHE) allows
changing these values and can be used to tune for a particular filesystem
layout.

Signed-off-by: Eric Nelson <eric@nelint.com>
2016-04-01 17:18:27 -04:00
..
aes.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
ambapp.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
armflash.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
bdinfo.c microblaze: Do not print eth device when DM_ETH is enabled 2016-01-27 15:55:49 +01:00
bedbug.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
blkcache.c drivers: block: add block device cache 2016-04-01 17:18:27 -04:00
blob.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
bmp.c dm: Use uclass_first_device_err() where it is useful 2016-03-14 15:34:50 -06:00
boot.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
bootefi.c efi_loader: Add GOP support 2016-03-27 09:12:12 -04:00
bootldr.c Use correct spelling of "U-Boot" 2016-02-06 12:00:59 +01:00
bootm.c arm64: booti: add missing unmap_sysmem() 2016-04-01 17:17:57 -04:00
bootmenu.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
bootstage.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
cache.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
cbfs.c cbfs: Update a function to be static 2016-03-22 12:16:08 -04:00
clk.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
console.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
cplbinfo.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
cpu.c cpu: Add support for microcode version and CPU ID 2016-03-17 10:27:22 +08:00
cramfs.c Drop CONFIG_CRAMFS_CMDLINE 2016-03-14 15:34:50 -06:00
dataflash_mmc_mux.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
date.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
dcr.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
demo.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
dfu.c dfu: usb: f_dfu: Set deferred call for dfu_flush() function 2016-02-24 19:12:32 +01:00
diag.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
disk.c Merge git://git.denx.de/u-boot-dm 2016-03-14 19:21:44 -04:00
display.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
dtt.c bug.h: move BUILD_BUG_* defines to include/linux/bug.h 2016-01-25 10:39:59 -05:00
echo.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
eeprom.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
efi.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
elf.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
ethsw.c Merge branch 'master' of git://git.denx.de/u-boot-net 2016-01-28 18:42:10 -05:00
exit.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
ext2.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
ext4.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
fastboot.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
fat.c dm: block: Rename device number member dev to devnum 2016-03-14 15:34:50 -06:00
fdc.c Fix spelling of "transferred". 2016-03-22 12:16:16 -04:00
fdt.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
fitupd.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
flash.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
fpga.c fpga: Fix compilation warnings 2016-01-27 15:55:54 +01:00
fpgad.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
fs_uuid.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
fs.c efi_loader: Pass proper device path in on boot 2016-03-15 21:30:14 -04:00
fuse.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
gettime.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
gpio.c gpio: Report errors when GPIOs cannot be read 2016-03-17 21:27:37 -06:00
gpt.c dm: blk: Rename get_dev() to blk_get_dev() 2016-03-14 15:34:50 -06:00
hash.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
help.c Drop command-processing code when CONFIG_CMDLINE is disabled 2016-04-01 17:17:40 -04:00
host.c dm: sandbox: Add driver-model block-device support for sandbox 2016-03-14 15:34:50 -06:00
i2c.c i2c: spd: Extend SPD memory types 2016-02-22 16:21:12 +01:00
ide.c dm: block: Adjust device calls to go through helpers function 2016-03-14 15:34:50 -06:00
immap.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
ini.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
io.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
iotrace.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
irq.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
itest.c itest: allow map_physmem to return 0 in limited cases 2016-02-09 15:41:19 -07:00
jffs2.c Use correct spelling of "U-Boot" 2016-02-06 12:00:59 +01:00
Kconfig drivers: block: add block device cache 2016-04-01 17:18:27 -04:00
ldrinfo.c Use correct spelling of "U-Boot" 2016-02-06 12:00:59 +01:00
led.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
license.c cmd: Fix license command 2016-03-22 12:16:13 -04:00
load.c Remove unused CONFIG_CMD_HWFLOW option and associated dead code. 2016-02-08 10:22:44 -05:00
log.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
lzmadec.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
mac.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
Makefile drivers: block: add block device cache 2016-04-01 17:18:27 -04:00
md5sum.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
mdio.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
mem.c cmd: mem: Show 64bit addresses which are tested 2016-02-24 18:44:14 -05:00
mfsl.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
mii.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
misc.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
mmc_spi.c dm: block: Rename device number member dev to devnum 2016-03-14 15:34:50 -06:00
mmc.c dm: part: Rename some partition functions 2016-03-14 15:34:50 -06:00
mp.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
mtdparts.c Use correct spelling of "U-Boot" 2016-02-06 12:00:59 +01:00
nand.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
net.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
nvedit.c common: Add support for environment file in EXT4. 2016-03-14 14:18:39 -04:00
onenand.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
otp.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
part.c dm: part: Rename some partition functions 2016-03-14 15:34:50 -06:00
pci.c Implement "pci enum" command for CONFIG_DM_PCI 2016-01-28 21:01:23 -07:00
pcmcia.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
pmic.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
portio.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
pxe.c Use correct spelling of "U-Boot" 2016-02-06 12:00:59 +01:00
read.c dm: block: Adjust device calls to go through helpers function 2016-03-14 15:34:50 -06:00
reginfo.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
regulator.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
reiser.c dm: block: Rename device number member dev to devnum 2016-03-14 15:34:50 -06:00
remoteproc.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
sata.c dm: block: Rename device number member dev to devnum 2016-03-14 15:34:50 -06:00
scsi.c cmd: scsi: Group the command portion together, guard with !CONFIG_SPL_BUILD 2016-03-16 15:03:37 -04:00
setexpr.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
sf.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
sha1sum.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
softswitch.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
sound.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
source.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
spi.c cmd: spi: check return value of strdup 2016-03-27 09:12:55 -04:00
spibootldr.c Use correct spelling of "U-Boot" 2016-02-06 12:00:59 +01:00
spl.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
strings.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
terminal.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
test.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
thordown.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
time.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
tpm_test.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
tpm.c dm: Use uclass_first_device_err() where it is useful 2016-03-14 15:34:50 -06:00
trace.c trace: Fix compiler warnings in trace 2016-02-26 08:53:10 -07:00
tsi148.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
ubi.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
ubifs.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
universe.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
unzip.c dm: blk: Rename get_device() to blk_get_device_by_str() 2016-03-14 15:34:50 -06:00
usb_mass_storage.c dm: block: Rename device number member dev to devnum 2016-03-14 15:34:50 -06:00
usb.c dm: block: Adjust device calls to go through helpers function 2016-03-14 15:34:50 -06:00
version.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
ximg.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
yaffs2.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
zfs.c dm: block: Rename device number member dev to devnum 2016-03-14 15:34:50 -06:00
zip.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00