From mboxrd@z Thu Jan 1 00:00:00 1970 From: Peter Zijlstra Subject: Re: [PATCH bpf-next 3/3] bpf, libbpf: use proper barriers in perf ring buffer walk Date: Wed, 17 Oct 2018 17:51:35 +0200 Message-ID: <20181017155135.GN3121@hirez.programming.kicks-ass.net> References: <20181017144156.16639-1-daniel@iogearbox.net> <20181017144156.16639-4-daniel@iogearbox.net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: alexei.starovoitov@gmail.com, paulmck@linux.vnet.ibm.com, will.deacon@arm.com, acme@redhat.com, yhs@fb.com, john.fastabend@gmail.com, netdev@vger.kernel.org To: Daniel Borkmann Return-path: Received: from merlin.infradead.org ([205.233.59.134]:54352 "EHLO merlin.infradead.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727013AbeJQXsJ (ORCPT ); Wed, 17 Oct 2018 19:48:09 -0400 Content-Disposition: inline In-Reply-To: <20181017144156.16639-4-daniel@iogearbox.net> Sender: netdev-owner@vger.kernel.org List-ID: On Wed, Oct 17, 2018 at 04:41:56PM +0200, Daniel Borkmann wrote: > +static __u64 bpf_perf_read_head(struct perf_event_mmap_page *header) > +{ > + __u64 data_head = READ_ONCE(header->data_head); > + > + smp_rmb(); > + return data_head; > +} > + > +static void bpf_perf_write_tail(struct perf_event_mmap_page *header, > + __u64 data_tail) > +{ > + smp_mb(); > + header->data_tail = data_tail; > +} Same coments, either smp_load_acquire()/smp_store_release() or at the very least a WRITE_ONCE() there.