[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] Question. Inject virq to Domain on Xen ARM.



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@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.