Patent ID: 7836129

Claim:
A method, in a data processing system, for communicating between a first host system and a second host system, comprising: initializing a first memory address space associated with the first host system to comprise a first address range assigned to an endpoint associated with the second host system, wherein the first host system comprises a first root complex and a first set of endpoint endpoints, wherein the second host system comprises a second host system root complex and second set of endpoints, and wherein the endpoint associated with the second host system is one of the second set of endpoints, wherein initializing the first memory address space associated with the first host system comprises: traversing links in a communication fabric of the data processing system to gather information about endpoints and root complexes present in the communication fabric; generating at least one virtual hierarchy identifying at least one endpoint and at least one root complex that are physically or logically associated with each other; initializing the first memory address space based on the at least one virtual hierarchy such that each endpoint associated with a root complex of the first host system has a corresponding address range in the first memory address space; generating a work queue structure in the first address range; generating a first doorbell structure in the first address range; posting a work queue element in the work queue structure; and writing to the first doorbell structure to thereby inform the second host system that the work queue element is available for processing, wherein the second host system retrieves the work queue element from the work queue structure through the second root complex and the first root complex.