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.

In any case, I would strongly recommend to using at least Xen 4.5+ on
ARM.

Ian.



_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel

Reply via email to