From: Ralf Baechle <ralf@linux-mips.org>
To: David Daney <ddaney@avtrex.com>
Cc: Fuxin Zhang <fxzhang@ict.ac.cn>, linux-mips@linux-mips.org
Subject: Re: cmpxchg broken in some situation
Date: Mon, 1 Oct 2007 11:24:33 +0100 [thread overview]
Message-ID: <20071001102433.GA20219@linux-mips.org> (raw)
In-Reply-To: <4700708B.8070708@avtrex.com>
On Sun, Sep 30, 2007 at 08:59:07PM -0700, David Daney wrote:
> David Daney wrote:
> >Ralf Baechle wrote:
> >>+ } else if (cpu_has_llsc) { \
> >>+ __asm__ __volatile__( \
> >>+ " .set push \n" \
> >>+ " .set noat \n" \
> >>+ " .set mips3 \n" \
> >>+ "1: " ld " %0, %2 # __cmpxchg_u32 \n" \
> >>+ " bne %0, %z3, 2f \n" \
> >>+ " .set mips0 \n" \
> >>+ " move $1, %z4 \n" \
> >>+ " .set mips3 \n" \
> >>+ " " st " $1, %1 \n" \
> >>+ " beqz $1, 3f \n" \
> >>+ "2: \n" \
> >>+ " .subsection 2 \n" \
> >>+ "3: b 1b \n" \
> >>+ " .previous \n" \
> >>+ " .set pop \n" \
> >>+ : "=&r" (__ret), "=R" (*m) \
> >>+ : "R" (*m), "Jr" (old), "Jr" (new) \
> >>+ : "memory"); \
> >>
> >Is a 'sync' needed after the 'sc'?
> >
> >According to this message:
> >http://www.linux-mips.org/cgi-bin/mesg.cgi?a=linux-mips&i=20070919084515.GM9972%40networkno.de
> >
> >it would seem so.
>
> Drat, I probably posted too soon. That is the smp_llsc_mb(); isn't it.
Yes - and the answer to your original question is a clear and definate
maybe ;-)
In the kernel we can afford to optimize for every piece of silicon on earth.
In userspace we can't make that sort of compile time choices as easily so
it's a better idea to just litter a few SYNCs over the code.
Ralf
next prev parent reply other threads:[~2007-10-01 10:24 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-09-30 10:34 cmpxchg broken in some situation Fuxin Zhang
2007-10-01 2:53 ` Ralf Baechle
2007-10-01 3:56 ` David Daney
2007-10-01 3:59 ` David Daney
2007-10-01 10:24 ` Ralf Baechle [this message]
2007-10-01 15:11 ` Fuxin Zhang
2007-10-01 15:26 ` Ralf Baechle
2007-10-02 9:34 ` Fuxin Zhang
2007-10-02 10:35 ` Ralf Baechle
2007-10-02 14:22 ` Thiemo Seufer
2007-10-02 23:15 ` Ralf Baechle
2007-10-02 22:48 ` Fuxin Zhang
2007-10-02 22:52 ` Ralf Baechle
2007-10-02 23:07 ` Fuxin Zhang
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=20071001102433.GA20219@linux-mips.org \
--to=ralf@linux-mips.org \
--cc=ddaney@avtrex.com \
--cc=fxzhang@ict.ac.cn \
--cc=linux-mips@linux-mips.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.