public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
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

  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