Re: [PATCH] tracing: use raw spinlocks instead of spinlocks

From: Ingo Molnar
Date: Tue Nov 04 2008 - 07:04:23 EST



* Frédéric Weisbecker <fweisbec@xxxxxxxxx> wrote:

> 2008/11/4 Ingo Molnar <mingo@xxxxxxx>:
> > lockdep works via a completely different principle: it instruments all
> > the actual lock acquire/release calls and builds a graph of lock
> > dependencies in the system, as it happens.
> >
> > It also guarantees that all the observed locking rules are followed
> > (i.e. it proves that as long as you dont get any messages from
> > lockdep, all the locking patterns are mathematically safe).
> >
> > So a lockdep message will most of the time occur much easier than a
> > real lockup would occur - as lockdep only needs to observe
> > inconsistent locking patterns to prove that a lockup _could_ occur.
>
>
> Ok, so if there is such an error, I could (hopefully) see it with
> early_printk....
>
>
> > The NMI watchdog just observes the system and complains if it sees
> > hardirqs not progressing (i.e. a hard lockup). It will detect anything
> > that causes a hard lockup. (assuming that the NMI watchdog itself is
> > not locked up)
> >
> > Regarding your lockup ... it's quite hard. Maybe you can get more
> > output out of the system by using:
> >
> > earlyprintk=vga,keep
> >
> > plus disablig regular tty output. (i.e. not passing any 'console=tty'
> > line to the kernel bootup.)
> >
> > this way you wont get any normal printk activities (which might lock
> > up), you should only get the very simple early-printk output.
>
>
>
> Good idea. After reading your mail, I had a look on early_printk and
> it shoudn't cause any tracing recursion after your patch: the
> strings are directly writed to the vga. Great.

just make sure normal printk is totally silent. (otherwise you get
double lines on the console plus no reduction in recursion risk)

i usually add a return; hack to kernel/printk.c:printk(), to make sure
it never executes anything. (and add a notrace to it as well) Maybe we
could even make this dependent on early_printk=...,keep.

Ingo
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/