From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1757273AbbJVPxD (ORCPT ); Thu, 22 Oct 2015 11:53:03 -0400 Received: from mail-pa0-f52.google.com ([209.85.220.52]:36641 "EHLO mail-pa0-f52.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752234AbbJVPxA (ORCPT ); Thu, 22 Oct 2015 11:53:00 -0400 Subject: Re: [PATCH v2 net-next] bpf: fix bpf_perf_event_read() helper To: Peter Zijlstra References: <1445468283-4592-1-git-send-email-ast@kernel.org> <20151022135745.GM3604@twins.programming.kicks-ass.net> Cc: "David S. Miller" , Ingo Molnar , Wang Nan , He Kuang , Kaixu Xia , Daniel Borkmann , netdev@vger.kernel.org, linux-kernel@vger.kernel.org From: Alexei Starovoitov Message-ID: <5629065C.6020103@plumgrid.com> Date: Thu, 22 Oct 2015 08:53:00 -0700 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:38.0) Gecko/20100101 Thunderbird/38.3.0 MIME-Version: 1.0 In-Reply-To: <20151022135745.GM3604@twins.programming.kicks-ass.net> Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 10/22/15 6:57 AM, Peter Zijlstra wrote: > On Wed, Oct 21, 2015 at 03:58:03PM -0700, Alexei Starovoitov wrote: >> diff --git a/kernel/events/core.c b/kernel/events/core.c >> index 64754bfecd70..0b6333265872 100644 >> --- a/kernel/events/core.c >> +++ b/kernel/events/core.c >> @@ -3258,7 +3258,7 @@ static inline u64 perf_event_count(struct perf_event *event) >> u64 perf_event_read_local(struct perf_event *event) >> { >> unsigned long flags; >> - u64 val; >> + u64 val = -EINVAL; > > No, you cannot do this, -EINVAL is a valid count value. You simply must > not call this function on !local events, ever. agree. Will keep perf_event_read_local() as-is and do all safety checks on bpf side.