Patent ID: 8271604

Claim:
A method, in a data processing system, for initializing a shared memory for communication between a plurality root complexes of the data processing system, comprising: generating a first virtual hierarchy of components of a communication fabric in the data processing system, the first virtual hierarchy being associated with a first root complex of the data processing system; generating a second virtual hierarchy of components of the communication fabric in the data processing system, the second virtual hierarchy being associated with a second root complex of the data processing system; assigning a first address range in a first shared memory associated with the first root complex, for a given endpoint in the second virtual hierarchy, wherein the first address range is accessible by a first host system associated with the first root complex as memory mapped input/output, wherein the given endpoint is co-resident with the second root complex as indicated by a co-residency field associated with a hardware device that holds the second root complex and the given endpoint; assigning a second address range in a second shared memory associated with the second root complex, for the given endpoint in the second virtual hierarchy, wherein the second address range is accessible by a second host system associated with the second root complex through real addresses of the second host system; and performing communication from the first host system associated with the first root complex to the second host system associated with the second root complex by writing, by the first host system, to the first address range in the first shared memory and performing, by the given endpoint, at least one direct memory access operation, wherein each of the at least one direct memory access operation accesses the first address range in the first shared memory and places a result in the second address range in the second shared memory.