All of lore.kernel.org
 help / color / mirror / Atom feed
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 --]

  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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.