linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [RFC PATCH v1 32/50] lib/test*.c: Use prandom_u32_max()
@ 2019-11-29 22:12 George Spelvin
  2020-03-28 19:05 ` Andy Shevchenko
  0 siblings, 1 reply; 2+ messages in thread
From: George Spelvin @ 2019-11-29 22:12 UTC (permalink / raw)
  To: linux-kernel, lkml
  Cc: Ferdinand Blomqvist, Thomas Gleixner, Andy Shevchenko, Vitaly Kuznetsov

lib/reed_solomon/test_rslib.c alreasy uses prandom_u32();
lib/test_hexdump.c and lib/test-string_helpers.c were using
get_random_int() % range, which is needlessly expensive for
test code.

Signed-off-by: George Spelvin <lkml@sdf.org>
Cc: Ferdinand Blomqvist <ferdinand.blomqvist@gmail.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Cc: Vitaly Kuznetsov <vkuznets@redhat.com>
---
 lib/reed_solomon/test_rslib.c |  4 ++--
 lib/test-string_helpers.c     |  2 +-
 lib/test_hexdump.c            | 10 +++++-----
 3 files changed, 8 insertions(+), 8 deletions(-)

diff --git a/lib/reed_solomon/test_rslib.c b/lib/reed_solomon/test_rslib.c
index 4eb29f365ece0..58e767c142ef8 100644
--- a/lib/reed_solomon/test_rslib.c
+++ b/lib/reed_solomon/test_rslib.c
@@ -183,7 +183,7 @@ static int get_rcw_we(struct rs_control *rs, struct wspace *ws,
 
 		do {
 			/* Must not choose the same location twice */
-			errloc = prandom_u32() % len;
+			errloc = prandom_u32_max(len);
 		} while (errlocs[errloc] != 0);
 
 		errlocs[errloc] = 1;
@@ -194,7 +194,7 @@ static int get_rcw_we(struct rs_control *rs, struct wspace *ws,
 	for (i = 0; i < eras; i++) {
 		do {
 			/* Must not choose the same location twice */
-			errloc = prandom_u32() % len;
+			errloc = prandom_u32_max(len);
 		} while (errlocs[errloc] != 0);
 
 		derrlocs[i] = errloc;
diff --git a/lib/test-string_helpers.c b/lib/test-string_helpers.c
index 25b5cbfb7615b..3349f3ddc528c 100644
--- a/lib/test-string_helpers.c
+++ b/lib/test-string_helpers.c
@@ -398,7 +398,7 @@ static int __init test_string_helpers_init(void)
 	for (i = 0; i < UNESCAPE_ANY + 1; i++)
 		test_string_unescape("unescape", i, false);
 	test_string_unescape("unescape inplace",
-			     get_random_int() % (UNESCAPE_ANY + 1), true);
+			     prandom_u32_max(UNESCAPE_ANY + 1), true);
 
 	/* Without dictionary */
 	for (i = 0; i < (ESCAPE_ANY_NP | ESCAPE_HEX) + 1; i++)
diff --git a/lib/test_hexdump.c b/lib/test_hexdump.c
index 5144899d3c6b8..54e4efb28b974 100644
--- a/lib/test_hexdump.c
+++ b/lib/test_hexdump.c
@@ -149,7 +149,7 @@ static void __init test_hexdump(size_t len, int rowsize, int groupsize,
 static void __init test_hexdump_set(int rowsize, bool ascii)
 {
 	size_t d = min_t(size_t, sizeof(data_b), rowsize);
-	size_t len = get_random_int() % d + 1;
+	size_t len = prandom_u32_max(d) + 1;
 
 	test_hexdump(len, rowsize, 4, ascii);
 	test_hexdump(len, rowsize, 2, ascii);
@@ -208,11 +208,11 @@ static void __init test_hexdump_overflow(size_t buflen, size_t len,
 static void __init test_hexdump_overflow_set(size_t buflen, bool ascii)
 {
 	unsigned int i = 0;
-	int rs = (get_random_int() % 2 + 1) * 16;
+	int rs = (prandom_u32() % 2 + 1) * 16;
 
 	do {
 		int gs = 1 << i;
-		size_t len = get_random_int() % rs + gs;
+		size_t len = prandom_u32_max(rs) + gs;
 
 		test_hexdump_overflow(buflen, rounddown(len, gs), rs, gs, ascii);
 	} while (i++ < 3);
@@ -223,11 +223,11 @@ static int __init test_hexdump_init(void)
 	unsigned int i;
 	int rowsize;
 
-	rowsize = (get_random_int() % 2 + 1) * 16;
+	rowsize = (prandom_u32() % 2 + 1) * 16;
 	for (i = 0; i < 16; i++)
 		test_hexdump_set(rowsize, false);
 
-	rowsize = (get_random_int() % 2 + 1) * 16;
+	rowsize = (prandom_u32() % 2 + 1) * 16;
 	for (i = 0; i < 16; i++)
 		test_hexdump_set(rowsize, true);
 
-- 
2.26.0


^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [RFC PATCH v1 32/50] lib/test*.c: Use prandom_u32_max()
  2019-11-29 22:12 [RFC PATCH v1 32/50] lib/test*.c: Use prandom_u32_max() George Spelvin
@ 2020-03-28 19:05 ` Andy Shevchenko
  0 siblings, 0 replies; 2+ messages in thread
