Hello, Gleb, I was looking at KVM's call to rcu_virt_note_context_switch() in kvm_guest_enter(), and noting the comment talking about treating guest mode like user-mode execution is. One difference between RCU's treatment of KVM guest execution and user-mode execution is that RCU notes a context switch only at the beginning of KVM guest execution, but notes user-mode execution at every scheduling-clock interrupt. Does it make sense to also note KVM guest execution on each scheduling-clock interrupt? One reason it might not make sense is if interrupts from KVM guest execution appear to rcu_check_callbacks() as interrupts from user-mode execution. (Do they? Given that people are reporting RCU CPU stall warnings in virtualized environments, I am beginning to suspect that the answer is "no".) If KVM guest execution does not appear as user-mode execution to rcu_check_callback(), I would consider doing the following: 1. Rename rcu_virt_note_context_switch() to something like rcu_guest_execution_start(). 2. Place a call to a new rcu_guest_execution_end() in kvm_guest_exit(). 3. Make rcu_guest_execution_start() and rcu_guest_execution_end() set and clear a new per-CPU variable. 4. Make rcu_check_callbacks() check this per-CPU variable in much the same way that it currently checks its "user" argument, aside from needing to check that the CPU is not in an interrupt handler or some such. Of course, some thought is required to make sure that the checks for executing in an interrupt handler actually cover all of the needed situations, but so it goes! Thoughts? Thanx, Paul -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html