public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Dmitry Torokhov <dtor_core@ameritech.net>
To: Kay Sievers <kay.sievers@vrfy.org>
Cc: Greg KH <gregkh@suse.de>, Vojtech Pavlik <vojtech@suse.cz>,
	Hannes Reinecke <hare@suse.de>,
	Patrick Mochel <mochel@digitalimplant.org>,
	airlied@linux.ie, linux-kernel@vger.kernel.org,
	Adam Belay <ambx1@neo.rr.com>
Subject: Re: [patch 0/8] Nesting class_device patches that actually work
Date: Mon, 17 Oct 2005 00:41:29 -0500	[thread overview]
Message-ID: <200510170041.30671.dtor_core@ameritech.net> (raw)
In-Reply-To: <20051015150855.GA7625@vrfy.org>

On Saturday 15 October 2005 10:08, Kay Sievers wrote:
> On Fri, Oct 14, 2005 at 12:02:30PM -0500, Dmitry Torokhov wrote:
> > 
> > Does anyone know how many of these we have?
> 
> A lot! From general distro specific system-management to subsystem specific
> setup tools and tons of udev rules... There is definitely no chance to break
> /sys/class in _all_ subsystems by introducing subdirectories.
> 
> > We are moving /sys/block
> > to /sys/class so many of these will require upgrades anyway.
> 
> If needed, there can be a link from /sys/block to /sys/class/block and it
> will look exactly like is is today.
> 

We could also add links in the form of:

	/sys/class/<subsystem>/<nested_class> ->
			/sys/class/<subsystem>_<nested_class>

to keep compatibility with nested classes too to give userspace
a chance to catch up...

> > Could libsysfs hide some of the changes?
> 
> Not without hardcoding susbsystem-specific knowledge/translation into it, which
> will not happen and will be definitely the wrong way to solve such a thing.
> Only the block-move case could be easily covered by libsysfs as it is already
> prepared to do this and "block" is a "class" from the first version of
> libsysfs on.
> 

OK..

> > Btw, is your proposal with moving it all into /sys/device less drastic?
> 
> Definitely, cause it keeps all the curent api! The only difference is that class-devices
> are reached by symlinks instead of real directories. The pathes to the devices are
> the same!
> 

OK..

> > > It invents artificial subclass names below a "master" class, which
> > > is absolutely not needed.
> > >
> > 
> > I really do not see why you think that "ieee1394_node" and
> > "ieee1394_transport" are natural names while "ieee1394/node" and
> > "ieee1394/transport" are "artificial".
> 
> Well, all three classes are different kind of devices. All devices are at the
> same level, which I absolutely like. You propose an artificial "hierarchy of
> classes" or a "superclass", which will break everything and give us no advantage,
> I think.
> 

Call it "subsystem" actually.

> > > It creates the magic "interfaces" directory, which is confusing, cause
> > > it classifies devices by itself.
> > >
> > 
> > Why is "interfaces" is more magic than "wireless"? Is it just the name
> > that is confusing? We could call it "netifs", "netdevs", "devices" -
> > just pick a name you like better.
> 
> Cause "interfaces" is a classification by itself and this is wrong! If
> you give one of your "subclass devices" an interface, let's say "input0"
> will get a device node to talk to the low-level device, where do you
> want to stick it then? You will move the device around to the
> "interface" directory? That breaks the api!
>

No, not at all. The input0 will get a new interface, blahdevX, exactly
like eventX, mouseX, jsX, tsX, etc. and it will go into "interfaces".
input0 itself will stay in /sys/class/input/devices.

> Take a step back and look what a kernel interface is about. It is to
> give userland a unified view to devices. The internal kernel structure
> like "bus", "class", "bus_device", "class_device" are in no way interesting
> for userspace. It's a kernel implementation detail.
> 
> All we want are DEVICES! And from devices we want:
>   - a classification:    /sys/class/<name>
>   - the properties:      attribute files to read values or to invoke actions
>   - the dependency tree: /sys/devices/<device1>/<device2>
> Any mix between any of the three things is completely wrong, makes it hard to
> read and can never provide a stable device interface.
> 

