Re: Possible nohz-full/RCU issue in arm64 KVM

From: Paolo Bonzini
Date: Fri Dec 17 2021 - 11:34:14 EST


On 12/17/21 17:07, Paul E. McKenney wrote:
rcu_note_context_switch() is a point-in-time notification; it's not strictly
necessary, but it may improve performance a bit by avoiding unnecessary IPIs
from the RCU subsystem.

There's no benefit from doing it when you're back from the guest, because at
that point the CPU is just running normal kernel code.

Do scheduling-clock interrupts from guest mode have the "user" parameter
set? If so, that would keep RCU happy.

No, thread is in supervisor mode. But after every interrupt (timer tick or anything), one of three things can happen:

* KVM will go around the execution loop and invoke rcu_note_context_switch() again

* or KVM will go back to user space

* or the thread will be preempted

and either will keep RCU happy as far as I understand.

Paolo