From: Michael Ellerman <michael@ellerman.id.au>
To: Kay Sievers <kay.sievers@vrfy.org>
Cc: LKML <linux-kernel@vger.kernel.org>
Subject: Re: [RFC][PATCH] perf: sysfs type id
Date: Wed, 10 Nov 2010 12:10:23 +1100 [thread overview]
Message-ID: <1289351423.22787.22.camel@concordia> (raw)
In-Reply-To: <AANLkTikGHNkUN6t9rPhdE6XOQiqb5xAzH_9eY6L9h2H2@mail.gmail.com>
[-- Attachment #1: Type: text/plain, Size: 3481 bytes --]
On Wed, 2010-11-10 at 01:57 +0100, Kay Sievers wrote:
> Stay on the list please, with any possible reply. Thanks!
You dropped the CC when you replied, or is my mailer being weird?
> On Wed, Nov 10, 2010 at 01:52, Michael Ellerman <michael@ellerman.id.au> wrote:
> > On Wed, 2010-11-10 at 00:45 +0100, Kay Sievers wrote:
> >> On Wed, Nov 10, 2010 at 00:36, Michael Ellerman <michael@ellerman.id.au> wrote:
> >> > On Tue, 2010-11-09 at 14:13 -0800, Greg KH wrote:
> >> >> On Tue, Nov 09, 2010 at 10:45:19PM +0100, Peter Zijlstra wrote:
> >> >> > The below is a RFC patch adding dynamic type ids to perf.
> >> >> >
> >> >> > We need to represent PMUs in sysfs because we want to allow multiple
> >> >> > (loadable) PMUs and need a way to identify them.
> >> >> >
> >> >> > This patch creates a new device class "pmu" and adds a single attribute
> >> >> > "type" to it. This device attribute will expose the dynamic type id as
> >> >> > required by perf_event_attr::type.
> >> >> >
> >> >> > The sysfs layout looks like:
> >> >> >
> >> >> > [root@westmere ~]# cd /sys/class/pmu/
> >> >>
> >> >> 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.
> >> >
> >> > At least in the examples I've seen creating a bus requires a lot more
> >> > code than a class. Or is there a shortcut I don't know about when it's a
> >> > virtual bus?
> >>
> >> What do you mean? Instead of registering a class you register a bus?
> >
> > Yeah. From what I've seen doing the latter is a lot more involved.
> >
> >> Instead of assigning a class to the device, you assign the bus before
> >> you add it. Other than this you do the same with the device.
> >
> > Sure. My point is creating a bus (from what I've seen) is not as easy as
> > creating a bus. No one said kernel hacking should be easy, but if the
> > advice is "use a bus not a class" it'd be good if they were
> > approximately equivalent in effort.
> >
> > My code to use a class is ~=:
> >
> > struct class foo_class;
> > foo_class = class_create(THIS_MODULE, "foo");
> > device = device_create(foo_class, NULL, dev, "foo0");
>
> device_create must not be used for devices without a dev_t.
> device_destroy, which is the counterpart can not work.
It has a dev_t, that's the third argument?
> If you use device_del/device_unregister, you need to use
> device_add/device_register.
I don't use them.
> The pseudo-convenience device_register/device_unregister should also
> not be used.
Why are they in the tree if they shouldn't be used?
So far you are failing to dispel my notion that sysfs is a place where
mortals dare not tread ;)
> > And I'm looking at eg. drivers/usb/serial/bus.c as an example bus.
> >
> > But in my case (and I think perf too), we don't need a bus that probes
> > etc. it's just a virtual bus that groups things, so it seems like it
> > should be simple.
> >
> > Anyway I feel like I'm missing something, so hopefully you can clue me
> > in :)
>
> Buses without drivers do not probe at all, they behave like classes.
OK, good, that would seem to be a prerequisite for replacing the latter
with the former.
I'm just not clear on how that actually works in the code. For example I
have a device which is on a bus (that's how it got probed), how do I
also put it on another bus (my virtual bus replacing my class) ?
cheers
[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 198 bytes --]
next prev parent reply other threads:[~2010-11-10 1:10 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-11-09 21:45 [RFC][PATCH] perf: sysfs type id Peter Zijlstra
2010-11-09 22:11 ` Kay Sievers
2010-11-09 22:22 ` Peter Zijlstra
2010-11-09 22:40 ` Kay Sievers
2010-11-09 22:13 ` Greg KH
2010-11-09 23:36 ` Michael Ellerman
[not found] ` <AANLkTi=UftgQn0ydRd2wszqFtpRrkEcW7dzfapKKix_V@mail.gmail.com>
[not found] ` <1289350360.22787.9.camel@concordia>
[not found] ` <AANLkTikGHNkUN6t9rPhdE6XOQiqb5xAzH_9eY6L9h2H2@mail.gmail.com>
2010-11-10 1:10 ` Michael Ellerman [this message]
2010-11-10 1:19 ` Kay Sievers
2010-11-10 1:45 ` Michael Ellerman
2010-11-10 1:59 ` Kay Sievers
2010-11-10 3:37 ` Michael Ellerman
2010-11-10 2:11 ` Kay Sievers
2010-11-10 17:31 ` Greg KH
2010-11-10 12:27 ` Peter Zijlstra
2010-11-10 13:36 ` sysfs: Add an 'events' class. (was: Re: [RFC][PATCH] perf: sysfs type id) Ingo Molnar
2010-11-10 14:14 ` Kay Sievers
2010-11-10 15:00 ` Ingo Molnar
2010-11-11 6:39 ` Kay Sievers
2010-11-10 13:01 ` [RFC][PATCH] perf: sysfs type id Stephane Eranian
2010-11-10 14:10 ` Peter Zijlstra
2010-11-10 14:19 ` Peter Zijlstra
2010-11-10 20:08 ` Stephane Eranian
2010-11-10 20:32 ` Peter Zijlstra
2010-11-10 20:53 ` Stephane Eranian
2010-11-10 21:05 ` Peter Zijlstra
2010-11-17 2:35 ` Corey Ashford
2010-11-17 7:02 ` Kyle Moffett
2010-11-17 11:30 ` Peter Zijlstra
2010-11-17 11:25 ` Peter Zijlstra
2010-11-17 19:47 ` Corey Ashford
2010-11-17 19:57 ` Peter Zijlstra
2010-11-17 20:01 ` Peter Zijlstra
2010-11-17 21:39 ` Corey Ashford
2010-11-10 14:24 ` Stephane Eranian
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1289351423.22787.22.camel@concordia \
--to=michael@ellerman.id.au \
--cc=kay.sievers@vrfy.org \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox