Re: [PATCH] random: always use batched entropy for get_random_u{32,64}

From: Tony Luck
Date: Thu Feb 20 2020 - 17:29:46 EST


Also ... what's the deal with a spin_lock on a per-cpu structure?

batch = raw_cpu_ptr(&batched_entropy_u64);
spin_lock_irqsave(&batch->batch_lock, flags);
if (batch->position % ARRAY_SIZE(batch->entropy_u64) == 0) {
extract_crng((u8 *)batch->entropy_u64);
batch->position = 0;
}
ret = batch->entropy_u64[batch->position++];
spin_unlock_irqrestore(&batch->batch_lock, flags);

Could we just disable interrupts and pre-emption around the entropy extraction?

-Tony