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.