From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Jan Beulich <JBeulich@suse.com>
Cc: Steven Haigh <netwiz@crc.id.au>,
Ian Campbell <Ian.Campbell@citrix.com>,
Ian Jackson <Ian.Jackson@eu.citrix.com>,
Andreas Falck <falck.andreas.lists@gmail.com>,
xen-devel <xen-devel@lists.xen.org>,
Gordan Bobic <gordan@bobich.net>
Subject: Re: [PATCH] fix XSA-46 regression with xend/xm
Date: Tue, 21 May 2013 10:00:28 +0100 [thread overview]
Message-ID: <519B37AC.9080202@citrix.com> (raw)
In-Reply-To: <519B4F1102000078000D789D@nat28.tlf.novell.com>
On 21/05/13 09:40, Jan Beulich wrote:
> The hypervisor side changes for XSA-46 require the tool stack to now
> always map the guest pIRQ before granting access permission to the
> underlying host IRQ (GSI). This in particular requires that pciif.py
> no longer can skip this step (assuming qemu would do it) for HVM
> guests.
>
> This in turn exposes, however, an inconsistency between xend and qemu:
> The former wants to always establish 1:1 mappings between pIRQ and host
> IRQ (for non-MSI only of course), while the latter always wants to
> allocate an arbitrary mapping. Since the whole tool stack obviously
> should always agree on the mapping model, make libxc enforce the 1:1
> mapping as the more natural one (as well as being the one that allows
> for easier debugging, since there no need to find out the extra
> mapping). Users of libxc that want to establish a particular (rather
> than an allocated) mapping are still free to do so, as well as tool
> stacks not based on libxc wanting to implement an allocation based
> model (which is why it's not the hypervisor that's being changed to
> enforce either model).
>
> Since libxl, like xend, already uses a 1:1 model, it's unaffected by
> the libxc change (and it being unaffected by the original hypervisor
> side changes is - afaict - simply due to qemu getting spawned at a
> later point in time compared to the xend event flow).
>
> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> Tested-by: Andreas Falck <falck.andreas.lists@gmail.com> (on 4.1)
> Tested-by: Gordan Bobic <gordan@bobich.net> (on 4.2)
Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
>
> --- a/tools/libxc/xc_physdev.c
> +++ b/tools/libxc/xc_physdev.c
> @@ -49,7 +49,7 @@ int xc_physdev_map_pirq(xc_interface *xc
> map.domid = domid;
> map.type = MAP_PIRQ_TYPE_GSI;
> map.index = index;
> - map.pirq = *pirq;
> + map.pirq = *pirq < 0 ? index : *pirq;
>
> rc = do_physdev_op(xch, PHYSDEVOP_map_pirq, &map, sizeof(map));
>
> --- a/tools/python/xen/xend/server/pciif.py
> +++ b/tools/python/xen/xend/server/pciif.py
> @@ -340,7 +340,7 @@ class PciController(DevController):
> raise VmError(('pci: failed to configure I/O memory on device '+
> '%s - errno=%d')%(dev.name,rc))
>
> - if not self.vm.info.is_hvm() and dev.irq:
> + if dev.irq > 0:
> rc = xc.physdev_map_pirq(domid = fe_domid,
> index = dev.irq,
> pirq = dev.irq)
>
>
>
next prev parent reply other threads:[~2013-05-21 9:00 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-05-21 8:40 [PATCH] fix XSA-46 regression with xend/xm Jan Beulich
2013-05-21 8:56 ` Ian Campbell
2013-05-21 8:59 ` Gordan Bobic
2013-05-21 9:01 ` Jan Beulich
2013-05-22 20:51 ` Gordan Bobic
2013-05-24 11:19 ` George Dunlap
2013-05-24 11:41 ` Gordan Bobic
2013-05-24 12:26 ` George Dunlap
2013-05-21 9:00 ` Andrew Cooper [this message]
2013-05-21 9:44 ` George Dunlap
2013-05-21 9:56 ` Jan Beulich
2013-05-21 10:06 ` George Dunlap
2013-05-21 10:17 ` Jan Beulich
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=519B37AC.9080202@citrix.com \
--to=andrew.cooper3@citrix.com \
--cc=Ian.Campbell@citrix.com \
--cc=Ian.Jackson@eu.citrix.com \
--cc=JBeulich@suse.com \
--cc=falck.andreas.lists@gmail.com \
--cc=gordan@bobich.net \
--cc=netwiz@crc.id.au \
--cc=xen-devel@lists.xen.org \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).