mbox series

[v3,0/2] ring library with c11 memory model bug fix and optimization

Message ID 1540981587-88590-1-git-send-email-gavin.hu@arm.com (mailing list archive)
Headers
Series ring library with c11 memory model bug fix and optimization |

Message

Gavin Hu Oct. 31, 2018, 10:26 a.m. UTC
  v2->v3
1) reword the change and relocate it in the release note.

v1->v2
1) Add the changes to the 18.11 release note.

V1:
Updated the ring library with C11 memory model including the following changes
1) Synchronize the load and store of the tail to ensure the enqueue/dequeue
   operations are really completed before seen by the observers on the other
   sides.
2) Move the atomic load of head above the loop for the first iteration,it is
   not unnecessary and degrade performance for the other iteration as the head
   was loaded in the failure case of CAS.

Gavin Hu (2):
  ring: synchronize the load and store of the tail
  ring: move the atomic load of head above the loop

 doc/guides/rel_notes/release_18_11.rst |  7 +++++++
 lib/librte_ring/rte_ring_c11_mem.h     | 24 +++++++++++++++++-------
 2 files changed, 24 insertions(+), 7 deletions(-)
  

Comments

Thomas Monjalon Oct. 31, 2018, 4:58 p.m. UTC | #1
Last call for review.

Qian, it probably makes to have a validation test of this patchset.


31/10/2018 11:26, Gavin Hu:
> v2->v3
> 1) reword the change and relocate it in the release note.
> 
> v1->v2
> 1) Add the changes to the 18.11 release note.
> 
> V1:
> Updated the ring library with C11 memory model including the following changes
> 1) Synchronize the load and store of the tail to ensure the enqueue/dequeue
>    operations are really completed before seen by the observers on the other
>    sides.
> 2) Move the atomic load of head above the loop for the first iteration,it is
>    not unnecessary and degrade performance for the other iteration as the head
>    was loaded in the failure case of CAS.
> 
> Gavin Hu (2):
>   ring: synchronize the load and store of the tail
>   ring: move the atomic load of head above the loop
> 
>  doc/guides/rel_notes/release_18_11.rst |  7 +++++++
>  lib/librte_ring/rte_ring_c11_mem.h     | 24 +++++++++++++++++-------
>  2 files changed, 24 insertions(+), 7 deletions(-)