|
NAME : HCPPSQBK
DESCRIPTION: LGR PTE Serialization Queue Block
DSECT : PSQBK
FUNCTION : Contains information regarding a PTE being
processed during relocation of a guest. PSQBKs
represent PTEs for which:
- PTE serialization was obtained asynchronously, or
- PTE serialization still needs to be obtained.
LOCATED BY : RLOPSQHD points to the head of the FIFO PSQBK queue
RLOPSQTL points to the tail of the FIFO PSQBK queue
CREATED BY : HCPRLMPS
DELETED BY : HCPRLMPQ
SERIALIZED : RLOPSQLK field in RLOBK. Informal spin lock.
RELOCATION CONSIDERATIONS : None
COMMENTS :
A PSQBK describes a block in a FIFO queue that
represents PTEs in one of the following states
during the walk of the PGMBKs on the source
system during relocation of a guest:
- PTE serialization has been asynchronously
obtained, or
- PTE serialization still needs to be obtained
but has been deferred because end-to-end
throttling is in effect based on the value of
the RLOE2ETH throttling indicator.
During end-to-end throttling, we must:
- Minimize the number of PTEs on which
serialization is held, and
- Minimize sending further relocation data
to the destination system
The queue is processed by HCPRLMPQ. For each
block, it removes the block from the head of the
queue and effectively rejoins the synchronous
LGR processing by calling HCPRLTRS unless throttling
is in effect. In that case, it releases any PTE
serialization held and requeues the PSQBK as a PTE
for which serialization is not held.
Blocks are added to the queue in the following
situations:
- By HCPRLTPS, which is an asynchronous task
that is stacked via HCPCALL TYPE=DEFERRED while
walking the guest's DAT tables when SHORT PTE
serialization is not available without deferral.
- By HCPRLMPQ in throttling situations as previously
described.
- By HCPPODDQ in throttling situations to effectively
requeue requests for PTE serialization after
throttling is no longer in effect.
The queue header is RLOPSQHD and the tail is
RLOPSQTL. End of queue is delimited by zero.
| |