lkml.org 
[lkml]   [2013]   [Nov]   [22]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [RFC] Control dependencies
On 11/22/2013 08:46 AM, Peter Zijlstra wrote:
> How about the below version?
>
> ---
> --- a/kernel/events/ring_buffer.c
> +++ b/kernel/events/ring_buffer.c
> @@ -61,19 +61,20 @@ static void perf_output_put_handle(struc
> *
> * kernel user
> *
> - * READ ->data_tail READ ->data_head
> - * smp_mb() (A) smp_rmb() (C)
> - * WRITE $data READ $data
> - * smp_wmb() (B) smp_mb() (D)
> - * STORE ->data_head WRITE ->data_tail
> + * if (LOAD ->data_tail) { LOAD ->data_head
> + * (A) smp_rmb() (C)
> + * STORE $data LOAD $data
> + * smp_wmb() (B) smp_mb() (D)
> + * STORE ->data_head STORE ->data_tail


I wasn't subscribed to linux-arch so missed the smp_store_release()
outcome, if there was one.

Are (B) and (D) still slated for changing to STORE.rel semantics,
aka smp_store_release()?

I realize that, for the perf ring buffer, (D) is in userspace but
I'm also interested in non-perf situations where (D) would be in the
kernel.

Regards,
Peter Hurley





\
 
 \ /
  Last update: 2013-11-22 19:21    [W:0.297 / U:0.232 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site