Yes, I agree that we should have device tree in /sys/devices. But I do not
think that flat classification is sufficient. Right now it is not enough
and we compensate for it with names.

-- 
Dmitry

  reply	other threads:[~2005-10-17  5:41 UTC|newest]

Thread overview: 44+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <20051013014147.235668000@echidna.kroah.org>
2005-10-13  2:08 ` [patch 0/8] Nesting class_device patches that actually work Greg KH
2005-10-13  2:10   ` Greg KH
2005-10-13 23:38     ` Kay Sievers
2005-10-13  2:10   ` [patch 1/8] Driver Core: add the ability for class_device structures to be nested Greg KH
2005-10-13  2:10   ` [patch 2/8] Driver Core: fix up all callers of class_device_create() Greg KH
2005-10-13  2:10   ` [patch 3/8] Driver Core: document struct class_device properly Greg KH
2005-10-13  2:10   ` [patch 4/8] input: register the input class device sooner Greg KH
2005-10-13  2:10   ` [patch 5/8] input: export input_dev_class so that input drivers can use it Greg KH
2005-10-13  2:10   ` [patch 6/8] input: move the input class devices under their new input_dev devices Greg KH
2005-10-13  2:11   ` [patch 7/8] input: remove the input_class structure, as it is unused Greg KH
2005-10-13  2:11   ` [patch 8/8] input: rename input_dev_class to input_class to be correct Greg KH
2005-10-13  6:38   ` [patch 0/8] Nesting class_device patches that actually work Vojtech Pavlik
2005-10-13 21:21     ` Dmitry Torokhov
2005-10-13 10:58   ` Kay Sievers
2005-10-13 21:35     ` Dmitry Torokhov
2005-10-13 23:37       ` Hannes Reinecke
2005-10-14  8:45       ` Kay Sievers
2005-10-14 12:14         ` Kay Sievers
2005-10-14 12:49           ` linux-os (Dick Johnson)
2005-10-14 13:49             ` Kay Sievers
2005-10-17 10:02           ` Vojtech Pavlik
2005-10-18  5:13             ` Dmitry Torokhov
2005-10-14 17:02         ` Dmitry Torokhov
2005-10-15 15:08           ` Kay Sievers
2005-10-17  5:41             ` Dmitry Torokhov [this message]
2005-10-17 21:44             ` Greg KH
2005-10-17 21:54               ` Dmitry Torokhov
2005-10-17 23:26                 ` Adam Belay
2005-10-18  0:03                   ` Kay Sievers
2005-10-17 23:24               ` Adam Belay
2005-10-17 23:44                 ` Kay Sievers
2005-10-18  5:26                 ` Greg KH
2005-10-18  7:18                   ` Adam Belay
2005-10-18  7:54                     ` Greg KH
2005-10-18  8:34                     ` Vojtech Pavlik
2005-10-18 15:08                     ` Kay Sievers
2005-10-18 15:41                       ` Dmitry Torokhov
2005-10-18  6:04               ` Greg KH
2005-10-18  7:05                 ` Greg KH
2005-10-18  7:35                   ` Greg KH
2005-10-17  9:26         ` Vojtech Pavlik
2005-12-01 18:59         ` Patrick Mochel
2005-10-14  9:52   ` Christoph Hellwig
2005-10-14 16:36     ` Dmitry Torokhov

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=200510170041.30671.dtor_core@ameritech.net \
    --to=dtor_core@ameritech.net \
    --cc=airlied@linux.ie \
    --cc=ambx1@neo.rr.com \
    --cc=gregkh@suse.de \
    --cc=hare@suse.de \
    --cc=kay.sievers@vrfy.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mochel@digitalimplant.org \
    --cc=vojtech@suse.cz \
    /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