linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Tejun Heo <htejun@gmail.com>
To: "Eric W. Biederman" <ebiederm@xmission.com>
Cc: Benjamin Thery <benjamin.thery@bull.net>,
	Greg Kroah-Hartman <gregkh@suse.de>,
	Andrew Morton <akpm@linux-foundation.org>,
	Daniel Lezcano <dlezcano@fr.ibm.com>,
	Serge Hallyn <serue@us.ibm.com>,
	linux-kernel@vger.kernel.org, Al Viro <viro@ftp.linux.org.uk>,
	Linux Containers <containers@lists.osdl.org>
Subject: Re: [PATCH 06/11] sysfs: Implement sysfs tagged directory support.
Date: Tue, 01 Jul 2008 19:30:41 +0900	[thread overview]
Message-ID: <486A0751.9080602@gmail.com> (raw)
In-Reply-To: <m1ej6enep7.fsf@frodo.ebiederm.org>

Hello,

Eric W. Biederman wrote:
>> Having enumed tag types limits that a sb can have map to only one tag
>> but it doesn't really prevent multiple possibly visible entries which is
>> the real unnecessary degrees of freedom.  That said, I don't really
>> think it's an issue.
> 
> Having a single tag type per directory and thus a single tag visible per
> directory does prevent multiple possible visible entries.
> 
> That is we can check when we add the sd if there will be a conflict in
> the directory.

Yeap, that we can do.

>> I still would prefer something which is more generic.  The abstraction
>> is clearer too.  A sb shows untagged and a set of tags.  A sd can either
>> be untagged or tagged (a single tag).
> 
> That is the abstraction now.
> 
> The only difference is how we represent the set of tags.
> I use and array of the valid tags.
> You use a bitmap.
> 
> And array allows the lookup of the tag I am looking for before
> I search for the sd.  An bitmap requires me to compare each entry.

How so?  sysfs_sb->bitmap which contains enough bits for all the defined
tags and determining whether a sd should be shown or not is as simple as
single test_bit.

> For me that is a deal breaker.  Currently in certain pathological
> cases we have scaling issues with sysctl and sysfs that we can
> have enormous directories that start running slowly.  To fix
> lookup performance requires that we know the full name before
> we do the directory search which is the name string and the
> tag.
> 
> So I having a type of tag as being of fundamental importance in
> the interface now so we don't need to refactor all of the users
> later.  In addition to the fact that we need the type to know
> how to set the tags when mounting a superblock and when
> given a new kobject to create an sd for.
> 
> We could make the types dynamic rather then a static enumeration but
> that seems needless complexity for now.

What I'm feeling unease about is the extra level of abstraction added by
tag types.  A sd is given a tag.  A sb shows a set of tags.  The most
straight forward to implement that is to give sd a tag and test the tag
against sb's set of tags.  The type is added because pointer tag
requires sequential matching which is usually best to avoid.  It's
nothing fundamental.  It's an extra baggage.

>> Using ida (or idr if a pointer for private data is necessary) is really
>> easy.  It'll probably take a few tens of lines of code.  That said, I
>> don't think I have enough rationale to nack what you described.  So, as
>> long as the tags are made static, I won't object.
> 
> Sounds good.  The only justification I can think of for ida tags is that
> they are smaller, and so can keep the sysfs_dirents smaller.    Which
> occasionally is a significant concern.  Still that should be an optimization
> that we can apply later, as it is not a structural difference in the code.
> 
> Just to confirm.  Do you the two operations:
>   mount_tag - called only when the sb is mounted 
>   kobject_tag - called when we create new sd or rename an sd
> 
> Cause you to view an the tags as dynamic?

The thing is that I don't really see why there's tagged_dir_ops at all.
 What's needed is tagged sd's and sb's which can show subset of those
tags, so adding callback ops for tags just doesn't make much sense to
me.  The interface should ideally be...

1. alloc/release tag
2. set / change / remove tag on sd
3. enable / disable tag on a sb

This has been my opinion from the beginning.  Unless the tags need to be
changed dynamically on demand (which I hope is not the case), there just
is plainly no reason to have callbacks for tags.

Thanks.

-- 
tejun

  reply	other threads:[~2008-07-01 10:31 UTC|newest]

