u-boot/drivers
Mattijs Korpershoek b1aade87ca lib: sparse: allocate FASTBOOT_MAX_BLK_WRITE instead of small number
Commit 62649165cb ("lib: sparse: Make CHUNK_TYPE_RAW buffer aligned")
fixed cache alignment for systems with a D-CACHE.

However it introduced some performance regressions [1] on system
flashing huge images, such as Android.

On AM62x SK EVM, we also observe such performance penalty:
Sending sparse 'super' 1/2 (768793 KB)             OKAY [ 23.954s]
Writing 'super'                                    OKAY [ 75.926s]
Sending sparse 'super' 2/2 (629819 KB)             OKAY [ 19.641s]
Writing 'super'                                    OKAY [ 62.849s]
Finished. Total time: 182.474s

The reason for this is that we use an arbitrary small buffer
(info->blksz * 100) for transferring.

Fix it by using a bigger buffer (info->blksz * FASTBOOT_MAX_BLK_WRITE)
as suggested in the original's patch review [2].

With this patch, performance impact is mitigated:
Sending sparse 'super' 1/2 (768793 KB)             OKAY [ 23.912s]
Writing 'super'                                    OKAY [ 15.780s]
Sending sparse 'super' 2/2 (629819 KB)             OKAY [ 19.581s]
Writing 'super'                                    OKAY [ 17.192s]
Finished. Total time: 76.569s

[1] https://lore.kernel.org/r/20221118121323.4009193-1-gary.bisson@boundarydevices.com
[2] https://lore.kernel.org/r/all/43e4c17c-4483-ec8e-f843-9b4c5569bd18@seco.com/

