Re: [PATCH 2/2] lockdep: choose to continue lock debugging despite taint

Frederic Weisbecker
2009-04-11T01:38:16Z

On Sat, Apr 11, 2009 at 03:15:06AM +0200, Frederic Weisbecker wrote:
> On Fri, Apr 10, 2009 at 03:45:20PM +0200, Ingo Molnar wrote:
> >
> > * Frederic Weisbecker <fweisbec@gmail.com> wrote:
> >
> > > On Fri, Apr 10, 2009 at 02:15:15PM +0200, Ingo Molnar wrote:
> > > >
> > > > * Frederic Weisbecker <fweisbec@gmail.com> wrote:
> > > >
> > > > > Lockdep is disabled after any kernel taints. This might be
> > > > > convenient to ignore bad locking issues which sources come from
> > > > > outside the kernel tree. Nevertheless, it might be a frustrating
> > > > > experience for the staging developers or anyone who might develop
> > > > > a kernel that happens to be tainted.
> > > >
> > > > Good point. Not having lockdep coverage for drivers/staging/ just
> > > > prolongs their transition - not good.
> > > >
> > > > But instead of this:
> > > >
> > > > > void add_taint(unsigned flag)
> > > > > {
> > > > > +#ifndef CONFIG_LOCKDEP_IGNORE_TAINT
> > > > > /*
> > > > > * Can't trust the integrity of the kernel anymore.
> > > > > * We don't call directly debug_locks_off() because the issue
> > > > > @@ -220,6 +221,7 @@ void add_taint(unsigned flag)
> > > > > */
> > > > > if (xchg(&debug_locks, 0))
> > > > > printk(KERN_WARNING "Disabling lockdep due to kernel taint\n");
> > > > > +#endif
> > > >
> > > > I'd suggest to not do the debug_locks_off() call if TAINT_CRAP. I.e.
> > > > something like:
> > > >
> > > > if (!(flag & TAINT_CRAP) && debug_locks_off())
> > > > printk(...);
> > > >
> > > > will do the trick.
> > > >
> > > > Ingo
> > >
> > >
> > > Ok, but this is not only about staging. It's also about
> > > TAINT_WARN. Just imagine that you report a warning to a
> > > maintainer, and while you are waiting for it to be fixed, you
> > > can't use lockdep for your own needs.
> > >
> > > Hm?
> >
> > We can exclude TAINT_WARN too - i.e. (TAINT_CRAP|TAINT_WARN).
> >
> > Ingo
>
>
> Fine :-)
>
> See the v2 on further mails in this thread.
>
> Side request: do you think you could merge them on kill-the-BKL tree?

Sorry, forget about this side request. I thought merging tip:master
into tip:core/kill-the-BKL would make me suffer a rain of conflicts
but actually I've just tried and I only encountered a very simple
conflict in sched.c so it's very easy to manage it locally. Then
we can keep the history of kill-the-BKL, for now it's good as is.

Frederic.

> Thanks!
>