Re: [PATCH 9/18] 2.6.17.9 perfmon2 patch for review: kernel-level interface

From: Stephane Eranian
Date: Fri Aug 25 2006 - 03:42:20 EST


Hi,

On Fri, Aug 25, 2006 at 02:56:37AM -0400, Chuck Ebbert wrote:
> On Wed, 23 Aug 2006 15:54:47 -0700, Andrew Morton wrote:
>
> > > > Some users have requested the ability to create a monitoring session
> > > > with perfmon2 from iside the kernel using a kernel thread. Perfmon2
> > > > leverages a lot of kernel mechanisms which are not easy to use for
> > > > inside the kernel: e.g. file descriptor, signals, system calls.
> > >
> > > Again, please drop this. There are no planned intree kernel users
> > > so far, and once we add them we can architect a proper API for them.
> > > Getting rid of this should also help to collapse the tons of useless
> > > abstractions layers in the current perfmon code.
> > >
> >
> > Yes, I think we either need a stronger argument for including this code, or
> > we drop it.
>
> This interface is for people writing kprobes who want to do performance
> monitoring within their probe code. There will probably never be any
> in-kernel users, just like there are no in-kernel users of kprobes.
>
That is indeed the reason why I put this in. In the context of kprobes
code (callback), I don't think it is possible to make some upcall
to userland to interact with the perfmon2 interface. Yet, I think that
combining kprobes with monitoring could be very useful. A simple example
is to use kprobes to control where monitoring starts and stops, e.g.,
on a function boundaries.

> > It is especially worrisome that the exports which are added here are plain
> > old EXPORT_SYMBOL().
>
> kprobes exports are all GPL, so these should be too.
>
Yes. I am just too used to EXPORT_SYMBOL(). I will fix this in the next patch.

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