All of lore.kernel.org
 help / color / mirror / Atom feed
From: Peter Hurley <peter@hurleysoftware.com>
To: Soren Brinkmann <soren.brinkmann@xilinx.com>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Jiri Slaby <jslaby@suse.com>,
	Michal Simek <michal.simek@xilinx.com>,
	linux-serial@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH LINUX v3 00/10] tty: xuartps: Fix lock ups
Date: Sat, 5 Dec 2015 12:49:07 -0500	[thread overview]
Message-ID: <56632393.8090809@hurleysoftware.com> (raw)
In-Reply-To: <1448161172-19717-1-git-send-email-soren.brinkmann@xilinx.com>

On 11/21/2015 09:59 PM, Soren Brinkmann wrote:
> Hi,
> 
> here is v3 of this series. It's largely the same as before, but I
> adjusted 'tty: xuartps: Don't consider circular buffer when enabling
> transmitter' according to Peter's suggestions.

In reviewing this series, I thought the _OFFSET suffix for every register
address to be excessive. I would refactor all that out; IOW,

-	isrstatus = readl(port->membase + CDNS_UART_ISR_OFFSET);
+	isrstatus = readl(port->membase + CDNS_UART_ISR);


> I also spent some time trying to get Peter's test for flow control and
> xchar running. The xchar thing fails and will need some more work, but I
> think in general it should be possible to get it to work.
> The flow control test passes:
> 
> root@Xilinx-ZC1751-DC1:~# ./flow /dev/ttyPS0
> Test flow control on /dev/ttyPS0
> begin test1
> patterns sent: 223  recvd: 208
> read distribution: 1   = 0
>                    2+  = 0
>                    4+  = 0
>                    8+  = 0
>                   16+  = 0
>                   32+  = 643
>                   64+  = 0
>                  128+  = 0
>                  256+  = 0
>                  512+  = 0
> PASSED

This distribution looks like this exactly because the xchar test is
failing. IOW, this driver isn't performing soft flow control (^S,^Q)
like it should.

Regards,
Peter Hurley

> root@Xilinx-ZC1751-DC1:~# ./flow /dev/ttyPS1
> Test flow control on /dev/ttyPS1
> begin test1
> patterns sent: 223  recvd: 208
> read distribution: 1   = 0
>                    2+  = 0
>                    4+  = 0
>                    8+  = 0
>                   16+  = 0
>                   32+  = 643
>                   64+  = 0
>                  128+  = 0
>                  256+  = 0
>                  512+  = 0
> PASSED
> 
> 	Sören
> 
> Sören Brinkmann (10):
>   tty: xuartps: Beautify read-modify writes
>   tty: xuartps: Use spinlock to serialize HW access
>   tty: xuartps: Don't consider circular buffer when enabling transmitter
>   tty: xuartps: Clear interrupt status register in shutdown
>   tty: xuartps: Improve startup function
>   tty: xuartps: Keep lock for whole ISR
>   tty: xuartps: Acquire port lock for shutdown
>   tty: xuartps: Move RX path into helper function
>   tty: xuartps: Only handle RX IRQs when RX is enabled
>   tty: xuartps: Cleanup: Reformat if-else
> 
>  drivers/tty/serial/xilinx_uartps.c | 246 +++++++++++++++++++++----------------
>  1 file changed, 137 insertions(+), 109 deletions(-)
> 

WARNING: multiple messages have this Message-ID (diff)
From: peter@hurleysoftware.com (Peter Hurley)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH LINUX v3 00/10] tty: xuartps: Fix lock ups
Date: Sat, 5 Dec 2015 12:49:07 -0500	[thread overview]
Message-ID: <56632393.8090809@hurleysoftware.com> (raw)
In-Reply-To: <1448161172-19717-1-git-send-email-soren.brinkmann@xilinx.com>

