Re: [PATCH] Re: sparse breakage triggered by rcu_read_lock() lockdep annotations

Previous thread: Virtual Netdevice by rajashok on Tuesday, October 16, 2007 - 6:37 am. (2 messages)

Next thread: Power button policy and mechanism by Kristoffer Ericson on Tuesday, October 16, 2007 - 4:40 pm. (5 messages)
To: <linux-sparse@...>, <linux-kernel@...>
Date: Tuesday, October 16, 2007 - 6:55 am

FWIW, commit 851a67b825540a8e00c0be3ee25e4627ba8b133b
aka "lockdep: annotate rcu_read_{,un}lock{,_bh}"
causes sparse to trigger internal assertion in quite a few places over
allyesconfig run.

sparse: flow.c:805: rewrite_parent_branch: Assertion `changed' failed.

Trimmed down testcase:

void f(unsigned long ip);
static void g(void)
{
if (1) {
f(({ __label__ x; x: (unsigned long)&&x; }));
}
f(({ __label__ x; x: (unsigned long)&&x; }));
}

#0 0x4001c410 in __kernel_vsyscall ()
(gdb) bt
#0 0x4001c410 in __kernel_vsyscall ()
#1 0x40050701 in raise () from /lib/libc.so.6
#2 0x40051e38 in abort () from /lib/libc.so.6
#3 0x40049fcc in __assert_fail () from /lib/libc.so.6
#4 0x08064947 in pack_basic_blocks (ep=0x411a1c6c) at flow.c:812
#5 0x0805ffbf in linearize_symbol (sym=0x4103ec8c) at linearize.c:2154
#6 0x080492a3 in main (argc=Cannot access memory at address 0x274d) at sparse.c:266

-

To: Alexey Dobriyan <adobriyan@...>
Cc: <linux-sparse@...>, <linux-kernel@...>
Date: Friday, October 19, 2007 - 3:44 pm

Err,

Sparse does not support the local label syntax yet. It just treats the
second label "x:" as the same as the first one. Then the linearize
code gets serious confused when it saw one label get define in two
places.

The fix seems not trivial from the first look.

Chris

-

To: Alexey Dobriyan <adobriyan@...>, Josh Triplett <josh@...>
Cc: <linux-sparse@...>, <linux-kernel@...>
Date: Friday, October 19, 2007 - 5:08 pm

[Empty message]
To: Christopher Li <sparse@...>
Cc: Alexey Dobriyan <adobriyan@...>, <linux-sparse@...>, <linux-kernel@...>
Date: Saturday, October 20, 2007 - 11:34 pm

Nice work Chris! Patch applied and pushed out.

I may roll an 0.4.1 release in the near future to fix kernel
builds with Sparse.

- Josh Triplett

To: Alexey Dobriyan <adobriyan@...>
Cc: <linux-sparse@...>, <linux-kernel@...>
Date: Thursday, October 18, 2007 - 1:41 pm

at sparse.c:266

Thanks for the detailed report. Looking into it now.

- Josh Triplett

Previous thread: Virtual Netdevice by rajashok on Tuesday, October 16, 2007 - 6:37 am. (2 messages)

Next thread: Power button policy and mechanism by Kristoffer Ericson on Tuesday, October 16, 2007 - 4:40 pm. (5 messages)