lkml.org 
[lkml]   [2007]   [Mar]   [4]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [rfc][patch] dynamic resizing dentry hash using RCU
    On Sun, Mar 04, 2007 at 08:11:42PM -0800, David Miller wrote:
    > From: Nick Piggin <npiggin@suse.de>
    > Date: Fri, 23 Feb 2007 16:37:43 +0100
    >
    > > So I introduce a new method for resizing hash tables with RCU, and apply
    > > that to the dentry hash.
    >
    > Thanks for doing this work Nick. I'm going to take your ideas
    > and apply them to an ipv4 routing cache dynamic growth patch I
    > worked on a while ago.

    Sounds great, I would be happy to help review it. If we can create a
    bit of common infrastructure, the dcache conversion might become a bit
    more palatable and we could look at other things like the inode hash
    as well.

    > One minor nit:
    >
    > > +struct dentry_hash {
    > > + unsigned int shift;
    > > + unsigned long mask;
    > > + struct hlist_head *table;
    > > +};
    >
    > I don't see any reason to make 'mask' an unsigned long
    > and this makes this structure take up 8 bytes more than
    > necessary on 64-bit.

    You're right, the mask is currently just an int, so my patch should
    not be messing with that. Thanks.

    The other thing you'll have to be careful of when looking at doing
    an implementation, is that I think I forgot to use the RCU accessors
    (rcu_assign_pointer, rcu_dereference) when assigning and loading
    the new/old hash table pointers.

    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2007-03-05 05:31    [W:0.021 / U:89.548 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site