Thread (7 messages) 7 messages, 2 authors, 2023-11-09

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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help