From: George Dunlap <george.dunlap@eu.citrix.com>
To: Hanweidong <hanweidong@huawei.com>
Cc: Stefano Stabellini <stefano.stabellini@eu.citrix.com>,
Yanqiangjun <yanqiangjun@huawei.com>,
Luonengjun <luonengjun@huawei.com>,
Wangzhenguo <wangzhenguo@huawei.com>,
Yangxiaowei <xiaowei.yang@huawei.com>,
"Gonglei (Arei)" <arei.gonglei@huawei.com>,
Anthony Perard <anthony.perard@citrix.com>,
"xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
Subject: Re: GPU passthrough issue when VM is configured with 4G memory
Date: Thu, 7 Mar 2013 10:16:16 +0000 [thread overview]
Message-ID: <513868F0.6020104@eu.citrix.com> (raw)
In-Reply-To: <FAB5C136CA8BEA4DBEA2F641E3F536384A8A67D5@szxeml538-mbx.china.huawei.com>
On 07/03/13 07:51, Hanweidong wrote:
>> -----Original Message-----
>> From: George Dunlap [mailto:george.dunlap@eu.citrix.com]
>> Sent: 2013年3月6日 20:43
>> To: Hanweidong
>> Cc: Gonglei (Arei); xen-devel@lists.xen.org; Yangxiaowei; Yanqiangjun;
>> Luonengjun; Wangzhenguo
>> Subject: Re: [Xen-devel] GPU passthrough issue when VM is configured
>> with 4G memory
>>
>> On 06/03/13 11:38, Hanweidong wrote:
>>>> -----Original Message-----
>>>> From: dunlapg@gmail.com [mailto:dunlapg@gmail.com] On Behalf Of
>> George
>>>> Dunlap
>>>> Sent: 2013年3月5日 20:59
>>>> To: Gonglei (Arei)
>>>> Cc: xen-devel@lists.xen.org; Yangxiaowei; Yanqiangjun; Luonengjun;
>>>> Wangzhenguo; Hanweidong
>>>> Subject: Re: [Xen-devel] GPU passthrough issue when VM is configured
>>>> with 4G memory
>>>>
>>>> On Mon, Mar 4, 2013 at 8:10 AM, Gonglei (Arei)
>> <arei.gonglei@huawei.com>
>>>> wrote:
>>>>> Hi,all
>>>>>
>>>>> I have tried to passthrough GPU card(Nvidia quadro 4000) on the
>>>> latest Xen
>>>>> unstable version (QEMU is using Qemu-upsteam-unstable, not
>>>> traditional
>>>>> Qemu). This issue as below:
>>>>>
>>>>> Windows7 64-bit guest will blue screen when GPU passthrough
>>>> configure
>>>>> 4g memory,blue screen code is 50, and SUSE 11 64-bit guest will
>>>> always stay
>>>>> at the grub screen. I noticed that it will relocate RAM that
>>>> overlaps PCI
>>>>> space in pci_setup()(tools/hvmloader/pci.c). If VM memory is
>>>> configured with
>>>>> 3G, it won't cause relocate RAM that overlaps PCI space in
>>>> pci_setup(), and
>>>>> GPU pass-through is no problem. So it seems this issue is related
>> to
>>>>> "relocate RAM" in pci_setup().
>>>> So one issue XenServer found with passing through GPUs is that there
>>>> are bugs in some PCI bridges that completely break VT-d. The issue
>>>> was that if the *guest* physical address space overlapped the *host*
>>>> physical address of a different device, that the PCI bridges would
>>>> send traffic from the passed-through card intended for the guest to
>>>> another card instead. The work-around was to make the hole in the
>>>> guest MMIO space the same size as the host MMIO hole. I'm not sure
>> if
>>>> that made it upstream or not -- let me check...
>>>>
>>> Hi George,
>>>
>>> Could you post your patch and let us have a try with it? Thanks!
>> So the patch got checked in, but there still may be some more work if
>> you want to use it. :-)
>>
>> The patch modifies xc_hvm_build_args structure to include a field
>> called
>> "mmio_size". If this is set to zero, it will default to
>> HVM_BELOW_4G_MMIO_LENGTH; otherwise, it will be the size of the default
>> MMIO hole set during the build process. The guest BIOS may modify this
>> at boot time to make it bigger, but it doesn't make it smaller.
>>
>> Since this was designed for xapi, however, which calls libxc directly,
>> we didn't add any options to xend / xl / libxl to set this option.
>>
>> The easiest way to test it probably is just to hard-code
>> HVM_BELOW_4G_MMIO_LENGTH to a new value (from the description, setting
>> it to 1GiB should be sufficient).
>>
>> Then if you want to use it in production, you probably want to either:
>> 1. Try it with the latest version of XCP (which I think has an option
>> you can set)
>> 2. Implement a config option for xl that allows you to set the MMIO
>> hole
>> size.
>>
>> #2 should be a relatively straightforward matter of "plumbing", and
>> would be a welcome contribution. :-)
>>
>> If you do implement #2, it might be nice to have an option of
>> "mmio_hole_size=host", which will set the guest mmio hole to the same
>> size as the host. That's what we implemented for XenServer, to make
>> sure
>> there would never be any collisions.
>>
> We rooted caused this issue: in pci_setup, it relocates pci_mem_start from
> 0xF0000000 to 0XE0000000 because GPU has big more MMIO, but in QEMU,
> xen_ram_init directly uses the macro HVM_BELOW_4G_RAM_END and
> HVM_BELOW_4G_MMIO_LENGTH, doesn't do corresponding relocation like pci_setup
> does.
>
> We tried to hardcod HVM_BELOW_4G_RAM_END to 0XE0000000, GPU pass-through
> Worked.
I'm not super familiar with the HVM qemu / guest BIOS stuff, but it
sounds like that's a bug in pass-through that needs to be sorted out.
Anthony, can you comment?
-George
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel
next prev parent reply other threads:[~2013-03-07 10:16 UTC|newest]
Thread overview: 57+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-03-04 8:10 GPU passthrough issue when VM is configured with 4G memory Gonglei (Arei)
2013-03-05 9:50 ` Pasi Kärkkäinen
2013-03-05 12:44 ` Hanweidong
2013-03-05 13:20 ` Pasi Kärkkäinen
2013-03-05 14:21 ` Matthias
2013-03-05 14:27 ` Pasi Kärkkäinen
2013-03-05 14:41 ` Matthias
2013-03-06 11:35 ` Hanweidong
2013-03-05 12:59 ` George Dunlap
2013-03-06 11:38 ` Hanweidong
2013-03-06 12:43 ` George Dunlap
2013-03-06 14:04 ` Pasi Kärkkäinen
2013-03-06 19:45 ` Konrad Rzeszutek Wilk
2013-03-07 7:51 ` Hanweidong
2013-03-07 10:16 ` George Dunlap [this message]
2013-03-12 5:45 ` Hanweidong
2013-03-12 10:39 ` George Dunlap
2013-03-13 13:23 ` Hanweidong
2013-03-16 23:41 ` youenn.gestin
2013-03-17 17:32 ` Pasi Kärkkäinen
2013-03-18 22:43 ` youenn.gestin
2013-03-19 7:28 ` David TECHER
2013-03-18 12:02 ` Stefano Stabellini
2013-03-18 15:40 ` Hao, Xudong
2013-03-19 0:34 ` Hanweidong
2013-03-26 9:37 ` Hanweidong
2013-04-15 21:22 ` Pasi Kärkkäinen
2013-04-16 0:44 ` David TECHER
2013-04-16 3:54 ` Pasi Kärkkäinen
2013-04-16 9:21 ` David TECHER
2013-04-16 12:45 ` Hanweidong
2013-04-16 12:37 ` George Dunlap
2013-04-16 12:46 ` Ian Campbell
2013-04-25 3:46 ` Hanweidong
2013-04-25 8:12 ` Hao, Xudong
2013-04-25 14:23 ` Hanweidong
2013-04-25 10:29 ` George Dunlap
2013-04-25 14:24 ` Hanweidong
2013-05-09 16:49 ` Pasi Kärkkäinen
2013-05-17 7:10 ` Hanweidong
2013-05-17 7:37 ` Gordan Bobic
2013-05-20 8:20 ` Pasi Kärkkäinen
2013-05-20 11:29 ` George Dunlap
2013-05-20 13:00 ` Stefano Stabellini
2013-05-20 18:43 ` Gordan Bobic
2013-05-21 4:09 ` Hanweidong
2013-05-22 15:17 ` Gordan Bobic
2013-05-22 18:11 ` Andrew Bobulsky
2013-05-22 18:41 ` Gordan Bobic
2013-05-23 14:38 ` Hanweidong
2013-05-29 16:18 ` Stefano Stabellini
2013-05-30 1:29 ` Hanweidong
2013-05-30 10:27 ` GPU passthrough issue when VM is configured with 4G memoryo Stefano Stabellini
2013-05-30 10:45 ` Hanweidong
2013-06-03 13:11 ` GPU passthrough issue when VM is configured with 4G memory Konrad Rzeszutek Wilk
2013-06-03 15:14 ` Stefano Stabellini
2013-09-26 20:09 ` GPU passthrough issue when VM is configured with 4G memory / Xen 4.4 Pasi Kärkkäinen
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=513868F0.6020104@eu.citrix.com \
--to=george.dunlap@eu.citrix.com \
--cc=anthony.perard@citrix.com \
--cc=arei.gonglei@huawei.com \
--cc=hanweidong@huawei.com \
--cc=luonengjun@huawei.com \
--cc=stefano.stabellini@eu.citrix.com \
--cc=wangzhenguo@huawei.com \
--cc=xen-devel@lists.xen.org \
--cc=xiaowei.yang@huawei.com \
--cc=yanqiangjun@huawei.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.