From: Kay Sievers <kay.sievers@vrfy.org>
To: "Eric W. Biederman" <ebiederm@xmission.com>
Cc: Greg Kroah-Hartman <gregkh@suse.de>, Greg KH <greg@kroah.com>,
linux-kernel@vger.kernel.org, Tejun Heo <tj@kernel.org>,
Cornelia Huck <cornelia.huck@de.ibm.com>,
linux-fsdevel@vger.kernel.org,
Eric Dumazet <eric.dumazet@gmail.com>,
Benjamin LaHaise <bcrl@lhnet.ca>, Serge Hallyn <serue@us.ibm.com>,
netdev@vger.kernel.org
Subject: Re: [PATCH 0/6] tagged sysfs support
Date: Wed, 31 Mar 2010 07:51:49 +0200 [thread overview]
Message-ID: <s2hac3eb2511003302251rcbae8767ne21e9daf1546c849@mail.gmail.com> (raw)
In-Reply-To: <m14ojxh0mz.fsf@fess.ebiederm.org>
On Wed, Mar 31, 2010 at 01:04, Eric W. Biederman <ebiederm@xmission.com> wrote:
> Kay Sievers <kay.sievers@vrfy.org> writes:
>> On Tue, Mar 30, 2010 at 20:30, Eric W. Biederman <ebiederm@xmission.com> wrote:
>>>
>>> The main short coming of using multiple network namespaces today
>>> is that only network devices for the primary network namespaces
>>> can be put in the kobject layer and sysfs.
>>>
>>> This is essentially the earlier version of this patchset that was
>>> reviewed before, just now on top of a version of sysfs that doesn't
>>> need cleanup patches to support it.
>>
>> Just to check if we are not in conflict with planned changes, and how
>> to possibly handle them:
>>
>> There is the plan and ongoing work to unify classes and buses, export
>> them at /sys/subsystem in the same layout of the current /sys/bus/.
>> The decision to export buses and classes as two different things
>> (which they aren't) is the last major piece in the sysfs layout which
>> needs to be fixed.
>
> Interesting. We will symlinks ie:
> /sys/class -> /sys/subsystem
> /sys/bus -> /sys/subsystem
> to keep from breaking userspace.
Yeah, /sys/bus/, which is the only sane layout of the needlessly
different 3 versions of the same thing (bus, class, block).
/sys/bus/<subsys> can just be a plain symlinks to the
/sys/subsystem/<subsys> directories.
/sys/class/<subsys> *could* be a symlink to the
/sys/subsystem/<subsys>/devices/ directory, but we really don't want
to continue to stupidly mix subsystem-wide control files with device
lists anymore. The "devices" directory needs to be a strict list of
devices, not some collection of random stuff, that it is today. :)
So we either leave all the conceptually broken class attributes behind
us, and put them at the /sys/subsystem/<subsys>/ level only, or we
need to create the /sys/class/<subsys>/* stuff all as symlinks like we
do today. I expect, we have to create /sys/class as we do today.
Another problem to solve is that sysfs does not allow us to symlink
regular files, only directories, so we can currently not create the
class-wide attributes as symlinks to the proper file in
/sys/subsystem/.
>> It would mean that /sys/subsystem/net/devices/* would look like
>> /sys/class/net/* today. But at the /sys/subsystem/net/ directory could
>> be global network-subsystem-wide control files which would need to be
>> namespaced too. (The network subsystem does not use subsytem-global
>> files today, but a bunch of other classes do.)
>>
>> This could be modeled into the current way of doing sysfs namespaces?
>> A /sys/bus/<subsystem>/ directory hierarchy would need to be
>> namespaced, not just a single plain directory with symlinks. Would
>> that work?
>
> I'm not entirely clear on what you are doing but it all sounds like it
> will fit within what I am doing.
The goal is to unify the 3 needlessly different versions of "device
lists of the same subsystem". We have /sys/class, /sys/bus,
/sys/block, and all of them will be unified at /sys/subsystem/ leaving
the old names as compat links only. Unlike block and class, the
/sys/subsystem/<subsys> directory can be extended with custom
subdirectories and files, without mixing random files into device
lists.
With /sys/subsystem/, userspace can uniquely identify and find all
devices at /sys/<subsys>/devices/<device-name>/ with only the
subsystem and the device name.
All devices in /sys/devices already have a symlink called "subsystem"
which will point back to the corresponding /sys/subsystem/<subsys>
directory, and the event environment already contains a variable
SUBSYSTEM with the name.
That would be the first time sysfs device interfaces have some idea of
consistency. :)
> Right now I have /sys/class/net,
> /sys/devices/virtual/net and a bunch of other net directories becoming
> tagged and only showing up in the appropriately mounted sysfs. We
> track them all in the class kset and as long as we extend that capability
> when the subsystem change happens in sysfs all should be well.
Ok, sounds good.
> Today we have /sys/class/net/bonding_master. For now I have that as
> an untagged but the implementation is aware of which network namespace
> your current process is in. Thinking about that a little more it
> would be better to make that file tagged so that userspace can see
> different versions for the different network namespaces. Joy.
Yeah, that might make more sense in the end.
> I expect other control files will be the same.
Sounds like, yes.
> In general it doesn't make sense to add control files for networking.
> as they easily conflict with legal network device names and thus create
> the possibility of breaking someones userspace.
Yeah, it did not makes sense it the first place to mix devices lists
with global attributes. It's a real mess what people do in sysfs.
Thanks,
Kay
next prev parent reply other threads:[~2010-03-31 5:51 UTC|newest]
Thread overview: 82+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-03-30 18:30 [PATCH 0/6] tagged sysfs support Eric W. Biederman
2010-03-30 18:31 ` [PATCH 1/6] sysfs: Basic support for multiple super blocks Eric W. Biederman
2010-03-30 19:23 ` Eric Dumazet
2010-03-30 23:50 ` [PATCH 7/6] sysfs: Remove double free sysfs_get_sb Eric W. Biederman
2010-03-31 5:01 ` [PATCH 1/6] sysfs: Basic support for multiple super blocks Serge E. Hallyn
2010-03-31 5:01 ` Serge E. Hallyn
2010-03-31 5:41 ` Tejun Heo
2010-03-31 5:51 ` Eric W. Biederman
2010-03-31 13:47 ` Serge E. Hallyn
2010-03-31 14:02 ` Eric W. Biederman
2010-04-05 7:45 ` Tejun Heo
2010-04-29 20:29 ` patch sysfs-basic-support-for-multiple-super-blocks.patch added to gregkh-2.6 tree gregkh
2010-03-30 18:31 ` [PATCH 2/6] kobj: Add basic infrastructure for dealing with namespaces Eric W. Biederman
2010-04-29 20:29 ` patch kobj-add-basic-infrastructure-for-dealing-with-namespaces.patch added to gregkh-2.6 tree gregkh
2010-03-30 18:31 ` [PATCH 3/6] sysfs: Implement sysfs tagged directory support Eric W. Biederman
2010-03-31 2:43 ` Serge E. Hallyn
2010-03-31 3:38 ` Eric W. Biederman
2010-03-31 4:02 ` Serge E. Hallyn
2010-03-31 4:23 ` Eric W. Biederman
2010-03-31 4:53 ` Serge E. Hallyn
2010-03-31 6:49 ` Tejun Heo
2010-03-31 7:43 ` Eric W. Biederman
2010-03-31 8:17 ` Tejun Heo
2010-03-31 8:22 ` Tejun Heo
2010-03-31 9:39 ` Eric W. Biederman
2010-04-05 8:17 ` Tejun Heo
2010-04-29 20:29 ` patch sysfs-implement-sysfs-tagged-directory-support.patch added to gregkh-2.6 tree gregkh
2010-04-30 4:18 ` Tejun Heo
2010-04-30 4:45 ` Greg KH
2010-04-30 5:24 ` Eric W. Biederman
2010-04-30 5:37 ` Tejun Heo
2010-04-30 6:12 ` Tejun Heo
2010-04-30 14:29 ` Serge E. Hallyn
2010-04-30 15:22 ` Tejun Heo
2010-04-30 15:43 ` Serge E. Hallyn
2010-04-30 15:58 ` Greg KH
2010-03-30 18:31 ` [PATCH 4/6] sysfs: Add support for tagged directories with untagged members Eric W. Biederman
2010-04-29 20:29 ` patch sysfs-add-support-for-tagged-directories-with-untagged-members.patch added to gregkh-2.6 tree gregkh
2010-03-30 18:31 ` [PATCH 5/6] sysfs: Implement sysfs_delete_link Eric W. Biederman
2010-04-29 20:29 ` patch sysfs-implement-sysfs_delete_link.patch added to gregkh-2.6 tree gregkh
2010-03-30 18:31 ` [PATCH 6/6] driver core: Implement ns directory support for device classes Eric W. Biederman
2010-04-29 20:29 ` patch driver-core-implement-ns-directory-support-for-device-classes.patch added to gregkh-2.6 tree gregkh
2010-03-30 18:53 ` [PATCH 0/6] tagged sysfs support Kay Sievers
2010-03-30 23:04 ` Eric W. Biederman
2010-03-31 5:51 ` Kay Sievers [this message]
2010-03-31 6:25 ` Tejun Heo
2010-03-31 6:52 ` Eric W. Biederman
2010-04-03 0:58 ` Ben Hutchings
2010-04-03 8:35 ` Kay Sievers
2010-04-03 16:05 ` Ben Hutchings
2010-04-03 16:35 ` Kay Sievers
2010-03-31 17:21 ` Serge E. Hallyn
2010-03-31 18:09 ` Eric W. Biederman
2010-05-05 0:35 ` [PATCH 0/6] netns support in the kobject layer Eric W. Biederman
2010-05-06 20:04 ` Greg KH
2010-05-16 6:26 ` David Miller
2010-05-17 18:11 ` Greg KH
2010-05-17 20:58 ` Eric W. Biederman
2010-05-17 21:03 ` Greg KH
2010-05-17 22:37 ` Eric W. Biederman
2010-05-17 22:54 ` Greg KH
2010-05-17 23:48 ` David Miller
2010-05-18 4:08 ` Greg KH
2010-05-18 4:21 ` David Miller
2010-05-05 0:36 ` [PATCH 1/6] kobject: Send hotplug events in all network namespaces Eric W. Biederman
2010-05-20 18:10 ` patch kobject-send-hotplug-events-in-all-network-namespaces.patch added to gregkh-2.6 tree gregkh
2010-05-05 0:36 ` [PATCH 2/6] netns: Teach network device kobjects which namespace they are in Eric W. Biederman
2010-05-05 15:17 ` Serge E. Hallyn
2010-05-05 19:56 ` Eric W. Biederman
2010-05-05 22:01 ` Serge E. Hallyn
2010-05-17 4:59 ` [PATCH 7/6] net/sysfs: Fix the bitrot in network device kobject namespace support Eric W. Biederman
2010-05-17 5:07 ` David Miller
2010-05-20 18:10 ` patch netns-teach-network-device-kobjects-which-namespace-they-are-in.patch added to gregkh-2.6 tree gregkh
2010-05-05 0:36 ` [PATCH 3/6] netlink: Implment netlink_broadcast_filtered Eric W. Biederman
2010-05-20 18:10 ` patch netlink-implment-netlink_broadcast_filtered.patch added to gregkh-2.6 tree gregkh
2010-05-05 0:36 ` [PATCH 4/6] kobj: Send hotplug events in the proper namespace Eric W. Biederman
2010-05-20 18:10 ` patch kobj-send-hotplug-events-in-the-proper-namespace.patch added to gregkh-2.6 tree gregkh
2010-05-05 0:36 ` [PATCH 5/6] hotplug: netns aware uevent_helper Eric W. Biederman
2010-05-20 18:10 ` patch hotplug-netns-aware-uevent_helper.patch added to gregkh-2.6 tree gregkh
2010-05-05 0:36 ` [PATCH 6/6] net: Expose all network devices in a namespaces in sysfs Eric W. Biederman
2010-05-20 18:10 ` patch net-expose-all-network-devices-in-a-namespaces-in-sysfs.patch added to gregkh-2.6 tree gregkh
2010-05-20 17:47 ` [PATCH 0/6] tagged sysfs support 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=s2hac3eb2511003302251rcbae8767ne21e9daf1546c849@mail.gmail.com \
--to=kay.sievers@vrfy.org \
--cc=bcrl@lhnet.ca \
--cc=cornelia.huck@de.ibm.com \
--cc=ebiederm@xmission.com \
--cc=eric.dumazet@gmail.com \
--cc=greg@kroah.com \
--cc=gregkh@suse.de \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=netdev@vger.kernel.org \
--cc=serue@us.ibm.com \
--cc=tj@kernel.org \
/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;
as well as URLs for NNTP newsgroup(s).