Re: [PATCH v1 0/3] console, serial8250: Disable PM and DMA ops

From: Tony Lindgren
Date: Thu May 17 2018 - 14:33:39 EST


* Andy Shevchenko <andy.shevchenko@xxxxxxxxx> [180517 16:41]:
> On Thu, May 17, 2018 at 4:56 PM, Tony Lindgren <tony@xxxxxxxxxxx> wrote:
> > * Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx> [180516 13:12]:
> >> On Wed, 2018-05-16 at 12:47 +0200, Sebastian Andrzej Siewior wrote:
> >> > But since I am on it. You have to enable runtime-PM for the UART. So
> >> > what is the problem if you simply don't enable it for the UART which
> >> > used as the kernel console?
> >>
> >> How do I know at the ->probe() time that device in question is going to
> >> be kernel console? Maybe I missed simple way of it.
> >
> > Hmm parse the kernel cmdline maybe? :)
> >
> > BTW, kernel already has earlycon doing exactly what you're trying to do.
>
> I'm sorry, I didn't follow. What exactly earlycon does?

It provides a console very early on, see earlycon in
Documentation/admin-guide/kernel-parameters.txt

> The problem is in 8250 driver. The issue with runtime PM used in atomic context.

So how about add some "noidle" kernel command line parameter for console
that calls pm_runtime_forbid() and then you have the UART permanently
on. Hmm I guess you could make also serial8250_rpm_get() do nothing
based on that.

I do agree the serial runtime PM has an issue if it depends on
pm_runtime_irq_safe() being set.

> So, I can, of course just remove callbacks from the console ->write().
> Though it will prevent to use kernel console anyway.

Please et's not start breaking things, we already see a constant
flow of regressions on weekly basis.

Regards,

Tony