All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Russell King (Oracle)" <linux@armlinux.org.uk>
To: Sergey Organov <sorganov@gmail.com>
Cc: "Stefan Wahren" <stefan.wahren@i2se.com>,
	"Uwe Kleine-König" <u.kleine-koenig@pengutronix.de>,
	"Fabio Estevam" <festevam@gmail.com>,
	"Ilpo Järvinen" <ilpo.jarvinen@linux.intel.com>,
	"Stefan Wahren" <stefan.wahren@chargebyte.com>,
	linux-serial@vger.kernel.org,
	"Greg Kroah-Hartman" <gregkh@linuxfoundation.org>,
	"Sascha Hauer" <s.hauer@pengutronix.de>,
	"NXP Linux Team" <linux-imx@nxp.com>,
	"Pengutronix Kernel Team" <kernel@pengutronix.de>,
	"Shawn Guo" <shawnguo@kernel.org>,
	"Jiri Slaby" <jirislaby@kernel.org>,
	"Tomasz Moń" <tomasz.mon@camlingroup.com>,
	"Linux ARM" <linux-arm-kernel@lists.infradead.org>
Subject: Re: Regression: serial: imx: overrun errors on debug UART
Date: Mon, 27 Mar 2023 16:30:37 +0100	[thread overview]
Message-ID: <ZCG2nUUSU0NdP5cp@shell.armlinux.org.uk> (raw)
In-Reply-To: <87mt3ynsa7.fsf@osv.gnss.ru>

