Re: [RFC][PATCH v2 06/11] perf: core, export pmus via sysfs

From: Greg KH
Date: Wed May 19 2010 - 01:01:46 EST


On Wed, May 19, 2010 at 11:40:29AM +0800, Lin Ming wrote:
> On Wed, 2010-05-19 at 10:48 +0800, Greg KH wrote:
> > On Wed, May 19, 2010 at 10:34:55AM +0800, Lin Ming wrote:
> > > /sys/devices/system/cpu/events/
> > > |-- L1-dcache-load-misses
> > > | |-- event_source -> ../../event_source
> > >
> > > For above example, "event_source" is the cpu pmu and the "event" is
> > > L1-dcache-load-misses.
> > >
> > > Yes, they point to the same thing, because all the events
> > > under /sys/devices/system/cpu/events/* is monitored by the same event
> > > source, ie, the cpu pmu(/sys/devices/system/cpu/event_source/).
> >
> > Then, why have a symlink if they are all going to be the same?
>
> So how about move the symlink to parent directory, like
>
> /sys/devices/system/cpu/event_source/
>
> /sys/devices/system/cpu/events/
> |-- event_source -> ../event_source

Again, why would that make any sense? You would be creating a symlink
to something that is always the same symlink. Why would that even be
needed?

> > > > I'm still not really understanding what exactly you are trying to show
> > > > in the sysfs tree here anyway, perhaps the documentation update will
> > > > clear that up for me.
> > >
> > > To support multiple pmus
> >
> > What is a "pmu"?
>
> Performance Monitoring Unit

What is a "unit"?

> > > (or call them event source),
> >
> > What is an "event source"?
>
> The source who generates the event.

The traditional way to define a word, or phrase, is to not use the word
or phrase in the definition, otherwise that definition makes no sense.

> The event includes hardware events, cache-misses, bus-cycles,
> interrupts, error conditions, hotplug......
> and software events, context-switches, page-faults, sched events......

So, stuff that happens to a CPU that are usually handled in the
performance counters portion of the CPU, right?

Why put this in sysfs? Why do you think that mapping this information
there makes sense?

> > > I want to show all
> > > the pmus and events in the sysfs tree.
> >
> > Why do these things need to be in sysfs? What benifit is it going to
> > have?
>
> Kernel to provide the information of the event source and
> hardware/software events via sysfs and user-space can get
> this info from sysfs.

But that's not what you were doing with your "open a sysfs file from
within the kernel and use the kobject there" logic, right? You were
doing everything within the kernel itself, so sysfs, and kobjects and
the like, aren't really needed at all, right?

How are you exporting this information to userspace today?

> > > For mce,
> > > /sys/kernel/events/mce/*
> >
> > What? No, don't create /sys/kernel/events/. Is that in this patchset?
>
> No, not in this patchset.

Good :)

> > Ick, that's such a "general" name that it is going to get confusing very
> > quickly. Heck, I still don't know what this "event" thing is yet :)
> >
> > > and so on...the exact placement is not yet final.
> >
> > Again, why do you need/want anything in sysfs in the first place?
> > What problem is it going to solve? Who is going to benifit? Why do
> > they care? What is this whole thing about?

You forgot to answer these questions...

thanks,

greg k-h
--
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/