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

Mathieu Desnoyers posted 6 patches 1 year, 3 months ago
include/linux/cpumask.h  |  60 ++++++++++++++++
include/linux/find.h     | 124 +++++++++++++++++++++++++++++++--
lib/find_bit.c           |  36 ++++++++++
lib/find_bit_benchmark.c | 143 +++++++++++++++++++++++++++++++++------
lib/test_bitmap.c        |  81 ++++++++++++++++++++++
5 files changed, 418 insertions(+), 26 deletions(-)
[PATCH v3 0/6] lib: Extend bitmap find binary operations
Posted by Mathieu Desnoyers 1 year, 3 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. The series can be found at:

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


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 | 143 +++++++++++++++++++++++++++++++++------
 lib/test_bitmap.c        |  81 ++++++++++++++++++++++
 5 files changed, 418 insertions(+), 26 deletions(-)

-- 
2.39.2
Re: [PATCH v3 0/6] lib: Extend bitmap find binary operations
Posted by Yury Norov 1 year, 3 months ago
On Fri, Aug 30, 2024 at 03:10:37PM -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. The series can be found at:
> 
> https://lore.kernel.org/lkml/20240823185946.418340-1-mathieu.desnoyers@efficios.com/
> 

Added in bitmap-for-next for testing.

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 | 143 +++++++++++++++++++++++++++++++++------
>  lib/test_bitmap.c        |  81 ++++++++++++++++++++++
>  5 files changed, 418 insertions(+), 26 deletions(-)
> 
> -- 
> 2.39.2
Re: [PATCH v3 0/6] lib: Extend bitmap find binary operations
Posted by Mathieu Desnoyers 1 year, 3 months ago
On 2024-08-30 19:02, Yury Norov wrote:
> On Fri, Aug 30, 2024 at 03:10:37PM -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. The series can be found at:
>>
>> https://lore.kernel.org/lkml/20240823185946.418340-1-mathieu.desnoyers@efficios.com/
>>
> 
> Added in bitmap-for-next for testing.

Hi Yuri,

FYI, after a lot of performance results analysis on variations over
the NUMA-aware rseq patch, I figured I need to take a drastically
different (and much simpler) approach to solve this in order to improve
cache locality as well, and it turns out I likely won't need the new
bitwise ops added by this series.

So feel free to keep it as a general improvement, or to drop it for
now.

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 | 143 +++++++++++++++++++++++++++++++++------
>>   lib/test_bitmap.c        |  81 ++++++++++++++++++++++
>>   5 files changed, 418 insertions(+), 26 deletions(-)
>>
>> -- 
>> 2.39.2

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