PCI configuration space is not emulated by the hypervisor. There must be an 
external emulator to handle config cycles which, in the general case, is either 
QEMU or a stub domain. Either one of these must be running *before* the guest 
is unpaused and hence allowed to generate I/O emulation requests. If your 
stubdom configuration is not working then you need to figure out:


a)      Whether the stubdom is actually starting up at all.

b)      Whether it is shutting down prematurely. E.g. I found that having a 
‘serial=’ line in my xl.cfg was enough to cause a stubdom to die.

c)       Whether the stubdom is actually hooking into Xen correctly, for which 
you’ll need to add some printks into Xen… look at functions with ‘ioreq_server’ 
in the name in xen/arch/x86/hvm/hvm.c

  Paul

From: xs-devel-requ...@lists.xenserver.org 
[mailto:xs-devel-requ...@lists.xenserver.org] On Behalf Of Xuehan Xu
Sent: 14 August 2015 09:05
To: xs-de...@lists.xenserver.org; xen-devel@lists.xen.org
Subject: Re: [xs-devel] Trying to bring up stub domain in xen-4.4-xs88306

Hi, I compared the hvm domain start log when using device model stub domain 
with that when using dom0 qemu:

the former log:
[2015-08-12 17:11:24] (d1) [  135.565586] PCI-ISA link 0 routed to IRQ5
[2015-08-12 17:11:24] (d1) [  135.565648] PCI-ISA link 1 routed to IRQ10
[2015-08-12 17:11:24] (d1) [  135.565710] PCI-ISA link 2 routed to IRQ11
[2015-08-12 17:11:24] (d1) [  135.565770] PCI-ISA link 3 routed to IRQ5
[2015-08-12 17:11:24] (d1) [  135.566884] *** HVMLoader assertion '(devfn != 
PCI_ISA_DEVFN) || ((vendor_id == 0x8086) &&
[2015-08-12 17:11:24] (d1) [  135.566968] (device_id == 0x7000))' failed at 
pci.c:112
[2015-08-12 17:11:24] (d1) [  135.567012] *** HVMLoader crashed.

the latter:
[2015-08-14 14:11:40] (XEN) [  274.839099] irq.c:270: Dom1 PCI link 0 changed 0 
-> 5
[2015-08-14 14:11:40] (d1) [  274.839170] PCI-ISA link 0 routed to IRQ5
[2015-08-14 14:11:40] (XEN) [  274.839741] irq.c:270: Dom1 PCI link 1 changed 0 
-> 10
[2015-08-14 14:11:40] (d1) [  274.839841] PCI-ISA link 1 routed to IRQ10
[2015-08-14 14:11:40] (XEN) [  274.839974] irq.c:270: Dom1 PCI link 2 changed 0 
-> 11
[2015-08-14 14:11:40] (d1) [  274.840050] PCI-ISA link 2 routed to IRQ11
[2015-08-14 14:11:40] (XEN) [  274.840144] irq.c:270: Dom1 PCI link 3 changed 0 
-> 5
[2015-08-14 14:11:40] (d1) [  274.840213] PCI-ISA link 3 routed to IRQ5
[2015-08-14 14:11:40] (d1) [  274.851269] pci dev 01:2 INTD->IRQ5
[2015-08-14 14:11:40] (d1) [  274.854295] pci dev 01:3 INTA->IRQ10
[2015-08-14 14:11:40] (d1) [  274.857918] pci dev 02:0 INTA->IRQ11
[2015-08-14 14:11:40] (d1) [  274.861777] pci dev 03:0 INTC->IRQ10
[2015-08-14 14:11:40] (d1) [  274.865560] pci dev 04:0 INTA->IRQ5
[2015-08-14 14:11:40] (d1) [  274.917245] No RAM in high memory; setting 
high_mem resource base to 100000000

It seems that when using dom0 qemu, the PCI configuration instructions are 
intercepted by xen hypervisor, while when using qemu stub domain, these 
instructions are not intercepted.
Why? Thanks:-)


On 13 August 2015 at 15:04, Xuehan Xu 
<xxhdx1985...@gmail.com<mailto:xxhdx1985...@gmail.com>> wrote:
Hi, everyone.

