RCU+KVM: making CPU guest mode a quiescent state.

From: Gleb Natapov
Date: Tue Apr 26 2011 - 08:38:36 EST


Hello Paul,

I have a question about RCU + KVM. KVM does not hold any references to RCU
protected data when it switches CPU into a guest mode. In fact switching
to a guest mode is very similar to exiting to userspase from RCU point
of view. In addition CPU may stay in a guest mode for quite a long time
(up to one time slice). It looks like it will be beneficial to treat guest
mode as quiescent state, just like user-mode execution. How can this be
done? I was trying to find how RCU knows about cpu entering user-mode,
but it seems that it does this by checking CPU mode in a timer interrupt
(update_process_times()->rcu_check_callbacks()). This will not work for
guest mode detection since timer interrupt will kick CPU out of a guest
mode and timer interrupt will always see CPU in kernel mode. Do we have
a simple function to call to notify RCU that CPU passed quiescent state
which we can call just before entering guest?

--
Gleb.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/