sysfs: Add an 'events' class. (was: Re: [RFC][PATCH] perf: sysfstype id)

From: Ingo Molnar
Date: Wed Nov 10 2010 - 08:37:22 EST



* Peter Zijlstra <peterz@xxxxxxxxxxxxx> wrote:

> On Tue, 2010-11-09 at 14:13 -0800, Greg KH wrote:
>
> > You missed the embedded track at Plumbers where we talked about never
> > adding another class to the kernel. Please use bus_id instead for this.
>
> I did, it was early and I wasn't aware this all comes under the heading
> of embedded.
>
> Anyway, anybody got a good example of bus_type I can 'borrow' ?
>
> Also, it would be really nice if you (plural) could make this subsystem thing
> happen, calling tihngs a bus that aren't a bus just makes me upset ;-)

Same here - calling events a 'bus' is like totally brain-dead IMHO. It implies
something hardware, while many events are not related to any hardware component but
are pure software abstractions: such as context-switches, or syscall entries, or VM
events.

So i'd rather have 'events' or 'event_source' as a 'class' temporarily, than have it
as a 'bus' temporarily - and we get the real fix whenever the sysfs unification
happens.

I also have a question about this future plan mentioned in
Documentation/sysfs-rules.txt:

- Hierarchy in a single device tree
There is only one valid place in sysfs where hierarchy can be examined
and this is below: /sys/devices.
It is planned that all device directories will end up in the tree
below this directory.

So did i get it right, sysfs is going to convert from a VFS hiearchy/enumeration to
a flat enumeration of entities, all listed in /dev/devices/?

Why is that done? I think it's quite nice that the actual topology is represented
right now via the sysfs VFS structure - so that we have things like:

/sys/devices/system/ioapic/ioapic0/

Where there's is a proper hierarchy showing that we have a 'system', which has an
'ioapic', which has an ioapic numbered '0'. That entity could then grow 'events' and
have:

/sys/devices/system/ioapic/ioapic0/events/

And could show various IO-APIC events, such as (future, possible events):

/sys/devices/system/ioapic/ioapic0/events/irq/
/sys/devices/system/ioapic/ioapic0/events/register-read/
/sys/devices/system/ioapic/ioapic0/events/register-write/
/sys/devices/system/ioapic/ioapic0/events/affinity/
[...]

So is the plan to get rid of such rich hiearchies and just use a flat store of
everything in /sys/devices/?

My hope would be to _increase_ the depth of sysfs in the future, to express every
meaningful hiearchy that exists in the system (be that hw hierarchy or some sw
abstraction hierarchy). But maybe i got it all wrong so please advise.

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/