Re: Delegating printk work to UART interrupt

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello Alexander,

On Wed, Jul 22, 2015 at 11:08 AM, Alexander <alexhoppus111@xxxxxxxxx> wrote:
Hi Arun KS,
Actually, i already saw this one and something similar were tested. I just trying
to figure out the reasons why generic kernel layer (console_unlock) implemented
in such way: i.e. why it accounts on immediate busyloop printing? Is it reliable to
defer such printing to UART interrupts?

Lets try to find out why it is done the way it is. My guess is "it makes printk simple and robust". Because if interrupts are blocked, console should not fail giving the critical information.

To change this behavior, we have to change the complete logic in the prink code to adjust with that. Because as of now printk code expects serial drivers returns only after finishing the job.

Thanks,
Arun 

Thank you.

On Mon, 20 Jul 2015 09:34:16 +0530
Arun KS <getarunks@xxxxxxxxx> wrote:

> Hello Alexander,
>
> On Sat, Jul 18, 2015 at 11:23 AM, Alexander <alexhoppus111@xxxxxxxxx> wrote:
>
> >
> > Hi!
> > When i checked how kernel printing works, i mentioned that it takes
> > messages
> > from log_buffer in console_unlock and gives it to call_console_drivers ->
> > ...
> > -> some uart bsp function. Basically, as i see this BSP realization tries
> > to flush all message chars in busyloop ... so it waits until FIFO_NOT_FULL
> > bit will
> > be dropped by UART and it will be able to push the next byte.
> > Basically, as i see userspace printing do something different. It puts
> > N_FIFO_BYTES
> > and exits, next, when FIFO will be freed - interrupt will be generated, and
> > other characters will be put into UART FIFO.
> > Can we do something similar for kernel printing? i.e. do not busyloop
> > sending char
> > after char, but put N_FIFO chars and flush  other in interrupt. When panic
> > will occur
> > we can do busyloop printing again. Is it reliable? Suppose we have several
> > cores.
> > Thank you.
> >
> What about trying this patch,
> https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/kernel/printk/printk.c?id=5874af2003b1aaaa053128d655710140e3187226
>
> Its not changing console printing through UART to interrupt mode. But
> minimizes the time interrupts being disabled on printk().
>
> Thanks,
> Arun
>
>
>
> >
> > --
> > Alexander <alexhoppus111@xxxxxxxxx>
> >
> > _______________________________________________
> > Kernelnewbies mailing list
> > Kernelnewbies@xxxxxxxxxxxxxxxxx
> > http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
> >


--
Alexander <alexhoppus111@xxxxxxxxx>

_______________________________________________
Kernelnewbies mailing list
Kernelnewbies@xxxxxxxxxxxxxxxxx
http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies

[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]
  Powered by Linux