Re: [PATCH v11 2/2] lib/test_bitmap: add tests for bitmap_{read,write}()
From: Alexander Potapenko <glider@google.com>
Date: 2023-11-09 14:29:43
Also in:
lkml
Could we maybe rather extend __check_eq_uint to take ulongs? Doesn't seem like they differ a lot.
We could redefine expect_eq_uint as: #define expect_eq_uint(x, y) expect_eq_ulong((unsigned int)(x), (unsigned int)(y)) and throw __expect_eq_uint away.
quoted
+ } + time = ktime_get() - time; + pr_err("Time spent in %s:\t%llu\n", __func__, time);pr_err() is for printing errors and is shown in red by some log readers. Maybe use pr_info() or pr_notice()? Definitely not an error or even warning.
Note that test_bitmap.c has 17 calls of pr_err() and 7 calls of pr_warn(), which aren't really consistent (e.g. they are used in certain __check helpers instead of pr_err()), and the existing performance tests are calling pr_err(). I can change that in a separate patch, if you think it's worth the effort: the error messages should probably remain pr_err(), but the informational ones could be made pr_info().
quoted
+} + +static void __init test_bitmap_write_perf(void) +{ + DECLARE_BITMAP(bitmap, TEST_BIT_LEN); + unsigned int cnt, nbits, i; + unsigned long val = 0xfeedface; + ktime_t time; + + bitmap_zero(bitmap, TEST_BIT_LEN); + time = ktime_get(); + for (cnt = 0; cnt < 5; cnt++) { + for (nbits = 1; nbits <= BITS_PER_LONG; nbits++) { + for (i = 0; i < TEST_BIT_LEN; i++) { + if (i + nbits > TEST_BIT_LEN) + break; + bitmap_write(bitmap, val, i, nbits); + } + } + } + time = ktime_get() - time; + pr_err("Time spent in %s:\t%llu\n", __func__, time);(same)quoted
+} + +#undef TEST_BIT_LEN + static void __init selftest(void) { test_zero_clear();@@ -1237,6 +1411,9 @@ static void __init selftest(void) test_bitmap_cut(); test_bitmap_print_buf(); test_bitmap_const_eval(); + test_bitmap_read_write(); + test_bitmap_read_perf(); + test_bitmap_write_perf(); test_find_nth_bit(); test_for_each_set_bit();Thanks, Olek
-- Alexander Potapenko Software Engineer Google Germany GmbH Erika-Mann-Straße, 33 80636 München Geschäftsführer: Paul Manicle, Liana Sebastian Registergericht und -nummer: Hamburg, HRB 86891 Sitz der Gesellschaft: Hamburg _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel