From: peterz@infradead.org (Peter Zijlstra)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH] sched, time: cmpxchg does not work on 64-bit variable
Date: Tue, 30 Sep 2014 15:37:49 +0200 [thread overview]
Message-ID: <20140930133749.GD4241@worktop.programming.kicks-ass.net> (raw)
In-Reply-To: <542AA33E.2050008@redhat.com>
On Tue, Sep 30, 2014 at 08:34:06AM -0400, Rik van Riel wrote:
> On 09/30/2014 07:56 AM, Arnd Bergmann wrote:
> > A recent change to update the stime/utime members of task_struct
> > using atomic cmpxchg broke configurations on 32-bit machines with
> > CONFIG_VIRT_CPU_ACCOUNTING_GEN set, because that uses 64-bit
> > nanoseconds, leading to a link-time error:
> >
> > kernel/built-in.o: In function `cputime_adjust': :(.text+0x25234):
> > undefined reference to `__bad_cmpxchg'
> >
> > This reverts the change that caused the problem, I suspect the real
> > fix is to conditionally use cmpxchg64 instead, but I have not
> > checked if that will work on all architectures.
>
> I see that kernel/sched/clock.c uses cmpxchg64 in a non
> architecture, non 64 bit specific piece of code, and
> nobody complained about that file not building, so I have
> to assume cmpxchg64 works :)
That code is only ever used on x86 and ia64, most other archs have
managed to not mess up their clocks quite as bad.
WARNING: multiple messages have this Message-ID (diff)
From: Peter Zijlstra <peterz@infradead.org>
To: Rik van Riel <riel@redhat.com>
Cc: Arnd Bergmann <arnd@arndb.de>,
Linus Torvalds <torvalds@linux-foundation.org>,
umgwanakikbuti@gmail.com, fweisbec@gmail.com,
akpm@linux-foundation.org, srao@redhat.com, lwoodman@redhat.com,
atheurer@redhat.com, oleg@redhat.com,
Ingo Molnar <mingo@kernel.org>,
linux-kernel@vger.kernel.org,
linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH] sched, time: cmpxchg does not work on 64-bit variable
Date: Tue, 30 Sep 2014 15:37:49 +0200 [thread overview]
Message-ID: <20140930133749.GD4241@worktop.programming.kicks-ass.net> (raw)
In-Reply-To: <542AA33E.2050008@redhat.com>
On Tue, Sep 30, 2014 at 08:34:06AM -0400, Rik van Riel wrote:
> On 09/30/2014 07:56 AM, Arnd Bergmann wrote:
> > A recent change to update the stime/utime members of task_struct
> > using atomic cmpxchg broke configurations on 32-bit machines with
> > CONFIG_VIRT_CPU_ACCOUNTING_GEN set, because that uses 64-bit
> > nanoseconds, leading to a link-time error:
> >
> > kernel/built-in.o: In function `cputime_adjust': :(.text+0x25234):
> > undefined reference to `__bad_cmpxchg'
> >
> > This reverts the change that caused the problem, I suspect the real
> > fix is to conditionally use cmpxchg64 instead, but I have not
> > checked if that will work on all architectures.
>
> I see that kernel/sched/clock.c uses cmpxchg64 in a non
> architecture, non 64 bit specific piece of code, and
> nobody complained about that file not building, so I have
> to assume cmpxchg64 works :)
That code is only ever used on x86 and ia64, most other archs have
managed to not mess up their clocks quite as bad.
next prev parent reply other threads:[~2014-09-30 13:37 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-09-30 11:56 [PATCH] sched, time: cmpxchg does not work on 64-bit variable Arnd Bergmann
2014-09-30 11:56 ` Arnd Bergmann
2014-09-30 12:34 ` Rik van Riel
2014-09-30 12:34 ` Rik van Riel
2014-09-30 12:43 ` Dietmar Eggemann
2014-09-30 12:43 ` Dietmar Eggemann
2014-09-30 13:26 ` Arnd Bergmann
2014-09-30 13:26 ` Arnd Bergmann
2014-09-30 13:37 ` Peter Zijlstra [this message]
2014-09-30 13:37 ` Peter Zijlstra
2014-09-30 19:59 ` [PATCH v2] sched, time: fix build error with 64 bit cputime_t on 32 bit systems Rik van Riel
2014-09-30 19:59 ` Rik van Riel
2014-09-30 20:07 ` Arnd Bergmann
2014-09-30 20:07 ` Arnd Bergmann
2014-10-03 5:27 ` [tip:sched/core] sched, time: Fix " tip-bot for Rik van Riel
2014-09-30 17:40 ` [PATCH] sched, time: fix " Rik van Riel
2014-09-30 17:40 ` Rik van Riel
2014-09-30 18:49 ` Arnd Bergmann
2014-09-30 18:49 ` Arnd Bergmann
2014-09-30 19:19 ` Rik van Riel
2014-09-30 19:19 ` Rik van Riel
2014-09-30 19:06 ` Frederic Weisbecker
2014-09-30 19:06 ` Frederic Weisbecker
2014-09-30 19:08 ` Peter Zijlstra
2014-09-30 19:08 ` Peter Zijlstra
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=20140930133749.GD4241@worktop.programming.kicks-ass.net \
--to=peterz@infradead.org \
--cc=linux-arm-kernel@lists.infradead.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.