Revision history   OpenPOWER Library

 4.4.3.1. Software Procedure

 The following sequence is only for a single system software process managing the linked list. Additional locking and synchronization steps are necessary to allow for multiple system software processes to concurrently manage the linked list.

  1. Set the terminate flag in the software state to '1' (Software_State[T] = '1').

    • Store x'80000001' to the 31st word of the process element to terminate.

  2. Ensure that the terminate status is visible to all processes.

    • System software running on the host processor must perform a sync instruction.

  3. Write a terminate_element command to the software command/status field in the linked list area.

    • Store (x'00010000' || first_psl_id || link_of_element_to_terminate) to address sw_command_status.

  4. Ensure that the terminate_element command is visible to all processes.

    • System software running on the host processor must perform a sync instruction.

  5. Issue the terminate_element MMIO command to the first PSL.

    • System software performs an MMIO to the PSL Linked List Command Register with the terminate_element command and the link of the process being terminated.

      (PSL_LLCMD_An = x'000100000000' || link_of_element_to_terminate).

  6. Wait for the PSLs to complete the termination of the process element.

    • The process element is terminated when a load from sw_command_status returns (x'00010001' || first_psl_id || link_of_element_to_terminate).

    • If a value of all 1's is returned for the status, an error has occurred. An implementation-dependent recovery procedure should be initiated by hardware.

  7. Reset the valid flag in the software state to '0' (Software_State[V] = '0').

    • Store x'00000000' to the 31st word of the process element to terminate.

  8. Remove the process element from the linked list.


loading table of contents...