Re: [RFC PATCH 4/9] mce: Add persistent events

From: Ingo Molnar
Date: Wed Sep 01 2010 - 02:14:26 EST



* Steven Rostedt <rostedt@xxxxxxxxxxx> wrote:

> On Fri, 2010-08-06 at 16:57 +0200, Peter Zijlstra wrote:
> > On Fri, 2010-08-06 at 16:25 +0200, Borislav Petkov wrote:
> > > +static const struct file_operations perf_mce_fops = {
> > > + .llseek = no_llseek,
> > > + .open = mce_perf_open,
> > > + .poll = perf_poll,
> > > + .unlocked_ioctl = perf_ioctl,
> > > + .compat_ioctl = perf_ioctl,
> > > + .mmap = perf_mmap,
> > > + .fasync = perf_fasync,
> > > + .release = perf_release,
> > > +};
> >
> > I'd rather see this part of the persistent bits live in
> > kernel/perf_event.c, that way you don't need the previous patch either.
> >
>
> This is part of what I hate about the perf design. The fact that
> everything needs to be very coupled. I would like the infrastructure
> to be more flexible.

Well, Peter's comment was mostly about not making this arch specific but
core kernel - the new bits can live in kernel/perf_event_persistent.c
just fine.

There is no 'flexibility' in each arch doing the same thing with small
variations.

More generally i agree with you that better modularization helps - a
nice improvement in this area would be to do a kernel/perf_event/
splitup: i.e. split kernel/perf_event.c (which is getting a tad big)
into:

kernel/events/output.c
kernel/events/trace.c
kernel/events/core.c
kernel/events/syscall.c
kernel/events/persistent.c

Maybe even move hw_breakpoint.c there, etc. There's already various
wrappers in perf_event.c that could be split out of the core code to
increase modularity. Later on we could have a sysfs.c, etc.

Any taker for such a massive restructuring? :)

Thanks,

Ingo
--
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/