WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

[Xen-devel] VGA Passthrough on Xen Unstable Progress

To: xen-devel <xen-devel@xxxxxxxxxxxxxxxxxxx>
Subject: [Xen-devel] VGA Passthrough on Xen Unstable Progress
From: Liwei <xieliwei@xxxxxxxxx>
Date: Tue, 10 May 2011 02:54:49 +0800
Delivery-date: Mon, 09 May 2011 11:56:26 -0700
Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:from:date:message-id:subject:to :content-type; bh=t+8SngwSQfh5tl9fBrMZgiuZf085k00lTP+oV6Np8Io=; b=VXRRV3R0/sQKa0Sop2LlmxTKAu4Qqi9KXsShnmOZcKPlXBPp2/mkynr0S2M1KLkwoe vlU090BgZRVazxVCSHhZTl8KehQP8vPZav4fXeXciwasuT44T/rynuxVWzLPZBhuctA8 lgsd9qVHXwk6wVCEC/GaGxw7ptHmkIrxyvf4E=
Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:from:date:message-id:subject:to:content-type; b=cvQO79KkMtLGelg80vw8AT5+SM/4xc5xQSALeuWS6N8NTli65r+XlfHLCfmdA+u6gi Dz4kFqtQJvVxZmMDTKGohHm/nz7L/aEU7r9FZglccJG/ZmD8quoU+LMAnWnXQWqvQBH6 2Z7AJwvfZa7l8c89vu2rr+DcdFsczMnDei7nM=
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
Hello all,

Did some more brute force testing and made some progress. The
installer now boots and I can install windows 7 (but the installed
windows 7 doesn't boot and the installer produces a black screen at
the end).

It appears there are a few problems:
1. Enabling HAP has been the cause of all the reboots in my previous
emails. Disabling HAP fixes that.
2. The maximum amount of memory I can allocate to the guest is 2824MB.
Any more and weird things start to happen.

Not sure if these are useful, but here's what happens with different
amount of memory allocated:
<2824, bootable into installer>
# xl create /etc/xen/W7Test.cfg
Parsing config file /etc/xen/W7Test.cfg
xc: info: VIRTUAL MEMORY ARRANGEMENT:
  Loader:        0000000000100000->00000000001885d4
  TOTAL:         0000000000000000->00000000b0100000
  ENTRY ADDRESS: 0000000000100000
xc: info: PHYSICAL MEMORY ALLOCATION:
  4KB PAGES: 0x0000000000000300
  2MB PAGES: 0x000000000000037f
  1GB PAGES: 0x0000000000000001
libxl: error: libxl_pci.c:741:libxl__device_pci_reset The kernel
doesn't support reset from sysfs for PCI device 0000:01:00.0
libxl: error: libxl_pci.c:741:libxl__device_pci_reset The kernel
doesn't support reset from sysfs for PCI device 0000:01:00.1
Daemon running with PID 25369

<2825, seems bootable, cursor appears but severe display corruption>
# xl create /etc/xen/W7Test.cfg
Parsing config file /etc/xen/W7Test.cfg
xc: info: VIRTUAL MEMORY ARRANGEMENT:
  Loader:        0000000000100000->00000000001885d4
  TOTAL:         0000000000000000->00000000b0100000
  ENTRY ADDRESS: 0000000000100000
xc: info: PHYSICAL MEMORY ALLOCATION:
  4KB PAGES: 0x0000000000000300
  2MB PAGES: 0x000000000000037f
  1GB PAGES: 0x0000000000000001
libxl: error: libxl_pci.c:741:libxl__device_pci_reset The kernel
doesn't support reset from sysfs for PCI device 0000:01:00.0
libxl: error: libxl_pci.c:741:libxl__device_pci_reset The kernel
doesn't support reset from sysfs for PCI device 0000:01:00.1
Daemon running with PID 25486

<"Progressive" display corruptions are mostly white in colour and
slowly increases row by row from top to bottom, ends when the windows
logo starts to appear>

<2826, stuck at pulsating logo, "progressive" display corruption at top>
# xl create /etc/xen/W7Test.cfg
Parsing config file /etc/xen/W7Test.cfg
xc: info: VIRTUAL MEMORY ARRANGEMENT:
  Loader:        0000000000100000->00000000001885d4
  TOTAL:         0000000000000000->00000000b0200000
  ENTRY ADDRESS: 0000000000100000
xc: info: PHYSICAL MEMORY ALLOCATION:
  4KB PAGES: 0x0000000000000200
  2MB PAGES: 0x0000000000000380
  1GB PAGES: 0x0000000000000001
