[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