On 11/21/2015 09:59 PM, Soren Brinkmann wrote:
> Hi,
> 
> here is v3 of this series. It's largely the same as before, but I
> adjusted 'tty: xuartps: Don't consider circular buffer when enabling
> transmitter' according to Peter's suggestions.

In reviewing this series, I thought the _OFFSET suffix for every register
address to be excessive. I would refactor all that out; IOW,

-	isrstatus = readl(port->membase + CDNS_UART_ISR_OFFSET);
+	isrstatus = readl(port->membase + CDNS_UART_ISR);


> I also spent some time trying to get Peter's test for flow control and
> xchar running. The xchar thing fails and will need some more work, but I
> think in general it should be possible to get it to work.
> The flow control test passes:
> 
> root at Xilinx-ZC1751-DC1:~# ./flow /dev/ttyPS0
> Test flow control on /dev/ttyPS0
> begin test1
> patterns sent: 223  recvd: 208
> read distribution: 1   = 0
>                    2+  = 0
>                    4+  = 0
>                    8+  = 0
>                   16+  = 0
>                   32+  = 643
>                   64+  = 0
>                  128+  = 0
>                  256+  = 0
>                  512+  = 0
> PASSED

This distribution looks like this exactly because the xchar test is
failing. IOW, this driver isn't performing soft flow control (^S,^Q)
like it should.

Regards,
Peter Hurley

> root at Xilinx-ZC1751-DC1:~# ./flow /dev/ttyPS1
> Test flow control on /dev/ttyPS1
> begin test1
> patterns sent: 223  recvd: 208
> read distribution: 1   = 0
>                    2+  = 0
>                    4+  = 0
>                    8+  = 0
>                   16+  = 0
>                   32+  = 643
>                   64+  = 0
>                  128+  = 0
>                  256+  = 0
>                  512+  = 0
> PASSED
> 
> 	S?ren
> 
> S?ren Brinkmann (10):
>   tty: xuartps: Beautify read-modify writes
>   tty: xuartps: Use spinlock to serialize HW access
>   tty: xuartps: Don't consider circular buffer when enabling transmitter
>   tty: xuartps: Clear interrupt status register in shutdown
>   tty: xuartps: Improve startup function
>   tty: xuartps: Keep lock for whole ISR
>   tty: xuartps: Acquire port lock for shutdown
>   tty: xuartps: Move RX path into helper function
>   tty: xuartps: Only handle RX IRQs when RX is enabled
>   tty: xuartps: Cleanup: Reformat if-else
> 
>  drivers/tty/serial/xilinx_uartps.c | 246 +++++++++++++++++++++----------------
>  1 file changed, 137 insertions(+), 109 deletions(-)
> 

  parent reply	other threads:[~2015-12-05 17:49 UTC|newest]