On Mon, Mar 27, 2023 at 06:11:12PM +0300, Sergey Organov wrote:
> Stefan Wahren <stefan.wahren@i2se.com> writes:
> 
> > Hi,
> >
> > Am 25.03.23 um 16:11 schrieb Uwe Kleine-König:
> 
> [...]
> 
> > today i had time to do some testing. At first i tested with different RXTL_DEFAULT values.
> >
> > 1 No overrun
> > 2 No overrun
> > 4 No overrun
> > 8 Overruns
> >
> > After that i look at the # echo 0 > /proc/sys/kernel/printk approach,
> > but this didn't change anything. The kernel is usually silent about
> > log message after boot and the console works still with echo.
> > Enforcing some driver to call printk periodically would make the
> > console unusuable.
> 
> As you figured that printk() is not the cause, it must be something else
> that causes overruns, so there is no need to check printk case further.
> 
> >
> > Finally i tried to disabled the spin_lock in imx_uart_console_write:
> >
> > diff --git a/drivers/tty/serial/imx.c b/drivers/tty/serial/imx.c
> > index f07c4f9ff13c..c342559ff1a2 100644
> > --- a/drivers/tty/serial/imx.c
> > +++ b/drivers/tty/serial/imx.c
> > @@ -2007,14 +2007,12 @@ imx_uart_console_write(struct console *co, const char *s, unsigned int count)
> >  	struct imx_port_ucrs old_ucr;
> >  	unsigned long flags;
> >  	unsigned int ucr1;
> > -	int locked = 1;
> > +	int locked = 0;
> >
> >  	if (sport->port.sysrq)
> >  		locked = 0;
> >  	else if (oops_in_progress)
> >  		locked = spin_trylock_irqsave(&sport->port.lock, flags);
> > -	else
> > -		spin_lock_irqsave(&sport->port.lock, flags);
> >
> >  	/*
> >  	 *	First, save UCR1/2/3 and then disable interrupts
> >
> > But the overruns still occured. Is this because the serial core
> > already helds a lock?
> 
> This probably isn't even called when there is no printk() output, as
> user-space writes to /dev/console are rather performed through regular
> generic code, AFAIK.

Correct on both points.

-- 
RMK's Patch system: https://www.armlinux.org.uk/developer/patches/
FTTP is here! 40Mbps down 10Mbps up. Decent connectivity at last!

WARNING: multiple messages have this Message-ID (diff)
From: "Russell King (Oracle)" <linux@armlinux.org.uk>
To: Sergey Organov <sorganov@gmail.com>
Cc: "Stefan Wahren" <stefan.wahren@i2se.com>,
	"Uwe Kleine-König" <u.kleine-koenig@pengutronix.de>,
	"Fabio Estevam" <festevam@gmail.com>,
	"Ilpo Järvinen" <ilpo.jarvinen@linux.intel.com>,
	"Stefan Wahren" <stefan.wahren@chargebyte.com>,
	linux-serial@vger.kernel.org,
	"Greg Kroah-Hartman" <gregkh@linuxfoundation.org>,
	"Sascha Hauer" <s.hauer@pengutronix.de>,
	"NXP Linux Team" <linux-imx@nxp.com>,
	"Pengutronix Kernel Team" <kernel@pengutronix.de>,
	"Shawn Guo" <shawnguo@kernel.org>,
	"Jiri Slaby" <jirislaby@kernel.org>,
	"Tomasz Moń" <tomasz.mon@camlingroup.com>,
	"Linux ARM" <linux-arm-kernel@lists.infradead.org>
Subject: Re: Regression: serial: imx: overrun errors on debug UART
Date: Mon, 27 Mar 2023 16:30:37 +0100	[thread overview]
Message-ID: <ZCG2nUUSU0NdP5cp@shell.armlinux.org.uk> (raw)
In-Reply-To: <87mt3ynsa7.fsf@osv.gnss.ru>

On Mon, Mar 27, 2023 at 06:11:12PM +0300, Sergey Organov wrote:
> Stefan Wahren <stefan.wahren@i2se.com> writes:
> 
> > Hi,
> >
> > Am 25.03.23 um 16:11 schrieb Uwe Kleine-König:
> 
> [...]
> 
> > today i had time to do some testing. At first i tested with different RXTL_DEFAULT values.
> >
> > 1 No overrun
> > 2 No overrun
> > 4 No overrun
> > 8 Overruns
> >
> > After that i look at the # echo 0 > /proc/sys/kernel/printk approach,
> > but this didn't change anything. The kernel is usually silent about
> > log message after boot and the console works still with echo.
> > Enforcing some driver to call printk periodically would make the
> > console unusuable.
> 
> As you figured that printk() is not the cause, it must be something else
> that causes overruns, so there is no need to check printk case further.
> 
> >
> > Finally i tried to disabled the spin_lock in imx_uart_console_write:
> >
> > diff --git a/drivers/tty/serial/imx.c b/drivers/tty/serial/imx.c
> > index f07c4f9ff13c..c342559ff1a2 100644
> > --- a/drivers/tty/serial/imx.c
> > +++ b/drivers/tty/serial/imx.c
> > @@ -2007,14 +2007,12 @@ imx_uart_console_write(struct console *co, const char *s, unsigned int count)
> >  	struct imx_port_ucrs old_ucr;
> >  	unsigned long flags;
> >  	unsigned int ucr1;
> > -	int locked = 1;
> > +	int locked = 0;
> >
> >  	if (sport->port.sysrq)
> >  		locked = 0;
> >  	else if (oops_in_progress)
> >  		locked = spin_trylock_irqsave(&sport->port.lock, flags);
> > -	else
> > -		spin_lock_irqsave(&sport->port.lock, flags);
> >
> >  	/*
> >  	 *	First, save UCR1/2/3 and then disable interrupts
> >
> > But the overruns still occured. Is this because the serial core
> > already helds a lock?
> 
> This probably isn't even called when there is no printk() output, as
> user-space writes to /dev/console are rather performed through regular
> generic code, AFAIK.

Correct on both points.

-- 
RMK's Patch system: https://www.armlinux.org.uk/developer/patches/
FTTP is here! 40Mbps down 10Mbps up. Decent connectivity at last!

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

  reply	other threads:[~2023-03-27 15:31 UTC|newest]

Thread overview: 90+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-03-24  8:57 Regression: serial: imx: overrun errors on debug UART Stefan Wahren
2023-03-24  8:57 ` Stefan Wahren
2023-03-24 10:12 ` Linux regression tracking #adding (Thorsten Leemhuis)
2023-03-24 10:12   ` Linux regression tracking #adding (Thorsten Leemhuis)
2023-03-24 11:47 ` Ilpo Järvinen
2023-03-24 11:47   ` Ilpo Järvinen
2023-03-24 12:26   ` Francesco Dolcini
2023-03-24 12:26     ` Francesco Dolcini
2023-03-24 12:35     ` Ilpo Järvinen
2023-03-24 12:35       ` Ilpo Järvinen
2023-03-24 12:49       ` Stefan Wahren
2023-03-24 12:49         ` Stefan Wahren
2023-03-24 13:06         ` Francesco Dolcini
2023-03-24 13:06           ` Francesco Dolcini
2023-03-24 12:57   ` Fabio Estevam
2023-03-24 12:57     ` Fabio Estevam
2023-03-24 13:37     ` Uwe Kleine-König
2023-03-24 13:37       ` Uwe Kleine-König
2023-03-24 14:19       ` Stefan Wahren
2023-03-24 14:19         ` Stefan Wahren
2023-03-24 14:39         ` Uwe Kleine-König
2023-03-24 14:39           ` Uwe Kleine-König
2023-03-24 21:57         ` Sergey Organov
2023-03-24 21:57           ` Sergey Organov
2023-03-24 15:00     ` Stefan Wahren
2023-03-24 15:00       ` Stefan Wahren
2023-03-25 11:31       ` Stefan Wahren
2023-03-25 11:31         ` Stefan Wahren
2023-03-25 12:23         ` Fabio Estevam
2023-03-25 12:23           ` Fabio Estevam
2023-03-25 15:11         ` Uwe Kleine-König
2023-03-25 15:11           ` Uwe Kleine-König
2023-03-25 17:05           ` Stefan Wahren
2023-03-25 17:05             ` Stefan Wahren
2023-03-25 19:00             ` Sergey Organov
2023-03-25 19:00               ` Sergey Organov
2023-03-26 18:21               ` Francesco Dolcini
2023-03-26 18:21                 ` Francesco Dolcini
2023-03-27  8:07             ` Tomasz Moń
2023-03-27  8:07               ` Tomasz Moń
2023-03-25 18:30           ` Sergey Organov
2023-03-25 18:30             ` Sergey Organov
2023-03-27 14:42           ` Stefan Wahren
2023-03-27 14:42             ` Stefan Wahren
2023-03-27 15:11             ` Sergey Organov
2023-03-27 15:11               ` Sergey Organov
2023-03-27 15:30               ` Russell King (Oracle) [this message]
2023-03-27 15:30                 ` Russell King (Oracle)
2023-04-16 13:43               ` Stefan Wahren
2023-04-16 13:43                 ` Stefan Wahren
2023-04-17 16:50                 ` Sergey Organov
2023-04-17 16:50                   ` Sergey Organov
2023-04-17 18:40                   ` Stefan Wahren
2023-04-17 18:40                     ` Stefan Wahren
2023-04-18 16:16                   ` Stefan Wahren
2023-04-18 16:16                     ` Stefan Wahren
2023-05-22  9:25                     ` Linux regression tracking (Thorsten Leemhuis)
2023-05-22  9:25                       ` Linux regression tracking (Thorsten Leemhuis)
2023-05-23 15:12                       ` Stefan Wahren
2023-05-23 15:12                         ` Stefan Wahren
2023-05-23 19:44                       ` Sergey Organov
2023-05-23 19:44                         ` Sergey Organov
2023-05-24 10:48                         ` Thorsten Leemhuis
2023-05-24 10:48                           ` Thorsten Leemhuis
2023-05-24 12:41                           ` Uwe Kleine-König
2023-05-24 12:41                             ` Uwe Kleine-König
2023-05-24 13:45                           ` Sergey Organov
2023-05-24 13:45                             ` Sergey Organov
2023-05-24 13:07                         ` Stefan Wahren
2023-05-24 13:07                           ` Stefan Wahren
2023-06-20 14:47                           ` Linux regression tracking (Thorsten Leemhuis)
2023-06-20 14:47                             ` Linux regression tracking (Thorsten Leemhuis)
2023-06-20 14:59                             ` Greg Kroah-Hartman
2023-06-20 14:59                               ` Greg Kroah-Hartman
2023-06-20 15:34                               ` Sergey Organov
2023-06-20 15:34                                 ` Sergey Organov
2023-06-20 16:30                               ` Stefan Wahren
2023-06-20 16:30                                 ` Stefan Wahren
2023-06-20 16:40                                 ` Lucas Stach
2023-06-20 16:40                                   ` Lucas Stach
2023-06-20 16:55                                   ` Stefan Wahren
2023-06-20 16:55                                     ` Stefan Wahren
2023-06-20 19:27                               ` Uwe Kleine-König
2023-06-20 19:27                                 ` Uwe Kleine-König
2023-06-21  8:43                                 ` Greg Kroah-Hartman
2023-06-21  8:43                                   ` Greg Kroah-Hartman
2023-06-21  6:23                             ` Stefan Wahren
2023-06-21  6:23                               ` Stefan Wahren
2023-06-21 13:42                               ` Linux regression tracking (Thorsten Leemhuis)
2023-06-21 13:42                                 ` Linux regression tracking (Thorsten Leemhuis)

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=ZCG2nUUSU0NdP5cp@shell.armlinux.org.uk \
    --to=linux@armlinux.org.uk \
    --cc=festevam@gmail.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=ilpo.jarvinen@linux.intel.com \
    --cc=jirislaby@kernel.org \
    --cc=kernel@pengutronix.de \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-imx@nxp.com \
    --cc=linux-serial@vger.kernel.org \
    --cc=s.hauer@pengutronix.de \
    --cc=shawnguo@kernel.org \
    --cc=sorganov@gmail.com \
    --cc=stefan.wahren@chargebyte.com \
    --cc=stefan.wahren@i2se.com \
    --cc=tomasz.mon@camlingroup.com \
    --cc=u.kleine-koenig@pengutronix.de \
    /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.