-
Notifications
You must be signed in to change notification settings - Fork 932
ompi/opal: add support for HDR link speeds #3434
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
Conversation
|
Can one of the admins verify this patch? |
|
bot:retest |
|
bot:ompi:retest |
jsquyres
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
According to #3431, it looks like you are trying to solve two issues:
- Support 25/50Gbps devices.
- Fix a segv.
In #3431, the real error in the segv appears to be:
*** Error in `/usr/local/imb/openmpi/dcheck/IMB-MPI1': free(): invalid pointer: 0x00007ff37b2f34d8 ***
However, it's not clear from that output whether that free() is in the Open MPI code or in IMB. I.e., is Open MPI handling the rejected port badly (i.e., not propagating the error properly), or is IMB failing?
If there's a separate fix for fixing a segv in a failure path for the openib BTL when a port is rejected, that would be useful to include in a separate commit on this PR.
| /* HDR: 50Gbps * 64/66, in megabits */ | ||
| *bandwidth = 50000; | ||
| break; | ||
| case 128: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Two questions:
-
According to https://github.com/torvalds/linux/blob/master/include/rdma/ib_verbs.h#L428-L435, I do not see values for 64 and 128 defined in the kernel ABI for the
active_speedfield when querying IB port attributes. Where are you getting these 64/128 values from? -
As a secondary (but related) issue, is there a better way than using hard-coded integer values here in
common_verbs_port.c? On the kernel side, we have the niceIB_SPEED_*enums; do public equivalents exist in userspace that we can use here in Open MPI? (ditto forIB_WIDTH_*)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hi Jeff,
Thanks for your comments and feedback.
Regarding the invalid pointer free(), I did some initial debugging and found that openmpi is raising this stack trace whenever it fails to select any of the usable btl for a given process. for example, with my transport if I select btl_openib_flags in such a way where only PUT support is available (flags value 306). I will open a seprate PR for this issue.
Yes, it is true that currently values 64 and 128 are not defined in the kernel/user IB stack. I will push the needed change to the ib-stack very soon.
To the best of my knowledge, those macros are not there in user-space. I can try pushing those to rdma-core once.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
- Yes, either a separate PR or another commit on this PR to fix that segv would be great; thanks.
- Once you get a patch accepted upstream for the 64/128 values, we can probably take this commit. I just wouldn't want to take a commit here that is dependent upon a vendor-specific OFED stack (which then might vary between vendors). Hope that makes sense.
- I think getting the macros would be an extra bonus, and can likely be a separate upstream patch for libibverbs. I.e., depending on the timing, either a separate PR or a separate commit on this PR that converts these naked values to enums would be awesome.
Many thanks.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just to note that we have been pointed to this PR by Mellanox about OMPI not working with CX5 cards and ROCE.
However, we do not see the backtrace that @dsharma283 reports, just the error:
--------------------------------------------------------------------------
WARNING: There was an error initializing an OpenFabrics device.
Local host: spartan-gpgpu008
Local device: mlx5_0
--------------------------------------------------------------------------
--------------------------------------------------------------------------
WARNING: There was an error initializing an OpenFabrics device.
Local host: spartan-gpgpu007
Local device: mlx5_0
--------------------------------------------------------------------------
srun: Job step aborted: Waiting up to 32 seconds for job step to finish.
srun: error: spartan-gpgpu008: task 1: Exited with exit code 17
srun: error: spartan-gpgpu007: task 0: Killed
|
I have posted a change in upstream linux-rdma community to pull the port-speed and link-width enums. I will supply a rev of this patch once the change is accepted. Just for the reference I am leaving this pull-request open till I comeback with proper fix. |
|
I can confirm that the supplied change to Before (via TCP btl): After (via openib btl): Patched with just: |
|
@chrissamuel @dsharma283 Did that patch get accepted upstream? |
|
Not from what I see, it was discussed here: https://patchwork.kernel.org/patch/9716209/ There was talk of rearchitecturing it in a way that might result in some distros being unsupported. |
|
This mail also made me think that this patch has been pulled in. This
action item is still open its just I am not able to prioritize on it.
…-Regards
Devesh
On Wed, Nov 15, 2017 at 10:40 AM, Chris Samuel ***@***.***> wrote:
Not from what I see, it was discussed here:
https://patchwork.kernel.org/patch/9716209/
There was talk of rearchitecturing it in a way that might result in some
distros being unsupported.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.
|
|
@dsharma283 I see no evidence of any mention of anything using IBV_ in the linux-rdma repos here. https://github.com/linux-rdma |
|
@jsquyres looking at your link it looks like the file has changed since then and IB_SPEED_HDR is now defined for ib_port_speed: https://github.com/torvalds/linux/blob/master/include/rdma/ib_verbs.h#L464-L472 Could we perhaps merge a reduced version of this PR to just recognise IB_SPEED_HDR devices please? |
|
@jsquyres could you double check whether this is okay or not now |
This patch enables to use adapters with HDR speeds. issue id 3431 Signed-off-by: Devesh Sharma <[email protected]>
|
I updated the patch to remove the "128" case (because that's not upstream). |
|
Thanks for pulling-in.
…On Thu, Mar 22, 2018 at 8:27 AM, Jeff Squyres ***@***.***> wrote:
Merged #3434 <#3434>.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#3434 (comment)>, or mute
the thread
<https://github.com/notifications/unsubscribe-auth/AXVC7phEDjho2wYCIiqixBbcU5A0hV99ks5tgxMVgaJpZM4NLefD>
.
|
This patch enables to use adapters with HDR and NDR
speeds.
issue id 3431
Signed-off-by: Devesh Sharma [email protected]