Re: No more "device" symlinks for classes

2007-01-14 Thread Kay Sievers

On 1/14/07, Greg KH <[EMAIL PROTECTED]> wrote:

On Sun, Jan 14, 2007 at 09:10:59AM +0300, Andrey Borzenkov wrote:
> Pierre Ossman wrote:
>
> > Hi guys,
> >
> > I just wanted to know the rationale behind
> > 99ef3ef8d5f2f5b5312627127ad63df27c0d0d05 (no more "device" symlink in
> > class devices). I thought that was a rather convenient way of finding
> > which physical device the class device was coupled to.
> >
>
> Actually I wonder why those links still present even when I told system not
> to create them?
>
> {pts/1}% grep DEPRE /boot/config
> # CONFIG_SYSFS_DEPRECATED is not set
> # CONFIG_PM_SYSFS_DEPRECATED is not set
> {pts/1}% find /sys/class -name device
> /sys/class/pcmcia_socket/pcmcia_socket2/device
> /sys/class/pcmcia_socket/pcmcia_socket1/device
> /sys/class/pcmcia_socket/pcmcia_socket0/device
> /sys/class/usb_device/usbdev1.1/device
> /sys/class/usb_host/usb_host1/device
> /sys/class/scsi_disk/0:0:0:0/device
> /sys/class/scsi_device/1:0:0:0/device
> /sys/class/scsi_device/0:0:0:0/device
> /sys/class/scsi_host/host1/device
> /sys/class/scsi_host/host0/device
> /sys/class/net/eth0/device
> /sys/class/net/eth1/device
> /sys/class/input/input1/ts0/device
> /sys/class/input/input1/mouse0/device
> /sys/class/input/input1/event1/device
> /sys/class/input/input1/device
> /sys/class/input/input0/event0/device
> /sys/class/input/input0/device
> {pts/1}% uname -a
> Linux cooker 2.6.20-rc5-1avb #10 Sat Jan 13 14:05:34 MSK 2007 i686 Pentium
> III (Coppermine) GNU/Linux

Because I haven't finished converting all of the different usages of
struct class_device to struct device just yet.  When that happens, those
links go away, as the /sys/class/foo_class/foo is a symlink itself into
the /sys/devices/ tree.


Right, you only told not to create the links for already converted
subsystems to create the class-devices in /sys/devices. You can never
supress the links for subsystems which still create device-directories
in /sys/class, because you would lose the parent information then and
udev and HAL couldn't work anymore.

Kay
Kay
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: No more "device" symlinks for classes

2007-01-13 Thread Greg KH
On Sun, Jan 14, 2007 at 09:10:59AM +0300, Andrey Borzenkov wrote:
> Pierre Ossman wrote:
> 
> > Hi guys,
> > 
> > I just wanted to know the rationale behind
> > 99ef3ef8d5f2f5b5312627127ad63df27c0d0d05 (no more "device" symlink in
> > class devices). I thought that was a rather convenient way of finding
> > which physical device the class device was coupled to.
> > 
> 
> Actually I wonder why those links still present even when I told system not
> to create them?
> 
> {pts/1}% grep DEPRE /boot/config
> # CONFIG_SYSFS_DEPRECATED is not set
> # CONFIG_PM_SYSFS_DEPRECATED is not set
> {pts/1}% find /sys/class -name device
> /sys/class/pcmcia_socket/pcmcia_socket2/device
> /sys/class/pcmcia_socket/pcmcia_socket1/device
> /sys/class/pcmcia_socket/pcmcia_socket0/device
> /sys/class/usb_device/usbdev1.1/device
> /sys/class/usb_host/usb_host1/device
> /sys/class/scsi_disk/0:0:0:0/device
> /sys/class/scsi_device/1:0:0:0/device
> /sys/class/scsi_device/0:0:0:0/device
> /sys/class/scsi_host/host1/device
> /sys/class/scsi_host/host0/device
> /sys/class/net/eth0/device
> /sys/class/net/eth1/device
> /sys/class/input/input1/ts0/device
> /sys/class/input/input1/mouse0/device
> /sys/class/input/input1/event1/device
> /sys/class/input/input1/device
> /sys/class/input/input0/event0/device
> /sys/class/input/input0/device
> {pts/1}% uname -a
> Linux cooker 2.6.20-rc5-1avb #10 Sat Jan 13 14:05:34 MSK 2007 i686 Pentium
> III (Coppermine) GNU/Linux

Because I haven't finished converting all of the different usages of
struct class_device to struct device just yet.  When that happens, those
links go away, as the /sys/class/foo_class/foo is a symlink itself into
the /sys/devices/ tree.

If you look in the -mm tree there is a patch for the network devices,
and I have patches in my tree (but not -mm) for pcmcia, usb_host,
usb_device, and input.  These patches still need a bit of work before
sending them on to their relative maintainers for acceptance.

Hope this helps explain things,

greg k-h
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: No more "device" symlinks for classes

2007-01-13 Thread Andrey Borzenkov
Pierre Ossman wrote:

