phoenix-dataplane / phoenix

Phoenix dataplane system service
https://phoenix-dataplane.github.io
Apache License 2.0
51 stars 9 forks source link

post_send and post_recv will result in PageFault the first time an address is called on #109

Closed libertyeagle closed 1 year ago

libertyeagle commented 2 years ago

Due to ODP, post_send and post_recv will result in PageFault the first time an address is called on. This page fault will result in a huge overhead. We can avoid the overhead of post_recv by posting dummy sends to warm up the recv_mrs on the other side. However, post_send may not be easily solved.

As post_send sends messages constructed by user application, user app will allocate new space for their replys and requests. We can reuse the buffers for re-sending the same requests from a buffer. However, this might not be easily done for user app's server side.

libertyeagle commented 2 years ago

Maybe we can use ibv_advise_mr during SharedRegion::new()

libertyeagle commented 2 years ago

Issues:

libertyeagle commented 2 years ago

Current throughput with (not-complete) temp fix: ~37Gbps

crazyboycjr commented 1 year ago

Closes the issue since the throughput issue has been solved many months ago.