On Tue, Nov 11, 2014 at 2:48 PM, Anup Patel <anup@xxxxxxxxxxxxxx> wrote: > Hi All, > > I have second thoughts about rebasing KVM PMU patches > to Marc's irq-forwarding patches. > > The PMU IRQs (when virtualized by KVM) are not exactly > forwarded IRQs because they are shared between Host > and Guest. > > Scenario1 > ------------- > > We might have perf running on Host and no KVM guest > running. In this scenario, we wont get interrupts on Host > because the kvm_pmu_hyp_init() (similar to the function > kvm_timer_hyp_init() of Marc's IRQ-forwarding > implementation) has put all host PMU IRQs in forwarding > mode. > > The only way solve this problem is to not set forwarding > mode for PMU IRQs in kvm_pmu_hyp_init() and instead > have special routines to turn on and turn off the forwarding > mode of PMU IRQs. These routines will be called from > kvm_arch_vcpu_ioctl_run() for toggling the PMU IRQ > forwarding state. > > Scenario2 > ------------- > > We might have perf running on Host and Guest simultaneously > which means it is quite likely that PMU HW trigger IRQ meant > for Host between "ret = kvm_call_hyp(__kvm_vcpu_run, vcpu);" > and "kvm_pmu_sync_hwstate(vcpu);" (similar to timer sync routine > of Marc's patchset which is called before local_irq_enable()). > > In this scenario, the updated kvm_pmu_sync_hwstate(vcpu) > will accidentally forward IRQ meant for Host to Guest unless > we put additional checks to inspect VCPU PMU state. > > Am I missing any detail about IRQ forwarding for above > scenarios? > > If not then can we consider current mask/unmask approach > for forwarding PMU IRQs? > > Marc?? Will?? > > Regards, > Anup Ping ??? -- Anup -- 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