From: Peter Zijlstra <peterz@infradead.org>
To: Guo Ren <ren_guo@c-sky.com>
Cc: linux-arch@vger.kernel.org, linux-kernel@vger.kernel.org,
tglx@linutronix.de, daniel.lezcano@linaro.org,
jason@lakedaemon.net, arnd@arndb.de,
c-sky_gcc_upstream@c-sky.com, gnu-csky@mentor.com,
thomas.petazzoni@bootlin.com, wbx@uclibc-ng.org,
green.hu@gmail.com
Subject: Re: [PATCH V2 11/19] csky: Atomic operations
Date: Fri, 6 Jul 2018 14:05:32 +0200 [thread overview]
Message-ID: <20180706120532.GX2476@hirez.programming.kicks-ass.net> (raw)
In-Reply-To: <20180706114812.GC27148@guoren>
On Fri, Jul 06, 2018 at 07:48:12PM +0800, Guo Ren wrote:
> On Thu, Jul 05, 2018 at 08:00:08PM +0200, Peter Zijlstra wrote:
> > On Mon, Jul 02, 2018 at 01:30:14AM +0800, Guo Ren wrote:
> > > +#ifdef CONFIG_CPU_HAS_LDSTEX
> > > +ENTRY(csky_cmpxchg)
> > > + USPTOKSP
> > > + mfcr a3, epc
> > > + INCTRAP a3
> > > +
> > > + subi sp, 8
> > > + stw a3, (sp, 0)
> > > + mfcr a3, epsr
> > > + stw a3, (sp, 4)
> > > +
> > > + psrset ee
> > > +1:
> > > + ldex a3, (a2)
> > > + cmpne a0, a3
> > > + bt16 2f
> > > + mov a3, a1
> > > + stex a3, (a2)
> > > + bez a3, 1b
> > > +2:
> > > + sync.is
> > > + mvc a0
> > > + ldw a3, (sp, 0)
> > > + mtcr a3, epc
> > > + ldw a3, (sp, 4)
> > > + mtcr a3, epsr
> > > + addi sp, 8
> > > + KSPTOUSP
> > > + rte
> > > +END(csky_cmpxchg)
> > > +#else
> >
> > Please explain... if the CPU has LDEX/STEX, then _why_ do you need this?
> Our libc use csky_cmpxchg and we want it compatible. Of course, we'll
> also implement the ldex/stex atomic operations in libs in future.
I would strongly suggest not providing this syscall on SMP systems from
the get go. There is no point in starting with legacy problems without
an actual legacy.
next prev parent reply other threads:[~2018-07-06 12:05 UTC|newest]
Thread overview: 172+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-07-01 17:30 [PATCH V2 00/19] C-SKY(csky) Linux Kernel Port Guo Ren
2018-07-01 17:30 ` Guo Ren
2018-07-01 17:30 ` [PATCH V2 01/19] csky: Build infrastructure Guo Ren
2018-07-01 17:30 ` Guo Ren
2018-07-01 21:01 ` Randy Dunlap
2018-07-01 21:01 ` Randy Dunlap
2018-07-02 1:13 ` Guo Ren
2018-07-02 1:13 ` Guo Ren
2018-07-03 3:33 ` Rob Herring
2018-07-03 3:33 ` Rob Herring
2018-07-03 9:14 ` Guo Ren
2018-07-03 9:14 ` Guo Ren
2018-07-03 16:03 ` Arnd Bergmann
2018-07-03 16:03 ` Arnd Bergmann
2018-07-04 11:40 ` Guo Ren
2018-07-04 11:40 ` Guo Ren
2018-07-01 17:30 ` [PATCH V2 02/19] csky: defconfig Guo Ren
2018-07-01 17:30 ` Guo Ren
2018-07-03 3:16 ` Rob Herring
2018-07-03 3:16 ` Rob Herring
2018-07-03 8:31 ` Guo Ren
2018-07-03 8:31 ` Guo Ren
2018-07-01 17:30 ` [PATCH V2 03/19] csky: Kernel booting Guo Ren
2018-07-01 17:30 ` Guo Ren
2018-07-01 17:30 ` [PATCH V2 04/19] csky: Exception handling Guo Ren
2018-07-01 17:30 ` Guo Ren
2018-07-01 17:30 ` [PATCH V2 05/19] csky: System Call Guo Ren
2018-07-01 17:30 ` Guo Ren
2018-07-03 19:53 ` Arnd Bergmann
2018-07-03 19:53 ` Arnd Bergmann
2018-07-04 11:49 ` Guo Ren
2018-07-04 11:49 ` Guo Ren
2018-07-04 21:04 ` Arnd Bergmann
2018-07-04 21:04 ` Arnd Bergmann
2018-07-05 5:38 ` Guo Ren
2018-07-05 5:38 ` Guo Ren
2018-07-01 17:30 ` [PATCH V2 06/19] csky: Cache and TLB routines Guo Ren
2018-07-01 17:30 ` Guo Ren
2018-07-05 17:40 ` Peter Zijlstra
2018-07-05 17:40 ` Peter Zijlstra
2018-07-07 11:51 ` Guo Ren
2018-07-07 11:51 ` Guo Ren
2018-07-01 17:30 ` [PATCH V2 07/19] csky: MMU and page table management Guo Ren
2018-07-01 17:30 ` Guo Ren
2018-07-02 13:29 ` Christoph Hellwig
2018-07-02 13:29 ` Christoph Hellwig
2018-07-03 2:53 ` Guo Ren
2018-07-03 2:53 ` Guo Ren
2018-07-01 17:30 ` [PATCH V2 08/19] csky: Process management and Signal Guo Ren
2018-07-01 17:30 ` Guo Ren
2018-07-01 17:30 ` [PATCH V2 09/19] csky: VDSO and rt_sigreturn Guo Ren
2018-07-01 17:30 ` Guo Ren
2018-07-01 17:30 ` [PATCH V2 10/19] csky: IRQ handling Guo Ren
2018-07-01 17:30 ` Guo Ren
2018-07-01 17:30 ` [PATCH V2 11/19] csky: Atomic operations Guo Ren
2018-07-01 17:30 ` Guo Ren
2018-07-05 17:50 ` Peter Zijlstra
2018-07-05 17:50 ` Peter Zijlstra
2018-07-06 11:01 ` Guo Ren
2018-07-06 11:01 ` Guo Ren
2018-07-06 11:56 ` Peter Zijlstra
2018-07-06 11:56 ` Peter Zijlstra
2018-07-06 12:17 ` Peter Zijlstra
2018-07-06 12:17 ` Peter Zijlstra
2018-07-07 8:08 ` Guo Ren
2018-07-07 8:08 ` Guo Ren
2018-07-07 20:10 ` Andrea Parri
2018-07-07 20:10 ` Andrea Parri
2018-07-08 1:05 ` Guo Ren
2018-07-08 1:05 ` Guo Ren
2018-07-07 7:42 ` Guo Ren
2018-07-07 7:42 ` Guo Ren
2018-07-07 19:54 ` Andrea Parri
2018-07-07 19:54 ` Andrea Parri
2018-07-08 0:39 ` Guo Ren
2018-07-08 0:39 ` Guo Ren
2018-07-05 17:59 ` Peter Zijlstra
2018-07-05 17:59 ` Peter Zijlstra
2018-07-06 11:44 ` Guo Ren
2018-07-06 11:44 ` Guo Ren
2018-07-06 12:03 ` Peter Zijlstra
2018-07-06 12:03 ` Peter Zijlstra
2018-07-06 13:01 ` Peter Zijlstra
2018-07-06 13:01 ` Peter Zijlstra
2018-07-06 14:06 ` Guo Ren
2018-07-06 14:06 ` Guo Ren
2018-07-05 18:00 ` Peter Zijlstra
2018-07-05 18:00 ` Peter Zijlstra
2018-07-06 11:48 ` Guo Ren
2018-07-06 11:48 ` Guo Ren
2018-07-06 12:05 ` Peter Zijlstra [this message]
2018-07-06 12:05 ` Peter Zijlstra
2018-07-06 13:46 ` Guo Ren
2018-07-06 13:46 ` Guo Ren
2018-07-01 17:30 ` [PATCH V2 12/19] csky: ELF and module probe Guo Ren
2018-07-01 17:30 ` Guo Ren
2018-07-01 17:30 ` [PATCH V2 13/19] csky: Library functions Guo Ren
2018-07-01 17:30 ` Guo Ren
2018-07-03 20:04 ` Arnd Bergmann
2018-07-03 20:04 ` Arnd Bergmann
2018-07-04 10:51 ` Guo Ren
2018-07-04 10:51 ` Guo Ren
2018-07-01 17:30 ` [PATCH V2 14/19] csky: User access Guo Ren
2018-07-01 17:30 ` Guo Ren
2018-07-01 17:30 ` [PATCH V2 15/19] csky: Debug and Ptrace GDB Guo Ren
2018-07-01 17:30 ` Guo Ren
2018-07-01 17:30 ` [PATCH V2 16/19] csky: SMP support Guo Ren
2018-07-01 17:30 ` Guo Ren
2018-07-05 18:05 ` Peter Zijlstra
2018-07-05 18:05 ` Peter Zijlstra
2018-07-06 6:07 ` Guo Ren
2018-07-06 6:07 ` Guo Ren
2018-07-06 9:39 ` Peter Zijlstra
2018-07-06 9:39 ` Peter Zijlstra
2018-07-06 13:22 ` Guo Ren
2018-07-06 13:22 ` Guo Ren
2018-07-06 5:24 ` Mark Rutland
2018-07-06 5:24 ` Mark Rutland
2018-07-06 11:32 ` Guo Ren
2018-07-06 11:32 ` Guo Ren
2018-07-06 11:43 ` Mark Rutland
2018-07-06 11:43 ` Mark Rutland
2018-07-06 12:26 ` Guo Ren
2018-07-06 12:26 ` Guo Ren
2018-07-06 16:21 ` Mark Rutland
2018-07-06 16:21 ` Mark Rutland
2018-07-07 6:16 ` Guo Ren
2018-07-07 6:16 ` Guo Ren
2018-07-01 17:30 ` [PATCH V2 17/19] csky: Misc headers Guo Ren
2018-07-01 17:30 ` Guo Ren
2018-07-01 17:30 ` [PATCH V2 18/19] clocksource: add C-SKY clocksource drivers Guo Ren
2018-07-01 17:34 ` Guo Ren
2018-07-03 9:39 ` Thomas Gleixner
2018-07-03 9:39 ` Thomas Gleixner
2018-07-04 10:49 ` Guo Ren
2018-07-04 10:49 ` Guo Ren
2018-07-04 14:35 ` Thomas Gleixner
2018-07-04 14:35 ` Thomas Gleixner
2018-07-05 5:03 ` Guo Ren
2018-07-05 5:03 ` Guo Ren
2018-07-04 17:05 ` Daniel Lezcano
2018-07-04 17:05 ` Daniel Lezcano
2018-07-05 3:30 ` Guo Ren
2018-07-05 3:30 ` Guo Ren
2018-07-05 9:23 ` Daniel Lezcano
2018-07-05 9:23 ` Daniel Lezcano
2018-07-06 5:57 ` Guo Ren
2018-07-06 5:57 ` Guo Ren
2018-07-01 17:30 ` [PATCH V2 19/19] irqchip: add C-SKY irqchip drivers Guo Ren
2018-07-01 17:30 ` Guo Ren
2018-07-03 3:27 ` Rob Herring
2018-07-03 3:27 ` Rob Herring
2018-07-03 7:38 ` Guo Ren
2018-07-03 7:38 ` Guo Ren
2018-07-03 9:28 ` Thomas Gleixner
2018-07-03 9:28 ` Thomas Gleixner
2018-07-04 5:08 ` Guo Ren
2018-07-04 5:08 ` Guo Ren
2018-07-04 6:43 ` Thomas Gleixner
2018-07-04 6:43 ` Thomas Gleixner
2018-07-04 11:58 ` Guo Ren
2018-07-04 11:58 ` Guo Ren
2018-07-11 9:51 ` [PATCH V2 00/19] C-SKY(csky) Linux Kernel Port David Howells
2018-07-11 9:51 ` David Howells
2018-07-12 12:51 ` Guo Ren
2018-07-12 12:51 ` Guo Ren
2018-07-12 16:04 ` Sandra Loosemore
2018-07-12 16:04 ` Sandra Loosemore
2018-07-13 1:30 ` Guo Ren
2018-07-13 1:30 ` Guo Ren
2018-07-13 10:23 ` David Howells
2018-07-13 10:23 ` David Howells
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=20180706120532.GX2476@hirez.programming.kicks-ass.net \
--to=peterz@infradead.org \
--cc=arnd@arndb.de \
--cc=c-sky_gcc_upstream@c-sky.com \
--cc=daniel.lezcano@linaro.org \
--cc=gnu-csky@mentor.com \
--cc=green.hu@gmail.com \
--cc=jason@lakedaemon.net \
--cc=linux-arch@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=ren_guo@c-sky.com \
--cc=tglx@linutronix.de \
--cc=thomas.petazzoni@bootlin.com \
--cc=wbx@uclibc-ng.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