Revision history   OpenPOWER Library

 B.2.1. Shared Model Allocation and Initialization Procedure

 A high-level procedure for how an AFU might be assigned to a hypervisor for sharing by more than one partition in the system follows:

  1. System administrator assigns a slice of a CAIA-compliant device to the hypervisor and defines the function. In the case of a single-slice implementation or where all slices are assigned to the hypervisor, the full CAIA-compliant device is assigned.

  2. Hypervisor builds a device tree for the AFU slice (or CAIA-compliant device) and sets the programming model.

    • Contains information about the CAIA-compliant device (for example, acceleration function).

    • PSL Slice Control Register (PSL_SCNTL_An) to set the programming model

  3. Application or user library performs system calls to:

    • Query available acceleration functions.

    • Create and register event handlers for AFU interrupts

    • Register with the accelerator and provide a pointer to the application's job queue (that is, the WED).

      Note: The job queue is application dependent and not defined by the CAIA.

  4. Operating system performs an HCALL to register the application's process state with associated accelerator function.

    • PSL Process and Thread Identification

    • Virtual address (VA) Storage Segment Table Pointer

    • PSL Interrupt Vector Table Entries

    • PSL Authority Mask

    • PSL Work Element Descriptor

  5. Hypervisor creates an entry in the linked list of scheduled processes containing the process state for the application.

  6. After a process element is created, the PSL begins giving a time slice of the AFU to the application. When the application's context is running, the AFU monitors the application's job queue for work to be performed.


loading table of contents...