From: "Mike D. Day" <ncmike@us.ibm.com>
To: Greg KH <greg@kroah.com>
Cc: lkml <linux-kernel@vger.kernel.org>, xen-devel@lists.xensource.com
Subject: Re: [RFC] [PATCH] sysfs support for Xen attributes
Date: Wed, 11 Jan 2006 19:23:53 -0500 [thread overview]
Message-ID: <43C5A199.1080708@us.ibm.com> (raw)
In-Reply-To: <20060111230704.GA32558@kroah.com>
Greg KH wrote:
> Why is xen special from the rest of the kernel in regards to adding
> files to sysfs? What does your infrastructure add that is not currently
> already present for everyone to use today?
I think it comes down to simplification for non-driver code, which is
admittedly not the mainstream use model for sysfs.
>
> Why is the xen version any different from any other module or driver
> version in the kernel? (hint, use the interface that is availble for
> this already...)
The module version? Xen is not a module nor a driver, so that interface
doesn't quite serve the purpose. True, one could create a "Xen module"
that talks to Xen the hypervisor, but then the version interface would
provide the version of the xen module, not the version of the xen
hypervisor. /sys/xen/version may not be the best example for this
discussion. What is important is that this attribute is obtained from
Xen using a hypercall. Sysfs works great to prove the xen version and
other similar xen attributes to userspace.
>
> You have access to the current tree as well as we do to be able to
> answer this question :)
Right. Dumb question.
> You don't have to create a driver subsystem to be able to add stuff to
> sysfs, what makes you think that?
Sorry, you are right. But you do need to have s struct dev or use
kobjects. What I want is an interface to create sysfs files using a path
as a parameter, rather than a struct kobject.
> did you look at debugfs?
yes
> configfs?
no. configfs may be a better choice. I would still want a higher-level
kernel interface similar to what is in the patch, as explained below.
But I think sysfs may be more appropriate because attributes show up
automatically without a user-space action being taken.
> What is wrong with the current kobject/sysfs/driver model interface that
> made you want to create this extra code?
Nothing is wrong, but I want a higher-level interface, to be able to
create files and directories using a path, and to allow a code that is
not associated with a device to create sysfs files by specifying a path.
e.g., create(path, mode, ...).
Currently in xeno-linux there are several files under /proc/xen. These
are created by different areas of the xeno-linux kernel. In xeno-linux
today there is a single higher-level routine that each of these
different areas uses to create its own file under /proc/xen. In other
words, I think there should be a unifying element to the interface
because the callers are not organized within a single module.
> Aren't you already going to have a xen virtual bus in sysfs and the
> driver model? Why not just put your needed attributes there, where they
> belong (on the devices themselves)?
the xenbus, which is now in xen 3.0, allows kernels running in xen
domains to get access to virtual devices hosted in a driver
domain/domain0. But the attributes I am creating in /sys/xen are xen
attributes, not device attributes. The difference is important to
consumers of the attributes. I could create a device just to export
hypervisor attributes, but I think the what I've done is simpler.
>>+#define __sysfs_ref__
>
>
> Why?
A simple way to denote functions that get a reference to a reference
counted object. e.g., int __sysfs_ref__ foo(void); gone.
>
>
>>+struct xen_sysfs_object;
>>+
>>+struct xen_sysfs_attr {
>>+ struct bin_attribute attr;
>>+ ssize_t (*show)(void *, char *) ;
>>+ ssize_t (*store)(void *, const char *, size_t) ;
>>+ ssize_t (*read)(void *, char *, loff_t, size_t );
>>+ ssize_t (*write)(void *, char *, loff_t, size_t) ;
>>+};
>
>
> Why a binary attribute? Do you want to have more than one single piece
> of info in here? If so, no.
To facilitate creation of binary files. struct bin_attribute contains a
struct attribute, so it is an alternative to using a union.
Mike (hoping he doesn't end up on linux kernel monkey log)
--
Mike D. Day
STSM and Architect, Open Virtualization
IBM Linux Technology Center
ncmike@us.ibm.com
next prev parent reply other threads:[~2006-01-12 0:23 UTC|newest]
Thread overview: 43+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-01-11 17:17 [RFC] [PATCH] sysfs support for Xen attributes Mike D. Day
2006-01-11 17:19 ` Arjan van de Ven
2006-01-11 17:56 ` Stephen Hemminger
2006-01-11 18:45 ` Dave Hansen
2006-01-11 23:07 ` Greg KH
2006-01-12 0:23 ` Mike D. Day [this message]
2006-01-12 0:57 ` Greg KH
2006-01-12 1:49 ` Mike D. Day
2006-01-12 2:17 ` [Xen-devel] " Mark Williamson
2006-01-12 7:10 ` Greg KH
2006-01-12 14:44 ` [Xen-devel] " Mike D. Day
2006-01-12 14:53 ` Mark Williamson
2006-01-12 15:42 ` Anthony Liguori
2006-01-12 15:57 ` Anthony Liguori
2006-01-12 17:34 ` Greg KH
2006-01-12 18:44 ` Anthony Liguori
2006-01-12 17:43 ` Greg KH
2006-01-12 9:10 ` Dave Hansen
2006-01-12 14:52 ` [Xen-devel] " Mike D. Day
2006-01-12 15:28 ` Dave Hansen
2006-01-12 15:50 ` Mike D. Day
2006-01-12 12:54 ` Gerd Hoffmann
2006-01-12 13:21 ` Arjan van de Ven
2006-01-12 14:42 ` Gerd Hoffmann
2006-01-12 17:39 ` Greg KH
2006-01-12 18:53 ` Anthony Liguori
2006-01-12 18:55 ` Arjan van de Ven
2006-01-12 18:59 ` Anthony Liguori
2006-01-12 19:11 ` Mike D. Day
2006-01-12 19:31 ` Greg KH
2006-01-12 19:08 ` Greg KH
2006-01-12 19:18 ` Mike D. Day
2006-01-12 19:30 ` Greg KH
2006-01-12 17:38 ` Greg KH
2006-01-12 1:32 ` Dave Hansen
2006-01-12 10:04 ` [Xen-devel] " Keir Fraser
2006-01-12 15:14 ` Dave Hansen
2006-01-12 15:06 ` Mark Williamson
2006-01-12 15:26 ` Keir Fraser
2006-01-12 15:37 ` Dave Hansen
2006-01-12 15:49 ` Anthony Liguori
2006-01-11 23:31 ` Pavel Machek
2006-01-12 19:01 ` Greg KH
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=43C5A199.1080708@us.ibm.com \
--to=ncmike@us.ibm.com \
--cc=greg@kroah.com \
--cc=linux-kernel@vger.kernel.org \
--cc=xen-devel@lists.xensource.com \
/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