I'm trying to run a Windows HVM vm with stub domain in xenserver-6.5, whose 
internal xen version is xen-4.4-xs88306. After I started the vm, both the vm 
and its corresponding stub domain crashed. Here is the related content in 
hypervisor.log. The domain ID of the windows vm is 1, and the stub domain's id 
is 2.

[2015-08-12 17:11:24] (d1) [  135.564650] HVM Loader
[2015-08-12 17:11:24] (d1) [  135.564756] Detected Xen v4.4.1-xs88306
[2015-08-12 17:11:24] (d1) [  135.564850] Xenbus rings @0xfeffc000, event 
channel 2
[2015-08-12 17:11:24] (d1) [  135.565048] System requested ROMBIOS
[2015-08-12 17:11:24] (d1) [  135.565090] CPU speed is 2494 MHz
[2015-08-12 17:11:24] (d2) [  135.565234] Bootstrapping...
[2015-08-12 17:11:24] (d2) [  135.565275] Xen Minimal OS!
[2015-08-12 17:11:24] (d2) [  135.565284]   start_info: 0x585000(VA)
[2015-08-12 17:11:24] (d2) [  135.565289]     nr_pages: 0x2000
[2015-08-12 17:11:24] (d2) [  135.565293]   shared_inf: 0xbda9e000(MA)
[2015-08-12 17:11:24] (d2) [  135.565296]      pt_base: 0x588000(VA)
[2015-08-12 17:11:24] (d2) [  135.565300] nr_pt_frames: 0x7
[2015-08-12 17:11:24] (d2) [  135.565304]     mfn_list: 0x575000(VA)
[2015-08-12 17:11:24] (d2) [  135.565307]    mod_start: 0x0(VA)
[2015-08-12 17:11:24] (d2) [  135.565311]      mod_len: 0
[2015-08-12 17:11:24] (d2) [  135.565314]        flags: 0x0
[2015-08-12 17:11:24] (d2) [  135.565318]     cmd_line:
[2015-08-12 17:11:24] (d2) [  135.565374]   stack:      0x534660-0x554660
[2015-08-12 17:11:24] (d2) [  135.565381] MM: Init
[2015-08-12 17:11:24] (d2) [  135.565385]       _text: 0x0(VA)
[2015-08-12 17:11:24] (d2) [  135.565389]      _etext: 0x1203b2(VA)
[2015-08-12 17:11:24] (d2) [  135.565393]    _erodata: 0x176000(VA)
[2015-08-12 17:11:24] (d2) [  135.565396]      _edata: 0x17bf88(VA)
[2015-08-12 17:11:24] (d2) [  135.565399] stack start: 0x534660(VA)
[2015-08-12 17:11:24] (d2) [  135.565402]        _end: 0x574f68(VA)
[2015-08-12 17:11:24] (d2) [  135.565406]   start_pfn: 592
[2015-08-12 17:11:24] (d2) [  135.565410]     max_pfn: 2000
[2015-08-12 17:11:24] (d2) [  135.565414] Mapping memory range 0x800000 - 
0x2000000
[2015-08-12 17:11:24] (d1) [  135.565525] Relocating guest memory for lowmem 
MMIO space enabled
[2015-08-12 17:11:24] (d1) [  135.565586] PCI-ISA link 0 routed to IRQ5
[2015-08-12 17:11:24] (d1) [  135.565648] PCI-ISA link 1 routed to IRQ10
[2015-08-12 17:11:24] (d1) [  135.565710] PCI-ISA link 2 routed to IRQ11
[2015-08-12 17:11:24] (d1) [  135.565770] PCI-ISA link 3 routed to IRQ5
[2015-08-12 17:11:24] (d1) [  135.566884] *** HVMLoader assertion '(devfn != 
PCI_ISA_DEVFN) || ((vendor_id == 0x8086) &&
[2015-08-12 17:11:24] (d1) [  135.566968] (device_id == 0x7000))' failed at 
pci.c:112
[2015-08-12 17:11:24] (d1) [  135.567012] *** HVMLoader crashed.
[2015-08-12 17:11:24] (d2) [  135.568790] setting 0x0-0x176000 readonly
[2015-08-12 17:11:24] (d2) [  135.568799] skipped 0x1000
[2015-08-12 17:11:24] (d2) [  135.568980] MM: Initialise page allocator for 
59e000(59e000)-2000000(2000000)
[2015-08-12 17:11:24] (d2) [  135.568999] MM: done
[2015-08-12 17:11:24] (d2) [  135.569050] Demand map pfns at 2001000-2002001000.
[2015-08-12 17:11:24] (d2) [  135.569056] Heap resides at 2002002000-4002002000.
[2015-08-12 17:11:24] (d2) [  135.569060] Initialising timer interface
[2015-08-12 17:11:24] (d2) [  135.569125] Initialising console ... done.
[2015-08-12 17:11:24] (d2) [  135.569199] gnttab_table mapped at 0x2001000.
[2015-08-12 17:11:24] (d2) [  135.569205] Initialising scheduler
[2015-08-12 17:11:24] (d2) [  135.569216] Thread "Idle": pointer: 0x2002002050, 
stack: 0x5c0000
[2015-08-12 17:11:24] (d2) [  135.569225] Thread "xenstore": pointer: 
0x2002002800, stack: 0x5d0000
[2015-08-12 17:11:24] (d2) [  135.569232] xenbus initialised on irq 1 mfn 
0xbd3f5
[2015-08-12 17:11:24] (d2) [  135.569247] Thread "shutdown": pointer: 
0x2002002fb0, stack: 0x5e0000
[2015-08-12 17:11:24] (d2) [  135.569254] Dummy main: start_info=0x554760
[2015-08-12 17:11:24] (d2) [  135.569260] Thread "main": pointer: 0x2002003760, 
stack: 0x5f0000
[2015-08-12 17:11:24] (d2) [  135.569295] Thread "pcifront": pointer: 
0x2002003f50, stack: 0x600000
[2015-08-12 17:11:24] (d2) [  135.569311] pcifront_watches: waiting for backend 
path to appear device/pci/0/backend
[2015-08-12 17:11:24] (d2) [  135.570783] dom vm is at 
/vm/8b9cf2d6-4f2e-b0b4-36fb-1728f111f6e7
[2015-08-12 17:11:24] (d2) [  135.571479] ************************ NETFRONT for 
device/vif/0 **********
[2015-08-12 17:11:24] (d2) [  135.571484]
[2015-08-12 17:11:24] (d2) [  135.571486]
[2015-08-12 17:11:24] (d2) [  135.571518] net TX ring size 256
[2015-08-12 17:11:24] (d2) [  135.571522] net RX ring size 256
[2015-08-12 17:11:24] (d2) [  135.575064] backend at 
/local/domain/0/backend/vif/2/0
[2015-08-12 17:11:24] (d2) [  135.575073] mac is 4a:88:53:cf:88:0d
[2015-08-12 17:11:24] (d2) [  135.578516] backend not avalable, state=5
[2015-08-12 17:11:24] (d2) [  135.578830] TAP open failed
[2015-08-12 17:11:24] (d2) [  135.578843] close(0)
[2015-08-12 17:11:24] (d2) [  135.578849] close(1)
[2015-08-12 17:11:24] (d2) [  135.578852] close(2)
[2015-08-12 17:11:24] (d2) [  135.578856] main returned 1
[2015-08-12 17:11:24] (d2) [  135.578878] Do_exit called!
[2015-08-12 17:11:24] (d2) [  135.578885] base is 0x5ff9e8 caller is 0xeed87
[2015-08-12 17:11:24] (d2) [  135.578890] base is 0x5ffa08 caller is 0xefbdf
[2015-08-12 17:11:24] (d2) [  135.578896] base is 0x5ffa38 caller is 0x10d3cb
[2015-08-12 17:11:24] (d2) [  135.578901] base is 0x5ffa58 caller is 0x859e
[2015-08-12 17:11:24] (d2) [  135.578906] base is 0x5ffe18 caller is 0xefb61
[2015-08-12 17:11:24] (d2) [  135.578912] base is 0x5fffe8 caller is 0x343b

Can anyone give some clew about how to fix this? Thanks:-)

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel

Reply via email to