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/
Home Products Support Community News


[Xen-users] Kernel BUG: DMA error when using PCI card passed through to

To: xen-users@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-users] Kernel BUG: DMA error when using PCI card passed through to DomU
From: lists@xxxxxxxxxxxxx
Date: Tue, 25 Sep 2007 17:45:46 +0100
Delivery-date: Tue, 25 Sep 2007 09:46:38 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-users-request@lists.xensource.com?subject=help>
List-id: Xen user discussion <xen-users.lists.xensource.com>
List-post: <mailto:xen-users@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-users>, <mailto:xen-users-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-users>, <mailto:xen-users-request@lists.xensource.com?subject=unsubscribe>
Sender: xen-users-bounces@xxxxxxxxxxxxxxxxxxx
User-agent: Internet Messaging Program (IMP) H3 (4.1.4)
Hello all,

I have recently built a Dom0 with a Supermicro C2BSA motherboard (Intel G33 chipset) + Q6600 CPU using OpenSUSE 10.2 (Xen 3.03). I am trying to build a mythtv server DomU by passing a Hauppauge WinTV Nova-T DVB card to the DomU. However, when I try and scan for DVB channels in the DomU I get the following error:

mythtvdev:~ # ./dscan
scanning /usr/share/dvb/scan/dvb-t/uk-WinterHill
using '/dev/dvb/adapter0/frontend0' and '/dev/dvb/adapter0/demux0'
initial transponder 754166670 0 3 9 1 0 0 0
----------- [cut here ] --------- [please bite here ] ---------
Kernel BUG at arch/x86_64/kernel/../../i386/kernel/pci-dma-xen.c:76
invalid opcode: 0000 [1] SMP
last sysfs file: /block/hda/dev
Modules linked in: joydev sg st sd_mod sr_mod scsi_mod ide_cd cdrom ide_core ipv6 nfs lockd nfs_acl sunrpc af_packet loop dm_mod cx88_blackbird cx2341x cx88_dvb cx8800 cx8802 cx88xx cx88_vp3054_i2c mt352 dvb_pll or51132 video_buf_dvb ir_common dvb_core i2c_algo_bit video_buf nxt200x firmware_class tveeprom compat_ioctl32 isl6421 btcx_risc zl10353 videodev cx24123 lgdt330x v4l1_compat cx22702 v4l2_common i2c_core ext3 mbcache jbd xenblk xennet
Pid: 5106, comm: cx88[0] dvb Tainted: G     U #1
RIP: e030:[<ffffffff8026b8bc>]  [<ffffffff8026b8bc>] dma_map_sg+0x126/0x14f
RSP: e02b:ffff88004d4dfe20  EFLAGS: 00010286
RAX: 000000000000002f RBX: ffff8800552293e0 RCX: ffffffff80496588
RDX: ffffffffff5f9000 RSI: 0000000000000001 RDI: 0000000000000000
RBP: ffff880055229380 R08: ffffffff80496588 R09: ffff8800638482b0
R10: 00000000000015d4 R11: 0000000000000000 R12: 0000000000000006
R13: 0000000000000002 R14: ffff8800005fe870 R15: 0000000000000003
FS:  00002b673c0956f0(0000) GS:ffffffff80501000(0000) knlGS:0000000000000000
CS:  e033 DS: 0000 ES: 0000
Process cx88[0] dvb (pid: 5106, threadinfo ffff88004d4de000, task ffff880000761100)
Stack:  ffff88007fd96830 ffff88007fd96830 ffff88007fa748e0 ffff8800005fe800
 ffff88007fa74800 ffff88007fa748e0 0000000000000002 ffffffff880a675b
 ffff88007fd96800 ffff88007fa748e0 0000000000005e00 ffffffff88102865
Call Trace:
 [<ffffffff880a675b>] :video_buf:videobuf_dma_map+0x115/0x159
 [<ffffffff88102865>] :cx8802:cx8802_buf_prepare+0x9e/0xe4
 [<ffffffff8028f929>] keventd_create_kthread+0x0/0x61
 [<ffffffff880a5d70>] :video_buf:videobuf_read_start+0xac/0x146
 [<ffffffff880d734b>] :video_buf_dvb:videobuf_dvb_thread+0x2a/0x142
 [<ffffffff880d7321>] :video_buf_dvb:videobuf_dvb_thread+0x0/0x142
 [<ffffffff80232349>] kthread+0xd4/0x107
 [<ffffffff8025b714>] child_rip+0xa/0x12
 [<ffffffff8028f929>] keventd_create_kthread+0x0/0x61
 [<ffffffff80232275>] kthread+0x0/0x107
 [<ffffffff8025b70a>] child_rip+0x0/0x12

Code: 0f 0b 68 27 3c 3f 80 c2 4c 00 41 ff c7 48 83 c3 20 45 39 e7
RIP  [<ffffffff8026b8bc>] dma_map_sg+0x126/0x14f
 RSP <ffff88004d4dfe20>

Does anyone have any idea what's causing this or what I can do to fix it? I've looked at line 76 of arch/x86_64/kernel/../../i386/kernel/pci-dma-xen.c and saw a reference to swiotlb. I tried forcing swiotlb on using swiotlb=force on the Dom0 but this had no effect. From what I can tell swiotlb may be forced on for all x86 architectures anyway, maybe. I'm not entirely sure.

I've also tried assign 1 or 2 CPUs to the guest and trying with either 1GB or 2GB of RAM for the guest which made no difference.

Does anyone have any suggestions for how I can fix this problem?



Xen-users mailing list

<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-users] Kernel BUG: DMA error when using PCI card passed through to DomU, lists <=