From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754865AbdLFKRn (ORCPT ); Wed, 6 Dec 2017 05:17:43 -0500 Received: from merlin.infradead.org ([205.233.59.134]:46734 "EHLO merlin.infradead.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752054AbdLFKRh (ORCPT ); Wed, 6 Dec 2017 05:17:37 -0500 Date: Wed, 6 Dec 2017 11:17:22 +0100 From: Peter Zijlstra To: Song Liu Cc: rostedt@goodmis.org, mingo@redhat.com, davem@davemloft.net, netdev@vger.kernel.org, linux-kernel@vger.kernel.org, daniel@iogearbox.net, kernel-team@fb.com Subject: Re: [PATCH v4 1/6] perf: prepare perf_event.h for new types perf_kprobe and perf_uprobe Message-ID: <20171206101722.e5pjfl6gpczkqlme@hirez.programming.kicks-ass.net> References: <20171205012729.358860-1-songliubraving@fb.com> <20171205012729.358860-4-songliubraving@fb.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20171205012729.358860-4-songliubraving@fb.com> User-Agent: NeoMutt/20170609 (1.8.3) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Mon, Dec 04, 2017 at 05:27:24PM -0800, Song Liu wrote: > diff --git a/include/uapi/linux/perf_event.h b/include/uapi/linux/perf_event.h > index 362493a..0f39b31 100644 > --- a/include/uapi/linux/perf_event.h > +++ b/include/uapi/linux/perf_event.h > @@ -291,6 +291,16 @@ enum perf_event_read_format { > PERF_FORMAT_MAX = 1U << 4, /* non-ABI */ > }; > > +/* > + * Flags in config, used by dynamic PMU kprobe and uprobe > + * > + * PERF_PROBE_CONFIG_IS_RETPROBE if set, create kretprobe/uretprobe > + * if not set, create kprobe/uprobe > + */ > +enum perf_probe_config { > + PERF_PROBE_CONFIG_IS_RETPROBE = 1U << 0, /* [k,u]retprobe */ > +}; This should not be in uapi; pmu's can describe their config format in sysfs. PMU_FORMAT_ATTR(retprobe, "config:0"); static struct attribute *kprobe_attr[] = { &format_attr_retprobe, NULL, }; static struct attribute_group kprobe_format_group = { .name = "format", .attrs = kprobe_attrs, }; static const struct attribute_group *kprobe_attr_groups[] = { &kprobe_format_group, NULL, }; struct pmu perf_kprobe { ... .attr_groups = kprobe_attr_groups, }; Other than that, this series looks good to me. Thanks!