From 11bfaf347850246be8ebd3ee41579de0e4d99fa9 Mon Sep 17 00:00:00 2001 From: Andrew Perepechko Date: Mon, 24 Jun 2013 22:12:55 +0400 Subject: [PATCH] LU-3496 lprocfs: implement log2 using bitops This patch implements log2 using fls. Signed-off-by: Andrew Perepechko Reviewed-by: Alexander Boyko Reviewed-by: alexander_zarochentsev@xyratex.com Reviewed-by: Vitaly Fertman Xyratex-bug-id: MRP-999 Change-Id: Id19752761b4dd162b282bb8006072f607b8bf729 Reviewed-on: http://review.whamcloud.com/6757 Reviewed-by: John L. Hammond Reviewed-by: Bob Glossman Tested-by: Hudson Tested-by: Maloo Reviewed-by: Oleg Drokin --- lustre/obdclass/lprocfs_status.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/lustre/obdclass/lprocfs_status.c b/lustre/obdclass/lprocfs_status.c index 5dd607b..9d91157 100644 --- a/lustre/obdclass/lprocfs_status.c +++ b/lustre/obdclass/lprocfs_status.c @@ -2343,12 +2343,12 @@ EXPORT_SYMBOL(lprocfs_oh_tally); void lprocfs_oh_tally_log2(struct obd_histogram *oh, unsigned int value) { - unsigned int val; + unsigned int val = 0; - for (val = 0; ((1 << val) < value) && (val <= OBD_HIST_MAX); val++) - ; + if (likely(value != 0)) + val = min(fls(value - 1), OBD_HIST_MAX); - lprocfs_oh_tally(oh, val); + lprocfs_oh_tally(oh, val); } EXPORT_SYMBOL(lprocfs_oh_tally_log2); -- 1.8.3.1