libxl: error: libxl_pci.c:741:libxl__device_pci_reset The kernel
doesn't support reset from sysfs for PCI device 0000:01:00.0
libxl: error: libxl_pci.c:741:libxl__device_pci_reset The kernel
doesn't support reset from sysfs for PCI device 0000:01:00.1
Daemon running with PID 25601

<2827, stuck at pulsating logo, "progressive" display corruption at
top + display corruption at bottom>
# xl create /etc/xen/W7Test.cfg
Parsing config file /etc/xen/W7Test.cfg
xc: info: VIRTUAL MEMORY ARRANGEMENT:
  Loader:        0000000000100000->00000000001885d4
  TOTAL:         0000000000000000->00000000b0300000
  ENTRY ADDRESS: 0000000000100000
xc: info: PHYSICAL MEMORY ALLOCATION:
  4KB PAGES: 0x0000000000000300
  2MB PAGES: 0x0000000000000380
  1GB PAGES: 0x0000000000000001
libxl: error: libxl_pci.c:741:libxl__device_pci_reset The kernel
doesn't support reset from sysfs for PCI device 0000:01:00.0
libxl: error: libxl_pci.c:741:libxl__device_pci_reset The kernel
doesn't support reset from sysfs for PCI device 0000:01:00.1
Daemon running with PID 25727

<2828, stuck at pulsating logo, "progressive" display corruption at center>
# xl create /etc/xen/W7Test.cfg
Parsing config file /etc/xen/W7Test.cfg
xc: info: VIRTUAL MEMORY ARRANGEMENT:
  Loader:        0000000000100000->00000000001885d4
  TOTAL:         0000000000000000->00000000b0400000
  ENTRY ADDRESS: 0000000000100000
xc: info: PHYSICAL MEMORY ALLOCATION:
  4KB PAGES: 0x0000000000000200
  2MB PAGES: 0x0000000000000381
  1GB PAGES: 0x0000000000000001
libxl: error: libxl_pci.c:741:libxl__device_pci_reset The kernel
doesn't support reset from sysfs for PCI device 0000:01:00.0
libxl: error: libxl_pci.c:741:libxl__device_pci_reset The kernel
doesn't support reset from sysfs for PCI device 0000:01:00.1
Daemon running with PID 25835

<2829, stuck at pulsating logo, "progressive" display corruption at center>
# xl create /etc/xen/W7Test.cfg
Parsing config file /etc/xen/W7Test.cfg
xc: info: VIRTUAL MEMORY ARRANGEMENT:
  Loader:        0000000000100000->00000000001885d4
  TOTAL:         0000000000000000->00000000b0500000
  ENTRY ADDRESS: 0000000000100000
xc: info: PHYSICAL MEMORY ALLOCATION:
  4KB PAGES: 0x0000000000000300
  2MB PAGES: 0x0000000000000381
  1GB PAGES: 0x0000000000000001
libxl: error: libxl_pci.c:741:libxl__device_pci_reset The kernel
doesn't support reset from sysfs for PCI device 0000:01:00.0
libxl: error: libxl_pci.c:741:libxl__device_pci_reset The kernel
doesn't support reset from sysfs for PCI device 0000:01:00.1
Daemon running with PID 26074

<2830, stuck at pulsating logo, no display corruption>
# xl create /etc/xen/W7Test.cfg
Parsing config file /etc/xen/W7Test.cfg
xc: info: VIRTUAL MEMORY ARRANGEMENT:
  Loader:        0000000000100000->00000000001885d4
  TOTAL:         0000000000000000->00000000b0600000
  ENTRY ADDRESS: 0000000000100000
xc: info: PHYSICAL MEMORY ALLOCATION:
  4KB PAGES: 0x0000000000000200
  2MB PAGES: 0x0000000000000382
  1GB PAGES: 0x0000000000000001
libxl: error: libxl_pci.c:741:libxl__device_pci_reset The kernel
doesn't support reset from sysfs for PCI device 0000:01:00.0
libxl: error: libxl_pci.c:741:libxl__device_pci_reset The kernel
doesn't support reset from sysfs for PCI device 0000:01:00.1
Daemon running with PID 25952

Somewhere after 2830MB, the logo doesn't even appear (only the
"Starting Windows" text).

Regarding these messages:
pt_pci_write_config: Warning: Guest attempt to set address to unused
Base Address Register. [00:05.0][Offset:30h][Length:4]
pt_pci_read_config: Error: Failed to read register with invalid access
size alignment. [00:04.0][Offset:0eh][Length:4]
pt_pci_read_config: Error: Failed to read register with invalid access
size alignment. [00:05.0][Offset:0eh][Length:4]

