[libfabric-users] Multi process on same domain

Xiong, Jianxin jianxin.xiong at intel.com
Fri Aug 30 10:13:08 PDT 2024


In the most general case, a packet would take a round-trip travel on the wire: Tx engine --> wire --> switch or loopback cable --> wire --> Rx engine. However, most NICs have a loopback path between the TX and RX engines so that the packet doesn’t need to go out to the wire for local bound communication.

-Jianxin

From: Niyaz Murshed <Niyaz.Murshed at arm.com>
Sent: Friday, August 30, 2024 8:25 AM
To: Xiong, Jianxin <jianxin.xiong at intel.com>; libfabric-users at lists.openfabrics.org
Cc: nd <nd at arm.com>
Subject: Re: Multi process on same domain

Thank you Jianxin.
yes, I meant 1 NIC being shared by 2 processes talking to each other on verbs.
I was wondering how the data is being exchanged between the QPs created since both QPs are on the same NIC.

Another test I am planning to do is as below :

2 servers , with 1 NIC connected to each other.

Client on Server A writes to Server on B over the NIC
Client on Server B writes to Server on A over the same NIC.

Basically, sharing the same NIC to send and receive work requests. These are just to understand the message flows in verbs.

From: Xiong, Jianxin <jianxin.xiong at intel.com<mailto:jianxin.xiong at intel.com>>
Date: Friday, August 30, 2024 at 10:17 AM
To: Niyaz Murshed <Niyaz.Murshed at arm.com<mailto:Niyaz.Murshed at arm.com>>, libfabric-users at lists.openfabrics.org<mailto:libfabric-users at lists.openfabrics.org> <libfabric-users at lists.openfabrics.org<mailto:libfabric-users at lists.openfabrics.org>>
Cc: nd <nd at arm.com<mailto:nd at arm.com>>
Subject: RE: Multi process on same domain
Libfabric “domain” is a per-process concept, so it is meaningless to talk about libfabric domain cross multiple processes.

The “-d” argument in the example specify the domain name, which maps to NIC device name for verbs. It is totally fine to create multiple domains with the same name.

A Verbs port can always be shared by multiple processes. Each process has its own “user context” when the Verbs device/port is opened. Note that the verbs “port number” is part of the device identification. It’s different from the port number used in TCP connections.

-Jianxin

From: Libfabric-users <libfabric-users-bounces at lists.openfabrics.org<mailto:libfabric-users-bounces at lists.openfabrics.org>> On Behalf Of Niyaz Murshed
Sent: Friday, August 30, 2024 7:27 AM
To: libfabric-users at lists.openfabrics.org<mailto:libfabric-users at lists.openfabrics.org>
Cc: nd <nd at arm.com<mailto:nd at arm.com>>
Subject: [libfabric-users] Multi process on same domain

Hello,

How do messages pass from QP to QP when both server and client are using the same domain?
I can see RoCE packets in Wireshark, so it does go to the NIC.


Client :
fi_rma_bw -s   192.168.2.100  -e msg   -I 1  -S 1024 -p verbs  -w 0  -o writedata 192.168.2.100 -d mlx5_2

Server:
fi_rma_bw -s   192.168.2.100  -e msg   -I 1  -S 1024 -p verbs  -w 0  -o writedata -d mlx5_2

I am trying to understand how multiple process/thread can share the same port over Verbs.

Regards,
Niyaz
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openfabrics.org/pipermail/libfabric-users/attachments/20240830/13bcd54c/attachment-0001.htm>


More information about the Libfabric-users mailing list