xen/pvh: Piggyback on PVHVM for event channels (v2)
PVH is a PV guest with a twist - there are certain things that work in it like HVM and some like PV. There is a similar mode - PVHVM where we run in HVM mode with PV code enabled - and this patch explores that. The most notable PV interfaces are the XenBus and event channels. We will piggyback on how the event channel mechanism is used in PVHVM - that is we want the normal native IRQ mechanism and we will install a vector (hvm callback) for which we will call the event channel mechanism. This means that from a pvops perspective, we can use native_irq_ops instead of the Xen PV specific. Albeit in the future we could support pirq_eoi_map. But that is a feature request that can be shared with PVHVM. Signed-off-by: Mukesh Rathor <mukesh.rathor@oracle.com> Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com> Reviewed-by: David Vrabel <david.vrabel@citrix.com> Acked-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
此提交包含在:
@@ -1144,8 +1144,9 @@ void xen_setup_vcpu_info_placement(void)
|
||||
xen_vcpu_setup(cpu);
|
||||
|
||||
/* xen_vcpu_setup managed to place the vcpu_info within the
|
||||
percpu area for all cpus, so make use of it */
|
||||
if (have_vcpu_info_placement) {
|
||||
* percpu area for all cpus, so make use of it. Note that for
|
||||
* PVH we want to use native IRQ mechanism. */
|
||||
if (have_vcpu_info_placement && !xen_pvh_domain()) {
|
||||
pv_irq_ops.save_fl = __PV_IS_CALLEE_SAVE(xen_save_fl_direct);
|
||||
pv_irq_ops.restore_fl = __PV_IS_CALLEE_SAVE(xen_restore_fl_direct);
|
||||
pv_irq_ops.irq_disable = __PV_IS_CALLEE_SAVE(xen_irq_disable_direct);
|
||||
|
新增問題並參考
封鎖使用者