Re: [PATCH v3 0/3] spi: Add DMA mode support to spi-qcom-qspi
From: Doug Anderson
Date: Fri Apr 14 2023 - 11:49:32 EST
Hi,
On Fri, Apr 14, 2023 at 7:06 AM Vijaya Krishna Nivarthi
<quic_vnivarth@xxxxxxxxxxx> wrote:
>
> There are large number of QSPI irqs that fire during boot/init and later
> on every suspend/resume.
> This could be made faster by doing DMA instead of PIO.
> Below is comparison for number of interrupts raised in 2 acenarios...
s/acenarios/scenarios
> Boot up and stabilise
> Suspend/Resume
>
> Sequence PIO DMA
> =======================
> Boot-up 69088 19284
> S/R 5066 3430
>
> Though we have not made measurements for speed, power we expect
> the performance to be better with DMA mode and no regressions were
> encountered in testing.
Measuring the speed isn't really very hard, so I gave it a shot.
I used a truly terrible python script to do this on a Chromebook:
--
import os
import time
os.system("""
stop ui
stop powerd
cd /sys/devices/system/cpu/cpufreq
for policy in policy*; do
cat ${policy}/cpuinfo_max_freq > ${policy}/scaling_min_freq
done
""")
all_times = []
for i in range(1000):
start = time.time()
os.system("flashrom -p host -r /tmp/foo.bin")
end = time.time()
all_times.append(end - start)
print("Iteration %d, min=%.2f, max=%.2f, avg=%.2f" % (
i, min(all_times), max(all_times), sum(all_times) / len(all_times)))
--
The good news is that after applying your patches the loop runs _much_ faster.
The bad news is that it runs much faster because it very quickly fails
and errors out. flashrom just keeps reporting:
Opened /dev/mtd0 successfully
Found Programmer flash chip "Opaque flash chip" (8192 kB,
Programmer-specific) on host.
Reading flash... Cannot read 0x001000 bytes at 0x000000: Connection timed out
read_flash: failed to read (00000000..0x7fffff).
Read operation failed!
FAILED.
FAILED
I went back and tried v1, v2, and v3 and all three versions fail.