Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fabric: Add fi_trywait call to support use of native wait objects #1780

Merged
merged 5 commits into from
Feb 25, 2016

Conversation

shefty
Copy link
Member

@shefty shefty commented Feb 24, 2016

This series defines fi_trywait, disables providers from supporting fi_control FI_GETWAIT, and re-enables that support for the sockets and udp providers, along with fi_trywait implementation.

Other providers will need to re-enable fi_control FI_GETWAIT after implementing fi_trywait.

A separate PR will be made to fabtests. Until that request has been merged, fabtests related to testing native wait objects may fail.

Add a new call that applications must use when waiting on the
native wait object associated with an EQ or CQ.  The expected
behavior is for apps to do something like this:

    while (1) {
        if (fi_trywait(cq, ...) == 0)
            poll(cq_fd, ...);

       do {
            ret = fi_cq_read(cq, ...);
        } while (ret > 0);
    }

The trywait call is responsible for performing any steps needed
to safely block on the underlying fd using standard OS calls.

Signed-off-by: Sean Hefty <sean.hefty@intel.com>
Proper use of native wait objects will require the use of
the new fi_trywait call.  Disable all providers from returning
the wait object until they support fi_trywait.

Signed-off-by: Sean Hefty <sean.hefty@intel.com>
Add fi_trywait inline to fi_eq.h header file.  Add prototype
to fabric_ops structure.  Provide an ENOSYS implementation.

Update providers to reference ENOSYS implementation.

Signed-off-by: Sean Hefty <sean.hefty@intel.com>
Add implementation for fi_trywait to the UDP provider.  This updates
the utility framework.

Signed-off-by: Sean Hefty <sean.hefty@intel.com>
Re-enable FI_GETWAIT support and add fi_trywait implementation.

Signed-off-by: Sean Hefty <sean.hefty@intel.com>
@bturrubiates
Copy link
Member

👍

shefty added a commit that referenced this pull request Feb 25, 2016
fabric: Add fi_trywait call to support use of native wait objects
@shefty shefty merged commit efb285e into ofiwg:master Feb 25, 2016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants