[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20071129054656.GA26327@kroah.com>
Date: Wed, 28 Nov 2007 21:46:56 -0800
From: Greg KH <greg@...ah.com>
To: Jonathan Corbet <corbet@....net>
Cc: Kay Sievers <kay.sievers@...y.org>,
Alan Stern <stern@...land.harvard.edu>,
Randy Dunlap <randy.dunlap@...cle.com>,
linux-kernel@...r.kernel.org
Subject: Re: [RFC] New kobject/kset/ktype documentation and example code
On Tue, Nov 27, 2007 at 08:50:14PM -0700, Jonathan Corbet wrote:
> Greg KH <greg@...ah.com> wrote:
>
> > Jonathan, I used your old lwn.net article about kobjects as the basis
> > for this document, I hope you don't mind
>
> Certainly I have no objections, I'm glad it was useful.
Thanks, it was a great framework to work with.
> > It is rare (even unknown) for kernel code to create a standalone kobject;
> > with one major exception explained below.
>
> You don't keep this promise - bet you thought we wouldn't notice...
> Actually I guess you do, in the "creating simple kobjects" section.
> When you get to that point, you should mention that this is a situation
> where standalone kobjects make sense.
Sorry, yes, that is where I tried to explain it. I'll flush it out some
more.
> Given that there are quite a few standalone kobjects created by this
> patch set (kernel_kobj, security_kobj, s390_kobj, etc.), the "(even
> unknown)" should probably come out.
Ok.
> > So, for example, UIO code has a structure that defines the memory region
> > associated with a uio device:
>
> *The* UIO code, presumably.
fixed.
> > the given type. So, for example, a pointer to a struct kobject embedded
> > within a struct cdev called "kp" could be converted to a pointer to the
> > containing structure with:
>
> That should be "struct uio_mem", I think.
fixed.
> > one. Calling kobject_init() is not sufficient, however. Kobject users
> > must, at a minimum, set the name of the kobject; this is the name that will
> > be used in sysfs entries.
>
> Is setting the name mandatory now, or are there still places where
> kobjects (which do not appear in sysfs) do have - and do not need - a
> name?
Any kobject that is registered needs to have a name. If someone tries
to call kobject_register() or kobject_add() without a name set they will
find out that it is not allowed :)
And yes, there are a few places in the kernel with kobjects that are
never registered. I'm working on trying to get rid of them...
> > Because kobjects are dynamic, they must not be declared statically or on
> > the stack, but instead, always from the heap. Future versions of the
>
> "always be allocated from the heap"?
thanks.
> > "empty" release function, you will be mocked merciously by the kobject
> > maintainer if you attempt this.
>
> So just how should severely should we mock kobject maintainers who can't
> spell "mercilessly"? :)
Heh, turns out that a lot of people sent me this privately :)
> > - A kset can provide a set of default attributes that all kobjects that
> > belong to it automatically inherit and have created whenever a kobject
> > is registered belonging to the kset.
>
> Can we try that one again?
>
> - A kset can provide a set of default attributes for all kobjects which
> belong to it.
No, it's the ktype that does this, I'll go fix that up...
> > There is currently
> > no other way to add a kobject to a kset without directly messing with the
> > list pointers.
>
> Presumably the latter way is not recommended; I would either say so or
> not mention this possibility at all.
Ah, yes, now removed.
Thanks for the review, I really appreciate it.
greg k-h
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists