u-boot-brain/drivers
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
..
adc sandbox: add ADC driver 2015-11-02 10:38:00 +09:00
bios_emulator dm: pci: Convert bios_emu to use the driver model PCI API 2016-01-24 12:07:19 +08:00
block drivers: block: add block device cache 2016-04-01 17:18:27 -04:00
bootcount bootcount: Correct #endif comment to match, other aesthetics 2016-01-08 10:15:43 -05:00
clk clk: uniphier: use devm_get_addr() to get base address 2016-04-01 00:17:08 +09:00
core syscon: Avoid returning a device on failure 2016-03-17 10:27:24 +08:00
cpu x86: Move MP initialization codes into a common place 2015-07-14 18:03:16 -06:00
crypto crypto/fsl: Make CAAM transactions cacheable 2016-03-29 08:46:22 -07:00
ddr Fix typo choosen in comments and printf logs 2016-03-27 09:12:23 -04:00
demo drivers: hierarchize drivers Kconfig menu 2015-08-12 20:47:44 -04:00
dfu dm: part: Rename some partition functions 2016-03-14 15:34:50 -06:00
dma drivers: dma: ti-edma3: convert driver to adopt driver model 2016-02-23 16:14:46 +05:30
fpga fpga: altera: Add StratixV support 2016-03-24 09:47:43 +01:00
gpio gpio: Add support for Qualcomm PM8916 gpios 2016-04-01 17:18:13 -04:00
hwmon mailaddr: Update mail address 2016-01-27 15:32:05 +01:00
i2c i2c: uniphier: use devm_get_addr() to get base address 2016-04-01 00:17:13 +09:00
input input: i8042: Make sure the keyboard is enabled 2016-03-17 10:27:24 +08:00
led dm: led: Tidy up SPL options for the led and led-gpio 2015-09-02 21:28:22 -06:00
memory Various Makefiles: Add SPDX-License-Identifier tags 2015-11-10 09:19:52 -05:00
misc Merge git://git.denx.de/u-boot-dm 2016-03-14 19:21:44 -04:00
mmc mmc: Add support for Qualcomm SDHCI controller 2016-04-01 17:18:08 -04:00
mtd mtd: nand: denali: max_banks calculation changed in revision 5.1 2016-04-01 00:16:55 +09:00
net net: phy: Optionally force master mode for RTL PHY 2016-03-31 14:29:11 +02:00
pch x86: pch9: Implement get_io_base op 2016-02-05 12:47:21 +08:00
pci pci/layerscape: set LUT and msi-map for discovered PCI devices 2016-03-21 12:42:13 -07:00
pcmcia powerpc: mpc824x: remove MPC824X cpu support 2015-01-05 12:08:55 -05:00
pinctrl pinctrl: uniphier: support UniPhier PH1-LD11 pinctrl driver 2016-04-01 00:57:19 +09:00
power pmic: Add support for Qualcomm PM8916 PMIC 2016-04-01 17:18:13 -04:00
pwm tegra: video: Move LCD driver to use the DM PWM driver 2016-02-16 09:17:53 -07:00
qe board: ls1043ardb: Add micro QE support for ls1043ardb 2016-02-24 08:51:14 -08:00
ram ram: rename CONFIG_SPL_RAM_SUPPORT to CONFIG_SPL_RAM 2015-08-18 13:46:02 -04:00
remoteproc remoteproc: Add support for TI power processor 2016-03-14 19:18:37 -04:00
rtc rtc: Add MCP79411 support to DS1307 rtc driver 2015-11-04 15:19:12 -08:00
serial serial: Add support for Qualcomm serial port 2016-04-01 17:18:07 -04:00
soc Use correct spelling of "U-Boot" 2016-02-06 12:00:59 +01:00
sound of: clean up OF_CONTROL ifdef conditionals 2015-08-18 13:46:05 -04:00
spi spi: omap3: Fix multiple definition of 'priv' 2016-03-15 14:50:09 -04:00
spmi drivers: spmi: Add support for Qualcomm SPMI bus driver 2016-04-01 17:18:12 -04:00
thermal imx: mx7: fix the temperature checking for Rev1.1 2016-01-07 17:53:11 +01:00
timer Merge git://git.denx.de/u-boot-dm 2016-03-14 19:21:44 -04:00
tpm tpm: st33zp24: Add tpm st33zp24 spi support 2016-01-28 21:01:22 -07:00
twserial drivers: convert makefiles to Kbuild style 2013-10-31 13:26:01 -04:00
usb ehci: Add support for Qualcomm EHCI 2016-04-01 17:18:11 -04:00
video Revert "pxa_lcd: make driver cache-aware" 2016-03-27 20:58:08 -04:00
watchdog imx_watchdog: always set minimal timeout in reset_cpu 2016-01-07 17:54:53 +01:00
Kconfig drivers: Add SPMI bus uclass 2016-04-01 17:18:12 -04:00
Makefile drivers: Add SPMI bus uclass 2016-04-01 17:18:12 -04:00