> Hi guys,
> 
> I just wanted to know the rationale behind
> 99ef3ef8d5f2f5b5312627127ad63df27c0d0d05 (no more "device" symlink in
> class devices). I thought that was a rather convenient way of finding
> which physical device the class device was coupled to.
> 

Actually I wonder why those links still present even when I told system not
to create them?

{pts/1}% grep DEPRE /boot/config
# CONFIG_SYSFS_DEPRECATED is not set
# CONFIG_PM_SYSFS_DEPRECATED is not set
{pts/1}% find /sys/class -name device
/sys/class/pcmcia_socket/pcmcia_socket2/device
/sys/class/pcmcia_socket/pcmcia_socket1/device
/sys/class/pcmcia_socket/pcmcia_socket0/device
/sys/class/usb_device/usbdev1.1/device
/sys/class/usb_host/usb_host1/device
/sys/class/scsi_disk/0:0:0:0/device
/sys/class/scsi_device/1:0:0:0/device
/sys/class/scsi_device/0:0:0:0/device
/sys/class/scsi_host/host1/device
/sys/class/scsi_host/host0/device
/sys/class/net/eth0/device
/sys/class/net/eth1/device
/sys/class/input/input1/ts0/device
/sys/class/input/input1/mouse0/device
/sys/class/input/input1/event1/device
/sys/class/input/input1/device
/sys/class/input/input0/event0/device
/sys/class/input/input0/device
{pts/1}% uname -a
Linux cooker 2.6.20-rc5-1avb #10 Sat Jan 13 14:05:34 MSK 2007 i686 Pentium
III (Coppermine) GNU/Linux

-andrey

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: No more "device" symlinks for classes

2007-01-13 Thread Kay Sievers
On Sun, 2007-01-14 at 01:29 +0100, Pierre Ossman wrote:
> Kay Sievers wrote:
> >
> > The plan is to have a single unified tree at /sys/devices, where all
> > device-directories live below their parents, and /sys/class contains
> > only symlinks pointing into this single tree, just like /sys/bus.
> >
> > People want to stack class-devices, but this leads to a /sys/devices
> > tree and several small trees spread around in /sys/class. These trees
> > need to be connected by "device"-links and the "class:"-links, which
> > just doesn't make much sense if you can have one single tree with the
> > same information.
> >
> > In the unified tree, the "device"-link will always just point to the
> > parent device, that's why there is a config option to disable these
> > links and test current software not to depend on it.
> >
> I'm not sure I completely follow. Should an application look at the
> symlink (e.g. /sys/class/fooclass/foodev -> /sys/devices/...) and follow
> that one level up? If so, then this sounds a bit complicated. Especially
> from shell scripts.

We would have one single tree at /sys/devices, and always flat
classification without hierarchy at /sys/class and /sys/bus. If you
enter the device-tree by starting at /sys/class, you get the full path
to the device by reading the link, and get all the device's
dependencies(parents) in the devpath of the device,

I can't see any problem stripping the last element of a path with a
shell script. It's all implemented in current udev and HAL for quite
some time and it's pretty easy.

Kay

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: No more "device" symlinks for classes

2007-01-13 Thread Pierre Ossman
Kay Sievers wrote:
>
> The plan is to have a single unified tree at /sys/devices, where all
> device-directories live below their parents, and /sys/class contains
> only symlinks pointing into this single tree, just like /sys/bus.
>
> People want to stack class-devices, but this leads to a /sys/devices
> tree and several small trees spread around in /sys/class. These trees
> need to be connected by "device"-links and the "class:"-links, which
> just doesn't make much sense if you can have one single tree with the
> same information.
>
> In the unified tree, the "device"-link will always just point to the
> parent device, that's why there is a config option to disable these
> links and test current software not to depend on it.
>
>   

I'm not sure I completely follow. Should an application look at the
symlink (e.g. /sys/class/fooclass/foodev -> /sys/devices/...) and follow
that one level up? If so, then this sounds a bit complicated. Especially
from shell scripts.

Rgds

-- 
 -- Pierre Ossman

  Linux kernel, MMC maintainerhttp://www.kernel.org
  PulseAudio, core developer  http://pulseaudio.org
  rdesktop, core developer  http://www.rdesktop.org

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: No more "device" symlinks for classes

2007-01-13 Thread Kay Sievers
On Sun, 2007-01-14 at 00:51 +0100, Pierre Ossman wrote:
> I just wanted to know the rationale behind
> 99ef3ef8d5f2f5b5312627127ad63df27c0d0d05 (no more "device" symlink in
> class devices). I thought that was a rather convenient way of finding
> which physical device the class device was coupled to.

The plan is to have a single unified tree at /sys/devices, where all
device-directories live below their parents, and /sys/class contains
only symlinks pointing into this single tree, just like /sys/bus.

People want to stack class-devices, but this leads to a /sys/devices
tree and several small trees spread around in /sys/class. These trees
need to be connected by "device"-links and the "class:"-links, which
just doesn't make much sense if you can have one single tree with the
same information.

In the unified tree, the "device"-link will always just point to the
parent device, that's why there is a config option to disable these
links and test current software not to depend on it.

There was a long discussion on lkml about all that, maybe a year ago,
while converting "input".

Thanks,
Kay

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/