[CentOS-virt] PCI passthrough problems
Enderson Maia
endersonmaia at gmail.com
Tue Sep 23 03:22:42 UTC 2008
Hello,
I'm having a problem, I've seen other people with the same problem,
but with USB.
Some people solved this with the pciback.permissive option, but in my
case it's ignored.
I'm using CentOS 5.2 - 2.6.18-92.1.10.el5.centos.plusxen
The error return from the console starting the domU is below.
I've tried swiotlb=force, pciback.permissive like I said.
My configs are:
/etc/modprobe.conf
...
options pciback hide=(03:01.0)
# cat /etc/xen//firewall
name = "firewall"
uuid = "cd5f6ad8-0682-73fd-3268-fb4a7b85c0ec"
maxmem = 256
memory = 256
vcpus = 1
bootloader = "/usr/bin/pygrub"
boot = "swiotlb=force"
on_poweroff = "destroy"
on_reboot = "restart"
on_crash = "restart"
vfb = [ "type=vnc,vncunused=1" ]
disk = [ "phy:/dev/VolGroup00/firewall.disk,xvda,w" ]
vif = [ "mac=00:16:3e:0e:53:5a,bridge=virbr0" ]
pci = [ '0000:03:01.0' ]
# rpm -qa | grep xen
xen-libs-3.0.3-64.el5_2.1
xen-3.0.3-64.el5_2.1
kernel-xen-2.6.18-92.el5
kernel-xen-2.6.18-92.1.10.el5.centos.plus
---
Iniciando interface eth0: [ OK ]
Iniciando interface eth1:
Determinando informação IP para o eth1...Fatal DMA error! Please use
'swiotlb=force'
------------[ cut here ]------------
kernel BUG at arch/i386/kernel/pci-dma-xen.c:401!
invalid opcode: 0000 [#1]
SMP
last sysfs file: /class/net/eth1/address
Modules linked in: xennet ip_conntrack_netbios_ns ipt_REJECT xt_state
ip_conntrack nfnetlink iptable_filter ip_tables ip6t_REJECT xt_tcpudp
ip6table_filter ip6_tables x_tables ipv6 xfrm_nalgo crypto_api
dm_mirror dm_multipath dm_mod parport_pc lp parport 3c59x pcspkr mii
xenblk ext3 jbd uhci_hcd ohci_hcd ehci_hcd
CPU: 0
EIP: 0061:[<c040a39c>] Not tainted VLI
EFLAGS: 00010292 (2.6.18-92.el5xen #1)
EIP is at dma_map_single+0x12d/0x147
eax: 0000002f ebx: 00000000 ecx: 00000001 edx: f5416000
esi: 38f59e02 edi: 00000001 ebp: 0000004e esp: c071bdbc
ds: 007b es: 007b ss: 0069
Process swapper (pid: 0, ti=c071b000 task=c066e2c0 task.ti=c06e6000)
Stack: c0621abd c07fc448 008a8e02 00000000 cf914400 cf5db200 c07fc448 00000140
d1232e6e 00000001 c08a8e02 cf914000 cf88c200 00000002 cf5db200 0000004e
d126c000 cf914000 0000004e c08a8e02 cf88c140 cf88c140 cf88c200 c07c4c88
Call Trace:
[<d1232e6e>] boomerang_start_xmit+0x141/0x352 [3c59x]
[<c05aec59>] dev_hard_start_xmit+0x198/0x1ee
[<c05bcaf6>] __qdisc_run+0xe4/0x19a
[<c05b0544>] dev_queue_xmit+0x1e0/0x2e8
[<c05b4b24>] neigh_resolve_output+0x1b2/0x1dc
[<d136eb2e>] ip6_output2+0x256/0x2a7 [ipv6]
[<d136f656>] ip6_output+0x9c7/0x9f3 [ipv6]
[<d137c8c0>] dst_output+0x0/0x7 [ipv6]
[<c05c3d12>] nf_hook_slow+0x3a/0x90
[<d137c8c0>] dst_output+0x0/0x7 [ipv6]
[<d137e4d6>] ndisc_send_ns+0x3a8/0x47a [ipv6]
[<c06090d8>] _spin_lock_irqsave+0x8/0x28
[<c042914a>] lock_timer_base+0x15/0x2f
[<d1375ddb>] addrconf_dad_timer+0xc3/0xdf [ipv6]
[<c0434244>] hrtimer_run_queues+0x14b/0x163
[<d1375d18>] addrconf_dad_timer+0x0/0xdf [ipv6]
[<c0429600>] run_timer_softirq+0x101/0x15c
[<c042613e>] __do_softirq+0x5e/0xc3
[<c0406edf>] do_softirq+0x56/0xaf
[<c0406e80>] do_IRQ+0xa5/0xae
[<c0549913>] evtchn_do_upcall+0x64/0x9b
[<c04055d9>] hypervisor_callback+0x3d/0x48
[<c0408632>] raw_safe_halt+0x8c/0xaf
[<c040321a>] xen_idle+0x22/0x2e
[<c0403339>] cpu_idle+0x91/0xab
[<c06eb9f5>] start_kernel+0x37a/0x381
=======================
Code: c0 74 07 8b 08 8b 58 04 eb 05 83 c9 ff 31 db 89 da 89 c8 f7 d2
f7 d0 21 fa 21 f0 89 d1 09 c1 74 13 68 bd 1a 62 c0 e8 de 7b 01 00 <0f>
0b 91 01 9e 1a 62 c0 5d f0 83 04 24 00 83 c4 0c 89 f0 89 fa
EIP: [<c040a39c>] dma_map_single+0x12d/0x147 SS:ESP 0069:c071bdbc
<0>Kernel panic - not syncing: Fatal exception in interrupt
---
If you need more information, just tell
--
Enderson Maia
More information about the CentOS-virt
mailing list