On 04/18/2018 03:26 PM, David Sterba wrote: > On Wed, Apr 18, 2018 at 02:30:59PM -0700, Howard McLauchlan wrote: >> Presently, convert_free_space_to_extents() does a linear scan of the >> bitmap. We can speed this up with find_next_{bit,zero_bit}_le(). >> >> This patch replaces the linear scan with find_next_{bit,zero_bit}_le(). >> Testing shows a 20-33% decrease in execution time for >> convert_free_space_to_extents(). >> >> Suggested-by: Omar Sandoval <osan...@osandov.com> >> Signed-off-by: Howard McLauchlan <hmclauch...@fb.com> >> --- >> >> Since we change bitmap to be unsigned long, we have to do some casting for >> the >> bitmap cursor. In le_bitmap_set() it makes sense to use u8, as we are doing >> bit operations. Everywhere else, we're just using it for pointer arithmetic >> and >> not directly accessing it, so char seems more appropriate. > Ok, makes sense for just passing the pointers around. I'll add the text > to changelog and apply the patch to next. > >> - bit = !!le_test_bit(bitnr, bitmap); > This is the last use of le_test_bit, so it can be removed (in another > patch). I just found an issue in this patch that should be fixed. I'll address moving le_bitmap_set(), le_test_bit and send a V2 for both these patches.
Howard -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html