Fixes: 62649165cb ("lib: sparse: Make CHUNK_TYPE_RAW buffer aligned")
Signed-off-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
2023-07-25 12:44:46 -04:00
..
adc dm: adc: add iMX93 ADC support 2023-07-13 11:29:40 +02:00
ata arm64: zynqmp: Switch to amd.com emails 2023-07-21 09:00:38 +02:00
axi axi: fix definition of axi_sandbox_get_emul() 2023-06-01 12:32:03 -04:00
bios_emulator bios_emulator: Drop VIDEO_IO_OFFSET 2023-07-17 17:08:44 +08:00
block spl: blk: Support loading images from fs 2023-06-19 17:19:44 -04:00
bootcount global: Move remaining CONFIG_SYS_* to CFG_SYS_* 2022-12-05 16:06:08 -05:00
bus bus: Optionally include TI sysc driver in SPL/TPL 2022-12-02 08:39:00 -05:00
button dm: button: add support for linux_code in button-gpio.c driver 2023-02-10 12:50:01 -05:00
cache drivers: use dev_read_addr_ptr when cast to pointer 2023-05-06 17:28:18 +08:00
clk clk: starfive: jh7110: Add of_xlate ops and macros for clock id conversion 2023-07-24 13:21:16 +08:00
core core: read: fix dev_read_addr_size() 2023-07-20 14:10:57 -06:00
cpu imx9: add i.MX93 variants support 2023-05-21 16:54:41 +02:00
crypto Correct SPL uses of HW_WATCHDOG 2023-02-10 07:41:39 -05:00
ddr ddr: imx9: update the rank setting for multi fsp support 2023-05-21 16:54:41 +02:00
demo demo: migrate uclass to livetree 2021-10-05 08:50:15 -04:00
dfu dfu: Add proper dependency for CONFIG_DFU_MMC 2023-07-17 15:38:11 -04:00
dma dma: ti: k3-udma: Fix channel hang on teardown 2023-03-22 12:51:15 -04:00
extcon extcon: add MAX14526 MUIC support 2023-05-02 14:23:58 -04:00
fastboot lib: sparse: allocate FASTBOOT_MAX_BLK_WRITE instead of small number 2023-07-25 12:44:46 -04:00
firmware Revert "Merge branch '2023-07-24-introduce-FF-A-suppport'" 2023-07-24 19:51:05 -04:00
fpga event: Add fpga load event 2023-07-21 09:00:39 +02:00
fuzz sandbox: Implement fuzzing engine driver 2022-06-23 12:58:19 -04:00
fwu-mdata FWU: Add FWU metadata access driver for MTD storage regions 2023-06-09 13:52:40 -04:00
gpio x86: Convert some debug statements to use logging 2023-07-17 17:23:14 +08:00
hwspinlock treewide: invaild -> invalid 2022-01-13 07:57:49 -05:00
i2c Merge tag v2023.07-rc4 into next 2023-06-12 14:55:33 -04:00
input input: Flush the keyboard buffer before resetting it 2023-05-11 10:25:29 +08:00
iommu iommu: Implement mapping IOMMUs for PCI devices 2023-01-27 14:47:58 -05:00
led drivers: led: bcm6858: do not use null label to find the top 2023-07-25 12:44:46 -04:00
mailbox mailbox: k3-sec-proxy: Fill non-message tx data fields with 0x0 2023-07-25 12:44:46 -04:00
memory memory: atmel-ebi: add Atmel EBI (External Bus Interface) driver 2022-12-08 18:06:27 +02:00
mfd mfd: syscon: atmel-smc: Add new helpers to ease SMC regs manipulation 2022-12-08 18:06:27 +02:00
misc x86: Record the start and end of the tables 2023-07-17 17:23:08 +08:00
mmc atmel_sdhci: Force card-detect if MMC_CAP_NONREMOVABLE. 2023-07-24 14:21:00 +03:00
mtd mtd: Add missing MTD dependency for cfi_mtd 2023-07-21 09:00:38 +02:00
mux Correct SPL uses of MULTIPLEXER 2023-03-02 17:45:58 -05:00
net net: axi_emac: Change return value to -EAGAIN if RX is not ready 2023-07-21 09:00:39 +02:00
nvme nvme: Provide more useful debugging messages 2023-07-17 17:12:26 +08:00
pch x86: Convert some debug statements to use logging 2023-07-17 17:23:14 +08:00
pci pci: Mask the ROM address in case it is already enabled 2023-07-17 17:12:26 +08:00
pci_endpoint dm: define LOG_CATEGORY for all uclass 2021-07-06 10:38:03 -06:00
phy phy: sun4i: Add H616 USB PHY support 2023-07-21 00:28:13 +01:00
pinctrl arm64: zynqmp: Switch to amd.com emails 2023-07-21 09:00:38 +02:00
power imx: mach: correct SCU API usage 2023-07-13 11:29:40 +02:00
pwm drivers: use dev_read_addr_ptr when cast to pointer 2023-05-06 17:28:18 +08:00
qe global: Finish CONFIG -> CFG migration 2023-01-20 12:27:24 -05:00
ram ram: k3-ddrss: do not touch ctrl regs during training 2023-07-21 15:32:12 -04:00
reboot-mode reboot-mode: Add NVMEM reboot mode 2023-01-11 11:54:50 -05:00
remoteproc remoteproc: ti_k3_arm64: Change the startup of arm64 core 2023-04-24 13:18:48 -04:00
reset core: read: fix dev_read_addr_size() 2023-07-20 14:10:57 -06:00
rng rockchip: rng: add trngv1 for rk3588 2023-04-21 15:16:01 +08:00
rtc drivers: rtc: add max313xx series rtc driver 2023-03-30 15:09:59 -04:00
scsi bootstd: Use bootdev instead of bootdevice 2023-07-16 23:13:17 +08:00
serial serial: pl01x: Modify pending callback to test if transmit FIFO is empty 2023-07-11 14:40:04 +02:00
smem smem: msm: add missing <linux/sizes.h> 2022-10-12 08:56:24 -04:00
soc arm64: zynqmp: Switch to amd.com emails 2023-07-21 09:00:38 +02:00
sound test: test sandbox sound driver more rigorously 2022-12-05 17:43:21 +01:00
spi cadence_qspi: Enable flash reset for Versal NET platform 2023-07-21 09:00:38 +02:00
spmi spmi: msm: add arbiter version 5 support 2021-10-31 08:46:44 -04:00
sysinfo sysinfo: gpio: fix loop over DT "revisions" array 2023-03-30 15:09:59 -04:00
sysreset sysreset: Change Kconfig GPIO dependency 2023-07-07 16:47:15 -04:00
tee drivers: tee: sandbox: Fix SCP03 control emulator 2023-04-28 11:30:17 -06:00
thermal imx: move imx8 sci header file to include/firmware/imx 2023-05-21 16:54:32 +02:00
timer riscv: Rename SiFive CLINT to RISC-V ALINT 2023-07-12 13:21:40 +08:00
tpm tpm: sandbox: Change the return code when device is already open 2023-02-28 09:44:25 +02:00
ufs ufs: Use 'TASK_TAG' to construct the ucd_req_ptr->header.dword_0 2023-07-14 15:21:08 -04:00
usb sunxi: Kconfig: rework PHY_USB_SUN4I selection 2023-07-21 00:26:36 +01:00
video drivers: video: Kconfig: Add config remove video 2023-07-21 15:32:12 -04:00
virtio virtio: Ensure PCI is set up first 2023-04-26 08:43:04 -04:00
w1 dm: treewide: Do not use the return value of simple uclass iterator 2022-10-29 07:36:33 -06:00
w1-eeprom dm: define LOG_CATEGORY for all uclass 2021-07-06 10:38:03 -06:00
watchdog arm64: zynqmp: Switch to amd.com emails 2023-07-21 09:00:38 +02:00
xen xen: Limit execution to EL1 only 2023-04-25 15:31:28 -04:00
Kconfig bios_emulator: Add Kconfig and adjust Makefile for SPL 2023-07-17 17:08:44 +08:00
Makefile Revert "Merge branch '2023-07-24-introduce-FF-A-suppport'" 2023-07-24 19:51:05 -04:00