Thread overview: 138+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-06-18 17:07 [PATCH 00/11] sysfs tagged directories V6 Benjamin Thery
2008-06-18 17:07 ` [PATCH 01/11] sysfs: Support for preventing unmounts Benjamin Thery
2008-06-18 17:44   ` Dave Hansen
2008-06-18 20:12     ` Eric W. Biederman
2008-06-19  8:54       ` Benjamin Thery
2008-06-19 16:32       ` Dave Hansen
2008-06-19 20:19         ` Benjamin Thery 
2008-06-18 17:07 ` [PATCH 02/11] sysfs: sysfs_get_dentry add a sb parameter Benjamin Thery
2008-06-18 17:07 ` [PATCH 03/11] sysfs: Implement __sysfs_get_dentry Benjamin Thery
2008-06-18 17:08 ` [PATCH 04/11] sysfs: Rename Support multiple superblocks Benjamin Thery
2008-06-18 17:08 ` [PATCH 05/11] sysfs: sysfs_chmod_file handle " Benjamin Thery
2008-06-22  4:46   ` Tejun Heo
2008-06-23 21:42     ` Daniel Lezcano
2008-06-24  4:45       ` Tejun Heo
2008-06-24 10:39         ` Daniel Lezcano
2008-06-24 13:37         ` Daniel Lezcano
2008-06-25 12:31           ` Tejun Heo
2008-06-18 17:08 ` [PATCH 06/11] sysfs: Implement sysfs tagged directory support Benjamin Thery
2008-06-23  2:05   ` Tejun Heo
2008-06-26 20:21     ` Eric W. Biederman
2008-06-29  3:51       ` Tejun Heo
2008-06-30 18:56         ` Eric W. Biederman
2008-06-30 21:44           ` Serge E. Hallyn
2008-07-01  7:50             ` Eric W. Biederman
2008-07-01  6:47           ` Tejun Heo
2008-07-01  9:20             ` Eric W. Biederman
2008-07-01 10:30               ` Tejun Heo [this message]
2008-07-01 12:30                 ` Eric W. Biederman
2008-07-02  3:24                   ` Tejun Heo
2008-07-02  3:53                     ` Eric W. Biederman
2008-07-02  4:37                       ` Tejun Heo
2008-07-02 16:49                         ` Eric W. Biederman
2008-07-03  0:15                           ` Greg KH
2008-07-03  3:18                           ` Tejun Heo
2008-07-03  5:11                             ` Eric W. Biederman
2008-07-03 10:56                               ` Daniel Lezcano
2008-07-03 12:27                                 ` Eric W. Biederman
2008-07-03 12:37                                   ` Benjamin Thery
2008-07-03 19:57                                     ` Eric W. Biederman
2008-07-03 12:55                                   ` Daniel Lezcano
2008-07-03 15:58                                   ` Tejun Heo
2008-07-03 18:29                                     ` Daniel Lezcano
2008-07-03 20:08                                     ` Eric W. Biederman
2008-07-04  0:48                                     ` [PATCH 00/15] sysfs support for namespaces Eric W. Biederman
2008-07-04  1:05                                       ` [PATCH 01/15] kobject: Cleanup kobject_rename and !CONFIG_SYSFS Eric W. Biederman
2008-07-04  1:07                                         ` [PATCH 02/15] sysfs: Support for preventing unmounts Eric W. Biederman
2008-07-04  1:08                                           ` [PATCH 03/15] sysfs: sysfs_get_dentry add a sb parameter Eric W. Biederman
2008-07-04  1:09                                             ` [PATCH 04/15] sysfs: Implement __sysfs_get_dentry Eric W. Biederman
2008-07-04  1:10                                               ` [PATCH 05/15] sysfs: Rename Support multiple superblocks Eric W. Biederman
2008-07-04  1:11                                                 ` [PATCH 06/15] Introduce sysfs_sd_setattr and fix sysfs_chmod Eric W. Biederman
2008-07-04  1:13                                                   ` [PATCH 07/15] sysfs: sysfs_chmod_file handle multiple superblocks Eric W. Biederman
2008-07-04  1:14                                                     ` [PATCH 08/15] sysfs: Make sysfs_mount static once again Eric W. Biederman
2008-07-04  1:16                                                       ` [PATCH 09/15] sysfs: Implement sysfs tagged directory support Eric W. Biederman
2008-07-04  1:17                                                         ` [PATCH 10/15] sysfs: Merge sysfs_rename_dir and sysfs_move_dir Eric W. Biederman
2008-07-04  1:18                                                           ` [PATCH 11/15] sysfs: Implement sysfs_delete_link and sysfs_rename_link Eric W. Biederman
2008-07-04  1:20                                                             ` [PATCH 12/15] driver core: Implement tagged directory support for device classes Eric W. Biederman
2008-07-04  1:21                                                               ` [PATCH 13/15] Revert "netns: Fix device renaming for sysfs" Eric W. Biederman
2008-07-04  1:22                                                                 ` [PATCH 14/15] netns: Enable tagging for net_class directories in sysfs Eric W. Biederman
2008-07-04  1:23                                                                   ` [PATCH 15/15] sysfs: user namespaces: fix bug with clone(CLONE_NEWUSER) with fairsched Eric W. Biederman
2008-07-04  7:50                                                               ` [PATCH 12/15] driver core: Implement tagged directory support for device classes Tejun Heo
2008-07-04 13:31                                                                 ` Eric W. Biederman
2008-07-04 13:57                                                                   ` Tejun Heo
2008-07-04 16:12                                                                     ` Greg KH
2008-07-04 21:49                                                                       ` Eric W. Biederman
2008-07-14  1:54                                                                       ` Eric W. Biederman
2008-07-16  3:25                                                                         ` Tejun Heo
2008-07-16  5:41                                                                           ` Eric W. Biederman
2008-07-16  5:50                                                                             ` Tejun Heo
2008-07-16  6:32                                                                               ` Eric W. Biederman
2008-07-16  6:48                                                                                 ` Tejun Heo
2008-07-16  7:02                                                                                   ` Tejun Heo
2008-07-16 19:07                                                                                     ` Eric W. Biederman
2008-07-16 21:09                                                                                   ` Eric W. Biederman
2008-07-17 23:08                                                                           ` Greg KH
2008-07-18 12:41                                                                             ` Tejun Heo
2008-07-18 18:49                                                                               ` Greg KH
2008-07-18 20:19                                                                                 ` Eric W. Biederman
2008-07-19  1:07                                                                                 ` Tejun Heo
2008-08-03  6:59                                                                                 ` Eric W. Biederman
2008-09-11 12:45                                                                                   ` Jiri Slaby
2008-09-11 13:05                                                                                     ` Benjamin Thery
2008-09-12  6:32                                                                                       ` Jiri Slaby
2008-07-04 22:00                                                                     ` Eric W. Biederman
2008-08-20  2:17                                                         ` [PATCH 09/15] sysfs: Implement sysfs tagged directory support Greg KH
2008-08-20  6:58                                                           ` Eric W. Biederman
2008-08-21  6:31                                                           ` [PATCH 0/8] sysfs namespace support Eric W. Biederman
2008-08-21  6:33                                                             ` [PATCH 1/8] sysfs: Implement sysfs tagged directory support Eric W. Biederman
2008-08-21  6:34                                                               ` [PATCH 2/8] sysfs: Merge sysfs_rename_dir and sysfs_move_dir Eric W. Biederman
2008-08-21  6:35                                                                 ` [PATCH 3/8] sysfs: Implement sysfs_delete_link and sysfs_rename_link Eric W. Biederman
2008-08-21  6:36                                                                   ` [PATCH 5/8] sysfs: Remove sysfs_create_link_nowarn Eric W. Biederman
2008-08-21  6:38                                                                     ` [PATCH 6/8] Revert "netns: Fix device renaming for sysfs" Eric W. Biederman
2008-08-21  6:39                                                                       ` [PATCH 7/8] netns: Enable tagging for net_class directories in sysfs Eric W. Biederman
2008-08-21  6:40                                                                         ` [PATCH 8/8] sysfs: user namespaces: fix bug with clone(CLONE_NEWUSER) with fairsched Eric W. Biederman
2008-08-21  6:47                                                                         ` [PATCH 7/8] netns: Enable tagging for net_class directories in sysfs David Miller
2008-08-21  6:47                                                                       ` [PATCH 6/8] Revert "netns: Fix device renaming for sysfs" David Miller
2008-08-21  6:37                                                                   ` [PATCH 4/8] driver core: Implement tagged directory support for device classes Eric W. Biederman
2008-08-27 15:18                                                               ` [PATCH 1/8] sysfs: Implement sysfs tagged directory support Benjamin Thery
2008-09-02 13:54                                                                 ` Mark Ryden
2008-09-02 14:03                                                                   ` Benjamin Thery
2008-09-02 17:01                                                                     ` Greg KH
2008-09-04  5:33                                                                       ` David Shwatrz
2008-09-04  6:44                                                                         ` Benjamin Thery
2008-09-08 18:39                                                                           ` Mark Ryden
2008-10-07 16:39                                                                           ` Mark Ryden
2008-10-07 16:48                                                                             ` Greg KH
2008-10-07 20:31                                                                               ` Eric W. Biederman
2008-10-07 21:09                                                                                 ` Greg KH
2008-10-07 22:27                                                                                   ` Eric W. Biederman
2008-10-08 13:00                                                                                     ` Christoph Hellwig
2008-10-14  3:20                                                                                       ` Eric W. Biederman
2008-10-07 16:52                                                                             ` Daniel Lezcano
2008-08-21  6:37                                                             ` [PATCH 0/8] sysfs namespace support David Miller
2008-07-04  6:44                                                       ` [PATCH 08/15] sysfs: Make sysfs_mount static once again Tejun Heo
2008-07-04  6:44                                                     ` [PATCH 07/15] sysfs: sysfs_chmod_file handle multiple superblocks Tejun Heo
2008-07-04  6:40                                                   ` [PATCH 06/15] Introduce sysfs_sd_setattr and fix sysfs_chmod Tejun Heo
2008-07-04  6:33                                         ` [PATCH 01/15] kobject: Cleanup kobject_rename and !CONFIG_SYSFS Tejun Heo
2008-07-04  1:27                                       ` [PATCH 00/15] sysfs support for namespaces Eric W. Biederman
2008-07-06  4:42                                       ` Eric W. Biederman
2008-07-07 11:41                                         ` Cornelia Huck
2008-07-07 12:22                                           ` Eric W. Biederman
2008-06-18 17:08 ` [PATCH 07/11] sysfs: Implement sysfs_delete_link and sysfs_rename_link Benjamin Thery
2008-06-23  2:13   ` Tejun Heo
2008-06-26 20:24     ` Eric W. Biederman
2008-06-29  3:35       ` Tejun Heo
2008-06-30  3:02         ` Eric W. Biederman
2008-06-18 17:08 ` [PATCH 08/11] driver core: Implement tagged directory support for device classes Benjamin Thery
2008-06-18 17:08 ` [PATCH 09/11] sysfs: add sysfs_ns_exit routine Benjamin Thery
2008-06-18 20:19   ` Eric W. Biederman
2008-06-23  2:16   ` Tejun Heo
2008-06-18 17:09 ` [PATCH 10/11] netns: Enable tagging for net_class directories in sysfs Benjamin Thery
2008-06-23  2:18   ` Tejun Heo
2008-06-18 17:09 ` [PATCH 11/11] sysfs: user namespaces: fix bug with clone(CLONE_NEWUSER) with fairsched Benjamin Thery
2008-06-23  2:18   ` Tejun Heo
2008-06-25 18:44     ` Serge E. Hallyn
2008-06-25 21:11       ` Eric W. Biederman
2008-06-26 13:07         ` Serge E. Hallyn
  -- strict thread matches above, loose matches on Subject: below --
2008-06-06 15:46 [PATCH 00/11] sysfs tagged directories V5 Benjamin Thery
2008-06-06 15:47 ` [PATCH 06/11] sysfs: Implement sysfs tagged directory support Benjamin Thery
2008-05-06 17:30 [RESEND][PATCH 00/11] sysfs tagged directories Benjamin Thery
2008-05-06 17:31 ` [PATCH 06/11] sysfs: Implement sysfs tagged directory support Benjamin Thery

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=486A0751.9080602@gmail.com \
    --to=htejun@gmail.com \
    --cc=akpm@linux-foundation.org \
    --cc=benjamin.thery@bull.net \
    --cc=containers@lists.osdl.org \
    --cc=dlezcano@fr.ibm.com \
    --cc=ebiederm@xmission.com \
    --cc=gregkh@suse.de \
    --cc=linux-kernel@vger.kernel.org \
    --cc=serue@us.ibm.com \
    --cc=viro@ftp.linux.org.uk \
    /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).