[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH V3 01/11] atomic: introduce atomic operations
From: |
Avi Kivity |
Subject: |
Re: [Qemu-devel] [PATCH V3 01/11] atomic: introduce atomic operations |
Date: |
Tue, 11 Sep 2012 11:04:07 +0300 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:15.0) Gecko/20120828 Thunderbird/15.0 |
On 09/11/2012 10:51 AM, Liu Ping Fan wrote:
> From: Liu Ping Fan <address@hidden>
>
> If out of global lock, we will be challenged by SMP in low level,
> so need atomic ops.
>
> This file is a wrapper of GCC atomic builtin.
>
> Signed-off-by: Liu Ping Fan <address@hidden>
> ---
> include/qemu/atomic.h | 63
> +++++++++++++++++++++++++++++++++++++++++++++++++
> 1 files changed, 63 insertions(+), 0 deletions(-)
> create mode 100644 include/qemu/atomic.h
>
> diff --git a/include/qemu/atomic.h b/include/qemu/atomic.h
> new file mode 100644
> index 0000000..f17145d
> --- /dev/null
> +++ b/include/qemu/atomic.h
> @@ -0,0 +1,63 @@
> +/*
> + * Simple wrapper of gcc Atomic-Builtins
> + *
> + * This work is licensed under the terms of the GNU GPL, version 2 or later.
> + * See the COPYING file in the top-level directory.
> + *
> + */
> +#ifndef __QEMU_ATOMIC_H
> +#define __QEMU_ATOMIC_H
> +
> +typedef struct Atomic {
> + int counter;
> +} Atomic;
Best to mark counter 'volatile'.
> +
> +static inline void atomic_set(Atomic *v, int i)
> +{
> + v->counter = i;
> +}
> +
> +static inline int atomic_read(Atomic *v)
> +{
> + return v->counter;
> +}
>
So these two operations don't get mangled by the optimizer.
--
error compiling committee.c: too many arguments to function
- [Qemu-devel] [PATCH V3 0/10] prepare unplug out of protection of global lock, Liu Ping Fan, 2012/09/11
- [Qemu-devel] [PATCH V3 01/11] atomic: introduce atomic operations, Liu Ping Fan, 2012/09/11
- Re: [Qemu-devel] [PATCH V3 01/11] atomic: introduce atomic operations,
Avi Kivity <=
- Re: [Qemu-devel] [PATCH V3 01/11] atomic: introduce atomic operations, liu ping fan, 2012/09/13
- Re: [Qemu-devel] [PATCH V3 01/11] atomic: introduce atomic operations, Avi Kivity, 2012/09/13
- Re: [Qemu-devel] [PATCH V3 01/11] atomic: introduce atomic operations, Paolo Bonzini, 2012/09/13
- Re: [Qemu-devel] [PATCH V3 01/11] atomic: introduce atomic operations, Avi Kivity, 2012/09/13
- Re: [Qemu-devel] [PATCH V3 01/11] atomic: introduce atomic operations, Paolo Bonzini, 2012/09/13
- Re: [Qemu-devel] [PATCH V3 01/11] atomic: introduce atomic operations, liu ping fan, 2012/09/13
- Re: [Qemu-devel] [PATCH V3 01/11] atomic: introduce atomic operations, Jamie Lokier, 2012/09/19
- Re: [Qemu-devel] [PATCH V3 01/11] atomic: introduce atomic operations, Jamie Lokier, 2012/09/19
- Re: [Qemu-devel] [PATCH V3 01/11] atomic: introduce atomic operations, Peter Maydell, 2012/09/19
- Re: [Qemu-devel] [PATCH V3 01/11] atomic: introduce atomic operations, Jamie Lokier, 2012/09/19