Use WRITE_ONCE() for updating aux_tail, so can avoid unexpected memory
behaviour.
Signed-off-by: Leo Yan <[email protected]>
---
tools/perf/util/auxtrace.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tools/perf/util/auxtrace.h b/tools/perf/util/auxtrace.h
index e625bc76cdde..abc4282f5272 100644
--- a/tools/perf/util/auxtrace.h
+++ b/tools/perf/util/auxtrace.h
@@ -458,7 +458,7 @@ static inline void auxtrace_mmap__write_tail(struct auxtrace_mmap *mm, u64 tail)
/* Ensure all reads are done before we write the tail out */
smp_mb();
- pc->aux_tail = tail;
+ WRITE_ONCE(pc->aux_tail, tail);
}
int auxtrace_mmap__mmap(struct auxtrace_mmap *mm,
--
2.25.1
On 2/06/21 1:30 pm, Leo Yan wrote:
> Use WRITE_ONCE() for updating aux_tail, so can avoid unexpected memory
> behaviour.
>
> Signed-off-by: Leo Yan <[email protected]>
Acked-by: Adrian Hunter <[email protected]>
> ---
> tools/perf/util/auxtrace.h | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/tools/perf/util/auxtrace.h b/tools/perf/util/auxtrace.h
> index e625bc76cdde..abc4282f5272 100644
> --- a/tools/perf/util/auxtrace.h
> +++ b/tools/perf/util/auxtrace.h
> @@ -458,7 +458,7 @@ static inline void auxtrace_mmap__write_tail(struct auxtrace_mmap *mm, u64 tail)
>
> /* Ensure all reads are done before we write the tail out */
> smp_mb();
> - pc->aux_tail = tail;
> + WRITE_ONCE(pc->aux_tail, tail);
> }
>
> int auxtrace_mmap__mmap(struct auxtrace_mmap *mm,
>
On Wed, Jun 02, 2021 at 06:30:06PM +0800, Leo Yan wrote:
> Use WRITE_ONCE() for updating aux_tail, so can avoid unexpected memory
> behaviour.
>
> Signed-off-by: Leo Yan <[email protected]>
Acked-by: Peter Zijlstra (Intel) <[email protected]>
> ---
> tools/perf/util/auxtrace.h | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/tools/perf/util/auxtrace.h b/tools/perf/util/auxtrace.h
> index e625bc76cdde..abc4282f5272 100644
> --- a/tools/perf/util/auxtrace.h
> +++ b/tools/perf/util/auxtrace.h
> @@ -458,7 +458,7 @@ static inline void auxtrace_mmap__write_tail(struct auxtrace_mmap *mm, u64 tail)
>
> /* Ensure all reads are done before we write the tail out */
> smp_mb();
> - pc->aux_tail = tail;
> + WRITE_ONCE(pc->aux_tail, tail);
> }
>
> int auxtrace_mmap__mmap(struct auxtrace_mmap *mm,
> --
> 2.25.1
>
Em Mon, Jun 07, 2021 at 05:31:01PM +0200, Peter Zijlstra escreveu:
> On Wed, Jun 02, 2021 at 06:30:06PM +0800, Leo Yan wrote:
> > Use WRITE_ONCE() for updating aux_tail, so can avoid unexpected memory
> > behaviour.
> >
> > Signed-off-by: Leo Yan <[email protected]>
>
> Acked-by: Peter Zijlstra (Intel) <[email protected]>
Leo, this one is dependendant on the 6/8, will wait for a resubmission,
keeping 5/8 tho, as was Acked and applies cleanly, perf/core.
> > ---
> > tools/perf/util/auxtrace.h | 2 +-
> > 1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/tools/perf/util/auxtrace.h b/tools/perf/util/auxtrace.h
> > index e625bc76cdde..abc4282f5272 100644
> > --- a/tools/perf/util/auxtrace.h
> > +++ b/tools/perf/util/auxtrace.h
> > @@ -458,7 +458,7 @@ static inline void auxtrace_mmap__write_tail(struct auxtrace_mmap *mm, u64 tail)
> >
> > /* Ensure all reads are done before we write the tail out */
> > smp_mb();
> > - pc->aux_tail = tail;
> > + WRITE_ONCE(pc->aux_tail, tail);
> > }
> >
> > int auxtrace_mmap__mmap(struct auxtrace_mmap *mm,
> > --
> > 2.25.1
> >
--
- Arnaldo
Hi Arnaldo,
On Tue, Jun 08, 2021 at 02:04:30PM -0300, Arnaldo Carvalho de Melo wrote:
> Em Mon, Jun 07, 2021 at 05:31:01PM +0200, Peter Zijlstra escreveu:
> > On Wed, Jun 02, 2021 at 06:30:06PM +0800, Leo Yan wrote:
> > > Use WRITE_ONCE() for updating aux_tail, so can avoid unexpected memory
> > > behaviour.
> > >
> > > Signed-off-by: Leo Yan <[email protected]>
> >
> > Acked-by: Peter Zijlstra (Intel) <[email protected]>
>
> Leo, this one is dependendant on the 6/8, will wait for a resubmission,
> keeping 5/8 tho, as was Acked and applies cleanly, perf/core.
Yeah, will respin for patches 6/8 and 7/8.
Thanks for merging patch 5/8.
Leo