From: Yury Norov <yury.norov@gmail.com>
To: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Cc: Rasmus Villemoes <linux@rasmusvillemoes.dk>,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH v2 4/6] lib: Fix test_find_first_and_bit and test_find_next_and_bit benchmark
Date: Fri, 30 Aug 2024 08:46:47 -0700 [thread overview]
Message-ID: <ZtHpZzYE62qMvIFY@yury-ThinkPad> (raw)
In-Reply-To: <20240829135926.926603-5-mathieu.desnoyers@efficios.com>
On Thu, Aug 29, 2024 at 09:59:24AM -0400, Mathieu Desnoyers wrote:
> Modify test_find_first_bit so it modifies a local copy of bitmap rather
> than modifying the input bitmap, which removes the requirement of
> placing it last in the tests.
>
> Calls to test_find_first_and_bit and test_find_next_and_bit are placed
> after test_find_first_bit, which makes them use a bitmap entirely filled
> rather than the expected bitmap (random-filled or sparse).
>
> Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
> Cc: Yury Norov <yury.norov@gmail.com>
> Cc: Rasmus Villemoes <linux@rasmusvillemoes.dk>
> ---
> lib/find_bit_benchmark.c | 10 ++++++----
> 1 file changed, 6 insertions(+), 4 deletions(-)
>
> diff --git a/lib/find_bit_benchmark.c b/lib/find_bit_benchmark.c
> index d3fb09e6eff1..aee2ebb6b3cd 100644
> --- a/lib/find_bit_benchmark.c
> +++ b/lib/find_bit_benchmark.c
> @@ -30,18 +30,20 @@ static DECLARE_BITMAP(bitmap, BITMAP_LEN) __initdata;
> static DECLARE_BITMAP(bitmap2, BITMAP_LEN) __initdata;
>
> /*
> - * This is Schlemiel the Painter's algorithm. It should be called after
> - * all other tests for the same bitmap because it sets all bits of bitmap to 1.
> + * This is Schlemiel the Painter's algorithm.
> */
Good to drop it, moreover, the comment is incorrect - we set all bits
to 0, not 1.
> static int __init test_find_first_bit(void *bitmap, unsigned long len)
> {
> + static DECLARE_BITMAP(cp, BITMAP_LEN) __initdata;
This days we can allocate automatic variables, which is better than
statics:
unsigned long *cp __free(bitmap) = bitmap_alloc(len, GFP_KERNEL);
If no objections, I can fix it inplace. The rest of the series looks
good. I'll add it in bitmap-for-next for testing shortly.
Thanks,
Yury
> unsigned long i, cnt;
> ktime_t time;
>
> + bitmap_copy(cp, bitmap, BITMAP_LEN);
> +
> time = ktime_get();
> for (cnt = i = 0; i < len; cnt++) {
> - i = find_first_bit(bitmap, len);
> - __clear_bit(i, bitmap);
> + i = find_first_bit(cp, len);
> + __clear_bit(i, cp);
> }
> time = ktime_get() - time;
> pr_err("find_first_bit: %18llu ns, %6ld iterations\n", time, cnt);
> --
> 2.39.2
next prev parent reply other threads:[~2024-08-30 15:46 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-08-29 13:59 [PATCH v2 0/6] lib: Extend bitmap find binary operations Mathieu Desnoyers
2024-08-29 13:59 ` [PATCH v2 1/6] lib: Clarify comment on top of find_next_andnot_bit Mathieu Desnoyers
2024-08-29 13:59 ` [PATCH v2 2/6] lib: Implement find_{first,next,nth}_nor_bit, for_each_nor_bit, find_first_andnot_bit Mathieu Desnoyers
2024-08-29 13:59 ` [PATCH v2 3/6] lib: test bitmap sets binary operation iterators Mathieu Desnoyers
2024-08-29 13:59 ` [PATCH v2 4/6] lib: Fix test_find_first_and_bit and test_find_next_and_bit benchmark Mathieu Desnoyers
2024-08-30 15:46 ` Yury Norov [this message]
2024-08-30 15:50 ` Mathieu Desnoyers
2024-08-29 13:59 ` [PATCH v2 5/6] lib: benchmark bitmap sets binary operation find Mathieu Desnoyers
2024-08-30 15:48 ` Yury Norov
2024-08-30 16:07 ` Mathieu Desnoyers
2024-08-30 17:33 ` Yury Norov
2024-08-29 13:59 ` [PATCH v2 6/6] cpumask: Implement cpumask_{first,next}_{nor,andnot} Mathieu Desnoyers
2024-08-30 15:56 ` [PATCH v2 0/6] lib: Extend bitmap find binary operations Yury Norov
2024-08-30 16:10 ` Mathieu Desnoyers
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=ZtHpZzYE62qMvIFY@yury-ThinkPad \
--to=yury.norov@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux@rasmusvillemoes.dk \
--cc=mathieu.desnoyers@efficios.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.