From: Andy Shevchenko @ 2020-03-28 19:05 UTC (permalink / raw)
  To: George Spelvin
  Cc: Linux Kernel Mailing List, Ferdinand Blomqvist, Thomas Gleixner,
	Andy Shevchenko, Vitaly Kuznetsov

On Sat, Mar 28, 2020 at 6:47 PM George Spelvin <lkml@sdf.org> wrote:
>
> lib/reed_solomon/test_rslib.c alreasy uses prandom_u32();
> lib/test_hexdump.c and lib/test-string_helpers.c were using
> get_random_int() % range, which is needlessly expensive for
> test code.
>

Fine with me, FWIW,
Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>

> Signed-off-by: George Spelvin <lkml@sdf.org>
> Cc: Ferdinand Blomqvist <ferdinand.blomqvist@gmail.com>
> Cc: Thomas Gleixner <tglx@linutronix.de>
> Cc: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
> Cc: Vitaly Kuznetsov <vkuznets@redhat.com>
> ---
>  lib/reed_solomon/test_rslib.c |  4 ++--
>  lib/test-string_helpers.c     |  2 +-
>  lib/test_hexdump.c            | 10 +++++-----
>  3 files changed, 8 insertions(+), 8 deletions(-)
>
> diff --git a/lib/reed_solomon/test_rslib.c b/lib/reed_solomon/test_rslib.c
> index 4eb29f365ece0..58e767c142ef8 100644
> --- a/lib/reed_solomon/test_rslib.c
> +++ b/lib/reed_solomon/test_rslib.c
> @@ -183,7 +183,7 @@ static int get_rcw_we(struct rs_control *rs, struct wspace *ws,
>
>                 do {
>                         /* Must not choose the same location twice */
> -                       errloc = prandom_u32() % len;
> +                       errloc = prandom_u32_max(len);
>                 } while (errlocs[errloc] != 0);
>
>                 errlocs[errloc] = 1;
> @@ -194,7 +194,7 @@ static int get_rcw_we(struct rs_control *rs, struct wspace *ws,
>         for (i = 0; i < eras; i++) {
>                 do {
>                         /* Must not choose the same location twice */
> -                       errloc = prandom_u32() % len;
> +                       errloc = prandom_u32_max(len);
>                 } while (errlocs[errloc] != 0);
>
>                 derrlocs[i] = errloc;
> diff --git a/lib/test-string_helpers.c b/lib/test-string_helpers.c
> index 25b5cbfb7615b..3349f3ddc528c 100644
> --- a/lib/test-string_helpers.c
> +++ b/lib/test-string_helpers.c
> @@ -398,7 +398,7 @@ static int __init test_string_helpers_init(void)
>         for (i = 0; i < UNESCAPE_ANY + 1; i++)
>                 test_string_unescape("unescape", i, false);
>         test_string_unescape("unescape inplace",
> -                            get_random_int() % (UNESCAPE_ANY + 1), true);
> +                            prandom_u32_max(UNESCAPE_ANY + 1), true);
>
>         /* Without dictionary */
>         for (i = 0; i < (ESCAPE_ANY_NP | ESCAPE_HEX) + 1; i++)
> diff --git a/lib/test_hexdump.c b/lib/test_hexdump.c
> index 5144899d3c6b8..54e4efb28b974 100644
> --- a/lib/test_hexdump.c
> +++ b/lib/test_hexdump.c
> @@ -149,7 +149,7 @@ static void __init test_hexdump(size_t len, int rowsize, int groupsize,
>  static void __init test_hexdump_set(int rowsize, bool ascii)
>  {
>         size_t d = min_t(size_t, sizeof(data_b), rowsize);
> -       size_t len = get_random_int() % d + 1;
> +       size_t len = prandom_u32_max(d) + 1;
>
>         test_hexdump(len, rowsize, 4, ascii);
>         test_hexdump(len, rowsize, 2, ascii);
> @@ -208,11 +208,11 @@ static void __init test_hexdump_overflow(size_t buflen, size_t len,
>  static void __init test_hexdump_overflow_set(size_t buflen, bool ascii)
>  {
>         unsigned int i = 0;
> -       int rs = (get_random_int() % 2 + 1) * 16;
> +       int rs = (prandom_u32() % 2 + 1) * 16;
>
>         do {
>                 int gs = 1 << i;
> -               size_t len = get_random_int() % rs + gs;
> +               size_t len = prandom_u32_max(rs) + gs;
>
>                 test_hexdump_overflow(buflen, rounddown(len, gs), rs, gs, ascii);
>         } while (i++ < 3);
> @@ -223,11 +223,11 @@ static int __init test_hexdump_init(void)
>         unsigned int i;
>         int rowsize;
>
> -       rowsize = (get_random_int() % 2 + 1) * 16;
> +       rowsize = (prandom_u32() % 2 + 1) * 16;
>         for (i = 0; i < 16; i++)
>                 test_hexdump_set(rowsize, false);
>
> -       rowsize = (get_random_int() % 2 + 1) * 16;
> +       rowsize = (prandom_u32() % 2 + 1) * 16;
>         for (i = 0; i < 16; i++)
>                 test_hexdump_set(rowsize, true);
>
> --
> 2.26.0
>


-- 
With Best Regards,
Andy Shevchenko

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2020-03-28 19:09 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-11-29 22:12 [RFC PATCH v1 32/50] lib/test*.c: Use prandom_u32_max() George Spelvin
2020-03-28 19:05 ` Andy Shevchenko

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).