Git Product home page Git Product logo

Comments (6)

yangx-jy avatar yangx-jy commented on July 16, 2024

After thinking about the implementation of rpma_flush based on new ibverbs flush, I wonder how to make old API and new API works together. For example, we need to finish the remote write by a) and b):
a) write data into remote node by rpma_write()
b) flush data into remote node by rpma_flush()
In this case, rpma_write() uses the qp created by old rdma/ibv_create_qp() but rpma_flush() needs to use the qp created by new rdma/ibv_create_qp_ex(), how to convert one to the other one? or is it ok to use the unified rdma/ibv_create_qp_ex() by replacing old rdma/ibv_create_qp()?

@grom72 @ldorau do you have any suggestion?

from rpma.

grom72 avatar grom72 commented on July 16, 2024

We should not change public API (if possible).
To get access to new (MPE) verbs we should add a build flag (e.g. BUILD_WITH_MPE_SUPPORT), that forces alternative implementation based on ibv_cq_ex for all RDMA services.
qp_ex should be later obtain via ibv_qp_to_qp_ex (conn->id->qp) or alternatively stored in rpma_conn_req/rpma_conn
To create ibv_cq_ex let's use rdma_create_qp_ex instead of rdma_create_qp
Later we could abandon this BUILD_WITH_MPE_SUPPORT flag when we check that all supported OS's support ibv_qp_ex

from rpma.

yangx-jy avatar yangx-jy commented on July 16, 2024

I tried to replace rdma_create_qp() with rdma_create_qp_ex() by #2084.
This change is to prepare for new libibverbs flush and atomic write.

from rpma.

yangx-jy avatar yangx-jy commented on July 16, 2024

@grom72 @ldorau

I have created a PR to introduce libibverbs atomic write so we can discuss based on it.
#2085

from rpma.

yangx-jy avatar yangx-jy commented on July 16, 2024

@grom72 @ldorau

I have created a PR to introduce libibverbs flush so we can discuss the logic based on it.
#2104

from rpma.

yangx-jy avatar yangx-jy commented on July 16, 2024

Both #2085 and #2104 have been merged so close the issue.

from rpma.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.