From mboxrd@z Thu Jan 1 00:00:00 1970 From: Alexei Starovoitov Subject: Re: [PATCH bpf-next] bpf: Allow bpf_current_task_under_cgroup in interrupt Date: Sat, 28 Apr 2018 08:03:19 -0700 Message-ID: References: <20180428073235.3917719-1-qinteng@fb.com> Mime-Version: 1.0 Content-Type: text/plain; charset="windows-1252"; format=flowed Content-Transfer-Encoding: 7bit Cc: , , , To: Teng Qin , Return-path: Received: from mx0a-00082601.pphosted.com ([67.231.145.42]:60164 "EHLO mx0a-00082601.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751656AbeD1PDq (ORCPT ); Sat, 28 Apr 2018 11:03:46 -0400 In-Reply-To: <20180428073235.3917719-1-qinteng@fb.com> Sender: netdev-owner@vger.kernel.org List-ID: On 4/28/18 12:32 AM, Teng Qin wrote: > Currently, the bpf_current_task_under_cgroup helper has a check where if > the BPF program is running in_interrupt(), it will return -EINVAL. This > prevents the helper to be used in many useful scenarios, particularly > BPF programs attached to Perf Events. > > This commit removes the check. Tested a few NMI (Perf Event) and some > softirq context, the helper returns the correct result. > --- > kernel/trace/bpf_trace.c | 2 -- > 1 file changed, 2 deletions(-) > > diff --git a/kernel/trace/bpf_trace.c b/kernel/trace/bpf_trace.c > index 56ba0f2..f94890c 100644 > --- a/kernel/trace/bpf_trace.c > +++ b/kernel/trace/bpf_trace.c > @@ -474,8 +474,6 @@ BPF_CALL_2(bpf_current_task_under_cgroup, struct bpf_map *, map, u32, idx) > struct bpf_array *array = container_of(map, struct bpf_array, map); > struct cgroup *cgrp; > > - if (unlikely(in_interrupt())) > - return -EINVAL; > if (unlikely(idx >= array->map.max_entries)) > return -E2BIG; > looks good, but SOB is missing. Please respin.