lkml.org 
[lkml]   [2009]   [Oct]   [29]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH 2/3] Sysfs: Allow directories to be populated dynamically
Matthew Wilcox wrote:
> On Thu, Oct 29, 2009 at 05:20:00PM +0100, Tejun Heo wrote:
>> This will increase the size of struct sysfs_dirent by three pointers
>> which is considerable. Bloating the size of sysfs_dirent can waste
>> large amount of memory on machines with a lot of disks.
>
> No it won't. It's in a union with sysfs_inode_attrs which contains a
> struct iattr, which is at least 52 bytes.

struct sysfs_dirent {
atomic_t s_count;
atomic_t s_active;
struct sysfs_dirent *s_parent;
struct sysfs_dirent *s_sibling;
const char *s_name;
union {
struct sysfs_elem_dir s_dir;
struct sysfs_elem_symlink s_symlink;
struct sysfs_elem_attr s_attr;
struct sysfs_elem_bin_attr s_bin_attr;
};
unsigned int s_flags;
ino_t s_ino;
umode_t s_mode;
struct sysfs_inode_attrs *s_iattr;
^^
};
>> The implementation looks quite scary to me. Is this the only way to
>> do this? It it because trying to create individual entries for msix
>> will end up creating too many sysfs entries? If so, how many are we
>> talking about?
>
> While that's the original motivation, shrinking the amount of memory
> taken by sysfs overall is a worthwhile achievement, don't you think?

It feels a bit too convoluted to me. sysfs is already pretty
convoluted and adding yet more convolution would require pretty good
justification, so I'm curious about the numbers.

Thanks.

--
tejun


\
 
 \ /
  Last update: 2009-10-29 17:29    [from the cache]
©2003-2011 Jasper Spaans