Re: [PATCH 1/3] jump label: add enabled/disabled state to jumplabel key entries

From: Peter Zijlstra
Date: Wed Nov 24 2010 - 10:11:53 EST


On Wed, 2010-11-24 at 09:54 -0500, Jason Baron wrote:
> On Wed, Nov 24, 2010 at 09:20:09AM +0100, Peter Zijlstra wrote:
> > On Tue, 2010-11-23 at 16:27 -0500, Jason Baron wrote:
> > > struct hlist_head modules;
> > > unsigned long key;
> > > + u32 nr_entries : 31,
> > > + enabled : 1;
> > > };
> >
> > I still don't see why you do this, why not simply mandate that the key
> > is of type atomic_t* and use *key as enabled state?
> >
>
> Because I want to use *key as a pointer directly to 'struct jump_label_entry'.
> In this way jump_label_enable(), jump_label_disable(), become O(1) operations.
> That way we don't need any hashing.

But but but, you're doing a friggin stop_machine to poke text, that's
way more expensive than anything else.

You can do away with the hash by using the bsearch stuff Andi has been
proposing.

Also, I'd actually like to have more than 1 bit of storage, I'm using it
as a general refcount.


--
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/