[PATCH v4 01/16] powerpc/vas: Move VAS API to book3s common platform

Haren Myneni haren at linux.ibm.com
Fri Jun 4 06:23:18 AEST 2021


On Thu, 2021-06-03 at 13:32 +1000, Nicholas Piggin wrote:
> Excerpts from Haren Myneni's message of May 21, 2021 7:28 pm:
> > Using the same /dev/crypto/nx-gzip interface for both powerNV and
> > pseries. So this patch creates platforms/book3s/ and moves VAS API
> > to that directory. The actual functionality is not changed.
> > 
> > Signed-off-by: Haren Myneni <haren at linux.ibm.com>
> > ---
> >  arch/powerpc/include/asm/vas.h                    |  3 +++
> >  arch/powerpc/platforms/Kconfig                    |  1 +
> >  arch/powerpc/platforms/Makefile                   |  1 +
> >  arch/powerpc/platforms/book3s/Kconfig             | 15
> > +++++++++++++++
> >  arch/powerpc/platforms/book3s/Makefile            |  2 ++
> 
> If Michael is happy with the new directory structure then fine by me.
> 
> >  .../platforms/{powernv => book3s}/vas-api.c       |  2 +-
> >  arch/powerpc/platforms/powernv/Kconfig            | 14 ---------
> > -----
> >  arch/powerpc/platforms/powernv/Makefile           |  2 +-
> >  8 files changed, 24 insertions(+), 16 deletions(-)
> >  create mode 100644 arch/powerpc/platforms/book3s/Kconfig
> >  create mode 100644 arch/powerpc/platforms/book3s/Makefile
> >  rename arch/powerpc/platforms/{powernv => book3s}/vas-api.c (99%)
> > 
> > diff --git a/arch/powerpc/include/asm/vas.h
> > b/arch/powerpc/include/asm/vas.h
> > index e33f80b0ea81..3be76e813e2d 100644
> > --- a/arch/powerpc/include/asm/vas.h
> > +++ b/arch/powerpc/include/asm/vas.h
> > @@ -162,6 +162,9 @@ int vas_copy_crb(void *crb, int offset);
> >   */
> >  int vas_paste_crb(struct vas_window *win, int offset, bool re);
> >  
> > +void vas_win_paste_addr(struct vas_window *window, u64 *addr,
> > +			int *len);
> > +
> >  /*
> >   * Register / unregister coprocessor type to VAS API which will be
> > exported
> >   * to user space. Applications can use this API to open / close
> > window
> 
> If you do this, then the prototype should be removed from 
> arch/powerpc/platforms/powernv/vas.h

Thanks for your review comments.

vas_win_paste_addr() should be PowerNV specific, so will remove from
include/asm/vas.h


> 
> > diff --git a/arch/powerpc/platforms/Kconfig
> > b/arch/powerpc/platforms/Kconfig
> > index 7a5e8f4541e3..594544a65b02 100644
> > --- a/arch/powerpc/platforms/Kconfig
> > +++ b/arch/powerpc/platforms/Kconfig
> > @@ -20,6 +20,7 @@ source
> > "arch/powerpc/platforms/embedded6xx/Kconfig"
> >  source "arch/powerpc/platforms/44x/Kconfig"
> >  source "arch/powerpc/platforms/40x/Kconfig"
> >  source "arch/powerpc/platforms/amigaone/Kconfig"
> > +source "arch/powerpc/platforms/book3s/Kconfig"
> >  
> >  config KVM_GUEST
> >  	bool "KVM Guest support"
> > diff --git a/arch/powerpc/platforms/Makefile
> > b/arch/powerpc/platforms/Makefile
> > index 143d4417f6cc..0e75d7df387b 100644
> > --- a/arch/powerpc/platforms/Makefile
> > +++ b/arch/powerpc/platforms/Makefile
> > @@ -22,3 +22,4 @@ obj-$(CONFIG_PPC_CELL)		+= cell/
> >  obj-$(CONFIG_PPC_PS3)		+= ps3/
> >  obj-$(CONFIG_EMBEDDED6xx)	+= embedded6xx/
> >  obj-$(CONFIG_AMIGAONE)		+= amigaone/
> > +obj-$(CONFIG_PPC_BOOK3S)	+= book3s/
> > diff --git a/arch/powerpc/platforms/book3s/Kconfig
> > b/arch/powerpc/platforms/book3s/Kconfig
> > new file mode 100644
> > index 000000000000..bed21449e8e5
> > --- /dev/null
> > +++ b/arch/powerpc/platforms/book3s/Kconfig
> > @@ -0,0 +1,15 @@
> > +# SPDX-License-Identifier: GPL-2.0
> > +config PPC_VAS
> > +	bool "IBM Virtual Accelerator Switchboard (VAS)"
> > +	depends on (PPC_POWERNV || PPC_PSERIES) && PPC_64K_PAGES
> > +	default y
> > +	help
> > +	  This enables support for IBM Virtual Accelerator Switchboard
> > (VAS).
> > +
> > +	  VAS allows accelerators in co-processors like NX-GZIP and NX-
> > 842
> > +	  to be accessible to kernel subsystems and user processes.
> > +	  VAS adapters are found in POWER9 and later based systems.
> > +	  The user mode NX-GZIP support is added on P9 for powerNV and
> > on
> > +	  P10 for powerVM.
> 
> The changelog has changed. The last sentence is difficult to
> understand 
> (also please consistently capitalise PowerNV and PowerVM). Is it 
> supposed to say that PPC_VAS will provide user-mode NX-GZIP support
> on 
> P9 PowerNV systems and P10 PowerVM systems? If you respin the patch
> for
> the prototype...
> 
>   This enables support for IBM Virtual Accelerator Switchboard (VAS).
> 
>   VAS devices are found in POWER9-based and later systems, they
> provide
>   access to accelerator coprocessors such as NX-GZIP and NX-842. This
>   driver allows the kernel to use NX-GZIP and NX-842 accelerators,
> and
>   user-mode APIs for the NX-GZIP accelerator on POWER9 PowerNV and
>   POWER10 PowerVM platforms. <here is a userspace library you can
> use>
>   etc
> 
> Thanks,
> Nick



More information about the Linuxppc-dev mailing list