* One question about API cpumask_setall()
@ 2026-07-28 8:16 Bibo Mao
2026-07-29 1:55 ` Yury Norov
0 siblings, 1 reply; 3+ messages in thread
From: Bibo Mao @ 2026-07-28 8:16 UTC (permalink / raw)
To: Yury Norov; +Cc: Rasmus Villemoes, linux-kernel
Hi,
I am preparing to use API cpumask_setall() for TLB flush on LoongArch
KVM side. There are cpumask_test_and_clear_cpu/cpumask_setall() APIs, it
seems that API cpumask_setall() does not support atomic operation.
Do you think it is reasonable to add new API similar with
cpumask_setall() which supports atomic operation?
Regards
Bibo Mao
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: One question about API cpumask_setall()
2026-07-28 8:16 One question about API cpumask_setall() Bibo Mao
@ 2026-07-29 1:55 ` Yury Norov
2026-07-29 2:13 ` Bibo Mao
0 siblings, 1 reply; 3+ messages in thread
From: Yury Norov @ 2026-07-29 1:55 UTC (permalink / raw)
To: Bibo Mao; +Cc: Yury Norov, Rasmus Villemoes, linux-kernel
On Tue, Jul 28, 2026 at 04:16:27PM +0800, Bibo Mao wrote:
> Hi,
>
> I am preparing to use API cpumask_setall() for TLB flush on LoongArch KVM
> side. There are cpumask_test_and_clear_cpu/cpumask_setall() APIs, it seems
> that API cpumask_setall() does not support atomic operation.
>
> Do you think it is reasonable to add new API similar with cpumask_setall()
> which supports atomic operation?
Maybe reasonable, but it's impossible. cpumask is a bitmap, which in
turn is an array of unsigned longs. There's no atomic operations on
arrays.
Thanks,
Yury
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: One question about API cpumask_setall()
2026-07-29 1:55 ` Yury Norov
@ 2026-07-29 2:13 ` Bibo Mao
0 siblings, 0 replies; 3+ messages in thread
From: Bibo Mao @ 2026-07-29 2:13 UTC (permalink / raw)
To: Yury Norov; +Cc: Yury Norov, Rasmus Villemoes, linux-kernel
On 2026/7/29 上午9:55, Yury Norov wrote:
> On Tue, Jul 28, 2026 at 04:16:27PM +0800, Bibo Mao wrote:
>> Hi,
>>
>> I am preparing to use API cpumask_setall() for TLB flush on LoongArch KVM
>> side. There are cpumask_test_and_clear_cpu/cpumask_setall() APIs, it seems
>> that API cpumask_setall() does not support atomic operation.
>>
>> Do you think it is reasonable to add new API similar with cpumask_setall()
>> which supports atomic operation?
>
> Maybe reasonable, but it's impossible. cpumask is a bitmap, which in
> turn is an array of unsigned longs. There's no atomic operations on
> arrays.
It should be workable with atomic operation on unsigned long, rather
than the array of unsigned longs, the API cpumask_test_and_clear_cpu is
atomic operation on unsigned long also.
Is it ok to use smp_store_mb() to fill the bitmap with the similar API
cpumask_setall()? where xchg() is used in smp_store_mb() wrapper instead.
Regards
Bibo Mao
>
> Thanks,
> Yury
>
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2026-07-29 2:14 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-07-28 8:16 One question about API cpumask_setall() Bibo Mao
2026-07-29 1:55 ` Yury Norov
2026-07-29 2:13 ` Bibo Mao
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.