Re: Linux 2.6.27.27

From: Linus Torvalds
Date: Tue Jul 21 2009 - 12:13:09 EST




On Tue, 21 Jul 2009, Krzysztof Oledzki wrote:
>
> OK, there are three kernels, exactly as you requested:
>
> http://noc.axelspringer.pl/no-strict-overflow-vs-wrapv/vmlinux-fno-strict-overflow.bz2 (Hangs)
> http://noc.axelspringer.pl/no-strict-overflow-vs-wrapv/vmlinux-fwrapv.bz2 (OK)
> http://noc.axelspringer.pl/no-strict-overflow-vs-wrapv/vmlinux-fnone.bz2 (OK)

Perfect.

And interestingly, the "fno-strict-overflow" kernel is actually much
closer to the "fnone" kernel than to the "fwrapv" one. I have some silly
scripts based on 'objdump -d' plus a lot of stupid sed scripting to remove
the trivial differences due to instruction addresses, and then doing a
'diff -u' between the munged disassembly of the kernels gives me:

[torvalds@nehalem fno-strict-overflow]$ wc -l fnone-to-fno-strict-overflow fwrapv-to-fno-strict-overflow
39309 fnone-to-fno-strict-overflow
91423 fwrapv-to-fno-strict-overflow
130732 total

ie the diff from the kernel with no flags is less than twice the size of
the diff from fwrapv.

Still - it's almost 40kB of diffs of disassembly, so I'm not going to
guarantee that I can make any sense of it and find the compiler problem in
it. But I'll try. And send you test-patches to see if I can pinpoint the
code that causes the problem.

> Kernels are identical and are compiled from the same config, on the same
> server with gcc-4.2.4, binutils-2.19. There is no ccache installed and the
> kernels are not patched with any additonal patches - just vanilla
> linux-2.6.27.27.

Thank you.

> Screenshot from the hanging kernel (-fno-strict-overflow):
> http://noc.axelspringer.pl/no-strict-overflow-vs-wrapv/2.6.27.27-hang.png
>
> Dmesg from a bootable kernel:
> http://noc.axelspringer.pl/no-strict-overflow-vs-wrapv/dmesg

Great. This is all about as perfect as could be asked for. Now it's just a
question of trying to find the right code generation difference...

Linus
--
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/