Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1186720

Re: [RFC PATCH 3/6] bpf: Save the pointer to struct perf_event to map

From "Wangnan (F)" <wangnan0@huawei.com>
Newsgroups linux.kernel
Subject Re: [RFC PATCH 3/6] bpf: Save the pointer to struct perf_event to map
Date 2015-07-17 13:30 +0200
Message-ID <pNc02-3ZN-1@gated-at.bofh.it> (permalink)
References <pNbnk-31b-7@gated-at.bofh.it> <pNbnl-31b-37@gated-at.bofh.it> <pNbGG-3Dh-9@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw



On 2015/7/17 19:06, Peter Zijlstra wrote:
> On Fri, Jul 17, 2015 at 06:43:33PM +0800, kaixu xia wrote:
>> diff --git a/kernel/events/core.c b/kernel/events/core.c
>> index e965cfa..c4e34b7 100644
>> --- a/kernel/events/core.c
>> +++ b/kernel/events/core.c
>> @@ -8582,6 +8582,28 @@ void perf_event_delayed_put(struct task_struct *task)
>>   		WARN_ON_ONCE(task->perf_event_ctxp[ctxn]);
>>   }
>>   
>> +struct perf_event *perf_event_get(unsigned int fd)
>> +{
>> +	struct perf_event *event;
>> +	struct fd f;
>> +
>> +	f = fdget(fd);
>> +
>> +	if (!f.file)
>> +		return ERR_PTR(-EBADF);
>> +
>> +	if (f.file->f_op != &perf_fops) {
>> +		fdput(f);
>> +		return ERR_PTR(-EINVAL);
>> +	}
>> +
>> +	event = f.file->private_data;
>> +
>> +	fdput(f);
>> +
>> +	return event;
>> +}
> And what is stopping userspace from closing those FDs while you're using
> them?

Please check replace_map_with_perf_event(). Users can close the FDs, but 
the perf
event structure will still valid because we increase its reference 
count. It won't be
close until the map is released. We have test that case.

Thank you.


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Back to linux.kernel | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

[RFC PATCH 3/6] bpf: Save the pointer to struct perf_event to map kaixu xia <xiakaixu@huawei.com> - 2015-07-17 12:50 +0200
  Re: [RFC PATCH 3/6] bpf: Save the pointer to struct perf_event to map Peter Zijlstra <peterz@infradead.org> - 2015-07-17 13:10 +0200
    Re: [RFC PATCH 3/6] bpf: Save the pointer to struct perf_event to  map "Wangnan (F)" <wangnan0@huawei.com> - 2015-07-17 13:30 +0200
      Re: [RFC PATCH 3/6] bpf: Save the pointer to struct perf_event to  map "Wangnan (F)" <wangnan0@huawei.com> - 2015-07-17 13:40 +0200
        Re: [RFC PATCH 3/6] bpf: Save the pointer to struct perf_event to map Peter Zijlstra <peterz@infradead.org> - 2015-07-17 13:50 +0200
          Re: [RFC PATCH 3/6] bpf: Save the pointer to struct perf_event to  map "Wangnan (F)" <wangnan0@huawei.com> - 2015-07-17 14:00 +0200
            Re: [RFC PATCH 3/6] bpf: Save the pointer to struct perf_event to map Peter Zijlstra <peterz@infradead.org> - 2015-07-17 14:10 +0200
              Re: [RFC PATCH 3/6] bpf: Save the pointer to struct perf_event to  map "Wangnan (F)" <wangnan0@huawei.com> - 2015-07-17 14:20 +0200
  Re: [RFC PATCH 3/6] bpf: Save the pointer to struct perf_event to map Peter Zijlstra <peterz@infradead.org> - 2015-07-17 13:40 +0200

csiph-web