From: Nick Desaulniers <ndesaulniers@google.com>
To: Dmitry Vyukov <dvyukov@google.com>
Cc: lukas.bulwahn@gmail.com, Greg Hackmann <ghackmann@google.com>,
Luis Lozano <llozano@google.com>,
Matthias Kaehlcke <mka@google.com>,
Michael Davidson <md@google.com>,
Sami Tolvanen <samitolvanen@google.com>,
Paul Lawrence <paullawrence@google.com>,
Ingo Molnar <mingo@kernel.org>,
linux-mm@kvack.org, kasan-dev <kasan-dev@googlegroups.com>,
llvmlinux@lists.linuxfoundation.org, sil2review@lists.osadl.org,
dwmw2@infradead.org
Subject: Re: clang fails on linux-next since commit 8bf705d13039
Date: Mon, 19 Mar 2018 17:24:57 +0000 [thread overview]
Message-ID: <CAKwvOdkkFdXPzpXuwbHbboUYMn+cD1974aNrrfuUyQCuENqWrQ@mail.gmail.com> (raw)
In-Reply-To: <CACT4Y+aLqY6wUfRMto_CZxPRSyvPKxK8ucvAmAY-aR_gq8fOAg@mail.gmail.com>
From the trace, looking at the source of __raw_cmpxchg(), it immediately
reminds me of this clang bug [0]
where Clang validates inline asm constraints before running dead code
elimination.
[0] https://bugs.llvm.org/show_bug.cgi?id=33587
On Sun, Mar 18, 2018 at 11:43 PM Dmitry Vyukov <dvyukov@google.com> wrote:
> On Sat, Mar 17, 2018 at 2:13 PM, Lukas Bulwahn <lukas.bulwahn@gmail.com>
wrote:
> > Hi Dmitry, hi Ingo,
> >
> > since commit 8bf705d13039 ("locking/atomic/x86: Switch atomic.h to use
atomic-instrumented.h")
> > on linux-next (tested and bisected from tag next-20180316), compiling
the
> > kernel with clang fails with:
> >
> > In file included from arch/x86/entry/vdso/vdso32/vclock_gettime.c:33:
> > In file included from arch/x86/entry/vdso/vdso32/../vclock_gettime.c:15:
> > In file included from ./arch/x86/include/asm/vgtod.h:6:
> > In file included from ./include/linux/clocksource.h:13:
> > In file included from ./include/linux/timex.h:56:
> > In file included from ./include/uapi/linux/timex.h:56:
> > In file included from ./include/linux/time.h:6:
> > In file included from ./include/linux/seqlock.h:36:
> > In file included from ./include/linux/spinlock.h:51:
> > In file included from ./include/linux/preempt.h:81:
> > In file included from ./arch/x86/include/asm/preempt.h:7:
> > In file included from ./include/linux/thread_info.h:38:
> > In file included from ./arch/x86/include/asm/thread_info.h:53:
> > In file included from ./arch/x86/include/asm/cpufeature.h:5:
> > In file included from ./arch/x86/include/asm/processor.h:21:
> > In file included from ./arch/x86/include/asm/msr.h:67:
> > In file included from ./arch/x86/include/asm/atomic.h:279:
> > ./include/asm-generic/atomic-instrumented.h:295:10: error: invalid
output size for constraint '=a'
> > return arch_cmpxchg((u64 *)ptr, (u64)old, (u64)new);
> > ^
> > ./arch/x86/include/asm/cmpxchg.h:149:2: note: expanded from macro
'arch_cmpxchg'
> > __cmpxchg(ptr, old, new, sizeof(*(ptr)))
> > ^
> > ./arch/x86/include/asm/cmpxchg.h:134:2: note: expanded from macro
'__cmpxchg'
> > __raw_cmpxchg((ptr), (old), (new), (size), LOCK_PREFIX)
> > ^
> > ./arch/x86/include/asm/cmpxchg.h:95:17: note: expanded from macro
'__raw_cmpxchg'
> > : "=a" (__ret), "+m" (*__ptr)
\
> > ^
> >
> > (... and some more similar and closely related errors)
> Thanks for reporting, Lukas.
> +more people who are more aware of the current state of clang for kernel.
> Are there are known issues in '=a' constraint handling between gcc and
> clang? Is there a recommended way to resolve them?
> Also, Lukas what's your version of clang? Potentially there are some
> fixes for kernel in the very latest versions of clang.
--
Thanks,
~Nick Desaulniers
next prev parent reply other threads:[~2018-03-19 17:25 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-03-17 11:13 Lukas Bulwahn
2018-03-19 6:43 ` Dmitry Vyukov
2018-03-19 7:15 ` Lukas Bulwahn
2018-03-19 17:24 ` Nick Desaulniers [this message]
2018-03-19 17:29 ` Matthias Kaehlcke
2018-03-19 17:39 ` Dmitry Vyukov
2018-03-19 17:54 ` Matthias Kaehlcke
2018-03-19 18:15 ` Dmitry Vyukov
2018-03-21 17:07 ` Nick Desaulniers
[not found] ` <99fbbbe3-df05-446b-9ce0-55787ea038f3@googlegroups.com>
2018-05-06 10:44 ` Dmitry Vyukov
2018-05-06 10:48 ` Sedat Dilek
2018-05-07 7:34 ` Dmitry Vyukov
2018-05-28 16:05 ` [llvmlinux] " Sedat Dilek
2018-05-29 6:49 ` Jan Beulich
2018-06-01 13:14 ` Sedat Dilek
2018-07-29 18:12 ` Sedat Dilek
2018-07-30 8:21 ` Mark Rutland
2018-07-30 9:29 ` Sedat Dilek
2018-06-09 15:17 ` Sedat Dilek
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=CAKwvOdkkFdXPzpXuwbHbboUYMn+cD1974aNrrfuUyQCuENqWrQ@mail.gmail.com \
--to=ndesaulniers@google.com \
--cc=dvyukov@google.com \
--cc=dwmw2@infradead.org \
--cc=ghackmann@google.com \
--cc=kasan-dev@googlegroups.com \
--cc=linux-mm@kvack.org \
--cc=llozano@google.com \
--cc=llvmlinux@lists.linuxfoundation.org \
--cc=lukas.bulwahn@gmail.com \
--cc=md@google.com \
--cc=mingo@kernel.org \
--cc=mka@google.com \
--cc=paullawrence@google.com \
--cc=samitolvanen@google.com \
--cc=sil2review@lists.osadl.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox