lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite for Android: free password hash cracker in your pocket
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20071210145055.GB7184@2ka.mipt.ru>
Date:	Mon, 10 Dec 2007 17:50:55 +0300
From:	Evgeniy Polyakov <johnpol@....mipt.ru>
To:	Kay Sievers <kay.sievers@...y.org>
Cc:	lkml <linux-kernel@...r.kernel.org>, netdev@...r.kernel.org,
	linux-fsdevel@...r.kernel.org, Greg KH <greg@...ah.com>
Subject: Re: [1/4] DST: Distributed storage documentation.

On Mon, Dec 10, 2007 at 03:31:48PM +0100, Kay Sievers (kay.sievers@...y.org) wrote:
> > I meant that for each new device, it will be placed into
> > /sys/devices/its_name, but it can also be accessed via
> > /sys/bus/dst/devices/
> 
> Still, it looks like a path. :)
> 
> Please don't reference any device directly with a /sys/devices/ path.
> You have to use the subsystem links to the devices
> in /sys/bus/dst/devices/. Devices are free to move around
> in /sys/devices, even during runtime. Yours don't do, but anyway, please
> remove all mentioning of direct access to /sys/devices/.

Ok, I will update documentation to reference /sys/bus/dst/devices
instead of /sys/devices

> Btw, where is the top-level /sys/devices/storage/ coming from? I don't
> see that in the code. We don't accept any new "virtual parents" here.
>
> Your devices will automatically appear in /sys/devices/virtual/dst/, and
> not below your own parent. But that path does not matter anyway, because
> you should only access them from the /sys/bus/dst/devices/ directory.
> 
> And in general please don't claim generic names like "storage" in any
> namespace for a very specific subsystem like this.

It is not a parent - it is an example for device called 'storage', if it
will be called 'testing', then path will be /sys/devices/testing or more
correct /sys/bus/dst/devices/testing :)

> > It is 'dst' bus.
> > 
> > uganda:~/codes# ls -la /sys/devices/staorge/
> > total 0
> > drwxr-xr-x 4 root root    0 2007-12-10 11:46 .
> > drwxr-xr-x 9 root root    0 2007-12-10 11:46 ..
> > -r--r--r-- 1 root root 4096 2007-12-10 11:46 alg
> > lrwxrwxrwx 1 root root    0 2007-12-10 11:46 bus -> ../../bus/dst
> > drwxr-xr-x 3 root root    0 2007-12-10 11:46 n-0-ffff81003e24117
> > -r--r--r-- 1 root root 4096 2007-12-10 11:46 name
> > -r--r--r-- 1 root root 4096 2007-12-10 11:46 nodes
> > drwxr-xr-x 2 root root    0 2007-12-10 11:46 power
> > -rw-r--r-- 1 root root 4096 2007-12-10 11:46 remove_all_nodes
> > lrwxrwxrwx 1 root root    0 2007-12-10 11:46 subsystem -> ../../bus/dst
> > -rw-r--r-- 1 root root 4096 2007-12-10 11:46 uevent
> 
> Ok, how does:
>   ls -l /sys/devices/storage/n-0-ffff81003e24117
> look?

uganda:~/codes# ls -l /sys/devices/storage/n-0-ffff81003ebc220/
total 0
drwxr-xr-x 2 root root    0 2007-12-10 13:23 power
-r--r--r-- 1 root root 4096 2007-12-10 13:30 size
-r--r--r-- 1 root root 4096 2007-12-10 13:30 start
-r--r--r-- 1 root root 4096 2007-12-10 13:30 type
-rw-r--r-- 1 root root 4096 2007-12-10 13:30 uevent


> > uganda:~/codes# ls -l /sys/bus/dst/
> > total 0
> > drwxr-xr-x 2 root root    0 2007-12-10 09:52 devices
> > drwxr-xr-x 2 root root    0 2007-12-10 09:52 drivers
> > -rw-r--r-- 1 root root 4096 2007-12-10 11:46 drivers_autoprobe
> > --w------- 1 root root 4096 2007-12-10 11:46 drivers_probe
> 
> How does:
>   ls -l /sys/bus/dst/devices
> look?

uganda:~/codes# ls -la /sys/bus/dst/devices/
total 0
drwxr-xr-x 2 root root 0 2007-12-10 13:30 .
drwxr-xr-x 4 root root 0 2007-12-10 13:22 ..
lrwxrwxrwx 1 root root 0 2007-12-10 13:30 storage -> ../../../devices/storage


Here 'storage' is just a name for device called 'storage', it can be
anything else.
 
> Further questions:
> Why do you do your own refcounting instead of using kref?

That's because I always used atomic operations as a reference counters
and did not tried krefs :)
They are the same actually (module tricky arches where smp_mb_* are
required), so I can replace them in the next release.

> Why don't you use groups for the attributes?

For 3-4 attributes it is faster to register them in a loop than typing
another structure :)

> Why don't you use default attributes for the device, where you get all
> error handling done by the core.

What is 'default attributes' and for what devices?
All my sysfs files are so much trivial, so they do not need anything
special and I do not see what is error handling you mentioned.

-- 
	Evgeniy Polyakov
--
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

Powered by Openwall GNU/*/Linux Powered by OpenVZ