Redefined RMA extended packet header in CH3 layer.
This patch redefined RMA extended header in CH3 layer based on commit 25e40e43 . The extended header helps RMA issue RMA-specific header. Each OP may define multiple attributes dynamically, or just let it empty. Here is a summary of the detailed implementation. (1) We define a packet type for every kind of extended header, and for every kind of OP. For now, we have defined stream_{acc|get_acc}, derived_{put|get|acc|get_acc} and stream_derived_{acc|get_acc}. (2) Extended header may contain fixed-attributes, or variable-length parts (i.e., dataloop). We define all fixed-attributes in packet structure, and followed by variable-length parts. For example: ------------------------------------------------------------------- | fixed attributes... | variable-len part 1 | variable-len part 2 | ------------------------------------------------------------------- (3) Origin process simply allocates a contig buffer to fill both fixed part and variable-len parts, and transfer it to netmod through req; target process can specify separate buffers to receive the variable-len parts from netmod in order to avoid extra copy (i.e., dataloop). (4) Each OP has different initialization and packet-handler on origin and target side respectively. For now ACC and GET_ACC share generic routine since all of their attributes are the same. Signed-off-by:Xin Zhao <xinzhao3@illinois.edu> Signed-off-by:
Pavan Balaji <balaji@anl.gov>
This diff is collapsed.
This diff is collapsed.
Please register or sign in to comment