From: Vijaya Krishna Nivarthi <quic_vnivarth@quicinc.com>
To: Doug Anderson <dianders@chromium.org>
Cc: <agross@kernel.org>, <andersson@kernel.org>,
<konrad.dybcio@linaro.org>, <broonie@kernel.org>,
<robh+dt@kernel.org>, <krzysztof.kozlowski+dt@linaro.org>,
<cros-qcom-dts-watchers@chromium.org>,
<linux-arm-msm@vger.kernel.org>, <linux-spi@vger.kernel.org>,
<devicetree@vger.kernel.org>, <linux-kernel@vger.kernel.org>,
<quic_msavaliy@quicinc.com>, <mka@chromium.org>,
<swboyd@chromium.org>, <quic_vtanuku@quicinc.com>
Subject: Re: [PATCH v3 0/3] spi: Add DMA mode support to spi-qcom-qspi
Date: Fri, 14 Apr 2023 22:31:00 +0530 [thread overview]
Message-ID: <ffd543a8-769d-a159-16c1-6309388d16e6@quicinc.com> (raw)
In-Reply-To: <CAD=FV=W8ML4A9Yp3o1PzO1xRSJ3Z+9g-SdMDwLTMqhmMw0q99g@mail.gmail.com>
On 4/14/2023 10:12 PM, Doug Anderson wrote:
> Hi,
>
> On Fri, Apr 14, 2023 at 8:48 AM Doug Anderson <dianders@chromium.org> wrote:
>> Hi,
>>
>> On Fri, Apr 14, 2023 at 7:06 AM Vijaya Krishna Nivarthi
>> <quic_vnivarth@quicinc.com> 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.
> Ah, I see what's likely the problem. Your patch series only adds the
> "iommus" for sc7280 but I'm testing on sc7180. That means:
>
> 1. You need to add the iommus to _all_ the boards that have qspi. That
> means sc7280, sc7180, and sdm845.
>
> 2. Ideally the code should still be made to work (it should fall back
> to PIO mode) if DMA isn't properly enabled. That would keep old device
> trees working, which we're supposed to do.
Thank you very much for the review, script, test and quick debug.
Will check same and update a v4.
-Vijay/
> -Doug
prev parent reply other threads:[~2023-04-14 17:01 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-04-14 14:05 [PATCH v3 0/3] spi: Add DMA mode support to spi-qcom-qspi Vijaya Krishna Nivarthi
2023-04-14 14:05 ` [PATCH v3 1/3] spi: dt-bindings: qcom,spi-qcom-qspi: Add iommus Vijaya Krishna Nivarthi
2023-04-15 8:53 ` Krzysztof Kozlowski
2023-04-14 14:05 ` [PATCH v3 2/3] arm64: dts: qcom: sc7280: Add stream-id of qspi to iommus Vijaya Krishna Nivarthi
2023-04-14 14:05 ` [PATCH v3 3/3] spi: spi-qcom-qspi: Add DMA mode support Vijaya Krishna Nivarthi
2023-04-14 22:05 ` Doug Anderson
2023-04-17 12:12 ` Mark Brown
2023-04-17 14:07 ` Doug Anderson
2023-04-17 15:57 ` Vijaya Krishna Nivarthi
2023-04-17 16:39 ` Mark Brown
2023-04-20 13:11 ` Vijaya Krishna Nivarthi
2023-04-14 15:48 ` [PATCH v3 0/3] spi: Add DMA mode support to spi-qcom-qspi Doug Anderson
2023-04-14 16:42 ` Doug Anderson
2023-04-14 17:01 ` Vijaya Krishna Nivarthi [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=ffd543a8-769d-a159-16c1-6309388d16e6@quicinc.com \
--to=quic_vnivarth@quicinc.com \
--cc=agross@kernel.org \
--cc=andersson@kernel.org \
--cc=broonie@kernel.org \
--cc=cros-qcom-dts-watchers@chromium.org \
--cc=devicetree@vger.kernel.org \
--cc=dianders@chromium.org \
--cc=konrad.dybcio@linaro.org \
--cc=krzysztof.kozlowski+dt@linaro.org \
--cc=linux-arm-msm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-spi@vger.kernel.org \
--cc=mka@chromium.org \
--cc=quic_msavaliy@quicinc.com \
--cc=quic_vtanuku@quicinc.com \
--cc=robh+dt@kernel.org \
--cc=swboyd@chromium.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).