]> git.ipfire.org Git - thirdparty/linux.git/commit - lib/vsprintf.c
vsprintf: rework bitmap_list_string
authorYury Norov <yury.norov@gmail.com>
Sat, 14 Aug 2021 21:17:13 +0000 (14:17 -0700)
committerYury Norov <yury.norov@gmail.com>
Sat, 15 Jan 2022 16:47:31 +0000 (08:47 -0800)
commit15325b4f768f2b27b5765489eeab6ec0d6b5e902
treef29491038480dcf4575c84207f8f7ad2557f21d6
parentdb7313005e9c2d4e80888dd18d4a83926b920e8c
vsprintf: rework bitmap_list_string

bitmap_list_string() is very ineffective when printing bitmaps with long
ranges of set bits because it calls find_next_bit for each bit in the
bitmap.  We can do better by detecting ranges of set bits.

In my environment, before/after is 943008/31008 ns.

Signed-off-by: Yury Norov <yury.norov@gmail.com>
Tested-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
lib/vsprintf.c