Re: [PATCH 0/7] x86: Clean up percpu operations

2020-05-18 Thread Nick Desaulniers
On Mon, May 18, 2020 at 12:19 PM Nick Desaulniers
 wrote:
>
> On Sun, May 17, 2020 at 8:29 AM Brian Gerst  wrote:
> >
> > The core percpu operations already have a switch on the width of the
> > data type, which resulted in an extra amount of dead code being
>
> Thanks for the series Brian.  The duplication between knowing the size
> at the call site and the switch is exactly what I picked up on, too.
> This past weekend I started a similar cleanup, but only got through 2
> of the 6 functions you cleaned up.  And via quick glance, your series
> looks much better than mine does.  I'll sit down and review+test these
> after lunch.  I appreciate you taking the time to create this series.

Patch set looks good.  I tested:
* i386_defconfig
* defconfig
* allyesconfig
with ToT Clang and GCC 9.2.1.  Booted the first two in QEMU as a smoke
test as well.

Note that for Clang, I also needed to apply this hunk to
arch/x86/include/asm/uaccess.h
(https://github.com/ClangBuiltLinux/continuous-integration/blob/master/patches/llvm-all/linux-next/x86/x86-support-i386-with-Clang.patch)
which will be the final issue for i386_defconfig+clang.

I think other than the 0day report on patch 4/7, and the use of
__same_type, the series is mostly good to go.  You can add my:
Tested-by: Nick Desaulniers 
to any v2 of the whole series.

I generally find the use of named assembly operands and a few of the
simplifications to be a nice touch, which I pointed out per patch.

Thanks again for shaving this yak.

>
> > generated with the x86 operations having another switch.  This patch set
> > rewrites the x86 ops to remove the switch.  Additional cleanups are to
> > use named assembly operands, and to cast variables to the width used in
> > the assembly to make Clang happy.
> >
> > Brian Gerst (7):
> >   x86/percpu: Introduce size abstraction macros
> >   x86/percpu: Clean up percpu_to_op()
> >   x86/percpu: Clean up percpu_from_op()
> >   x86/percpu: Clean up percpu_add_op()
> >   x86/percpu: Clean up percpu_add_return_op()
> >   x86/percpu: Clean up percpu_xchg_op()
> >   x86/percpu: Clean up percpu_cmpxchg_op()
> >
> >  arch/x86/include/asm/percpu.h | 447 --
> >  1 file changed, 158 insertions(+), 289 deletions(-)
> >
> > --

-- 
Thanks,
~Nick Desaulniers


Re: [PATCH 0/7] x86: Clean up percpu operations

2020-05-18 Thread Nick Desaulniers
On Sun, May 17, 2020 at 8:29 AM Brian Gerst  wrote:
>
> The core percpu operations already have a switch on the width of the
> data type, which resulted in an extra amount of dead code being

Thanks for the series Brian.  The duplication between knowing the size
at the call site and the switch is exactly what I picked up on, too.
This past weekend I started a similar cleanup, but only got through 2
of the 6 functions you cleaned up.  And via quick glance, your series
looks much better than mine does.  I'll sit down and review+test these
after lunch.  I appreciate you taking the time to create this series.

> generated with the x86 operations having another switch.  This patch set
> rewrites the x86 ops to remove the switch.  Additional cleanups are to
> use named assembly operands, and to cast variables to the width used in
> the assembly to make Clang happy.
>
> Brian Gerst (7):
>   x86/percpu: Introduce size abstraction macros
>   x86/percpu: Clean up percpu_to_op()
>   x86/percpu: Clean up percpu_from_op()
>   x86/percpu: Clean up percpu_add_op()
>   x86/percpu: Clean up percpu_add_return_op()
>   x86/percpu: Clean up percpu_xchg_op()
>   x86/percpu: Clean up percpu_cmpxchg_op()
>
>  arch/x86/include/asm/percpu.h | 447 --
>  1 file changed, 158 insertions(+), 289 deletions(-)
>
> --
> 2.25.4
>


-- 
Thanks,
~Nick Desaulniers


[PATCH 0/7] x86: Clean up percpu operations

2020-05-17 Thread Brian Gerst
The core percpu operations already have a switch on the width of the
data type, which resulted in an extra amount of dead code being
generated with the x86 operations having another switch.  This patch set
rewrites the x86 ops to remove the switch.  Additional cleanups are to
use named assembly operands, and to cast variables to the width used in
the assembly to make Clang happy.

Brian Gerst (7):
  x86/percpu: Introduce size abstraction macros
  x86/percpu: Clean up percpu_to_op()
  x86/percpu: Clean up percpu_from_op()
  x86/percpu: Clean up percpu_add_op()
  x86/percpu: Clean up percpu_add_return_op()
  x86/percpu: Clean up percpu_xchg_op()
  x86/percpu: Clean up percpu_cmpxchg_op()

 arch/x86/include/asm/percpu.h | 447 --
 1 file changed, 158 insertions(+), 289 deletions(-)

-- 
2.25.4