Re: Ocfs2 performance bugs of doom

From: Andrew Morton
Date: Sat Mar 04 2006 - 02:36:21 EST


Daniel Phillips <phillips@xxxxxxxxxx> 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?

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