[Ocfs2-devel] Ocfs2 performance bugs of doom
    Andrew Morton 
    akpm at osdl.org
       
    Sat Mar  4 01:37:32 CST 2006
    
    
  
Daniel Phillips <phillips at google.com> wrote:
>
> @@ -103,31 +103,28 @@ struct dlm_lock_resource * __dlm_lookup_
>    					 const char *name,
>    					 unsigned int len)
>    {
>  -	unsigned int hash;
>  -	struct hlist_node *iter;
>  -	struct dlm_lock_resource *tmpres=NULL;
>    	struct hlist_head *bucket;
>  +	struct hlist_node *list;
> 
>    	mlog_entry("%.*s\n", len, name);
> 
>    	assert_spin_locked(&dlm->spinlock);
>  +	bucket = dlm->lockres_hash + full_name_hash(name, len) % DLM_HASH_BUCKETS;
> 
>  -	hash = full_name_hash(name, len);
err, you might want to calculate that hash outside the spinlock.
Maybe have a lock per bucket, too.
A 1MB hashtable is verging on comical.  How may data are there in total?
    
    
More information about the Ocfs2-devel
mailing list