From: Gordan Bobic <gordan@bobich.net>
To: Andreas Falck <falck.andreas.lists@gmail.com>
Cc: Steven Haigh <netwiz@crc.id.au>,
Ian Campbell <ian.campbell@citrix.com>,
Andrew Cooper <andrew.cooper3@citrix.com>,
Ian Jackson <Ian.Jackson@eu.citrix.com>,
"xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
Jan Beulich <JBeulich@suse.com>
Subject: Re: PCI passthrough problems after legacy update of xen 4.1
Date: Sun, 19 May 2013 20:59:50 +0100 [thread overview]
Message-ID: <51992F36.1040605@bobich.net> (raw)
In-Reply-To: <CAAvQYUS_DQiPhu5B25GxYjeiDS2+=Aq+5i_b0Sk25ACNDD4rVA@mail.gmail.com>
I stand corrected! Jan's patch does in fact fix the problem. I have no
idea what I was doing wrong, but I just tried it again (for the 4th
time) just to make sure, uninstalled the old packages, installed the new
ones - and now it works! There must have been a stale file somewhere
that was breaking it.
Thanks Jan, most appreciated. :)
Gordan
On 05/19/2013 03:56 PM, Andreas Falck wrote:
> Now I'm happy to inform that Jan's patch solves the problem for me. I
> patched the source version of the xen package under ubuntu12.10,
> currently 4.1.3-3ubuntu1.5_amd64. Now I can add pci devices any order I
> like.
>
> After installing the full xen suite from the source (not knowing exactly
> which packages were affected) and seeing it working, I replaced the
> hypervisor package with a version with the debug changes I made earlier,
> to produce the attached logs. These are xend.log and xm dmesg from the
> working case, when I pass pci = [04:00.0, 41:00.0, 41:00.1] which didn't
> work before with the pre-patch code.
>
> Thanks for this! Let me know if I should provide some more info,
> especially given that this change does not yet seem to work for Gordan
> on 4.2.
>
> Regards,
> Andreas
>
>
>
> 2013/5/16 Andreas Falck <falck.andreas.lists@gmail.com
> <mailto:falck.andreas.lists@gmail.com>>
>
> Thanks! I'll give it a try in the weekend. I have been travelling,
> that's why I haven't pursued this further yet.
>
> Regards,
> Andreas
>
>
> 2013/5/14 Jan Beulich <JBeulich@suse.com <mailto:JBeulich@suse.com>>
>
> >>> On 05.05.13 at 21:33, Andreas Falck
> <falck.andreas.lists@gmail.com
> <mailto:falck.andreas.lists@gmail.com>> wrote:
> > I tried adding some debugging statements in physdev_map_pirq.
> I have
> > attached the physdev.c with my debug statements, a hypervisor
> log from
> > testing, and the output of lspci -vv for my three devices.
>
> Since I didn't hear anything from either of you anymore, I went
> through the (not very familiar to me) tool stack code again, and
> found that qemu and xend/libxl fundamentally disagree about the
> model to be used. Qemu wants to allocate PIRQs while xend/libxl
> want a 1:1 mapping. Allocating after having created a 1:1 mapping
> works by returning the 1:1 mapping as allocation result, so as long
> as libxl completes its setup before launching qemu, it would be
> obvious why things work there. Consequently I assume that xend
> launches qemu quite a bit earlier in the process of creating a new
> domain, and the result of an attempt to establish a 1:1 mapping
> when a different mapping was already established is dependent on
> the specific interrupt numbers (i.e. also explains the observations
> one of you made).
>
> Since the tool stack as a whole really ought to use a consistent
> model, and since the 1:1 mapping model for non-MSI IRQs seems
> quite natural, the below/attached patch takes care of enforcing
> a 1:1 mapping in libxc when allocation is being requested by the
> caller. Ian, Ian - do you foresee any problem with this?
>
> Please both of you give this a try and let us know of the results
> (patch applies cleanly to all of -unstable, 4.2, and 4.1).
>
> Jan
>
> --- 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
> <http://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-19 19:59 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <CAAvQYUSQnM26ofCStMuSeLPbabmy7_tksELHrJvi6V=jq6_PvQ@mail.gmail.com>
[not found] ` <7fe927daf168b95128153bf104715689@mail.shatteredsilicon.net>
2013-05-01 14:22 ` [Xen-users] PCI passthrough problems after legacy update of xen 4.1 Andreas Falck
[not found] ` <CAAvQYUT8jeYm57WGEYMgJ9sWQjwP4i=E69ZdkhUswxe-pjLW0Q@mail.gmail.com>
2013-05-02 11:56 ` Jan Beulich
2013-05-02 12:42 ` Andreas Falck
[not found] ` <CAAvQYUTWT9Y24UbwVn3kzEW8Di+MtX8APGz7pGvsiv+f_LovjQ@mail.gmail.com>
2013-05-02 13:35 ` Jan Beulich
2013-05-02 18:57 ` Andreas Falck
[not found] ` <CAAvQYUR411fF__Yfc6EPUOzxCndhXv9qdz-cD1A93-GVaz_ETA@mail.gmail.com>
2013-05-02 21:07 ` Andreas Falck
[not found] ` <CAAvQYUTM8U-mBK3k3A+AOZ4gEhjAKtkparGY2dxTXsy08+Tn0A@mail.gmail.com>
2013-05-03 7:29 ` Jan Beulich
2013-05-03 13:31 ` Andreas Falck
2013-05-03 13:51 ` Jan Beulich
2013-05-03 13:57 ` Andrew Cooper
2013-05-03 14:39 ` Jan Beulich
2013-05-03 14:56 ` Andreas Falck
2013-05-03 15:03 ` Jan Beulich
2013-05-03 18:59 ` Andreas Falck
2013-05-05 19:33 ` Andreas Falck
2013-05-06 7:53 ` Jan Beulich
2013-05-14 14:01 ` Jan Beulich
2013-05-14 14:05 ` Gordan Bobic
2013-05-14 19:30 ` Gordan Bobic
2013-05-15 7:06 ` Jan Beulich
2013-05-15 7:24 ` PCI passthrough problems after XSA46 patch Gordan Bobic
2013-05-15 7:50 ` Jan Beulich
2013-05-17 19:29 ` Gordan Bobic
2013-05-16 12:20 ` Jan Beulich
2013-05-17 19:56 ` Gordan Bobic
2013-05-16 6:41 ` PCI passthrough problems after legacy update of xen 4.1 Andreas Falck
2013-05-19 14:56 ` Andreas Falck
2013-05-19 19:59 ` Gordan Bobic [this message]
2013-05-20 0:50 ` Steven Haigh
2013-05-20 8:55 ` Andrew Cooper
2013-05-20 9:13 ` Ian Campbell
2013-05-21 8:28 ` 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=51992F36.1040605@bobich.net \
--to=gordan@bobich.net \
--cc=Ian.Jackson@eu.citrix.com \
--cc=JBeulich@suse.com \
--cc=andrew.cooper3@citrix.com \
--cc=falck.andreas.lists@gmail.com \
--cc=ian.campbell@citrix.com \
--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 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.