All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
To: David Laight <David.Laight@ACULAB.COM>
Cc: Sasha Levin <levinsasha928@gmail.com>,
	torvalds@linux-foundation.org, tj@kernel.org,
	akpm@linux-foundation.org, linux-kernel@vger.kernel.org,
	rostedt@goodmis.org, ebiederm@xmission.com, neilb@suse.de,
	bfields@fieldses.org, ejt@redhat.com, snitzer@redhat.com,
	edumazet@google.com, josh@joshtriplett.org, rmallon@gmail.com,
	palves@redhat.com
Subject: Re: [PATCH v6] hashtable: introduce a small and naive hashtable
Date: Wed, 26 Sep 2012 10:31:27 -0400	[thread overview]
Message-ID: <20120926143126.GA22699@Krystal> (raw)
In-Reply-To: <AE90C24D6B3A694183C094C60CF0A2F6026B7008@saturn3.aculab.com>

* David Laight (David.Laight@ACULAB.COM) wrote:
> Amazing how something simple gets lots of comments and versions :-)
> 
> > ...
> > + * This has to be a macro since HASH_BITS() will not work on pointers since
> > + * it calculates the size during preprocessing.
> > + */
> > +#define hash_empty(hashtable)							\
> > +({										\
> > +	int __i;								\
> > +	bool __ret = true;							\
> > +										\
> > +	for (__i = 0; __i < HASH_SIZE(hashtable); __i++)			\
> > +		if (!hlist_empty(&hashtable[__i]))				\
> > +			__ret = false;						\
> > +										\
> > +	__ret;									\
> > +})
> 
> Actually you could have a #define that calls a function
> passing in the address and size.
> Also, should the loop have a 'break' in it?

+1   Removing unnecessary variables defined within a
statement-expression is indeed something we want, and your suggestion of
a macro calling a static inline is, IMHO, spot-on.

The same should be done for hash_init().

And yes, a break would be welcome in that loop: no need to continue if
we encounter a non-empty hlist.

Thanks,

Mathieu

-- 
Mathieu Desnoyers
Operating System Efficiency R&D Consultant
EfficiOS Inc.
http://www.efficios.com

      parent reply	other threads:[~2012-09-26 14:31 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-09-26 12:48 [PATCH v6] hashtable: introduce a small and naive hashtable Sasha Levin
2012-09-26 13:45 ` David Laight
2012-09-26 13:59   ` Steven Rostedt
2012-09-26 14:26     ` Sasha Levin
2012-09-26 14:39       ` Mathieu Desnoyers
2012-09-26 16:09         ` Steven Rostedt
2012-09-26 16:19           ` Mathieu Desnoyers
2012-09-27  8:25             ` David Laight
2012-09-27  8:33               ` Sasha Levin
2012-09-27 12:09                 ` Steven Rostedt
2012-09-27 13:11                 ` Mathieu Desnoyers
2012-09-27 13:30                   ` Steven Rostedt
2012-09-27 14:36                   ` David Laight
2012-09-27 13:03               ` Mathieu Desnoyers
2012-09-26 14:31   ` Mathieu Desnoyers [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20120926143126.GA22699@Krystal \
    --to=mathieu.desnoyers@efficios.com \
    --cc=David.Laight@ACULAB.COM \
    --cc=akpm@linux-foundation.org \
    --cc=bfields@fieldses.org \
    --cc=ebiederm@xmission.com \
    --cc=edumazet@google.com \
    --cc=ejt@redhat.com \
    --cc=josh@joshtriplett.org \
    --cc=levinsasha928@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=neilb@suse.de \
    --cc=palves@redhat.com \
    --cc=rmallon@gmail.com \
    --cc=rostedt@goodmis.org \
    --cc=snitzer@redhat.com \
    --cc=tj@kernel.org \
    --cc=torvalds@linux-foundation.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.