[PATCH v2 0/6] lib: Extend bitmap find binary operations

Mathieu Desnoyers posted 6 patches 1 year, 5 months ago
There is a newer version of this series
include/linux/cpumask.h  |  60 +++++++++++++++++++
include/linux/find.h     | 124 +++++++++++++++++++++++++++++++++++++--
lib/find_bit.c           |  36 ++++++++++++
lib/find_bit_benchmark.c | 103 ++++++++++++++++++++++++++++++--
lib/test_bitmap.c        |  81 +++++++++++++++++++++++++
5 files changed, 396 insertions(+), 8 deletions(-)
[PATCH v2 0/6] lib: Extend bitmap find binary operations
Posted by Mathieu Desnoyers 1 year, 5 months ago
Extend bitmap find.h and cpumask.h with additional binary operations
such as "nor".

Also extend the testing and benchmark coverage of those bitmap find with
binary operations.

This is useful for NUMA-aware rseq concurrency IDs which depend on this
series.


Mathieu Desnoyers (6):
  lib: Clarify comment on top of find_next_andnot_bit
  lib: Implement find_{first,next,nth}_nor_bit, for_each_nor_bit,
    find_first_andnot_bit
  lib: test bitmap sets binary operation iterators
  lib: Fix test_find_first_and_bit and test_find_next_and_bit benchmark
  lib: benchmark bitmap sets binary operation find
  cpumask: Implement cpumask_{first,next}_{nor,andnot}

 include/linux/cpumask.h  |  60 +++++++++++++++++++
 include/linux/find.h     | 124 +++++++++++++++++++++++++++++++++++++--
 lib/find_bit.c           |  36 ++++++++++++
 lib/find_bit_benchmark.c | 103 ++++++++++++++++++++++++++++++--
 lib/test_bitmap.c        |  81 +++++++++++++++++++++++++
 5 files changed, 396 insertions(+), 8 deletions(-)

-- 
2.39.2
Re: [PATCH v2 0/6] lib: Extend bitmap find binary operations
Posted by Yury Norov 1 year, 5 months ago
On Thu, Aug 29, 2024 at 09:59:20AM -0400, Mathieu Desnoyers wrote:
> Extend bitmap find.h and cpumask.h with additional binary operations
> such as "nor".
> 
> Also extend the testing and benchmark coverage of those bitmap find with
> binary operations.
> 
> This is useful for NUMA-aware rseq concurrency IDs which depend on this
> series.
 
Hi Mathieu,

Thanks for the series! I appreciate your time nailing it down, and
especially the tests provided. A couple nits is that we don't need
an 'extern' specifier,  and would better avoid local statics, even
in tests.

I'll fix that inplace and apply in bitmap-for-next. Can you share
a link for your work that requires the new API? I need to point it
when sending a merge request.

Thanks,
Yury
 
> Mathieu Desnoyers (6):
>   lib: Clarify comment on top of find_next_andnot_bit
>   lib: Implement find_{first,next,nth}_nor_bit, for_each_nor_bit,
>     find_first_andnot_bit
>   lib: test bitmap sets binary operation iterators
>   lib: Fix test_find_first_and_bit and test_find_next_and_bit benchmark
>   lib: benchmark bitmap sets binary operation find
>   cpumask: Implement cpumask_{first,next}_{nor,andnot}
> 
>  include/linux/cpumask.h  |  60 +++++++++++++++++++
>  include/linux/find.h     | 124 +++++++++++++++++++++++++++++++++++++--
>  lib/find_bit.c           |  36 ++++++++++++
>  lib/find_bit_benchmark.c | 103 ++++++++++++++++++++++++++++++--
>  lib/test_bitmap.c        |  81 +++++++++++++++++++++++++
>  5 files changed, 396 insertions(+), 8 deletions(-)
> 
> -- 
> 2.39.2
Re: [PATCH v2 0/6] lib: Extend bitmap find binary operations
Posted by Mathieu Desnoyers 1 year, 5 months ago
On 2024-08-30 17:56, Yury Norov wrote:
> On Thu, Aug 29, 2024 at 09:59:20AM -0400, Mathieu Desnoyers wrote:
>> Extend bitmap find.h and cpumask.h with additional binary operations
>> such as "nor".
>>
>> Also extend the testing and benchmark coverage of those bitmap find with
>> binary operations.
>>
>> This is useful for NUMA-aware rseq concurrency IDs which depend on this
>> series.
>   
> Hi Mathieu,
> 
> Thanks for the series! I appreciate your time nailing it down, and
> especially the tests provided. A couple nits is that we don't need
> an 'extern' specifier,  and would better avoid local statics, even
> in tests.

OK. I've mostly followed the style present in the files I modified.
I'm OK if you change that in place.

> 
> I'll fix that inplace and apply in bitmap-for-next. Can you share
> a link for your work that requires the new API? I need to point it
> when sending a merge request.

Here is the latest version posted, before I split the bitmap patches
into a serparate series:

https://lore.kernel.org/lkml/20240823185946.418340-1-mathieu.desnoyers@efficios.com/

Please note that I am currently doing additional tests/benchmarks/schedstat
instrumentation and bug fixes on the RSEQ numa-aware patch.

Thanks,

Mathieu

> 
> Thanks,
> Yury
>   
>> Mathieu Desnoyers (6):
>>    lib: Clarify comment on top of find_next_andnot_bit
>>    lib: Implement find_{first,next,nth}_nor_bit, for_each_nor_bit,
>>      find_first_andnot_bit
>>    lib: test bitmap sets binary operation iterators
>>    lib: Fix test_find_first_and_bit and test_find_next_and_bit benchmark
>>    lib: benchmark bitmap sets binary operation find
>>    cpumask: Implement cpumask_{first,next}_{nor,andnot}
>>
>>   include/linux/cpumask.h  |  60 +++++++++++++++++++
>>   include/linux/find.h     | 124 +++++++++++++++++++++++++++++++++++++--
>>   lib/find_bit.c           |  36 ++++++++++++
>>   lib/find_bit_benchmark.c | 103 ++++++++++++++++++++++++++++++--
>>   lib/test_bitmap.c        |  81 +++++++++++++++++++++++++
>>   5 files changed, 396 insertions(+), 8 deletions(-)
>>
>> -- 
>> 2.39.2

-- 
Mathieu Desnoyers
EfficiOS Inc.
https://www.efficios.com