After looking through xen's dmesg (attached), it appears that xen is
giving my PCI devices some sort of internal PCI ID? The following
appears, which I believe is related to my VGA card (though lspci lists
them as 01:00.0 and 01:00.1):
(XEN) HVM7: Make vBAR = pBAR of assigned gfx
(XEN) domctl.c:986:d0 memory_map:add: gfn=f4000 mfn=f4000 nr_mfns=2000
(XEN) domctl.c:986:d0 memory_map:add: gfn=b0000 mfn=b0000 nr_mfns=8000
(XEN) domctl.c:986:d0 memory_map:add: gfn=b8000 mfn=b8000 nr_mfns=4000
(XEN) domctl.c:1042:d0 ioport_map:add f_gport=4c00 f_mport=4c00 np=80
(XEN) HVM7: pci dev 05:0 INTB->IRQ11
(XEN) HVM7: pci dev 06:0 INTA->IRQ11

In my dom0 dmesg, I also see some interesting logs:
[    1.205757] pnp 00:0b: disabling [mem 0x00000000-0x0009ffff]
because it overlaps 0000:04:00.0 BAR 2 [mem 0x00000000-0x007fffff
64bit]
[    1.205760] pnp 00:0b: disabling [mem 0x000c0000-0x000cffff]
because it overlaps 0000:04:00.0 BAR 2 [mem 0x00000000-0x007fffff
64bit]
[    1.205763] pnp 00:0b: disabling [mem 0x000e0000-0x000fffff]
because it overlaps 0000:04:00.0 BAR 2 [mem 0x00000000-0x007fffff
64bit]
[    1.205766] pnp 00:0b: disabling [mem 0x00100000-0x9fffffff]
because it overlaps 0000:04:00.0 BAR 2 [mem 0x00000000-0x007fffff
64bit]
[    1.205773] pnp 00:0b: disabling [mem 0x00000000-0x0009ffff
disabled] because it overlaps 0000:0b:00.0 BAR 0 [mem
0x00000000-0x01ffffff]
[    1.205776] pnp 00:0b: disabling [mem 0x000c0000-0x000cffff
disabled] because it overlaps 0000:0b:00.0 BAR 0 [mem
0x00000000-0x01ffffff]
[    1.205779] pnp 00:0b: disabling [mem 0x000e0000-0x000fffff
disabled] because it overlaps 0000:0b:00.0 BAR 0 [mem
0x00000000-0x01ffffff]
[    1.205782] pnp 00:0b: disabling [mem 0x00100000-0x9fffffff
disabled] because it overlaps 0000:0b:00.0 BAR 0 [mem
0x00000000-0x01ffffff]
[    1.205785] pnp 00:0b: disabling [mem 0x00000000-0x0009ffff
disabled] because it overlaps 0000:0b:00.0 BAR 1 [mem
0x00000000-0x07ffffff 64bit pref]
[    1.205788] pnp 00:0b: disabling [mem 0x000c0000-0x000cffff
disabled] because it overlaps 0000:0b:00.0 BAR 1 [mem
0x00000000-0x07ffffff 64bit pref]
[    1.205791] pnp 00:0b: disabling [mem 0x000e0000-0x000fffff
disabled] because it overlaps 0000:0b:00.0 BAR 1 [mem
0x00000000-0x07ffffff 64bit pref]
[    1.205794] pnp 00:0b: disabling [mem 0x00100000-0x9fffffff
disabled] because it overlaps 0000:0b:00.0 BAR 1 [mem
0x00000000-0x07ffffff 64bit pref]
[    1.205797] pnp 00:0b: disabling [mem 0x00000000-0x0009ffff
disabled] because it overlaps 0000:0b:00.0 BAR 3 [mem
0x00000000-0x03ffffff 64bit pref]
[    1.205800] pnp 00:0b: disabling [mem 0x000c0000-0x000cffff
disabled] because it overlaps 0000:0b:00.0 BAR 3 [mem
0x00000000-0x03ffffff 64bit pref]
[    1.205803] pnp 00:0b: disabling [mem 0x000e0000-0x000fffff
disabled] because it overlaps 0000:0b:00.0 BAR 3 [mem
0x00000000-0x03ffffff 64bit pref]
[    1.205805] pnp 00:0b: disabling [mem 0x00100000-0x9fffffff
disabled] because it overlaps 0000:0b:00.0 BAR 3 [mem
0x00000000-0x03ffffff 64bit pref]

Sorry for the long post, hopefully someone can give me an idea about
how to go about getting VGA passthrough to work.

Thanks!

Attachment: xendmesg
Description: Binary data

Attachment: W7Test.cfg
Description: Binary data

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-devel] VGA Passthrough on Xen Unstable Progress, Liwei <=