Re: [ovs-dev] [PATCH v8 01/16] hashtable: introduce a small and naive hashtable

2012-10-30 Thread Tejun Heo
gt; \ > + hash_long(val, bits); > \ > +}) Doesn't the above fit in 80 column. Why is it broken into multiple lines? Also, you probably want () around at least @val. In general, it's a good idea to add () around any macro argument to avoid nasty surprises. Looks goo

Re: [ovs-dev] [PATCH v7 06/16] tracepoint: use new hashtable implementation

2012-10-29 Thread Tejun Heo
On Mon, Oct 29, 2012 at 03:09:36PM -0400, Sasha Levin wrote: > The other thing is whether hash_init() should be called for hashtables > that were created with DEFINE_HASHTABLE(). That point was raised by > Neil Brown last time this series went around, and it seems that no one > objected to the poin

Re: [ovs-dev] [PATCH v7 06/16] tracepoint: use new hashtable implementation

2012-10-29 Thread Tejun Heo
On Mon, Oct 29, 2012 at 11:58:14AM -0700, Tejun Heo wrote: > On Mon, Oct 29, 2012 at 02:53:19PM -0400, Mathieu Desnoyers wrote: > > The argument about hash_init being useful to add magic values in the > > future only works for the cases where a hash table is declared with > &

Re: [ovs-dev] [PATCH v7 06/16] tracepoint: use new hashtable implementation

2012-10-29 Thread Tejun Heo
On Mon, Oct 29, 2012 at 02:53:19PM -0400, Mathieu Desnoyers wrote: > The argument about hash_init being useful to add magic values in the > future only works for the cases where a hash table is declared with > DECLARE_HASHTABLE(). It's completely pointless with DEFINE_HASHTABLE(), > because we coul

Re: [ovs-dev] [PATCH v7 15/16] openvswitch: use new hashtable implementation

2012-10-29 Thread Tejun Heo
Hello, On Mon, Oct 29, 2012 at 02:16:48PM -0400, Mathieu Desnoyers wrote: > This is just one example in an attempt to show why different hash table > users may have different constraints: for a hash table entirely > populated by keys generated internally by the kernel, a random seed > might not be

Re: [ovs-dev] [PATCH v7 01/16] hashtable: introduce a small and naive hashtable

2012-10-29 Thread Tejun Heo
Hello, On Mon, Oct 29, 2012 at 12:14:12PM -0400, Mathieu Desnoyers wrote: > Most of the calls to this initialization function apply it on zeroed > memory (static/kzalloc'd...), which makes it useless. I'd actually be in > favor of removing those redundant calls (as I pointed out in another > email

Re: [ovs-dev] [PATCH v7 08/16] block, elevator: use new hashtable implementation

2012-10-28 Thread Tejun Heo
e is > constant so there's no point in paying the price of an extra dereference when > accessing > it. > > Signed-off-by: Sasha Levin Reviewed-by: Tejun Heo But please reformat commit message to fit inside 80col (preferably 74 or som

Re: [ovs-dev] [PATCH v7 04/16] workqueue: use new hashtable implementation

2012-10-28 Thread Tejun Heo
On Sun, Oct 28, 2012 at 03:02:16PM -0400, Sasha Levin wrote: > Switch workqueues to use the new hashtable implementation. This reduces the > amount of > generic unrelated code in the workqueues. > > Signed-off-by: Sasha Levin Acked-by: Tejun Heo Tha

Re: [ovs-dev] [PATCH v3 01/17] hashtable: introduce a small and naive hashtable

2012-08-24 Thread Tejun Heo
Hello, On Sat, Aug 25, 2012 at 12:59:25AM +0200, Sasha Levin wrote: > Thats the thing, the amount of things of things you can do with a given bucket > is very limited. You can't add entries to any point besides the head (without > walking the entire list). Kinda my point. We already have all the

Re: [ovs-dev] [PATCH v3 01/17] hashtable: introduce a small and naive hashtable

2012-08-24 Thread Tejun Heo
Hello, On Fri, Aug 24, 2012 at 10:53:45PM +0200, Sasha Levin wrote: > Yup, but we could be using the same API for dynamic non-resizable and static > if > we go with the DECLARE/hash_init. We could switch between them (and other > implementations) without having to change the code. I think it's b

Re: [ovs-dev] [PATCH v3 01/17] hashtable: introduce a small and naive hashtable

2012-08-24 Thread Tejun Heo
Hello, Sasha. On Fri, Aug 24, 2012 at 10:11:55PM +0200, Sasha Levin wrote: > > If this implementation is about the common trivial case, why not just > > have the usual DECLARE/DEFINE_HASHTABLE() combination? > > When we add the dynamic non-resizable support, how would DEFINE_HASHTABLE() > look?

Re: [ovs-dev] [PATCH v3 01/17] hashtable: introduce a small and naive hashtable

2012-08-24 Thread Tejun Heo
Hello, Sasha. On Fri, Aug 24, 2012 at 09:47:19PM +0200, Sasha Levin wrote: > > I think this is problematic. It looks exactly like other existing > > DEFINE macros yet what its semantics is different. I don't think > > that's a good idea. > > I can switch that to be DECLARE_HASHTABLE() if the is

Re: [ovs-dev] [PATCH v3 01/17] hashtable: introduce a small and naive hashtable

2012-08-23 Thread Tejun Heo
Hello, Sasha. On Thu, Aug 23, 2012 at 02:24:32AM +0200, Sasha Levin wrote: > > I think the almost trivial nature of hlist hashtables makes this a bit > > tricky and I'm not very sure but having this combinatory explosion is > > a bit dazzling when the same functionality can be achieved by simply >

Re: [ovs-dev] [PATCH v3 04/17] workqueue: use new hashtable implementation

2012-08-22 Thread Tejun Heo
On Wed, Aug 22, 2012 at 04:26:59AM +0200, Sasha Levin wrote: > Switch workqueues to use the new hashtable implementation. This reduces the > amount of > generic unrelated code in the workqueues. > > Signed-off-by: Sasha Levin Acked-by: Tejun Heo Tha

Re: [ovs-dev] [PATCH v3 01/17] hashtable: introduce a small and naive hashtable

2012-08-22 Thread Tejun Heo
Hello, Sasha. On Wed, Aug 22, 2012 at 04:26:56AM +0200, Sasha Levin wrote: > +#define DEFINE_HASHTABLE(name, bits) \ > + struct hlist_head name[HASH_SIZE(bits)]; Shouldn't this be something like the following? #define DEFINE_HASHTABLE(name, bits)

Re: [ovs-dev] [PATCH 01/16] hashtable: introduce a small and naive hashtable

2012-08-14 Thread Tejun Heo
Hello, (Sasha, would it be possible to change your MUA so that it breaks long lines. It's pretty difficult to reply to.) On Wed, Aug 15, 2012 at 02:24:49AM +0200, Sasha Levin wrote: > The hashtable uses hlist. hlist provides us with an entire family of > init functions which I'm supposed to use