Jan Beulich wrote on 2015-09-18: >>>> "Zhang, Yang Z" <yang.z.zh...@intel.com> 09/18/15 2:29 AM >>> >> Zhang, Yang Z wrote on 2015-09-08: >> I have a quick check on current code. I am curious that is current Xen >> preemptive? >> >> Also, when return from an interrupt handler, hypervisor didn't check >> whether reschedule is needed if the interrupt is occurred in kernel context. >> ENTRY(ret_from_intr) >> GET_CURRENT(%rbx) >> testb $3,UREGS_cs(%rsp) >> jz restore_all_xen //call iret directly to restore > previous context where interrupt occur if it is in kernel space. > >> If Xen isn't preemptive, the above case I mentioned should never happen since >> the VCPU still run in the same PCPU. Am I right? > > I have to admit that I don't see the connection to preemptiveness: The > reference above is to a code section with interrupts disabled.
Ok. Maybe I am asking a wrong question. My initial question is how Xen to support the preemption. For example, if VCPU is running in hypervisor (executing any code), can this VCPU be preempted immediately? If yes, how to achieve it because I didn't find any related code. I know if the PCPU get an SCHED_SOFTIRQ, the VCPU will do the schedule before do vmentry. But it only happens before do vmentry. Is it possible that VCPU been preempted at any time when running in hypervisor mode? Best regards, Yang _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel