From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 25103 invoked by alias); 19 Apr 2010 17:17:57 -0000 Received: (qmail 25087 invoked by uid 9447); 19 Apr 2010 17:17:56 -0000 Date: Mon, 19 Apr 2010 17:17:00 -0000 Message-ID: <20100419171756.25085.qmail@sourceware.org> From: agk@sourceware.org To: lvm-devel@redhat.com, lvm2-cvs@sourceware.org Subject: LVM2 ./WHATS_NEW_DM libdm/datastruct/bitset.c Mailing-List: contact lvm2-cvs-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Post: List-Help: , Sender: lvm2-cvs-owner@sourceware.org X-SW-Source: 2010-04/txt/msg00100.txt.bz2 CVSROOT: /cvs/lvm2 Module name: LVM2 Changes by: agk@sourceware.org 2010-04-19 17:17:55 Modified files: . : WHATS_NEW_DM libdm/datastruct: bitset.c Log message: Speed up dm_bit_get_next with ffs(). Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/WHATS_NEW_DM.diff?cvsroot=lvm2&r1=1.356&r2=1.357 http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/libdm/datastruct/bitset.c.diff?cvsroot=lvm2&r1=1.5&r2=1.6 --- LVM2/WHATS_NEW_DM 2010/04/14 21:47:48 1.356 +++ LVM2/WHATS_NEW_DM 2010/04/19 17:17:55 1.357 @@ -1,5 +1,6 @@ Version 1.02.47 - ================================= + Speed up dm_bit_get_next with ffs(). Version 1.02.46 - 14th April 2010 ================================= --- LVM2/libdm/datastruct/bitset.c 2008/11/03 18:59:59 1.5 +++ LVM2/libdm/datastruct/bitset.c 2010/04/19 17:17:55 1.6 @@ -52,18 +52,11 @@ out[i] = in1[i] | in2[i]; } -/* - * FIXME: slow - */ -static inline int _test_word(uint32_t test, int bit) +static int _test_word(uint32_t test, int bit) { - while (bit < (int) DM_BITS_PER_INT) { - if (test & (0x1 << bit)) - return bit; - bit++; - } + int next_set_bit; - return -1; + return ((next_set_bit = ffs(test >> bit)) ? next_set_bit + bit - 1 : -1); } int dm_bit_get_next(dm_bitset_t bs, int last_bit)