NonStop S-Series Server Description Manual (G06.24+)

Interprocessor Communication
HP NonStop S-Series Server Description Manual520331-003
9-12
Request With Short Request Data
Request With Short Request Data
A request phase that includes short-length request data (Figure 9-6) makes temporary
use of pre-push buffers to transfer data from a linker’s buffer to a listener’s buffer. This
transfer method is used when the total length of control information and data does not
exceed the size of a pre-push buffer, currently 512 bytes. Because the addresses of
these buffers are static and known to the message systems in each processor, the
transfer can proceed without the linker knowing the ultimate location of the listener’s
destination buffer.
In the first part of this phase (upper part of Figure 9-6), all of the request information
and the request data is sent from the linker to the listener as a single message. For this
message, the message system creates a TIB (1), using the ServerNet address of one
of the four pre-push buffers known to exist in the listener’s processor specially for this
(the linker’s) processor. ServerNet services translates the TIB to BTE descriptors (2),
and transfers control to the BTE.
The BTE (3) pre-pushes the request control information first, then all of the data, and
lastly transmits the request setup packet. Each packet is transmitted over the
ServerNet hardware (4) to the AVT hardware in the listener processor, where it is sent
to one of two destinations (5). The control information and the data are sent to the
addressed pre-push buffer and the final packet, the setup, is linked into the interrupt
queue.
When the interrupt is processed, the message system transfers the setup information
to an MQC in the readlink cache (6), as well as the control information and all the data
(7). The message system then alerts the listener process that the message has been
received.
In the second part of this phase (lower part of Figure 9-6), the listener process calls the
message system with MSG_READCONTROL_ and MSG_READDATA_ to copy the
control information and data in the MQC in the readlink cache to corresponding buffers
(8 and 9). The listener process might have allocated these buffers previously or could
do so at this point.