Hi, On Thu, Apr 28, 2022 at 01:51:14PM -0700, Yury Norov wrote: > Test newly added bitmap_{from,to}_arr64() functions similarly to > already existing bitmap_{from,to}_arr32() tests. > > Signed-off-by: Yury Norov <yury.norov@xxxxxxxxx> Ever since this test is in the tree, several of my boot tests show lots of messages such as test_bitmap: bitmap_to_arr64(nbits == 1): tail is not safely cleared: 0xa5a5a5a500000001 (must be 0x0000000000000001) test_bitmap: bitmap_to_arr64(nbits == 2): tail is not safely cleared: 0xa5a5a5a500000001 (must be 0x0000000000000003) test_bitmap: bitmap_to_arr64(nbits == 3): tail is not safely cleared: 0xa5a5a5a500000001 (must be 0x0000000000000007) ... test_bitmap: bitmap_to_arr64(nbits == 927): tail is not safely cleared: 0xa5a5a5a500000000 (must be 0x000000007fffffff) test_bitmap: bitmap_to_arr64(nbits == 928): tail is not safely cleared: 0xa5a5a5a580000000 (must be 0x00000000ffffffff) but then: test_bitmap: all 6550 tests passed The message suggests an error, given that it is displayed with pr_err, but the summary suggests otherwise. Is the message just noise, or is there a problem ? Thanks, Guenter > --- > lib/test_bitmap.c | 25 +++++++++++++++++++++++++ > 1 file changed, 25 insertions(+) > > diff --git a/lib/test_bitmap.c b/lib/test_bitmap.c > index 0c82f07f74fc..d5923a640457 100644 > --- a/lib/test_bitmap.c > +++ b/lib/test_bitmap.c > @@ -585,6 +585,30 @@ static void __init test_bitmap_arr32(void) > } > } > > +static void __init test_bitmap_arr64(void) > +{ > + unsigned int nbits, next_bit; > + u64 arr[EXP1_IN_BITS / 64]; > + DECLARE_BITMAP(bmap2, EXP1_IN_BITS); > + > + memset(arr, 0xa5, sizeof(arr)); > + > + for (nbits = 0; nbits < EXP1_IN_BITS; ++nbits) { > + memset(bmap2, 0xff, sizeof(arr)); > + bitmap_to_arr64(arr, exp1, nbits); > + bitmap_from_arr64(bmap2, arr, nbits); > + expect_eq_bitmap(bmap2, exp1, nbits); > + > + next_bit = find_next_bit(bmap2, round_up(nbits, BITS_PER_LONG), nbits); > + if (next_bit < round_up(nbits, BITS_PER_LONG)) > + pr_err("bitmap_copy_arr64(nbits == %d:" > + " tail is not safely cleared: %d\n", nbits, next_bit); > + > + if (nbits < EXP1_IN_BITS - 64) > + expect_eq_uint(arr[DIV_ROUND_UP(nbits, 64)], 0xa5a5a5a5); > + } > +} > + > static void noinline __init test_mem_optimisations(void) > { > DECLARE_BITMAP(bmap1, 1024); > @@ -852,6 +876,7 @@ static void __init selftest(void) > test_copy(); > test_replace(); > test_bitmap_arr32(); > + test_bitmap_arr64(); > test_bitmap_parse(); > test_bitmap_parselist(); > test_bitmap_printlist(); > -- > 2.32.0 >