[Skiboot] [PATCH v4 0/5] Enable VAS

Sukadev Bhattiprolu sukadev at linux.vnet.ibm.com
Wed Feb 8 13:17:06 AEDT 2017


Stewart, Balbir,

Can you please let me know of any comments on these patches?

Thanks,

Sukadev

Sukadev Bhattiprolu [sukadev at linux.vnet.ibm.com] wrote:
> Power9 introduces a hardware subsystem referred to as the Virtual
> Accelerator Switchboard (VAS). VAS allows kernel subsystems and user
> space processes to directly access the Nest Accelerator (NX) engines
> which implement compression and encryption algorithms in the hardware.
> 
> NX has been in Power processors since Power7+, but access to the NX
> engines was through the 'icswx' instruction which is only available
> to the kernel/hypervisor. Starting with Power9, access to the NX
> engines is provided to both kernel and user space processes through
> VAS.
> 
> The switchboard (i.e VAS) multiplexes accesses between "receivers" and
> "senders", where the "receivers" are typically the NX engines and
> "senders" are the kernel subsystems and user processors that wish to
> access the receivers (NX engines).  Once a sender is "connected" to 
> a receiver through the switchboard, the sender can submit compression/
> encryption requests to the hardware using the new (in PowerISA 3.0)
> "copy" and "paste" instructions.
> 
> In the initial OPAL and PowerNV kernel patchsets, the "senders" can
> only be kernel subsystems (i.e NX-842 driver). A follow-on patch set
> will allow senders to be user-space processes.
> 
> This OPAL patch set initializes the VAS registers and makes the VAS
> hardware available to the NX-842 driver in the kernel. It also provides
> some interfaces that the NX-842 subsystem in OPAL needs to initialize
> the NX hardware in Power9.
> 
> This patchset has been tested in a Simics Power9 environment using:
> 	- the corresponding VAS kernel patchset [1]
> 	- modified NX-842 OPAL and kernel drivers, and
> 	- a compression self-test module from Power8.
> 
> A newer version of the VAS kernel patchset, as well as the OPAL and
> kernel patchsets for NX-842 driver will be posted separately. All four
> are needed to effectively use VAS/NX in Power9.
> 
> Thanks to Haren Myneni for the NX-842 modifications and help with
> testing, Ben Herrenschmidt for the interface to retrieve an IPI
> trigger port, Ben, Michael Ellerman and Michael Neuling for input
> on working with the hardware.
> 
> [1] RFC version of VAS kernel patch set:
>     https://lists.ozlabs.org/pipermail/linuxppc-dev/2016-November/150854.html
> 
> Changelog[v4]
> 	- Comments from Balbir: Made some functions inline; added some device
> 	  tree nodes
> 	- Dropped the patch to allocate/return IRQ ports for now. Will
> 	  repost the patch later.
> 
> Changelog[v3]
>        - [Oliver O'Halloran] Fold changes to vas.c and Makefile.inc from
>                 patch 1 into current patch; use constant 'true' for the
>                 (unnecessary) macros that were removed by earlier patch;
>                 free wcbs memory if any chip fails initialization;use
>                 prolog()/prerror() instead of printf; Use out_be64() to
>                 write to the MMIO address
> 
>        - [Oliver O'Halloran, Alistair Popple] Use proc_gen to check for P9
> 
> Changelog[v2]
> 	- Drop BenH's patch (interface to retrieve IPI trigger port) from
> 	  this set since it has been merged into skiboot.
> 	- Minor code reorg to address Alistair Popple's comment (Patch 5).
> 
> 
> 
> Sukadev Bhattiprolu (5):
>   VAS: Define macros needed by VAS
>   VAS: Initialize the basic VAS internal registers
>   VAS: Define vas_get_hvwc_mmio_bar interface
>   VAS: Define vas_get_wcbs_bar interface
>   VAS: Define OPAL_VAS_READ_FIR interface
> 
>  core/Makefile.inc  |   2 +-
>  core/init.c        |   4 +
>  core/vas.c         | 329 +++++++++++++++++++++++++++++++++++++++++++++++++++++
>  include/chip.h     |   2 +
>  include/opal-api.h |   3 +-
>  include/vas.h      | 158 +++++++++++++++++++++++++
>  6 files changed, 496 insertions(+), 2 deletions(-)
>  create mode 100644 core/vas.c
>  create mode 100644 include/vas.h
> 
> -- 
> 2.7.4
> 
> _______________________________________________
> Skiboot mailing list
> Skiboot at lists.ozlabs.org
> https://lists.ozlabs.org/listinfo/skiboot



More information about the Skiboot mailing list