Thread overview: 69+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-11-22  2:59 [PATCH LINUX v3 00/10] tty: xuartps: Fix lock ups Soren Brinkmann
2015-11-22  2:59 ` Soren Brinkmann
2015-11-22  2:59 ` Soren Brinkmann
2015-11-22  2:59 ` [PATCH LINUX v3 01/10] tty: xuartps: Beautify read-modify writes Soren Brinkmann
2015-11-22  2:59   ` Soren Brinkmann
2015-11-22  2:59   ` Soren Brinkmann
2015-12-05 17:04   ` Peter Hurley
2015-12-05 17:04     ` Peter Hurley
2015-12-05 17:23     ` Moritz Fischer
2015-12-05 17:23       ` Moritz Fischer
2015-11-22  2:59 ` [PATCH LINUX v3 02/10] tty: xuartps: Use spinlock to serialize HW access Soren Brinkmann
2015-11-22  2:59   ` Soren Brinkmann
2015-11-22  2:59   ` Soren Brinkmann
2015-12-05 17:05   ` Peter Hurley
2015-12-05 17:05     ` Peter Hurley
2015-11-22  2:59 ` [PATCH LINUX v3 03/10] tty: xuartps: Don't consider circular buffer when enabling transmitter Soren Brinkmann
2015-11-22  2:59   ` Soren Brinkmann
2015-11-22  2:59   ` Soren Brinkmann
2015-12-05 17:17   ` Peter Hurley
2015-12-05 17:17     ` Peter Hurley
2015-11-22  2:59 ` [PATCH LINUX v3 04/10] tty: xuartps: Clear interrupt status register in shutdown Soren Brinkmann
2015-11-22  2:59   ` Soren Brinkmann
2015-11-22  2:59   ` Soren Brinkmann
2015-12-05 17:19   ` Peter Hurley
2015-12-05 17:19     ` Peter Hurley
2015-12-05 17:25     ` Moritz Fischer
2015-12-05 17:25       ` Moritz Fischer
2015-11-22  2:59 ` [PATCH LINUX v3 05/10] tty: xuartps: Improve startup function Soren Brinkmann
2015-11-22  2:59   ` Soren Brinkmann
2015-11-22  2:59   ` Soren Brinkmann
2015-12-05 17:21   ` Peter Hurley
2015-12-05 17:21     ` Peter Hurley
2015-12-05 21:47     ` Sören Brinkmann
2015-12-05 21:47       ` Sören Brinkmann
2015-12-05 21:47       ` Sören Brinkmann
2015-11-22  2:59 ` [PATCH LINUX v3 06/10] tty: xuartps: Keep lock for whole ISR Soren Brinkmann
2015-11-22  2:59   ` Soren Brinkmann
2015-11-22  2:59   ` Soren Brinkmann
2015-12-05 17:23   ` Peter Hurley
2015-12-05 17:23     ` Peter Hurley
2015-11-22  2:59 ` [PATCH LINUX v3 07/10] tty: xuartps: Acquire port lock for shutdown Soren Brinkmann
2015-11-22  2:59   ` Soren Brinkmann
2015-11-22  2:59   ` Soren Brinkmann
2015-12-05 17:23   ` Peter Hurley
2015-12-05 17:23     ` Peter Hurley
2015-11-22  2:59 ` [PATCH LINUX v3 08/10] tty: xuartps: Move RX path into helper function Soren Brinkmann
2015-11-22  2:59   ` Soren Brinkmann
2015-11-22  2:59   ` Soren Brinkmann
2015-12-05 17:40   ` Peter Hurley
2015-12-05 17:40     ` Peter Hurley
2015-12-05 21:49     ` Sören Brinkmann
2015-12-05 21:49       ` Sören Brinkmann
2015-12-05 21:49       ` Sören Brinkmann
2015-11-22  2:59 ` [PATCH LINUX v3 09/10] tty: xuartps: Only handle RX IRQs when RX is enabled Soren Brinkmann
2015-11-22  2:59   ` Soren Brinkmann
2015-11-22  2:59   ` Soren Brinkmann
2015-12-05 17:43   ` Peter Hurley
2015-12-05 17:43     ` Peter Hurley
2015-12-05 22:19     ` Sören Brinkmann
2015-12-05 22:19       ` Sören Brinkmann
2015-12-05 22:19       ` Sören Brinkmann
2015-11-22  2:59 ` [PATCH LINUX v3 10/10] tty: xuartps: Cleanup: Reformat if-else Soren Brinkmann
2015-11-22  2:59   ` Soren Brinkmann
2015-11-22  2:59   ` Soren Brinkmann
2015-12-05 17:49 ` Peter Hurley [this message]
2015-12-05 17:49   ` [PATCH LINUX v3 00/10] tty: xuartps: Fix lock ups Peter Hurley
2015-12-05 22:02   ` Sören Brinkmann
2015-12-05 22:02     ` Sören Brinkmann
2015-12-05 22:02     ` Sören Brinkmann

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=56632393.8090809@hurleysoftware.com \
    --to=peter@hurleysoftware.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=jslaby@suse.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-serial@vger.kernel.org \
    --cc=michal.simek@xilinx.com \
    --cc=soren.brinkmann@xilinx.com \
    /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.