Re: real time hang w/ latency tracing

Daniel Walker
2007-04-04T15:37:42Z

On Wed, 2007-04-04 at 10:51 +0200, Ingo Molnar wrote:
> * Daniel Walker <dwalker@mvista.com> wrote:
>
> > Index: linux-2.6.20/include/linux/serial_core.h
> > ===================================================================
> > --- linux-2.6.20.orig/include/linux/serial_core.h
> > +++ linux-2.6.20/include/linux/serial_core.h
> > @@ -213,7 +213,11 @@ struct uart_icount {
> > typedef unsigned int __bitwise__ upf_t;
> >
> > struct uart_port {
> > +#ifdef CONFIG_LATENCY_TIMING
> > + raw_spinlock_t lock; /* port lock */
> > +#else
> > spinlock_t lock; /* port lock */
> > +#endif
>
> ugh - this will only cause other problems if anyone else is trying to
> use the serial code. This needs a cleaner fix - such as not doing that
> printk from atomic context.

I assumed this fix wasn't totally right .. Interrupts could be enabled
just before printing , after any critical stuff has happened then
disabled again after printing .. Or are you thinking of something more
complex?

Daniel