[llvmlinux] percpu | bitmap issue? (Cannot boot on bare metal due to a kernel NULL pointer dereference)

Sedat Dilek sedat.dilek at gmail.com
Mon Sep 14 07:35:04 UTC 2015

On Mon, Sep 14, 2015 at 9:12 AM, Peter Zijlstra <peterz at infradead.org> wrote:
> On Sun, Sep 13, 2015 at 04:33:39AM +0200, Sedat Dilek wrote:
>> > It looks like an inline-optimization bug in CLANG when the compiler's
>> > optimization-level is higher than -O2.
>> > [1] http://lists.linuxfoundation.org/pipermail/llvmlinux/2015-September/001355.html
>> After some discussion on #llvm it turned out to be a known issue in LLVMLinux!
>> Unfortunately, an existing patch [1] got archived which is still
>> required to build x86_64 correctly.
>> [1] http://git.linuxfoundation.org/?p=llvmlinux.git;a=blob_plain;f=arch/x86_64/patches/ARCHIVE/0029-Fix-ARCH_HWEIGHT-for-compilation-with-clang.patch;hb=HEAD
> As long as LLVM cannot do things like that and requires full function
> calls I cannot see it being a sensible compiler to use from a
> performance POV.
> There's a fairly large difference between an inline POPCNT instruction
> and a full out-of-line function call.
> /me goes back to ignoring LLVM for the time being.

[ CC llvmlinux ML ]

Hi Peter,

Clear words and a clear statement!
( Men want clear statements see [1]. )

The issue was reported as LLVM PR #9457 [1] and the bug-history [2] says...

   Reported: 2011-03-11 07:27 CST by PaX Team

...so it is a known and old issue.

Cannot say if "ignoring" is really helpful or not :-).
Sanjoy Das (a LLVM/Clang developer) joined the vital discussion in the
thread (see [3])...

"[llvmlinux] [PATCH] x86/hweight: LLVMLinux: Fix __arch_hweight{32,
64}() for compilation with clang"

Beyond "fixing" or implementing missing (GCC) features on the LLVM-Clang-side...
People there have some discussion and ideas on a "workaround" or fix
it on the Linux-kernel-side.

Ignoring does not help - ignorance is a hard (hardest?) punishment for men.

I invite you to join the discussion at LLVMLinux...
As I know... "YES, you can." Linux x86/x86_64 (assembler) Kung-Fu.
( I admit I have not these skillz. )

- Sedat -

[1] https://llvm.org/bugs/show_bug.cgi?id=9457
[2] https://llvm.org/bugs/show_activity.cgi?id=9457
[3] [1] http://lists.linuxfoundation.org/pipermail/llvmlinux/2015-September/001369.html

More information about the LLVMLinux mailing list