From: Johan Hovold <johan@kernel.org>
To: Doug Anderson <dianders@chromium.org>
Cc: Johan Hovold <johan+linaro@kernel.org>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
Jiri Slaby <jirislaby@kernel.org>,
Konrad Dybcio <konrad.dybcio@linaro.org>,
Bjorn Andersson <andersson@kernel.org>,
linux-arm-msm@vger.kernel.org, linux-serial@vger.kernel.org,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH 1/3] serial: qcom-geni: fix hard lockup on buffer flush
Date: Tue, 25 Jun 2024 16:53:54 +0200 [thread overview]
Message-ID: <ZnraAlR9QeYhd628@hovoldconsulting.com> (raw)
In-Reply-To: <CAD=FV=UwyzA614tDoq7BntW1DWmic=DOszr+iRJVafVEYrXhpw@mail.gmail.com>
On Mon, Jun 24, 2024 at 01:45:17PM -0700, Doug Anderson wrote:
> Also: if we're looking at quick/easy to land and just fix the hard
> lockup, I'd vote for this (I can send a real patch, though I'm about
> to go on vacation):
>
> --
>
> @@ -904,8 +904,8 @@ static void qcom_geni_serial_handle_tx_fifo(struct
> uart_port *uport,
> goto out_write_wakeup;
>
> if (!port->tx_remaining) {
> - qcom_geni_serial_setup_tx(uport, pending);
> - port->tx_remaining = pending;
> + port->tx_remaining = min(avail, pending);
> + qcom_geni_serial_setup_tx(uport, port->tx_remaining);
>
> irq_en = readl(uport->membase + SE_GENI_M_IRQ_EN);
> if (!(irq_en & M_TX_FIFO_WATERMARK_EN))
>
> --
>
> That will fix the hard lockup, is short and sweet, and also doesn't
> end up outputting NUL bytes.
Yeah, this might be a good stop gap even if performance suffers.
> I measured time with that. I've been testing with a file I created
> called "alphabet.txt" that just contains the letters A-Z repeated 3
> times followed by a "\n", over and over again. I think gmail will kill
> me with word wrapping, but basically:
> head -200 /var/alphabet.txt | wc
> 200 200 15800
>
> Before my patch I ran `time head -200 /var/alphabet.txt` and I got:
>
> real 0m1.386s
>
> After my patch I ran the same thing and got:
>
> real 0m1.409s
>
> So it's slower, but that's not 25% slower. I get 1.7% slower:
>
> In [6]: (1.409 - 1.386) / 1.386 * 100
> Out[6]: 1.659451659451669
>
> IMO that seems like a fine slowdown in order to avoid printing NUL bytes.
With my 500K dmesg file test I see a similar performance drop as with
your full series even if seems to behave slightly better (e.g. 20% drop
instead of 24%).
Johan
next prev parent reply other threads:[~2024-06-25 14:53 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-06-24 13:31 [PATCH 0/3] serial: qcom-geni: fix lockups Johan Hovold
2024-06-24 13:31 ` [PATCH 1/3] serial: qcom-geni: fix hard lockup on buffer flush Johan Hovold
2024-06-24 17:39 ` Doug Anderson
2024-06-24 20:45 ` Doug Anderson
2024-06-25 14:53 ` Johan Hovold [this message]
2024-06-25 16:27 ` Doug Anderson
2024-06-25 14:40 ` Johan Hovold
2024-07-04 9:59 ` Johan Hovold
2024-06-24 13:31 ` [PATCH 2/3] serial: qcom-geni: fix soft lockup on sw flow control and suspend Johan Hovold
2024-06-24 21:23 ` Doug Anderson
2024-06-24 21:58 ` Doug Anderson
2024-06-26 7:54 ` Johan Hovold
2024-07-04 10:08 ` Johan Hovold
2024-06-26 7:42 ` Johan Hovold
2024-06-24 13:31 ` [PATCH 3/3] serial: qcom-geni: fix garbage output after buffer flush Johan Hovold
2024-06-24 22:19 ` Doug Anderson
2024-06-26 8:01 ` Johan Hovold
2024-07-03 14:09 ` [PATCH 0/3] serial: qcom-geni: fix lockups Greg Kroah-Hartman
2024-07-03 14:13 ` Johan Hovold
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=ZnraAlR9QeYhd628@hovoldconsulting.com \
--to=johan@kernel.org \
--cc=andersson@kernel.org \
--cc=dianders@chromium.org \
--cc=gregkh@linuxfoundation.org \
--cc=jirislaby@kernel.org \
--cc=johan+linaro@kernel.org \
--cc=konrad.dybcio@linaro.org \
--cc=linux-arm-msm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-serial@vger.kernel.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.