From: Aya Mahfouz <mahfouz.saif.elyazal@gmail.com>
To: lustre-devel@lists.lustre.org
Subject: [lustre-devel] [PATCH 2/4] staging: lustre: hash.c: replace IS_PO2 by is_power_of_2
Date: Sat, 17 Oct 2015 15:23:48 +0200 [thread overview]
Message-ID: <20151017132348.GB29953@waves> (raw)
In-Reply-To: <alpine.DEB.2.02.1510171246480.2056@localhost6.localdomain6>
On Sat, Oct 17, 2015 at 12:47:13PM +0200, Julia Lawall wrote:
> On Sat, 17 Oct 2015, Aya Mahfouz wrote:
>
> > On Fri, Oct 16, 2015 at 10:40:25PM -0700, Greg KH wrote:
> > > On Sat, Oct 17, 2015 at 12:06:28AM +0200, Aya Mahfouz wrote:
> > > > Replaces IS_PO2 by is_power_of_2. IS_PO2 is used with several debug
> > > > macros. In this case, it is CDEBUG. Note that the replacement changes
> > > > the types involved, because the parameter of IS_PO2 is of type long long
> > > > and the return type is int, while the parameter of is_power_of_2 is of
> > > > type long and the return type is bool. This, however, has no impact,
> > > > because the actual argument is always of type int, and the return value
> > > > is always used as a boolean.
> > > >
> > > > Signed-off-by: Aya Mahfouz <mahfouz.saif.elyazal@gmail.com>
> > > > ---
> > > > drivers/staging/lustre/lustre/libcfs/hash.c | 4 +++-
> > > > 1 file changed, 3 insertions(+), 1 deletion(-)
> > > >
> > > > diff --git a/drivers/staging/lustre/lustre/libcfs/hash.c b/drivers/staging/lustre/lustre/libcfs/hash.c
> > > > index 6f4c7d4..4b5e79a 100644
> > > > --- a/drivers/staging/lustre/lustre/libcfs/hash.c
> > > > +++ b/drivers/staging/lustre/lustre/libcfs/hash.c
> > > > @@ -109,6 +109,8 @@
> > > >
> > > > #include "../../include/linux/libcfs/libcfs.h"
> > > > #include <linux/seq_file.h>
> > > > +#include <linux/log2.h>
> > > > +
> > > >
> > > > #if CFS_HASH_DEBUG_LEVEL >= CFS_HASH_DEBUG_1
> > > > static unsigned int warn_on_depth = 8;
> > > > @@ -1785,7 +1787,7 @@ cfs_hash_rehash_cancel_locked(struct cfs_hash *hs)
> > > > for (i = 2; cfs_hash_is_rehashing(hs); i++) {
> > > > cfs_hash_unlock(hs, 1);
> > > > /* raise console warning while waiting too long */
> > > > - CDEBUG(IS_PO2(i >> 3) ? D_WARNING : D_INFO,
> > > > + CDEBUG(is_power_of_2(i >> 3) ? D_WARNING : D_INFO,
> > >
> > > is_power_of_2() works differently than IS_PO2(), are you _sure_ that the
> > > value here can not be 0? If so, this will do something different :(
> > >
> >
> > This is actually an interesting point to raise. __is_po2 the inline
> > function used by IS_PO2 should actually check if the number is greater
> > than 0. The current implementation of __is_po2 would allow the
> > comparison of 0 with 2^(size of unsigned long long)-1. Is this correct?
> > Or is this something intentional?
>
> What is the actual result in each case?
>
for __is_po2, if the number is 0 or power of 2 i.e. 1,2,4,8,16,32 etc
then return 1, 0 otherwise
for is_power_of_2 if the number is power of 2 return 1, 0 otherwise
> julia
--
Kind Regards,
Aya Saif El-yazal Mahfouz
next prev parent reply other threads:[~2015-10-17 13:23 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-10-16 22:03 [lustre-devel] [PATCH 0/4] Remove uses and definition of IS_PO2 Aya Mahfouz
2015-10-16 22:05 ` [lustre-devel] [PATCH 1/4] staging: lustre: ldlm_extent.c: replace IS_PO2 by is_power_of_2 Aya Mahfouz
2015-10-17 5:41 ` Greg KH
2015-10-17 9:59 ` Aya Mahfouz
2015-10-16 22:06 ` [lustre-devel] [PATCH 2/4] staging: lustre: hash.c: " Aya Mahfouz
2015-10-17 5:40 ` Greg KH
2015-10-17 10:34 ` Aya Mahfouz
2015-10-17 10:47 ` Julia Lawall
2015-10-17 13:23 ` Aya Mahfouz [this message]
2015-10-17 16:06 ` Dilger, Andreas
2015-10-16 22:06 ` [lustre-devel] [PATCH 3/4] staging: lustre: workitem.c: replace IS_PO2 with is_power_of_2 Aya Mahfouz
2015-10-17 5:40 ` Greg KH
2015-10-17 16:15 ` Dilger, Andreas
2015-10-16 22:07 ` [lustre-devel] [PATCH 4/4] staging: lustre: remove IS_PO2 and __is_po2 Aya Mahfouz
2015-10-17 0:49 ` kbuild test robot
2015-10-17 1:55 ` kbuild test robot
2015-10-17 4:53 ` kbuild test robot
2015-10-17 5:21 ` Greg KH
2015-10-17 9:54 ` Aya Mahfouz
2015-10-18 10:51 ` Aya Mahfouz
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=20151017132348.GB29953@waves \
--to=mahfouz.saif.elyazal@gmail.com \
--cc=lustre-devel@lists.lustre.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.