From: "H. Peter Anvin" <hpa@zytor.com>
To: Christoph Lameter <cl@linux.com>
Cc: Tejun Heo <tj@kernel.org>,
akpm@linux-foundation.org, Pekka Enberg <penberg@cs.helsinki.fi>,
linux-kernel@vger.kernel.org,
Eric Dumazet <eric.dumazet@gmail.com>,
Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Subject: Re: [cpuops cmpxchg double V1 2/4] x86: this_cpu_cmpxchg_double() support
Date: Tue, 14 Dec 2010 16:46:20 -0800 [thread overview]
Message-ID: <4D080FDC.7030005@zytor.com> (raw)
In-Reply-To: <20101214174900.659284593@linux.com>
On 12/14/2010 09:48 AM, Christoph Lameter wrote:
> +
> +/*
> + * Inputs:
> + * %rsi : memory location to compare
> + * %rax : low 64 bits of old value
> + * %rdx : high 64 bits of old value
> + * %rbx : low 64 bits of new value
> + * %rcx : high 64 bits of new value
> + * %al : Operation successful
> + */
> +ENTRY(cmpxchg16b_cpuops_emu)
> +CFI_STARTPROC
> +
> +#
> +# Emulate 'cmpxchg16b %gs:(%rsi)' except we return the result in
> +# al not via the ZF. Caller will access al to get result.
> +#
> +cmpxchg16b_cpuops_emu:
> + pushf
> + cli
> +
> + cmpq %gs:(%rsi), %rax
> + jne not_same
> + cmpq %gs:8(%rsi), %rdx
> + jne not_same
> +
> + movq %rbx, %gs:(%rsi)
> + movq %rcx, %gs:8(%rsi)
> +
> + popf
> + mov $1, %al
> + ret
> +
> + not_same:
> + popf
> + xor %al,%al
> + ret
> +
> +CFI_ENDPROC
> +
> +ENDPROC(cmpxchg16b_cpuops)
> +
NAK on this. This is acceptable for cmpxchg8b only because we don't
support SMP on 486s anymore. x86-64 is another matter...
-hpa
next prev parent reply other threads:[~2010-12-15 0:47 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-12-14 17:48 [cpuops cmpxchg double V1 0/4] this_cpu_cmpxchg_double support Christoph Lameter
2010-12-14 17:48 ` [cpuops cmpxchg double V1 1/4] Generic support for this_cpu_cmpxchg_double Christoph Lameter
2010-12-18 14:47 ` Tejun Heo
2010-12-18 14:51 ` Tejun Heo
2010-12-21 22:36 ` Christoph Lameter
2010-12-21 23:24 ` H. Peter Anvin
2010-12-22 9:14 ` Tejun Heo
2010-12-24 0:16 ` Christoph Lameter
2010-12-24 0:22 ` H. Peter Anvin
2010-12-25 4:53 ` Christoph Lameter
2010-12-25 6:11 ` H. Peter Anvin
2010-12-25 16:52 ` Tejun Heo
2010-12-25 23:55 ` Christoph Lameter
2010-12-27 10:52 ` Tejun Heo
2011-01-03 22:43 ` Christoph Lameter
2010-12-14 17:48 ` [cpuops cmpxchg double V1 2/4] x86: this_cpu_cmpxchg_double() support Christoph Lameter
2010-12-15 0:46 ` H. Peter Anvin [this message]
2010-12-15 0:56 ` H. Peter Anvin
2010-12-15 16:12 ` Christoph Lameter
2010-12-15 16:20 ` Christoph Lameter
2010-12-15 17:36 ` H. Peter Anvin
2010-12-15 17:53 ` Christoph Lameter
2010-12-15 16:32 ` H. Peter Anvin
2010-12-15 16:41 ` Christoph Lameter
2010-12-14 17:48 ` [cpuops cmpxchg double V1 3/4] slub: Get rid of slab_free_hook_irq() Christoph Lameter
2010-12-14 17:48 ` [cpuops cmpxchg double V1 4/4] Lockless (and preemptless) fastpaths for slub Christoph Lameter
2010-12-15 16:51 ` Tejun Heo
2010-12-15 16:55 ` Pekka Enberg
2010-12-15 16:57 ` Tejun Heo
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=4D080FDC.7030005@zytor.com \
--to=hpa@zytor.com \
--cc=akpm@linux-foundation.org \
--cc=cl@linux.com \
--cc=eric.dumazet@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mathieu.desnoyers@efficios.com \
--cc=penberg@cs.helsinki.fi \
--cc=tj@kernel.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.