Re: One question about API cpumask_setall()
From: Bibo Mao
Date: Tue Jul 28 2026 - 22:18:14 EST
On 2026/7/29 上午9:55, Yury Norov wrote:
On Tue, Jul 28, 2026 at 04:16:27PM +0800, Bibo Mao wrote: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.
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.
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