lkml.org 
[lkml]   [2010]   [Feb]   [2]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH][RFC] %pd - for printing dentry name


On Tue, 2 Feb 2010, Matthew Wilcox wrote:
>
> How about doing this:
>
> struct qstr {
> - const unsigned char *name;
> + const unsigned char name[0];
> }
>
> struct dentry {
> - struct qstr d_name;
> + struct qstr *d_name;
> - unsigned char d_iname[DNAME_INLINE_LEN_MIN]; /* small names */
> + union {
> + struct qstr d_iname;
> + char pad[DNAME_INLINE_LEN_MIN];
> + };
> }
>
> Doesn't increase the size of struct dentry, and puts the hash and len
> with the name. Increases long name allocations by 8 bytes each.

Conceptually nice, but in practice that's absolutely horrible.

Why? Because now the dentry lookup logic has to follow an additional
pointer just to verify the hash and the length of the name. That's some of
the hottest code we have, and the _last_ thing we want is another pointer
dereference and cache access in the path that looks up the dentry hash
chains.

Or am I missing something? I didn't look at the code.

Linus


\
 
 \ /
  Last update: 2010-02-02 16:59    [W:0.052 / U:2.000 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site