Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1452206 > unrolled thread

Re: [PATCH] sched/core: add taint on "BUG: sleeping function called from invalid context"

Started byRusty Russell <rusty@rustcorp.com.au>
First post2016-07-29 03:30 +0200
Last post2016-07-29 15:10 +0200
Articles 3 — 3 participants

Back to article view | Back to linux.kernel

This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by below is the oldest one visible, not the original post.


Contents

  Re: [PATCH] sched/core: add taint on "BUG: sleeping function called from invalid context" Rusty Russell <rusty@rustcorp.com.au> - 2016-07-29 03:30 +0200
    Re: [PATCH] sched/core: add taint on "BUG: sleeping function called  from invalid context" Vegard Nossum <vegard.nossum@oracle.com> - 2016-07-29 08:40 +0200
    Re: [PATCH] sched/core: add taint on "BUG: sleeping function called  from invalid context" Thomas Gleixner <tglx@linutronix.de> - 2016-07-29 15:10 +0200

#1452206 — Re: [PATCH] sched/core: add taint on "BUG: sleeping function called from invalid context"

FromRusty Russell <rusty@rustcorp.com.au>
Date2016-07-29 03:30 +0200
SubjectRe: [PATCH] sched/core: add taint on "BUG: sleeping function called from invalid context"
Message-ID<s04MG-63R-17@gated-at.bofh.it>
Vegard Nossum <vegard.nossum@oracle.com> writes:
> Seeing this, it occurs to me that we should probably add a taint here:

Taint has traditionally meant "the user did something unsupported, take
the bug report with a grain of salt".  Such as force removing a module.

So this seems wrong...

Cheers,
Rusty.


>
>     BUG: sleeping function called from invalid context at mm/slab.h:388
>     in_atomic(): 0, irqs_disabled(): 0, pid: 32211, name: trinity-c3
>     Preemption disabled at:[<ffffffff811aaa37>] console_unlock+0x2f7/0x930
>
>     CPU: 3 PID: 32211 Comm: trinity-c3 Not tainted 4.7.0-rc7+ #19
>                                        ^^^^^^^^^^^
>     Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS Ubuntu-1.8.2-1ubuntu1 04/01/2014
>      0000000000000000 ffff8800b8a17160 ffffffff81971441 ffff88011a3c4c80
>      ffff88011a3c4c80 ffff8800b8a17198 ffffffff81158067 0000000000000de6
>      ffff88011a3c4c80 ffffffff8390e07c 0000000000000184 0000000000000000
>     Call Trace:
>     [...]
>
>     BUG: sleeping function called from invalid context at arch/x86/mm/fault.c:1309
>     in_atomic(): 0, irqs_disabled(): 0, pid: 32211, name: trinity-c3
>     Preemption disabled at:[<ffffffff8119db33>] down_trylock+0x13/0x80
>
>     CPU: 3 PID: 32211 Comm: trinity-c3 Not tainted 4.7.0-rc7+ #19
>                                        ^^^^^^^^^^^
>     Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS Ubuntu-1.8.2-1ubuntu1 04/01/2014
>      0000000000000000 ffff8800b8a17e08 ffffffff81971441 ffff88011a3c4c80
>      ffff88011a3c4c80 ffff8800b8a17e40 ffffffff81158067 0000000000000000
>      ffff88011a3c4c80 ffffffff83437b20 000000000000051d 0000000000000000
>     Call Trace:
>     [...]
>
> Cc: Peter Zijlstra <peterz@infradead.org>
> Cc: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
> Cc: Thomas Gleixner <tglx@linutronix.de>
> Cc: Ingo Molnar <mingo@kernel.org>
> Cc: Rusty Russel <rusty@rustcorp.com.au>
> Signed-off-by: Vegard Nossum <vegard.nossum@oracle.com>
> ---
>  kernel/sched/core.c | 1 +
>  1 file changed, 1 insertion(+)
>
> diff --git a/kernel/sched/core.c b/kernel/sched/core.c
> index 97ee9ac..7171cf9 100644
> --- a/kernel/sched/core.c
> +++ b/kernel/sched/core.c
> @@ -7573,6 +7573,7 @@ void ___might_sleep(const char *file, int line, int preempt_offset)
>  	}
>  #endif
>  	dump_stack();
> +	add_taint(TAINT_WARN, LOCKDEP_STILL_OK);
>  }
>  EXPORT_SYMBOL(___might_sleep);
>  #endif
> -- 
> 1.9.1

[toc] | [next] | [standalone]


#1452271 — Re: [PATCH] sched/core: add taint on "BUG: sleeping function called from invalid context"

FromVegard Nossum <vegard.nossum@oracle.com>
Date2016-07-29 08:40 +0200
SubjectRe: [PATCH] sched/core: add taint on "BUG: sleeping function called from invalid context"
Message-ID<s09CF-Yc-5@gated-at.bofh.it>
In reply to#1452206
On 07/29/2016 03:22 AM, Rusty Russell wrote:
> Vegard Nossum <vegard.nossum@oracle.com> writes:
>> Seeing this, it occurs to me that we should probably add a taint here:
>
> Taint has traditionally meant "the user did something unsupported, take
> the bug report with a grain of salt".  Such as force removing a module.
>
> So this seems wrong...

There are many types of taints. This is the one you mentioned:

    2 - A module was force loaded by insmod -f.

This is the one I'd like to set:

  512 - A kernel warning has occurred.

(from Documentation/sysctl/kernel.txt).

The flag I want to set is also set on any kind of WARN().

>>      BUG: sleeping function called from invalid context at mm/slab.h:388
>>      in_atomic(): 0, irqs_disabled(): 0, pid: 32211, name: trinity-c3
>>      Preemption disabled at:[<ffffffff811aaa37>] console_unlock+0x2f7/0x930

I am not proposing this patch on a whim: it was actually hiding real
bugs because I only saw an oops that happened later when in fact the
real bug happened where the "sleeping function called from invalid
context" was called.


Vegard

[toc] | [prev] | [next] | [standalone]


#1452402 — Re: [PATCH] sched/core: add taint on "BUG: sleeping function called from invalid context"

FromThomas Gleixner <tglx@linutronix.de>
Date2016-07-29 15:10 +0200
SubjectRe: [PATCH] sched/core: add taint on "BUG: sleeping function called from invalid context"
Message-ID<s0fI5-51U-5@gated-at.bofh.it>
In reply to#1452206
On Fri, 29 Jul 2016, Rusty Russell wrote:
> Vegard Nossum <vegard.nossum@oracle.com> writes:
> > Seeing this, it occurs to me that we should probably add a taint here:
> 
> Taint has traditionally meant "the user did something unsupported, take
> the bug report with a grain of salt".  Such as force removing a module.

We have changed the meaning of taint quite some time ago. It also denotes
e.g. that there was a bug, warning etc. So it's not necessarily 'user did
something wrong'.

It's very helpful to see that there was already a warnon/bug before the
backtrace you get from the reporter.

Thanks,

	tglx

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web