[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] Question. Inject virq to Domain on Xen ARM.
Yes. I confirm irq move from lr_queue to lr in gic_inject().
Thanks but i have another question about vgic_vcpu_inject_irq function. I will Start new thread.
-----Original Message----- > On Mon, 2015-04-13 at 17:08 +0900, ììì wrote: > > HI > > > > I have a question about Inject virq to Domain on Xen ARM. > > > > > > > > Function 'vgic_vcpu_inject_irq' is inject virq to target vcpu. > > > > At the end of vgic_vcpu_inject_irq, like below > > > > -------------------------------------------------------------- > > > > running = v->is_running; > > > > vcpu_unblock(v); > > > > if ( running && v != current ) > > > > smp_send_event_check_mask(cpumask_of(v->processor)); > > > > -------------------------------------------------------------- > > > > In code if target vcpu is not current, send SGI to v->processor; > > > > > > > > I think this function help inject virq to target vcpu immediately in > > Xen 4.5.0. > > > > In Xen 4.5.0, vcpu that receive SGI, will execute > > 'enter_hypervisor_head' function > > > > and move irq from lr_queue to linked register. > > > > > > > > But I think that in Xen 4.4.X above code is not help inject virq. > > because there is code > > > > to move irq from lr_queue to linked register in hyp handler routine. > > The virq injection stuff was heavily reworked by Stefano between 4.4 and > 4.5, to try and avoid things like maintenance interrupts. > > But I'm unsure what you actual question is, but on 4.4 I think the > actual injection happens (as implied by the comment next to the > GIC_SGI_EVENT_CHECK handler) in the return path, specifically in > leave_hypervisor_tail. The question is not clear to me too. On Xen 4.4 the injection on vcpu != current happens by sending an SGI at the end of vgic_vcpu_inject_irq. Then on the other vcpu leave_hypervisor_tail will call gic_inject that is going to take care of injecting the interrupt. On Xen 4.5 vgic_vcpu_inject_irq also sends an SGI to the other vcpu, which is going to clear old LRs from enter_hypervisor_head and inject new interrupts from gic_inject, still called by leave_hypervisor_tail. _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |