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

Barriers #95

Merged
merged 3 commits into from
Mar 14, 2017
Merged

Barriers #95

merged 3 commits into from
Mar 14, 2017

Conversation

yishaih
Copy link
Member

@yishaih yishaih commented Mar 13, 2017

This series comes to optimize both mlx4 and mlx5 as some follow-up of previous
barrier series that was already merged.

@jgunthorpe
Copy link
Member

Please replace patch 1 with the version I sent to the list, otherwise looks fine. Thanks for looking at this.

jgunthorpe and others added 3 commits March 14, 2017 09:41
For x86 the serialization within the spin lock is enough to
strongly order WC and other memory types.

Add a new barrier named 'mmio_wc_spinlock' to optimize
that.

The mmio_wc_spinunlock barrier was added as well, it may be
optimized in some further step based on some required
justification.

Signed-off-by: Jason Gunthorpe <jgunthorpe@obsidianresearch.com>
Reviewed-by: Yishai Hadas <yishaih@mellanox.com>
This patch optimize current implementation as follow:
- Drop the leading barrier which affects non X86 ARCH(s)
  till making further optimization to prevent performance
  degradation.
- In ARCH(s) that spinlock() serves also as SFENCE prevent
  an another explicit SFENCE. (e.g. X86).

Signed-off-by: Yishai Hadas <yishaih@mellanox.com>
In ARCH(s) that spinlock() serves also as SFENCE prevent
an another explicit SFENCE. (e.g. X86).

To prevent an extra 'if' to know whether lock is really taken and it's
not a single threaded application encapsulates the mlx5_single_threaded
flag as part of bf->need_lock.

Signed-off-by: Yishai Hadas <yishaih@mellanox.com>
@dledford dledford merged commit d8c3ec4 into linux-rdma:master Mar 14, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
3 participants