All of lore.kernel.org
 help / color / mirror / Atom feed
From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
To: "Zhang, Yang Z" <yang.z.zhang@intel.com>
Cc: "Nakajima, Jun" <jun.nakajima@intel.com>,
	"keir.xen@gmail.com" <keir.xen@gmail.com>,
	"Zhang, Xiantao" <xiantao.zhang@intel.com>,
	Jan Beulich <JBeulich@suse.com>,
	xen-devel <xen-devel@lists.xen.org>
Subject: Re: [Xenhackthon] Virtualized APIC registers - virtual interrupt delivery.
Date: Fri, 24 May 2013 10:31:42 -0400	[thread overview]
Message-ID: <20130524143142.GK3900@phenom.dumpdata.com> (raw)
In-Reply-To: <A9667DDFB95DB7438FA9D7D576C3D87E0A86C1B3@SHSMSX104.ccr.corp.intel.com>

On Thu, May 23, 2013 at 08:25:06AM +0000, Zhang, Yang Z wrote:
> Jan Beulich wrote on 2013-05-23:
> >>>> On 22.05.13 at 18:21, Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
> > wrote:
> >> Which means that if this is set to be higher than the hypervisor timer
> >> or IPI callback the guest can run unbounded. Also it would seem that
> >> this value has to be often reset when migrating a guest between the pCPUs.
> >> And it would appear that this value is static. Meaning the guest only
> >> sets these vectors once and the hypervisor is responsible for managing
> >> the priority of that guest and other guests (say dom0) on the CPU.
> >> 
> >> For example, we have a guest with a 10gB NIC and the guest has decided
> >> to use vector 0x80 for it (assume a UP guest). Dom0 has an SAS controller
> >> and is using event number 30, 31, 32, and 33 (there are only 4 PCPUS).
> >> The hypervisor maps them to be 0x58, 0x68, 0x78 and 0x88 and spreads those
> >> vectors on each pCPU. The guest is running on pCPU1 and there are two
> >> vectors - 0x80 and 0x58. The one assigned to the guest wins and dom0
> >> SAS controller is preempted.
> >> 
> >> The solution for that seems to have some interaction with the
> >> guest when it allocates the vectors so that they are always below
> >> the dom0 priority vectors. Or hypervisor has to dynamically shuffle its
> >> own vectors to be higher priority.
> >> 
> >> Or is there an guest vector <-> hypervisor vector lookup table that
> >> the CPU can use? So the hypervisor can say: the vector 0x80 in the
> >> guest actually maps to vector 0x48 in the hypervisor?
> > 
> > It is my understanding that the vector spaces are separate, and
> > hence guest interrupts can't block host ones (like the timer). Iirc
> Right. virtual interrupt delivery only for delivering guest virtual interrupt(from emulation device and assigned device.) which is located in guest's vector space. It has nothing to do with other guest.


OK, in which case Linux ~v2.6.32 (when the event callback mechanism was
introduced for HVM guests) will _not_ take advantage of this, right?

Is there a way to solve this so that they _will_ take advantage of this.
> 
> > there's some sort of flag bit in the IRTE to tell whether an interrupt
> > should get delivered directly to the guest, or to the hypervisor.
> I think you are talking about Posted interrupt.
> 
> > 
> > Jan
> > 
> > Jan
> 
> 
> Best regards,
> Yang
> 
> 
> 
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@lists.xen.org
> http://lists.xen.org/xen-devel
> 

  reply	other threads:[~2013-05-24 14:31 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-05-22 16:21 [Xenhackthon] Virtualized APIC registers - virtual interrupt delivery Konrad Rzeszutek Wilk
2013-05-23  7:49 ` Jan Beulich
2013-05-23  8:25   ` Zhang, Yang Z
2013-05-24 14:31     ` Konrad Rzeszutek Wilk [this message]
2013-05-27  4:56       ` Zhang, Yang Z
2013-05-27 10:43         ` Stefano Stabellini
2013-05-28 10:51           ` Zhang, Yang Z
2013-05-28 13:22             ` Konrad Rzeszutek Wilk
2013-05-28 16:10             ` Stefano Stabellini
2013-05-29  0:40               ` Zhang, Yang Z
2013-05-29 10:07                 ` Stefano Stabellini
2013-06-03 12:59                   ` Konrad Rzeszutek Wilk
2013-06-03 15:22                     ` Stefano Stabellini
2013-06-05  0:37                       ` Zhang, Yang Z
2013-06-05 12:51                         ` Stefano Stabellini
2013-06-06  3:08                           ` Zhang, Yang Z
2013-06-06 13:02                             ` Konrad Rzeszutek Wilk
2013-07-15 14:54                             ` Konrad Rzeszutek Wilk
2013-07-16  2:12                               ` Zhang, Yang Z
2013-05-24 14:30   ` Konrad Rzeszutek Wilk

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20130524143142.GK3900@phenom.dumpdata.com \
    --to=konrad.wilk@oracle.com \
    --cc=JBeulich@suse.com \
    --cc=jun.nakajima@intel.com \
    --cc=keir.xen@gmail.com \
    --cc=xen-devel@lists.xen.org \
    --cc=xiantao.zhang@intel.com \
    --cc=yang.z.zhang@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.