All of lore.kernel.org
 help / color / mirror / Atom feed
* 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.