All of lore.kernel.org
 help / color / mirror / Atom feed
From: Nick Desaulniers <ndesaulniers@google.com>
To: Brian Gerst <brgerst@gmail.com>
Cc: LKML <linux-kernel@vger.kernel.org>,
	"maintainer:X86 ARCHITECTURE (32-BIT AND 64-BIT)"
	<x86@kernel.org>, Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@kernel.org>, Borislav Petkov <bp@alien8.de>,
	"H . Peter Anvin" <hpa@zytor.com>,
	Andy Lutomirski <luto@kernel.org>,
	Peter Zijlstra <peterz@infradead.org>
Subject: Re: [PATCH v2 01/10] x86/percpu: Introduce size abstraction macros
Date: Mon, 1 Jun 2020 13:48:45 -0700	[thread overview]
Message-ID: <CAKwvOd=vf9J8PFcNod49Gh=2N-UGJrRo_OdgTfGa2Dh-H74=xw@mail.gmail.com> (raw)
In-Reply-To: <20200530221127.459704-2-brgerst@gmail.com>

On Sat, May 30, 2020 at 3:11 PM Brian Gerst <brgerst@gmail.com> wrote:
>
> In preparation for cleaning up the percpu operations, define macros for
> abstraction based on the width of the operation.
>
> Signed-off-by: Brian Gerst <brgerst@gmail.com>

Reviewed-by: Nick Desaulniers <ndesaulniers@google.com>

> ---
>  arch/x86/include/asm/percpu.h | 30 ++++++++++++++++++++++++++++++
>  1 file changed, 30 insertions(+)
>
> diff --git a/arch/x86/include/asm/percpu.h b/arch/x86/include/asm/percpu.h
> index 2278797c769d..19838e4f7a8f 100644
> --- a/arch/x86/include/asm/percpu.h
> +++ b/arch/x86/include/asm/percpu.h
> @@ -87,6 +87,36 @@
>   * don't give an lvalue though). */
>  extern void __bad_percpu_size(void);
>
> +#define __pcpu_type_1 u8
> +#define __pcpu_type_2 u16
> +#define __pcpu_type_4 u32
> +#define __pcpu_type_8 u64
> +
> +#define __pcpu_cast_1(val) ((u8)(((unsigned long) val) & 0xff))
> +#define __pcpu_cast_2(val) ((u16)(((unsigned long) val) & 0xffff))
> +#define __pcpu_cast_4(val) ((u32)(((unsigned long) val) & 0xffffffff))
> +#define __pcpu_cast_8(val) ((u64)(val))
> +
> +#define __pcpu_op1_1(op, dst) op "b " dst
> +#define __pcpu_op1_2(op, dst) op "w " dst
> +#define __pcpu_op1_4(op, dst) op "l " dst
> +#define __pcpu_op1_8(op, dst) op "q " dst
> +
> +#define __pcpu_op2_1(op, src, dst) op "b " src ", " dst
> +#define __pcpu_op2_2(op, src, dst) op "w " src ", " dst
> +#define __pcpu_op2_4(op, src, dst) op "l " src ", " dst
> +#define __pcpu_op2_8(op, src, dst) op "q " src ", " dst
> +
> +#define __pcpu_reg_1(mod, x) mod "q" (x)
> +#define __pcpu_reg_2(mod, x) mod "r" (x)
> +#define __pcpu_reg_4(mod, x) mod "r" (x)
> +#define __pcpu_reg_8(mod, x) mod "r" (x)
> +
> +#define __pcpu_reg_imm_1(x) "qi" (x)
> +#define __pcpu_reg_imm_2(x) "ri" (x)
> +#define __pcpu_reg_imm_4(x) "ri" (x)
> +#define __pcpu_reg_imm_8(x) "re" (x)
> +
>  #define percpu_to_op(qual, op, var, val)               \
>  do {                                                   \
>         typedef typeof(var) pto_T__;                    \
> --
> 2.25.4
>


-- 
Thanks,
~Nick Desaulniers

  reply	other threads:[~2020-06-01 20:49 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-05-30 22:11 [PATCH v2 00/10] x86: Clean up percpu operations Brian Gerst
2020-05-30 22:11 ` [PATCH v2 01/10] x86/percpu: Introduce size abstraction macros Brian Gerst
2020-06-01 20:48   ` Nick Desaulniers [this message]
2020-05-30 22:11 ` [PATCH v2 02/10] x86/percpu: Clean up percpu_to_op() Brian Gerst
2020-07-09 10:30   ` Peter Zijlstra
2020-07-10  4:38     ` Brian Gerst
2020-07-10  8:53       ` Peter Zijlstra
2020-07-10 16:56         ` Nick Desaulniers
2020-05-30 22:11 ` [PATCH v2 03/10] x86/percpu: Clean up percpu_from_op() Brian Gerst
2020-05-30 22:11 ` [PATCH v2 04/10] x86/percpu: Clean up percpu_add_op() Brian Gerst
2020-06-01 20:18   ` Nick Desaulniers
2020-05-30 22:11 ` [PATCH v2 05/10] x86/percpu: Remove "e" constraint from XADD Brian Gerst
2020-06-01 18:50   ` Nick Desaulniers
2020-05-30 22:11 ` [PATCH v2 06/10] x86/percpu: Clean up percpu_add_return_op() Brian Gerst
2020-06-01 19:47   ` Nick Desaulniers
2020-05-30 22:11 ` [PATCH v2 07/10] x86/percpu: Clean up percpu_xchg_op() Brian Gerst
2020-05-30 22:11 ` [PATCH v2 08/10] x86/percpu: Clean up percpu_cmpxchg_op() Brian Gerst
2020-05-30 22:11 ` [PATCH v2 09/10] x86/percpu: Clean up percpu_stable_op() Brian Gerst
2020-06-01 20:43   ` Nick Desaulniers
2020-06-02 14:19     ` Brian Gerst
2020-07-09 10:25       ` Peter Zijlstra
2020-05-30 22:11 ` [PATCH v2 10/10] x86/percpu: Remove unused PER_CPU() macro Brian Gerst
2020-06-01 20:26   ` Nick Desaulniers
2020-06-01 21:00 ` [PATCH v2 00/10] x86: Clean up percpu operations Nick Desaulniers
2020-07-08 19:36   ` Nick Desaulniers
2020-07-09 20:02     ` Nick Desaulniers
2020-07-13 22:24     ` Nick Desaulniers
2020-07-13 22:40       ` Linus Torvalds
2020-07-13 22:58         ` Nick Desaulniers
2020-07-14  0:31           ` Nick Desaulniers
2020-07-14  1:29             ` Linus Torvalds
2020-07-09 10:30 ` 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='CAKwvOd=vf9J8PFcNod49Gh=2N-UGJrRo_OdgTfGa2Dh-H74=xw@mail.gmail.com' \
    --to=ndesaulniers@google.com \
    --cc=bp@alien8.de \
    --cc=brgerst@gmail.com \
    --cc=hpa@zytor.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=luto@kernel.org \
    --cc=mingo@kernel.org \
    --cc=peterz@infradead.org \
    --cc=tglx@linutronix.de \
    --cc=x86@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.