Login | Register For Free | Help
Search for: (Advanced)

Mailing List Archive: ivtv: devel

ivtv not working in xen domU ?

 

 

ivtv devel RSS feed   Index | Next | Previous | View Threaded


guil at bappos

May 1, 2007, 5:41 PM

Post #1 of 7 (1462 views)
Permalink
ivtv not working in xen domU ?

Note, I am moving this thread over here from ivtv-users in hopes that
it gets some attention/fixing :) For further info please see the
ivtv-users archive.

==========

Hi there, Im having some trouble with ivtv on a xen domU. I have
looked through the archives and found a reference to a similar problem
with no solution:

http://www.gossamer-threads.com/lists/ivtv/users/33609?search_string=xen;#33609

Note that bttv seems to be working fine...

Im running:
Dom0
- Linux sybil.bappos.com 2.6.18-8.1.1.el5xen #1 SMP Mon Feb 26
21:05:12 EST 2007 i686 i686 i386 GNU/Linux
- xen-3.0.3-25.0.3.el5

domU
- Linux slurp.bappos.com 2.6.20-1.2944.fc6xen #1 SMP Tue Apr 10
19:12:19 EDT 2007 i686 i686 i386 GNU/Linux
- ivtv-0.10.1-126.fc6.at
- ivtv-firmware-20070217-13.at
- ivtv-kmdl-2.6.20-1.2944.fc6xen-0.10.1-126.fc6.at


lspci -v :
00:00.0 Multimedia video controller: Internext Compression Inc iTVC16
(CX23416) MPEG-2 Encoder (rev 01)
Subsystem: Hauppauge computer works Inc. WinTV PVR 250
Flags: medium devsel, IRQ 16
Memory at f8000000 (32-bit, prefetchable) [disabled] [size=64M]
Capabilities: [44] Power Management version 2

00:01.0 Multimedia video controller: Brooktree Corporation Bt878 Video
Capture (rev 11)
Subsystem: Hauppauge computer works Inc. WinTV Series
Flags: bus master, medium devsel, latency 64, IRQ 17
Memory at fdffe000 (32-bit, prefetchable) [size=4K]
Capabilities: [44] Vital Product Data
Capabilities: [4c] Power Management version 2

00:01.1 Multimedia controller: Brooktree Corporation Bt878 Audio
Capture (rev 11)
Subsystem: Hauppauge computer works Inc. WinTV Series
Flags: bus master, medium devsel, latency 64, IRQ 17
Memory at fdfff000 (32-bit, prefetchable) [size=4K]
Capabilities: [44] Vital Product Data
Capabilities: [4c] Power Management version 2


current lsmod:
[root[at]slurp src]# lsmod | grep bttv
bttv 171893 1 bt878
video_buf 27589 1 bttv
ir_common 34117 1 bttv
compat_ioctl32 5569 1 bttv
i2c_algo_bit 11337 1 bttv
btcx_risc 8905 1 bttv
tveeprom 18257 1 bttv
i2c_core 24897 5 tuner,tvaudio,bttv,i2c_algo_bit,tveeprom
videodev 29633 1 bttv
v4l2_common 26945 3 tuner,bttv,videodev


When i load the ivtv module i get the following:
[root[at]slurp src]# modprobe ivtv
ivtv: no version for "struct_module" found: kernel tainted.
PCI: Enabling device 0000:00:00.0 (0000 -> 0002)
i2c_adapter i2c-1: Client creation failed at 0x40 (-5)
Fatal DMA error! Please use 'swiotlb=force'
------------[ cut here ]------------
kernel BUG at arch/i386/kernel/pci-dma-xen.c:359!
invalid opcode: 0000 [#1]
SMP
last sysfs file: /class/firmware/0000:00:00.0/loading
Modules linked in: msp3400 saa7115 ivtv(F)(U) cx2341x autofs4 hidp
l2cap bluetooth sunrpc
xennet ipv6 nf_conntrack_netbios_ns ipt_REJECT nf_conntrack_ipv4
xt_state nf_conntrack
nfnetlink xt_tcpudp iptable_filter ip_tables x_tables dm_multipath
parport_pc lp parport
bt878 snd_bt87x snd_seq_dummy snd_seq_oss snd_seq_midi_event snd_seq
snd_seq_device
snd_pcm_oss snd_mixer_oss snd_pcm tuner snd_timer tvaudio snd bttv
pcspkr video_buf
ir_common compat_ioctl32 i2c_algo_bit btcx_risc tveeprom i2c_core
soundcore videodev
v4l2_common v4l1_compat snd_page_alloc dm_snapshot dm_zero dm_mirror
dm_mod xenblk ext3
jbd ehci_hcd ohci_hcd uhci_hcd
CPU: 0
EIP: 0061:[<c0409f33>] Tainted: GF VLI
EFLAGS: 00010292 (2.6.20-1.2944.fc6xen #1)
EIP is at dma_map_single+0xd2/0x156
eax: 0000002f ebx: ed791048 ecx: c06e6b50 edx: f5416000
esi: 00000000 edi: 00008100 ebp: 00000002 esp: db736c94
ds: 007b es: 007b ss: 0069
Process modprobe (pid: 1984, ti=db736000 task=c0bf6bb0 task.ti=db736000)
Stack: c06946c1 000000d0 00000001 d51fb71c c0d7e7c0 12f50000 00000000 00000000
c0462f4a d51fb760 d2f50000 00000002 dc1c0084 ee5b2b7b
00000002 00000001
dc1c0000 dc1c0164 dc1c0084 c041dd0f ee5bf59b 00000000
dc1c0000 00000000
Call Trace:
[<c0462f4a>] __kmalloc+0x87/0x92
[<ee5b2b7b>] ivtv_stream_alloc+0x199/0x242 [ivtv]
[<c041dd0f>] printk+0x1f/0xa1
[<ee5b0c82>] ivtv_streams_setup+0x368/0x3c3 [ivtv]
[<ee5ada94>] ivtv_probe+0xff2/0x1334 [ivtv]
[<c041766e>] __might_sleep+0x21/0xc1
[<c0462a45>] kmem_cache_alloc+0x5f/0x69
[<c049e1ea>] sysfs_new_dirent+0x4b/0x55
[<c049e397>] sysfs_make_dirent+0x13/0x7f
[<c04eaeba>] pci_device_probe+0x36/0x57
[<c0545192>] really_probe+0x7f/0x103
[<c054525a>] driver_probe_device+0x44/0xa5
[<c041766e>] __might_sleep+0x21/0xc1
[<c0545349>] __driver_attach+0x0/0xab
[<c05453bc>] __driver_attach+0x73/0xab
[<c05447e4>] bus_for_each_dev+0x37/0x59
[<c054504c>] driver_attach+0x16/0x18
[<c0545349>] __driver_attach+0x0/0xab
[<c0544ab5>] bus_add_driver+0x61/0x165
[<c04eb016>] __pci_register_driver+0x73/0x9f
[<ee5ac773>] module_start+0xb5/0xde [ivtv]
[<c0436773>] sys_init_module+0x1780/0x18c7
[<c0457df9>] do_munmap+0x196/0x1af
[<c04662c5>] do_sync_read+0x0/0x10a
[<c0466c13>] vfs_read+0xa6/0x152
[<c0404e3c>] syscall_call+0x7/0xb
[<c0610033>] __sched_text_start+0x283/0x809
=======================
Code: ff 0f 00 00 8d 04 3e 3d 00 10 00 00 76 21 c1 ea 0c a1 80 fe 7a
c0 0f a3 10 19 c0 85
c0 75 10 c7 04 24 c1 46 69 c0 e8 bd 3d 01 00 <0f> 0b eb fe 85 db 74 19
8b 83 5c 01 00 00
85 c0 74 0f 8b 18 8b
EIP: [<c0409f33>] dma_map_single+0xd2/0x156 SS:ESP 0069:db736c94
Segmentation fault
[root[at]slurp src]#
Message from syslogd[at]slurp at Mon Apr 30 10:56:30 2007 ...
slurp kernel: ------------[ cut here ]------------

Message from syslogd[at]slurp at Mon Apr 30 10:56:30 2007 ...
slurp kernel: invalid opcode: 0000 [#1]

Message from syslogd[at]slurp at Mon Apr 30 10:56:30 2007 ...
slurp kernel: SMP

Message from syslogd[at]slurp at Mon Apr 30 10:56:31 2007 ...
slurp kernel: CPU: 0

Message from syslogd[at]slurp at Mon Apr 30 10:56:31 2007 ...
slurp kernel: EIP: 0061:[<c0409f33>] Tainted: GF VLI

Message from syslogd[at]slurp at Mon Apr 30 10:56:31 2007 ...
slurp kernel: EFLAGS: 00010292 (2.6.20-1.2944.fc6xen #1)

Message from syslogd[at]slurp at Mon Apr 30 10:56:31 2007 ...
slurp kernel: EIP is at dma_map_single+0xd2/0x156

Message from syslogd[at]slurp at Mon Apr 30 10:56:31 2007 ...
slurp kernel: eax: 0000002f ebx: ed791048 ecx: c06e6b50 edx: f5416000

Message from syslogd[at]slurp at Mon Apr 30 10:56:31 2007 ...
slurp kernel: esi: 00000000 edi: 00008100 ebp: 00000002 esp: db736c94

Message from syslogd[at]slurp at Mon Apr 30 10:56:31 2007 ...
slurp kernel: ds: 007b es: 007b ss: 0069

Message from syslogd[at]slurp at Mon Apr 30 10:56:31 2007 ...
slurp kernel: Process modprobe (pid: 1984, ti=db736000 task=c0bf6bb0
task.ti=db736000)

Message from syslogd[at]slurp at Mon Apr 30 10:56:31 2007 ...
slurp kernel: Stack: c06946c1 000000d0 00000001 d51fb71c c0d7e7c0
12f50000 00000000
00000000

Message from syslogd[at]slurp at Mon Apr 30 10:56:31 2007 ...
slurp kernel: c0462f4a d51fb760 d2f50000 00000002 dc1c0084
ee5b2b7b 00000002
00000001

Message from syslogd[at]slurp at Mon Apr 30 10:56:31 2007 ...
slurp kernel: dc1c0000 dc1c0164 dc1c0084 c041dd0f ee5bf59b
00000000 dc1c0000
00000000

Message from syslogd[at]slurp at Mon Apr 30 10:56:31 2007 ...
slurp kernel: Call Trace:

Message from syslogd[at]slurp at Mon Apr 30 10:56:31 2007 ...
slurp kernel: [<c0462f4a>] __kmalloc+0x87/0x92

Message from syslogd[at]slurp at Mon Apr 30 10:56:31 2007 ...
slurp kernel: [<ee5b2b7b>] ivtv_stream_alloc+0x199/0x242 [ivtv]

Message from syslogd[at]slurp at Mon Apr 30 10:56:31 2007 ...
slurp kernel: [<c041dd0f>] printk+0x1f/0xa1

Message from syslogd[at]slurp at Mon Apr 30 10:56:31 2007 ...
slurp kernel: [<ee5b0c82>] ivtv_streams_setup+0x368/0x3c3 [ivtv]

Message from syslogd[at]slurp at Mon Apr 30 10:56:31 2007 ...
slurp kernel: [<ee5ada94>] ivtv_probe+0xff2/0x1334 [ivtv]

Message from syslogd[at]slurp at Mon Apr 30 10:56:31 2007 ...
slurp kernel: [<c041766e>] __might_sleep+0x21/0xc1

Message from syslogd[at]slurp at Mon Apr 30 10:56:31 2007 ...
slurp kernel: [<c0462a45>] kmem_cache_alloc+0x5f/0x69

Message from syslogd[at]slurp at Mon Apr 30 10:56:31 2007 ...
slurp kernel: [<c049e1ea>] sysfs_new_dirent+0x4b/0x55

Message from syslogd[at]slurp at Mon Apr 30 10:56:31 2007 ...
slurp kernel: [<c049e397>] sysfs_make_dirent+0x13/0x7f

Message from syslogd[at]slurp at Mon Apr 30 10:56:31 2007 ...
slurp kernel: [<c04eaeba>] pci_device_probe+0x36/0x57

Message from syslogd[at]slurp at Mon Apr 30 10:56:31 2007 ...
slurp kernel: [<c0545192>] really_probe+0x7f/0x103

Message from syslogd[at]slurp at Mon Apr 30 10:56:31 2007 ...
slurp kernel: [<c054525a>] driver_probe_device+0x44/0xa5

Message from syslogd[at]slurp at Mon Apr 30 10:56:31 2007 ...
slurp kernel: [<c041766e>] __might_sleep+0x21/0xc1

Message from syslogd[at]slurp at Mon Apr 30 10:56:31 2007 ...
slurp kernel: [<c0545349>] __driver_attach+0x0/0xab

Message from syslogd[at]slurp at Mon Apr 30 10:56:31 2007 ...
slurp kernel: [<c05453bc>] __driver_attach+0x73/0xab

Message from syslogd[at]slurp at Mon Apr 30 10:56:31 2007 ...
slurp kernel: [<c05447e4>] bus_for_each_dev+0x37/0x59

Message from syslogd[at]slurp at Mon Apr 30 10:56:31 2007 ...
slurp kernel: [<c054504c>] driver_attach+0x16/0x18

Message from syslogd[at]slurp at Mon Apr 30 10:56:31 2007 ...
slurp kernel: [<c0545349>] __driver_attach+0x0/0xab

Message from syslogd[at]slurp at Mon Apr 30 10:56:31 2007 ...
slurp kernel: [<c0544ab5>] bus_add_driver+0x61/0x165

Message from syslogd[at]slurp at Mon Apr 30 10:56:31 2007 ...
slurp kernel: [<c04eb016>] __pci_register_driver+0x73/0x9f

Message from syslogd[at]slurp at Mon Apr 30 10:56:31 2007 ...
slurp kernel: [<ee5ac773>] module_start+0xb5/0xde [ivtv]

Message from syslogd[at]slurp at Mon Apr 30 10:56:31 2007 ...
slurp kernel: [<c0436773>] sys_init_module+0x1780/0x18c7

Message from syslogd[at]slurp at Mon Apr 30 10:56:31 2007 ...
slurp kernel: [<c0457df9>] do_munmap+0x196/0x1af

Message from syslogd[at]slurp at Mon Apr 30 10:56:31 2007 ...
slurp kernel: [<c04662c5>] do_sync_read+0x0/0x10a

Message from syslogd[at]slurp at Mon Apr 30 10:56:31 2007 ...
slurp kernel: [<c0466c13>] vfs_read+0xa6/0x152

Message from syslogd[at]slurp at Mon Apr 30 10:56:31 2007 ...
slurp kernel: [<c0404e3c>] syscall_call+0x7/0xb

Message from syslogd[at]slurp at Mon Apr 30 10:56:31 2007 ...
slurp kernel: [<c0610033>] __sched_text_start+0x283/0x809

Message from syslogd[at]slurp at Mon Apr 30 10:56:31 2007 ...
slurp kernel: =======================

Message from syslogd[at]slurp at Mon Apr 30 10:56:31 2007 ...
slurp kernel: Code: ff 0f 00 00 8d 04 3e 3d 00 10 00 00 76 21 c1 ea 0c
a1 80 fe 7a c0 0f
a3 10 19 c0 85 c0 75 10 c7 04 24 c1 46 69 c0 e8 bd 3d 01 00 <0f> 0b eb
fe 85 db 74 19 8b
83 5c 01 00 00 85 c0 74 0f 8b 18 8b

Message from syslogd[at]slurp at Mon Apr 30 10:56:31 2007 ...
slurp kernel: EIP: [<c0409f33>] dma_map_single+0xd2/0x156 SS:ESP 0069:db736c94



Apr 30 10:56:29 slurp kernel: ivtv: ==================== START INIT
IVTV ====================
Apr 30 10:56:29 slurp kernel: ivtv: version 0.10.1 (tagged release) loading
Apr 30 10:56:29 slurp kernel: ivtv: Linux version:
2.6.20-1.2944.fc6xen SMP mod_unload 686 4KSTACKS
Apr 30 10:56:29 slurp kernel: ivtv: In case of problems please
include the debug info between
Apr 30 10:56:29 slurp kernel: ivtv: the START INIT IVTV and END INIT
IVTV lines, along with
Apr 30 10:56:29 slurp kernel: ivtv: any module options, when mailing
the ivtv-users mailinglist.
Apr 30 10:56:29 slurp kernel: ivtv0: Autodetected Hauppauge card
(cx23416 based)
Apr 30 10:56:29 slurp kernel: PCI: Enabling device 0000:00:00.0 (0000 -> 0002)
Apr 30 10:56:30 slurp kernel: ivtv0: loaded v4l-cx2341x-enc.fw
firmware (376836 bytes)
Apr 30 10:56:30 slurp kernel: ivtv0: Encoder revision: 0x02060039
Apr 30 10:56:30 slurp kernel: i2c_adapter i2c-1: Client creation
failed at 0x40 (-5)
Apr 30 10:56:30 slurp kernel: tuner 1-0061: chip found @ 0xc2 (ivtv
i2c driver #0)
Apr 30 10:56:30 slurp kernel: tveeprom 1-0050: Hauppauge model 32032,
rev B326, serial# 7155646
Apr 30 10:56:30 slurp kernel: tveeprom 1-0050: tuner model is Temic
4036FY5 (idx 26, type 8)
Apr 30 10:56:30 slurp kernel: tveeprom 1-0050: TV standards NTSC(M)
(eeprom 0x08)
Apr 30 10:56:30 slurp kernel: tveeprom 1-0050: audio processor is
MSP4448 (idx 27)
Apr 30 10:56:30 slurp kernel: tveeprom 1-0050: decoder processor is
SAA7115 (idx 19)
Apr 30 10:56:30 slurp kernel: tveeprom 1-0050: has no radio, has IR
receiver, has no IR transmitter
Apr 30 10:56:30 slurp kernel: ivtv0: Autodetected Hauppauge WinTV PVR-250
Apr 30 10:56:30 slurp kernel: saa7115 1-0021: saa7115 found
(1f7115d0e100000) @ 0x42 (ivtv i2c driver #0)
Apr 30 10:56:30 slurp kernel: msp3400 1-0040: MSP4448G-A2 found @ 0x80
(ivtv i2c driver #0)
Apr 30 10:56:30 slurp kernel: msp3400 1-0040: MSP4448G-A2 supports
radio, mode is autodetect and autoselect
Apr 30 10:56:30 slurp kernel: ivtv0: Registered device video1 for
encoder MPEG (4 MB)
Apr 30 10:56:30 slurp kernel: Fatal DMA error! Please use 'swiotlb=force'


I have tried setting swiotlb=force, swiotlb=32,force,
swiotlb=64,force, swiotlb=128,force, and swiotlb=256,force And always
get a kernel panic as below:


[root[at]sybil ~]# xm create -c slurp
Using config file "/etc/xen/slurp".
Going to boot Fedora Core (2.6.20-1.2944.fc6xen)
kernel: /vmlinuz-2.6.20-1.2944.fc6xen
initrd: /initrd-2.6.20-1.2944.fc6xen.img
Started domain slurp
Linux version 2.6.20-1.2944.fc6xen
(brewbuilder[at]hs20-bc2-2.build.redhat.com) (gcc version 4.1.1 20070105
(Red Hat 4.1.1-51)) #1 SMP Tue Apr 10 19:12:19 EDT 2007
BIOS-provided physical RAM map:
sanitize start
sanitize bail 0
copy_e820_map() start: 0000000000000000 size: 0000000030800000 end:
0000000030800000 type: 1
Xen: 0000000000000000 - 0000000030800000 (usable)
48MB HIGHMEM available.
727MB LOWMEM available.
NX (Execute Disable) protection: active
Zone PFN ranges:
DMA 0 -> 186366
Normal 186366 -> 186366
HighMem 186366 -> 198656
early_node_map[1] active PFN ranges
0: 0 -> 198656
ACPI in unprivileged domain disabled
Built 1 zonelists. Total pages: 197105
Kernel command line: ro root=/dev/VolGroup00/lv00_root console=xvc0
selinux=0 swiotlb=32,force
Enabling fast FPU save and restore... done.
Enabling unmasked SIMD FPU exception support... done.
Initializing CPU#0
CPU 0 irqstacks, hard=c0784000 soft=c0764000
PID hash table entries: 4096 (order: 12, 16384 bytes)
Xen reported: 2394.000 MHz processor.
Console: colour dummy device 80x25
Dentry cache hash table entries: 131072 (order: 7, 524288 bytes)
Inode-cache hash table entries: 65536 (order: 6, 262144 bytes)
------------[ cut here ]------------
kernel BUG at lib/../arch/i386/kernel/swiotlb.c:160!
invalid opcode: 0000 [#1]
SMP
last sysfs file:
Modules linked in:
CPU: 0
EIP: e019:[<c04e5848>] Not tainted VLI
EFLAGS: 00010282 (2.6.20-1.2944.fc6xen #1)
EIP is at swiotlb_init_with_default_size+0x8a/0x153
eax: fffffff4 ebx: 00000300 ecx: 00000040 edx: f5416000
esi: c075fae4 edi: 02000000 ebp: 00000020 esp: c0730f44
ds: e021 es: e021 ss: e021
Process swapper (pid: 0, ti=c0730000 task=c06e3280 task.ti=c0730000)
Stack: c074173e 00000000 ffffffff c161f000 c161f000 c075fae4 c0231b07 c073e778
00000042 00000004 c0730f88 00010000 c16a6200 00000004
00000010 c0742676
c069b0b1 c069c864 00010000 00000006 00040000 00c07c40
00000000 0301f100
Call Trace:
[<c074173e>] __alloc_bootmem_low+0x2b/0x67
[<c073e778>] mem_init+0x54/0x4d6
[<c0742676>] alloc_large_system_hash+0x18d/0x1b4
[<c0743153>] inode_init_early+0x49/0x72
[<c0734686>] start_kernel+0x22a/0x3c3
[<c073425a>] unknown_bootoption+0x0/0x202
=======================
Code: 59 7a f3 ff 83 c8 ff 40 83 f8 06 75 fa 89 d8 b9 1e 00 00 00 c1
e0 0b ba 06 00 00 00 03 05 54 65 7e c0 e8 2a 02 f3 ff 85 c0 74 04 <0f>
0b eb fe 83 eb 80 a1 58 65 7e c0 39 c3 72 c9 b9 00 00 00 01
EIP: [<c04e5848>] swiotlb_init_with_default_size+0x8a/0x153 SS:ESP
e021:c0730f44
<0>Kernel panic - not syncing: Attempted to kill the idle task!


please help, I think that having ivtv working in a xen domU would be
of great benefit to all :)

Thanks,
-Guil




_______________________________________________
ivtv-devel mailing list
ivtv-devel[at]ivtvdriver.org
http://ivtvdriver.org/mailman/listinfo/ivtv-devel


iggy at theiggy

May 2, 2007, 6:36 AM

Post #2 of 7 (1373 views)
Permalink
Re: ivtv not working in xen domU ? [In reply to]

The kernel you're using: vmlinuz-2.6.20-1.2944.fc6xen

Is that the kernel that comes with fc6? Are the modules you are using
made specifically for that kernel?

--Brian Jackson



On May 1, 2007, at 7:41 PM, Guil Barros wrote:

> Note, I am moving this thread over here from ivtv-users in hopes that
> it gets some attention/fixing :) For further info please see the
> ivtv-users archive.
>
> ==========
>
> Hi there, Im having some trouble with ivtv on a xen domU. I have
> looked through the archives and found a reference to a similar problem
> with no solution:
>
> http://www.gossamer-threads.com/lists/ivtv/users/33609?
> search_string=xen;#33609
>
> Note that bttv seems to be working fine...
>
> Im running:
> Dom0
> - Linux sybil.bappos.com 2.6.18-8.1.1.el5xen #1 SMP Mon Feb 26
> 21:05:12 EST 2007 i686 i686 i386 GNU/Linux
> - xen-3.0.3-25.0.3.el5
>
> domU
> - Linux slurp.bappos.com 2.6.20-1.2944.fc6xen #1 SMP Tue Apr 10
> 19:12:19 EDT 2007 i686 i686 i386 GNU/Linux
> - ivtv-0.10.1-126.fc6.at
> - ivtv-firmware-20070217-13.at
> - ivtv-kmdl-2.6.20-1.2944.fc6xen-0.10.1-126.fc6.at
>
>
> lspci -v :
> 00:00.0 Multimedia video controller: Internext Compression Inc iTVC16
> (CX23416) MPEG-2 Encoder (rev 01)
> Subsystem: Hauppauge computer works Inc. WinTV PVR 250
> Flags: medium devsel, IRQ 16
> Memory at f8000000 (32-bit, prefetchable) [disabled]
> [size=64M]
> Capabilities: [44] Power Management version 2
>
> 00:01.0 Multimedia video controller: Brooktree Corporation Bt878 Video
> Capture (rev 11)
> Subsystem: Hauppauge computer works Inc. WinTV Series
> Flags: bus master, medium devsel, latency 64, IRQ 17
> Memory at fdffe000 (32-bit, prefetchable) [size=4K]
> Capabilities: [44] Vital Product Data
> Capabilities: [4c] Power Management version 2
>
> 00:01.1 Multimedia controller: Brooktree Corporation Bt878 Audio
> Capture (rev 11)
> Subsystem: Hauppauge computer works Inc. WinTV Series
> Flags: bus master, medium devsel, latency 64, IRQ 17
> Memory at fdfff000 (32-bit, prefetchable) [size=4K]
> Capabilities: [44] Vital Product Data
> Capabilities: [4c] Power Management version 2
>
>
> current lsmod:
> [root[at]slurp src]# lsmod | grep bttv
> bttv 171893 1 bt878
> video_buf 27589 1 bttv
> ir_common 34117 1 bttv
> compat_ioctl32 5569 1 bttv
> i2c_algo_bit 11337 1 bttv
> btcx_risc 8905 1 bttv
> tveeprom 18257 1 bttv
> i2c_core 24897 5
> tuner,tvaudio,bttv,i2c_algo_bit,tveeprom
> videodev 29633 1 bttv
> v4l2_common 26945 3 tuner,bttv,videodev
>
>
> When i load the ivtv module i get the following:
> [root[at]slurp src]# modprobe ivtv
> ivtv: no version for "struct_module" found: kernel tainted.
> PCI: Enabling device 0000:00:00.0 (0000 -> 0002)
> i2c_adapter i2c-1: Client creation failed at 0x40 (-5)
> Fatal DMA error! Please use 'swiotlb=force'
> ------------[ cut here ]------------
> kernel BUG at arch/i386/kernel/pci-dma-xen.c:359!
> invalid opcode: 0000 [#1]
> SMP
> last sysfs file: /class/firmware/0000:00:00.0/loading
> Modules linked in: msp3400 saa7115 ivtv(F)(U) cx2341x autofs4 hidp
> l2cap bluetooth sunrpc
> xennet ipv6 nf_conntrack_netbios_ns ipt_REJECT nf_conntrack_ipv4
> xt_state nf_conntrack
> nfnetlink xt_tcpudp iptable_filter ip_tables x_tables dm_multipath
> parport_pc lp parport
> bt878 snd_bt87x snd_seq_dummy snd_seq_oss snd_seq_midi_event snd_seq
> snd_seq_device
> snd_pcm_oss snd_mixer_oss snd_pcm tuner snd_timer tvaudio snd bttv
> pcspkr video_buf
> ir_common compat_ioctl32 i2c_algo_bit btcx_risc tveeprom i2c_core
> soundcore videodev
> v4l2_common v4l1_compat snd_page_alloc dm_snapshot dm_zero dm_mirror
> dm_mod xenblk ext3
> jbd ehci_hcd ohci_hcd uhci_hcd
> CPU: 0
> EIP: 0061:[<c0409f33>] Tainted: GF VLI
> EFLAGS: 00010292 (2.6.20-1.2944.fc6xen #1)
> EIP is at dma_map_single+0xd2/0x156
> eax: 0000002f ebx: ed791048 ecx: c06e6b50 edx: f5416000
> esi: 00000000 edi: 00008100 ebp: 00000002 esp: db736c94
> ds: 007b es: 007b ss: 0069
> Process modprobe (pid: 1984, ti=db736000 task=c0bf6bb0
> task.ti=db736000)
> Stack: c06946c1 000000d0 00000001 d51fb71c c0d7e7c0 12f50000
> 00000000 00000000
> c0462f4a d51fb760 d2f50000 00000002 dc1c0084 ee5b2b7b
> 00000002 00000001
> dc1c0000 dc1c0164 dc1c0084 c041dd0f ee5bf59b 00000000
> dc1c0000 00000000
> Call Trace:
> [<c0462f4a>] __kmalloc+0x87/0x92
> [<ee5b2b7b>] ivtv_stream_alloc+0x199/0x242 [ivtv]
> [<c041dd0f>] printk+0x1f/0xa1
> [<ee5b0c82>] ivtv_streams_setup+0x368/0x3c3 [ivtv]
> [<ee5ada94>] ivtv_probe+0xff2/0x1334 [ivtv]
> [<c041766e>] __might_sleep+0x21/0xc1
> [<c0462a45>] kmem_cache_alloc+0x5f/0x69
> [<c049e1ea>] sysfs_new_dirent+0x4b/0x55
> [<c049e397>] sysfs_make_dirent+0x13/0x7f
> [<c04eaeba>] pci_device_probe+0x36/0x57
> [<c0545192>] really_probe+0x7f/0x103
> [<c054525a>] driver_probe_device+0x44/0xa5
> [<c041766e>] __might_sleep+0x21/0xc1
> [<c0545349>] __driver_attach+0x0/0xab
> [<c05453bc>] __driver_attach+0x73/0xab
> [<c05447e4>] bus_for_each_dev+0x37/0x59
> [<c054504c>] driver_attach+0x16/0x18
> [<c0545349>] __driver_attach+0x0/0xab
> [<c0544ab5>] bus_add_driver+0x61/0x165
> [<c04eb016>] __pci_register_driver+0x73/0x9f
> [<ee5ac773>] module_start+0xb5/0xde [ivtv]
> [<c0436773>] sys_init_module+0x1780/0x18c7
> [<c0457df9>] do_munmap+0x196/0x1af
> [<c04662c5>] do_sync_read+0x0/0x10a
> [<c0466c13>] vfs_read+0xa6/0x152
> [<c0404e3c>] syscall_call+0x7/0xb
> [<c0610033>] __sched_text_start+0x283/0x809
> =======================
> Code: ff 0f 00 00 8d 04 3e 3d 00 10 00 00 76 21 c1 ea 0c a1 80 fe 7a
> c0 0f a3 10 19 c0 85
> c0 75 10 c7 04 24 c1 46 69 c0 e8 bd 3d 01 00 <0f> 0b eb fe 85 db 74 19
> 8b 83 5c 01 00 00
> 85 c0 74 0f 8b 18 8b
> EIP: [<c0409f33>] dma_map_single+0xd2/0x156 SS:ESP 0069:db736c94
> Segmentation fault
> [root[at]slurp src]#
> Message from syslogd[at]slurp at Mon Apr 30 10:56:30 2007 ...
> slurp kernel: ------------[ cut here ]------------
>
> Message from syslogd[at]slurp at Mon Apr 30 10:56:30 2007 ...
> slurp kernel: invalid opcode: 0000 [#1]
>
> Message from syslogd[at]slurp at Mon Apr 30 10:56:30 2007 ...
> slurp kernel: SMP
>
> Message from syslogd[at]slurp at Mon Apr 30 10:56:31 2007 ...
> slurp kernel: CPU: 0
>
> Message from syslogd[at]slurp at Mon Apr 30 10:56:31 2007 ...
> slurp kernel: EIP: 0061:[<c0409f33>] Tainted: GF VLI
>
> Message from syslogd[at]slurp at Mon Apr 30 10:56:31 2007 ...
> slurp kernel: EFLAGS: 00010292 (2.6.20-1.2944.fc6xen #1)
>
> Message from syslogd[at]slurp at Mon Apr 30 10:56:31 2007 ...
> slurp kernel: EIP is at dma_map_single+0xd2/0x156
>
> Message from syslogd[at]slurp at Mon Apr 30 10:56:31 2007 ...
> slurp kernel: eax: 0000002f ebx: ed791048 ecx: c06e6b50 edx:
> f5416000
>
> Message from syslogd[at]slurp at Mon Apr 30 10:56:31 2007 ...
> slurp kernel: esi: 00000000 edi: 00008100 ebp: 00000002 esp:
> db736c94
>
> Message from syslogd[at]slurp at Mon Apr 30 10:56:31 2007 ...
> slurp kernel: ds: 007b es: 007b ss: 0069
>
> Message from syslogd[at]slurp at Mon Apr 30 10:56:31 2007 ...
> slurp kernel: Process modprobe (pid: 1984, ti=db736000 task=c0bf6bb0
> task.ti=db736000)
>
> Message from syslogd[at]slurp at Mon Apr 30 10:56:31 2007 ...
> slurp kernel: Stack: c06946c1 000000d0 00000001 d51fb71c c0d7e7c0
> 12f50000 00000000
> 00000000
>
> Message from syslogd[at]slurp at Mon Apr 30 10:56:31 2007 ...
> slurp kernel: c0462f4a d51fb760 d2f50000 00000002 dc1c0084
> ee5b2b7b 00000002
> 00000001
>
> Message from syslogd[at]slurp at Mon Apr 30 10:56:31 2007 ...
> slurp kernel: dc1c0000 dc1c0164 dc1c0084 c041dd0f ee5bf59b
> 00000000 dc1c0000
> 00000000
>
> Message from syslogd[at]slurp at Mon Apr 30 10:56:31 2007 ...
> slurp kernel: Call Trace:
>
> Message from syslogd[at]slurp at Mon Apr 30 10:56:31 2007 ...
> slurp kernel: [<c0462f4a>] __kmalloc+0x87/0x92
>
> Message from syslogd[at]slurp at Mon Apr 30 10:56:31 2007 ...
> slurp kernel: [<ee5b2b7b>] ivtv_stream_alloc+0x199/0x242 [ivtv]
>
> Message from syslogd[at]slurp at Mon Apr 30 10:56:31 2007 ...
> slurp kernel: [<c041dd0f>] printk+0x1f/0xa1
>
> Message from syslogd[at]slurp at Mon Apr 30 10:56:31 2007 ...
> slurp kernel: [<ee5b0c82>] ivtv_streams_setup+0x368/0x3c3 [ivtv]
>
> Message from syslogd[at]slurp at Mon Apr 30 10:56:31 2007 ...
> slurp kernel: [<ee5ada94>] ivtv_probe+0xff2/0x1334 [ivtv]
>
> Message from syslogd[at]slurp at Mon Apr 30 10:56:31 2007 ...
> slurp kernel: [<c041766e>] __might_sleep+0x21/0xc1
>
> Message from syslogd[at]slurp at Mon Apr 30 10:56:31 2007 ...
> slurp kernel: [<c0462a45>] kmem_cache_alloc+0x5f/0x69
>
> Message from syslogd[at]slurp at Mon Apr 30 10:56:31 2007 ...
> slurp kernel: [<c049e1ea>] sysfs_new_dirent+0x4b/0x55
>
> Message from syslogd[at]slurp at Mon Apr 30 10:56:31 2007 ...
> slurp kernel: [<c049e397>] sysfs_make_dirent+0x13/0x7f
>
> Message from syslogd[at]slurp at Mon Apr 30 10:56:31 2007 ...
> slurp kernel: [<c04eaeba>] pci_device_probe+0x36/0x57
>
> Message from syslogd[at]slurp at Mon Apr 30 10:56:31 2007 ...
> slurp kernel: [<c0545192>] really_probe+0x7f/0x103
>
> Message from syslogd[at]slurp at Mon Apr 30 10:56:31 2007 ...
> slurp kernel: [<c054525a>] driver_probe_device+0x44/0xa5
>
> Message from syslogd[at]slurp at Mon Apr 30 10:56:31 2007 ...
> slurp kernel: [<c041766e>] __might_sleep+0x21/0xc1
>
> Message from syslogd[at]slurp at Mon Apr 30 10:56:31 2007 ...
> slurp kernel: [<c0545349>] __driver_attach+0x0/0xab
>
> Message from syslogd[at]slurp at Mon Apr 30 10:56:31 2007 ...
> slurp kernel: [<c05453bc>] __driver_attach+0x73/0xab
>
> Message from syslogd[at]slurp at Mon Apr 30 10:56:31 2007 ...
> slurp kernel: [<c05447e4>] bus_for_each_dev+0x37/0x59
>
> Message from syslogd[at]slurp at Mon Apr 30 10:56:31 2007 ...
> slurp kernel: [<c054504c>] driver_attach+0x16/0x18
>
> Message from syslogd[at]slurp at Mon Apr 30 10:56:31 2007 ...
> slurp kernel: [<c0545349>] __driver_attach+0x0/0xab
>
> Message from syslogd[at]slurp at Mon Apr 30 10:56:31 2007 ...
> slurp kernel: [<c0544ab5>] bus_add_driver+0x61/0x165
>
> Message from syslogd[at]slurp at Mon Apr 30 10:56:31 2007 ...
> slurp kernel: [<c04eb016>] __pci_register_driver+0x73/0x9f
>
> Message from syslogd[at]slurp at Mon Apr 30 10:56:31 2007 ...
> slurp kernel: [<ee5ac773>] module_start+0xb5/0xde [ivtv]
>
> Message from syslogd[at]slurp at Mon Apr 30 10:56:31 2007 ...
> slurp kernel: [<c0436773>] sys_init_module+0x1780/0x18c7
>
> Message from syslogd[at]slurp at Mon Apr 30 10:56:31 2007 ...
> slurp kernel: [<c0457df9>] do_munmap+0x196/0x1af
>
> Message from syslogd[at]slurp at Mon Apr 30 10:56:31 2007 ...
> slurp kernel: [<c04662c5>] do_sync_read+0x0/0x10a
>
> Message from syslogd[at]slurp at Mon Apr 30 10:56:31 2007 ...
> slurp kernel: [<c0466c13>] vfs_read+0xa6/0x152
>
> Message from syslogd[at]slurp at Mon Apr 30 10:56:31 2007 ...
> slurp kernel: [<c0404e3c>] syscall_call+0x7/0xb
>
> Message from syslogd[at]slurp at Mon Apr 30 10:56:31 2007 ...
> slurp kernel: [<c0610033>] __sched_text_start+0x283/0x809
>
> Message from syslogd[at]slurp at Mon Apr 30 10:56:31 2007 ...
> slurp kernel: =======================
>
> Message from syslogd[at]slurp at Mon Apr 30 10:56:31 2007 ...
> slurp kernel: Code: ff 0f 00 00 8d 04 3e 3d 00 10 00 00 76 21 c1 ea 0c
> a1 80 fe 7a c0 0f
> a3 10 19 c0 85 c0 75 10 c7 04 24 c1 46 69 c0 e8 bd 3d 01 00 <0f> 0b eb
> fe 85 db 74 19 8b
> 83 5c 01 00 00 85 c0 74 0f 8b 18 8b
>
> Message from syslogd[at]slurp at Mon Apr 30 10:56:31 2007 ...
> slurp kernel: EIP: [<c0409f33>] dma_map_single+0xd2/0x156 SS:ESP
> 0069:db736c94
>
>
>
> Apr 30 10:56:29 slurp kernel: ivtv: ==================== START INIT
> IVTV ====================
> Apr 30 10:56:29 slurp kernel: ivtv: version 0.10.1 (tagged
> release) loading
> Apr 30 10:56:29 slurp kernel: ivtv: Linux version:
> 2.6.20-1.2944.fc6xen SMP mod_unload 686 4KSTACKS
> Apr 30 10:56:29 slurp kernel: ivtv: In case of problems please
> include the debug info between
> Apr 30 10:56:29 slurp kernel: ivtv: the START INIT IVTV and END INIT
> IVTV lines, along with
> Apr 30 10:56:29 slurp kernel: ivtv: any module options, when mailing
> the ivtv-users mailinglist.
> Apr 30 10:56:29 slurp kernel: ivtv0: Autodetected Hauppauge card
> (cx23416 based)
> Apr 30 10:56:29 slurp kernel: PCI: Enabling device 0000:00:00.0
> (0000 -> 0002)
> Apr 30 10:56:30 slurp kernel: ivtv0: loaded v4l-cx2341x-enc.fw
> firmware (376836 bytes)
> Apr 30 10:56:30 slurp kernel: ivtv0: Encoder revision: 0x02060039
> Apr 30 10:56:30 slurp kernel: i2c_adapter i2c-1: Client creation
> failed at 0x40 (-5)
> Apr 30 10:56:30 slurp kernel: tuner 1-0061: chip found @ 0xc2 (ivtv
> i2c driver #0)
> Apr 30 10:56:30 slurp kernel: tveeprom 1-0050: Hauppauge model 32032,
> rev B326, serial# 7155646
> Apr 30 10:56:30 slurp kernel: tveeprom 1-0050: tuner model is Temic
> 4036FY5 (idx 26, type 8)
> Apr 30 10:56:30 slurp kernel: tveeprom 1-0050: TV standards NTSC(M)
> (eeprom 0x08)
> Apr 30 10:56:30 slurp kernel: tveeprom 1-0050: audio processor is
> MSP4448 (idx 27)
> Apr 30 10:56:30 slurp kernel: tveeprom 1-0050: decoder processor is
> SAA7115 (idx 19)
> Apr 30 10:56:30 slurp kernel: tveeprom 1-0050: has no radio, has IR
> receiver, has no IR transmitter
> Apr 30 10:56:30 slurp kernel: ivtv0: Autodetected Hauppauge WinTV
> PVR-250
> Apr 30 10:56:30 slurp kernel: saa7115 1-0021: saa7115 found
> (1f7115d0e100000) @ 0x42 (ivtv i2c driver #0)
> Apr 30 10:56:30 slurp kernel: msp3400 1-0040: MSP4448G-A2 found @ 0x80
> (ivtv i2c driver #0)
> Apr 30 10:56:30 slurp kernel: msp3400 1-0040: MSP4448G-A2 supports
> radio, mode is autodetect and autoselect
> Apr 30 10:56:30 slurp kernel: ivtv0: Registered device video1 for
> encoder MPEG (4 MB)
> Apr 30 10:56:30 slurp kernel: Fatal DMA error! Please use
> 'swiotlb=force'
>
>
> I have tried setting swiotlb=force, swiotlb=32,force,
> swiotlb=64,force, swiotlb=128,force, and swiotlb=256,force And always
> get a kernel panic as below:
>
>
> [root[at]sybil ~]# xm create -c slurp
> Using config file "/etc/xen/slurp".
> Going to boot Fedora Core (2.6.20-1.2944.fc6xen)
> kernel: /vmlinuz-2.6.20-1.2944.fc6xen
> initrd: /initrd-2.6.20-1.2944.fc6xen.img
> Started domain slurp
> Linux version 2.6.20-1.2944.fc6xen
> (brewbuilder[at]hs20-bc2-2.build.redhat.com) (gcc version 4.1.1 20070105
> (Red Hat 4.1.1-51)) #1 SMP Tue Apr 10 19:12:19 EDT 2007
> BIOS-provided physical RAM map:
> sanitize start
> sanitize bail 0
> copy_e820_map() start: 0000000000000000 size: 0000000030800000 end:
> 0000000030800000 type: 1
> Xen: 0000000000000000 - 0000000030800000 (usable)
> 48MB HIGHMEM available.
> 727MB LOWMEM available.
> NX (Execute Disable) protection: active
> Zone PFN ranges:
> DMA 0 -> 186366
> Normal 186366 -> 186366
> HighMem 186366 -> 198656
> early_node_map[1] active PFN ranges
> 0: 0 -> 198656
> ACPI in unprivileged domain disabled
> Built 1 zonelists. Total pages: 197105
> Kernel command line: ro root=/dev/VolGroup00/lv00_root console=xvc0
> selinux=0 swiotlb=32,force
> Enabling fast FPU save and restore... done.
> Enabling unmasked SIMD FPU exception support... done.
> Initializing CPU#0
> CPU 0 irqstacks, hard=c0784000 soft=c0764000
> PID hash table entries: 4096 (order: 12, 16384 bytes)
> Xen reported: 2394.000 MHz processor.
> Console: colour dummy device 80x25
> Dentry cache hash table entries: 131072 (order: 7, 524288 bytes)
> Inode-cache hash table entries: 65536 (order: 6, 262144 bytes)
> ------------[ cut here ]------------
> kernel BUG at lib/../arch/i386/kernel/swiotlb.c:160!
> invalid opcode: 0000 [#1]
> SMP
> last sysfs file:
> Modules linked in:
> CPU: 0
> EIP: e019:[<c04e5848>] Not tainted VLI
> EFLAGS: 00010282 (2.6.20-1.2944.fc6xen #1)
> EIP is at swiotlb_init_with_default_size+0x8a/0x153
> eax: fffffff4 ebx: 00000300 ecx: 00000040 edx: f5416000
> esi: c075fae4 edi: 02000000 ebp: 00000020 esp: c0730f44
> ds: e021 es: e021 ss: e021
> Process swapper (pid: 0, ti=c0730000 task=c06e3280 task.ti=c0730000)
> Stack: c074173e 00000000 ffffffff c161f000 c161f000 c075fae4
> c0231b07 c073e778
> 00000042 00000004 c0730f88 00010000 c16a6200 00000004
> 00000010 c0742676
> c069b0b1 c069c864 00010000 00000006 00040000 00c07c40
> 00000000 0301f100
> Call Trace:
> [<c074173e>] __alloc_bootmem_low+0x2b/0x67
> [<c073e778>] mem_init+0x54/0x4d6
> [<c0742676>] alloc_large_system_hash+0x18d/0x1b4
> [<c0743153>] inode_init_early+0x49/0x72
> [<c0734686>] start_kernel+0x22a/0x3c3
> [<c073425a>] unknown_bootoption+0x0/0x202
> =======================
> Code: 59 7a f3 ff 83 c8 ff 40 83 f8 06 75 fa 89 d8 b9 1e 00 00 00 c1
> e0 0b ba 06 00 00 00 03 05 54 65 7e c0 e8 2a 02 f3 ff 85 c0 74 04 <0f>
> 0b eb fe 83 eb 80 a1 58 65 7e c0 39 c3 72 c9 b9 00 00 00 01
> EIP: [<c04e5848>] swiotlb_init_with_default_size+0x8a/0x153 SS:ESP
> e021:c0730f44
> <0>Kernel panic - not syncing: Attempted to kill the idle task!
>
>
> please help, I think that having ivtv working in a xen domU would be
> of great benefit to all :)
>
> Thanks,
> -Guil
>
>
>
>
> _______________________________________________
> ivtv-devel mailing list
> ivtv-devel[at]ivtvdriver.org
> http://ivtvdriver.org/mailman/listinfo/ivtv-devel


_______________________________________________
ivtv-devel mailing list
ivtv-devel[at]ivtvdriver.org
http://ivtvdriver.org/mailman/listinfo/ivtv-devel


guil at bappos

May 2, 2007, 7:19 AM

Post #3 of 7 (1371 views)
Permalink
Re: ivtv not working in xen domU ? [In reply to]

Yes, the kernel is one provided with fc6. The modules are from atrpms
and claim to be build specifically for that kernel.

I'm happy to try different versions if you believe it will make a
difference, though i have tried 2.6.18 and had the same problem.

-guil

Quoting Brian Jackson <iggy[at]theiggy.com>:

> The kernel you're using: vmlinuz-2.6.20-1.2944.fc6xen
>
> Is that the kernel that comes with fc6? Are the modules you are using
> made specifically for that kernel?
>
> --Brian Jackson
>
>
>
> On May 1, 2007, at 7:41 PM, Guil Barros wrote:
>
>> Note, I am moving this thread over here from ivtv-users in hopes that
>> it gets some attention/fixing :) For further info please see the
>> ivtv-users archive.
>>
>> ==========
>>
>> Hi there, Im having some trouble with ivtv on a xen domU. I have
>> looked through the archives and found a reference to a similar problem
>> with no solution:
>>
>> http://www.gossamer-threads.com/lists/ivtv/users/33609?
>> search_string=xen;#33609
>>
>> Note that bttv seems to be working fine...
>>
>> Im running:
>> Dom0
>> - Linux sybil.bappos.com 2.6.18-8.1.1.el5xen #1 SMP Mon Feb 26
>> 21:05:12 EST 2007 i686 i686 i386 GNU/Linux
>> - xen-3.0.3-25.0.3.el5
>>
>> domU
>> - Linux slurp.bappos.com 2.6.20-1.2944.fc6xen #1 SMP Tue Apr 10
>> 19:12:19 EDT 2007 i686 i686 i386 GNU/Linux
>> - ivtv-0.10.1-126.fc6.at
>> - ivtv-firmware-20070217-13.at
>> - ivtv-kmdl-2.6.20-1.2944.fc6xen-0.10.1-126.fc6.at
>>
>>
>> lspci -v :
>> 00:00.0 Multimedia video controller: Internext Compression Inc iTVC16
>> (CX23416) MPEG-2 Encoder (rev 01)
>> Subsystem: Hauppauge computer works Inc. WinTV PVR 250
>> Flags: medium devsel, IRQ 16
>> Memory at f8000000 (32-bit, prefetchable) [disabled]
>> [size=64M]
>> Capabilities: [44] Power Management version 2
>>
>> 00:01.0 Multimedia video controller: Brooktree Corporation Bt878 Video
>> Capture (rev 11)
>> Subsystem: Hauppauge computer works Inc. WinTV Series
>> Flags: bus master, medium devsel, latency 64, IRQ 17
>> Memory at fdffe000 (32-bit, prefetchable) [size=4K]
>> Capabilities: [44] Vital Product Data
>> Capabilities: [4c] Power Management version 2
>>
>> 00:01.1 Multimedia controller: Brooktree Corporation Bt878 Audio
>> Capture (rev 11)
>> Subsystem: Hauppauge computer works Inc. WinTV Series
>> Flags: bus master, medium devsel, latency 64, IRQ 17
>> Memory at fdfff000 (32-bit, prefetchable) [size=4K]
>> Capabilities: [44] Vital Product Data
>> Capabilities: [4c] Power Management version 2
>>
>>
>> current lsmod:
>> [root[at]slurp src]# lsmod | grep bttv
>> bttv 171893 1 bt878
>> video_buf 27589 1 bttv
>> ir_common 34117 1 bttv
>> compat_ioctl32 5569 1 bttv
>> i2c_algo_bit 11337 1 bttv
>> btcx_risc 8905 1 bttv
>> tveeprom 18257 1 bttv
>> i2c_core 24897 5
>> tuner,tvaudio,bttv,i2c_algo_bit,tveeprom
>> videodev 29633 1 bttv
>> v4l2_common 26945 3 tuner,bttv,videodev
>>
>>
>> When i load the ivtv module i get the following:
>> [root[at]slurp src]# modprobe ivtv
>> ivtv: no version for "struct_module" found: kernel tainted.
>> PCI: Enabling device 0000:00:00.0 (0000 -> 0002)
>> i2c_adapter i2c-1: Client creation failed at 0x40 (-5)
>> Fatal DMA error! Please use 'swiotlb=force'
>> ------------[ cut here ]------------
>> kernel BUG at arch/i386/kernel/pci-dma-xen.c:359!
>> invalid opcode: 0000 [#1]
>> SMP
>> last sysfs file: /class/firmware/0000:00:00.0/loading
>> Modules linked in: msp3400 saa7115 ivtv(F)(U) cx2341x autofs4 hidp
>> l2cap bluetooth sunrpc
>> xennet ipv6 nf_conntrack_netbios_ns ipt_REJECT nf_conntrack_ipv4
>> xt_state nf_conntrack
>> nfnetlink xt_tcpudp iptable_filter ip_tables x_tables dm_multipath
>> parport_pc lp parport
>> bt878 snd_bt87x snd_seq_dummy snd_seq_oss snd_seq_midi_event snd_seq
>> snd_seq_device
>> snd_pcm_oss snd_mixer_oss snd_pcm tuner snd_timer tvaudio snd bttv
>> pcspkr video_buf
>> ir_common compat_ioctl32 i2c_algo_bit btcx_risc tveeprom i2c_core
>> soundcore videodev
>> v4l2_common v4l1_compat snd_page_alloc dm_snapshot dm_zero dm_mirror
>> dm_mod xenblk ext3
>> jbd ehci_hcd ohci_hcd uhci_hcd
>> CPU: 0
>> EIP: 0061:[<c0409f33>] Tainted: GF VLI
>> EFLAGS: 00010292 (2.6.20-1.2944.fc6xen #1)
>> EIP is at dma_map_single+0xd2/0x156
>> eax: 0000002f ebx: ed791048 ecx: c06e6b50 edx: f5416000
>> esi: 00000000 edi: 00008100 ebp: 00000002 esp: db736c94
>> ds: 007b es: 007b ss: 0069
>> Process modprobe (pid: 1984, ti=db736000 task=c0bf6bb0
>> task.ti=db736000)
>> Stack: c06946c1 000000d0 00000001 d51fb71c c0d7e7c0 12f50000
>> 00000000 00000000
>> c0462f4a d51fb760 d2f50000 00000002 dc1c0084 ee5b2b7b
>> 00000002 00000001
>> dc1c0000 dc1c0164 dc1c0084 c041dd0f ee5bf59b 00000000
>> dc1c0000 00000000
>> Call Trace:
>> [<c0462f4a>] __kmalloc+0x87/0x92
>> [<ee5b2b7b>] ivtv_stream_alloc+0x199/0x242 [ivtv]
>> [<c041dd0f>] printk+0x1f/0xa1
>> [<ee5b0c82>] ivtv_streams_setup+0x368/0x3c3 [ivtv]
>> [<ee5ada94>] ivtv_probe+0xff2/0x1334 [ivtv]
>> [<c041766e>] __might_sleep+0x21/0xc1
>> [<c0462a45>] kmem_cache_alloc+0x5f/0x69
>> [<c049e1ea>] sysfs_new_dirent+0x4b/0x55
>> [<c049e397>] sysfs_make_dirent+0x13/0x7f
>> [<c04eaeba>] pci_device_probe+0x36/0x57
>> [<c0545192>] really_probe+0x7f/0x103
>> [<c054525a>] driver_probe_device+0x44/0xa5
>> [<c041766e>] __might_sleep+0x21/0xc1
>> [<c0545349>] __driver_attach+0x0/0xab
>> [<c05453bc>] __driver_attach+0x73/0xab
>> [<c05447e4>] bus_for_each_dev+0x37/0x59
>> [<c054504c>] driver_attach+0x16/0x18
>> [<c0545349>] __driver_attach+0x0/0xab
>> [<c0544ab5>] bus_add_driver+0x61/0x165
>> [<c04eb016>] __pci_register_driver+0x73/0x9f
>> [<ee5ac773>] module_start+0xb5/0xde [ivtv]
>> [<c0436773>] sys_init_module+0x1780/0x18c7
>> [<c0457df9>] do_munmap+0x196/0x1af
>> [<c04662c5>] do_sync_read+0x0/0x10a
>> [<c0466c13>] vfs_read+0xa6/0x152
>> [<c0404e3c>] syscall_call+0x7/0xb
>> [<c0610033>] __sched_text_start+0x283/0x809
>> =======================
>> Code: ff 0f 00 00 8d 04 3e 3d 00 10 00 00 76 21 c1 ea 0c a1 80 fe 7a
>> c0 0f a3 10 19 c0 85
>> c0 75 10 c7 04 24 c1 46 69 c0 e8 bd 3d 01 00 <0f> 0b eb fe 85 db 74 19
>> 8b 83 5c 01 00 00
>> 85 c0 74 0f 8b 18 8b
>> EIP: [<c0409f33>] dma_map_single+0xd2/0x156 SS:ESP 0069:db736c94
>> Segmentation fault
>> [root[at]slurp src]#
>> Message from syslogd[at]slurp at Mon Apr 30 10:56:30 2007 ...
>> slurp kernel: ------------[ cut here ]------------
>>
>> Message from syslogd[at]slurp at Mon Apr 30 10:56:30 2007 ...
>> slurp kernel: invalid opcode: 0000 [#1]
>>
>> Message from syslogd[at]slurp at Mon Apr 30 10:56:30 2007 ...
>> slurp kernel: SMP
>>
>> Message from syslogd[at]slurp at Mon Apr 30 10:56:31 2007 ...
>> slurp kernel: CPU: 0
>>
>> Message from syslogd[at]slurp at Mon Apr 30 10:56:31 2007 ...
>> slurp kernel: EIP: 0061:[<c0409f33>] Tainted: GF VLI
>>
>> Message from syslogd[at]slurp at Mon Apr 30 10:56:31 2007 ...
>> slurp kernel: EFLAGS: 00010292 (2.6.20-1.2944.fc6xen #1)
>>
>> Message from syslogd[at]slurp at Mon Apr 30 10:56:31 2007 ...
>> slurp kernel: EIP is at dma_map_single+0xd2/0x156
>>
>> Message from syslogd[at]slurp at Mon Apr 30 10:56:31 2007 ...
>> slurp kernel: eax: 0000002f ebx: ed791048 ecx: c06e6b50 edx:
>> f5416000
>>
>> Message from syslogd[at]slurp at Mon Apr 30 10:56:31 2007 ...
>> slurp kernel: esi: 00000000 edi: 00008100 ebp: 00000002 esp:
>> db736c94
>>
>> Message from syslogd[at]slurp at Mon Apr 30 10:56:31 2007 ...
>> slurp kernel: ds: 007b es: 007b ss: 0069
>>
>> Message from syslogd[at]slurp at Mon Apr 30 10:56:31 2007 ...
>> slurp kernel: Process modprobe (pid: 1984, ti=db736000 task=c0bf6bb0
>> task.ti=db736000)
>>
>> Message from syslogd[at]slurp at Mon Apr 30 10:56:31 2007 ...
>> slurp kernel: Stack: c06946c1 000000d0 00000001 d51fb71c c0d7e7c0
>> 12f50000 00000000
>> 00000000
>>
>> Message from syslogd[at]slurp at Mon Apr 30 10:56:31 2007 ...
>> slurp kernel: c0462f4a d51fb760 d2f50000 00000002 dc1c0084
>> ee5b2b7b 00000002
>> 00000001
>>
>> Message from syslogd[at]slurp at Mon Apr 30 10:56:31 2007 ...
>> slurp kernel: dc1c0000 dc1c0164 dc1c0084 c041dd0f ee5bf59b
>> 00000000 dc1c0000
>> 00000000
>>
>> Message from syslogd[at]slurp at Mon Apr 30 10:56:31 2007 ...
>> slurp kernel: Call Trace:
>>
>> Message from syslogd[at]slurp at Mon Apr 30 10:56:31 2007 ...
>> slurp kernel: [<c0462f4a>] __kmalloc+0x87/0x92
>>
>> Message from syslogd[at]slurp at Mon Apr 30 10:56:31 2007 ...
>> slurp kernel: [<ee5b2b7b>] ivtv_stream_alloc+0x199/0x242 [ivtv]
>>
>> Message from syslogd[at]slurp at Mon Apr 30 10:56:31 2007 ...
>> slurp kernel: [<c041dd0f>] printk+0x1f/0xa1
>>
>> Message from syslogd[at]slurp at Mon Apr 30 10:56:31 2007 ...
>> slurp kernel: [<ee5b0c82>] ivtv_streams_setup+0x368/0x3c3 [ivtv]
>>
>> Message from syslogd[at]slurp at Mon Apr 30 10:56:31 2007 ...
>> slurp kernel: [<ee5ada94>] ivtv_probe+0xff2/0x1334 [ivtv]
>>
>> Message from syslogd[at]slurp at Mon Apr 30 10:56:31 2007 ...
>> slurp kernel: [<c041766e>] __might_sleep+0x21/0xc1
>>
>> Message from syslogd[at]slurp at Mon Apr 30 10:56:31 2007 ...
>> slurp kernel: [<c0462a45>] kmem_cache_alloc+0x5f/0x69
>>
>> Message from syslogd[at]slurp at Mon Apr 30 10:56:31 2007 ...
>> slurp kernel: [<c049e1ea>] sysfs_new_dirent+0x4b/0x55
>>
>> Message from syslogd[at]slurp at Mon Apr 30 10:56:31 2007 ...
>> slurp kernel: [<c049e397>] sysfs_make_dirent+0x13/0x7f
>>
>> Message from syslogd[at]slurp at Mon Apr 30 10:56:31 2007 ...
>> slurp kernel: [<c04eaeba>] pci_device_probe+0x36/0x57
>>
>> Message from syslogd[at]slurp at Mon Apr 30 10:56:31 2007 ...
>> slurp kernel: [<c0545192>] really_probe+0x7f/0x103
>>
>> Message from syslogd[at]slurp at Mon Apr 30 10:56:31 2007 ...
>> slurp kernel: [<c054525a>] driver_probe_device+0x44/0xa5
>>
>> Message from syslogd[at]slurp at Mon Apr 30 10:56:31 2007 ...
>> slurp kernel: [<c041766e>] __might_sleep+0x21/0xc1
>>
>> Message from syslogd[at]slurp at Mon Apr 30 10:56:31 2007 ...
>> slurp kernel: [<c0545349>] __driver_attach+0x0/0xab
>>
>> Message from syslogd[at]slurp at Mon Apr 30 10:56:31 2007 ...
>> slurp kernel: [<c05453bc>] __driver_attach+0x73/0xab
>>
>> Message from syslogd[at]slurp at Mon Apr 30 10:56:31 2007 ...
>> slurp kernel: [<c05447e4>] bus_for_each_dev+0x37/0x59
>>
>> Message from syslogd[at]slurp at Mon Apr 30 10:56:31 2007 ...
>> slurp kernel: [<c054504c>] driver_attach+0x16/0x18
>>
>> Message from syslogd[at]slurp at Mon Apr 30 10:56:31 2007 ...
>> slurp kernel: [<c0545349>] __driver_attach+0x0/0xab
>>
>> Message from syslogd[at]slurp at Mon Apr 30 10:56:31 2007 ...
>> slurp kernel: [<c0544ab5>] bus_add_driver+0x61/0x165
>>
>> Message from syslogd[at]slurp at Mon Apr 30 10:56:31 2007 ...
>> slurp kernel: [<c04eb016>] __pci_register_driver+0x73/0x9f
>>
>> Message from syslogd[at]slurp at Mon Apr 30 10:56:31 2007 ...
>> slurp kernel: [<ee5ac773>] module_start+0xb5/0xde [ivtv]
>>
>> Message from syslogd[at]slurp at Mon Apr 30 10:56:31 2007 ...
>> slurp kernel: [<c0436773>] sys_init_module+0x1780/0x18c7
>>
>> Message from syslogd[at]slurp at Mon Apr 30 10:56:31 2007 ...
>> slurp kernel: [<c0457df9>] do_munmap+0x196/0x1af
>>
>> Message from syslogd[at]slurp at Mon Apr 30 10:56:31 2007 ...
>> slurp kernel: [<c04662c5>] do_sync_read+0x0/0x10a
>>
>> Message from syslogd[at]slurp at Mon Apr 30 10:56:31 2007 ...
>> slurp kernel: [<c0466c13>] vfs_read+0xa6/0x152
>>
>> Message from syslogd[at]slurp at Mon Apr 30 10:56:31 2007 ...
>> slurp kernel: [<c0404e3c>] syscall_call+0x7/0xb
>>
>> Message from syslogd[at]slurp at Mon Apr 30 10:56:31 2007 ...
>> slurp kernel: [<c0610033>] __sched_text_start+0x283/0x809
>>
>> Message from syslogd[at]slurp at Mon Apr 30 10:56:31 2007 ...
>> slurp kernel: =======================
>>
>> Message from syslogd[at]slurp at Mon Apr 30 10:56:31 2007 ...
>> slurp kernel: Code: ff 0f 00 00 8d 04 3e 3d 00 10 00 00 76 21 c1 ea 0c
>> a1 80 fe 7a c0 0f
>> a3 10 19 c0 85 c0 75 10 c7 04 24 c1 46 69 c0 e8 bd 3d 01 00 <0f> 0b eb
>> fe 85 db 74 19 8b
>> 83 5c 01 00 00 85 c0 74 0f 8b 18 8b
>>
>> Message from syslogd[at]slurp at Mon Apr 30 10:56:31 2007 ...
>> slurp kernel: EIP: [<c0409f33>] dma_map_single+0xd2/0x156 SS:ESP
>> 0069:db736c94
>>
>>
>>
>> Apr 30 10:56:29 slurp kernel: ivtv: ==================== START INIT
>> IVTV ====================
>> Apr 30 10:56:29 slurp kernel: ivtv: version 0.10.1 (tagged
>> release) loading
>> Apr 30 10:56:29 slurp kernel: ivtv: Linux version:
>> 2.6.20-1.2944.fc6xen SMP mod_unload 686 4KSTACKS
>> Apr 30 10:56:29 slurp kernel: ivtv: In case of problems please
>> include the debug info between
>> Apr 30 10:56:29 slurp kernel: ivtv: the START INIT IVTV and END INIT
>> IVTV lines, along with
>> Apr 30 10:56:29 slurp kernel: ivtv: any module options, when mailing
>> the ivtv-users mailinglist.
>> Apr 30 10:56:29 slurp kernel: ivtv0: Autodetected Hauppauge card
>> (cx23416 based)
>> Apr 30 10:56:29 slurp kernel: PCI: Enabling device 0000:00:00.0
>> (0000 -> 0002)
>> Apr 30 10:56:30 slurp kernel: ivtv0: loaded v4l-cx2341x-enc.fw
>> firmware (376836 bytes)
>> Apr 30 10:56:30 slurp kernel: ivtv0: Encoder revision: 0x02060039
>> Apr 30 10:56:30 slurp kernel: i2c_adapter i2c-1: Client creation
>> failed at 0x40 (-5)
>> Apr 30 10:56:30 slurp kernel: tuner 1-0061: chip found @ 0xc2 (ivtv
>> i2c driver #0)
>> Apr 30 10:56:30 slurp kernel: tveeprom 1-0050: Hauppauge model 32032,
>> rev B326, serial# 7155646
>> Apr 30 10:56:30 slurp kernel: tveeprom 1-0050: tuner model is Temic
>> 4036FY5 (idx 26, type 8)
>> Apr 30 10:56:30 slurp kernel: tveeprom 1-0050: TV standards NTSC(M)
>> (eeprom 0x08)
>> Apr 30 10:56:30 slurp kernel: tveeprom 1-0050: audio processor is
>> MSP4448 (idx 27)
>> Apr 30 10:56:30 slurp kernel: tveeprom 1-0050: decoder processor is
>> SAA7115 (idx 19)
>> Apr 30 10:56:30 slurp kernel: tveeprom 1-0050: has no radio, has IR
>> receiver, has no IR transmitter
>> Apr 30 10:56:30 slurp kernel: ivtv0: Autodetected Hauppauge WinTV
>> PVR-250
>> Apr 30 10:56:30 slurp kernel: saa7115 1-0021: saa7115 found
>> (1f7115d0e100000) @ 0x42 (ivtv i2c driver #0)
>> Apr 30 10:56:30 slurp kernel: msp3400 1-0040: MSP4448G-A2 found @ 0x80
>> (ivtv i2c driver #0)
>> Apr 30 10:56:30 slurp kernel: msp3400 1-0040: MSP4448G-A2 supports
>> radio, mode is autodetect and autoselect
>> Apr 30 10:56:30 slurp kernel: ivtv0: Registered device video1 for
>> encoder MPEG (4 MB)
>> Apr 30 10:56:30 slurp kernel: Fatal DMA error! Please use
>> 'swiotlb=force'
>>
>>
>> I have tried setting swiotlb=force, swiotlb=32,force,
>> swiotlb=64,force, swiotlb=128,force, and swiotlb=256,force And always
>> get a kernel panic as below:
>>
>>
>> [root[at]sybil ~]# xm create -c slurp
>> Using config file "/etc/xen/slurp".
>> Going to boot Fedora Core (2.6.20-1.2944.fc6xen)
>> kernel: /vmlinuz-2.6.20-1.2944.fc6xen
>> initrd: /initrd-2.6.20-1.2944.fc6xen.img
>> Started domain slurp
>> Linux version 2.6.20-1.2944.fc6xen
>> (brewbuilder[at]hs20-bc2-2.build.redhat.com) (gcc version 4.1.1 20070105
>> (Red Hat 4.1.1-51)) #1 SMP Tue Apr 10 19:12:19 EDT 2007
>> BIOS-provided physical RAM map:
>> sanitize start
>> sanitize bail 0
>> copy_e820_map() start: 0000000000000000 size: 0000000030800000 end:
>> 0000000030800000 type: 1
>> Xen: 0000000000000000 - 0000000030800000 (usable)
>> 48MB HIGHMEM available.
>> 727MB LOWMEM available.
>> NX (Execute Disable) protection: active
>> Zone PFN ranges:
>> DMA 0 -> 186366
>> Normal 186366 -> 186366
>> HighMem 186366 -> 198656
>> early_node_map[1] active PFN ranges
>> 0: 0 -> 198656
>> ACPI in unprivileged domain disabled
>> Built 1 zonelists. Total pages: 197105
>> Kernel command line: ro root=/dev/VolGroup00/lv00_root console=xvc0
>> selinux=0 swiotlb=32,force
>> Enabling fast FPU save and restore... done.
>> Enabling unmasked SIMD FPU exception support... done.
>> Initializing CPU#0
>> CPU 0 irqstacks, hard=c0784000 soft=c0764000
>> PID hash table entries: 4096 (order: 12, 16384 bytes)
>> Xen reported: 2394.000 MHz processor.
>> Console: colour dummy device 80x25
>> Dentry cache hash table entries: 131072 (order: 7, 524288 bytes)
>> Inode-cache hash table entries: 65536 (order: 6, 262144 bytes)
>> ------------[ cut here ]------------
>> kernel BUG at lib/../arch/i386/kernel/swiotlb.c:160!
>> invalid opcode: 0000 [#1]
>> SMP
>> last sysfs file:
>> Modules linked in:
>> CPU: 0
>> EIP: e019:[<c04e5848>] Not tainted VLI
>> EFLAGS: 00010282 (2.6.20-1.2944.fc6xen #1)
>> EIP is at swiotlb_init_with_default_size+0x8a/0x153
>> eax: fffffff4 ebx: 00000300 ecx: 00000040 edx: f5416000
>> esi: c075fae4 edi: 02000000 ebp: 00000020 esp: c0730f44
>> ds: e021 es: e021 ss: e021
>> Process swapper (pid: 0, ti=c0730000 task=c06e3280 task.ti=c0730000)
>> Stack: c074173e 00000000 ffffffff c161f000 c161f000 c075fae4
>> c0231b07 c073e778
>> 00000042 00000004 c0730f88 00010000 c16a6200 00000004
>> 00000010 c0742676
>> c069b0b1 c069c864 00010000 00000006 00040000 00c07c40
>> 00000000 0301f100
>> Call Trace:
>> [<c074173e>] __alloc_bootmem_low+0x2b/0x67
>> [<c073e778>] mem_init+0x54/0x4d6
>> [<c0742676>] alloc_large_system_hash+0x18d/0x1b4
>> [<c0743153>] inode_init_early+0x49/0x72
>> [<c0734686>] start_kernel+0x22a/0x3c3
>> [<c073425a>] unknown_bootoption+0x0/0x202
>> =======================
>> Code: 59 7a f3 ff 83 c8 ff 40 83 f8 06 75 fa 89 d8 b9 1e 00 00 00 c1
>> e0 0b ba 06 00 00 00 03 05 54 65 7e c0 e8 2a 02 f3 ff 85 c0 74 04 <0f>
>> 0b eb fe 83 eb 80 a1 58 65 7e c0 39 c3 72 c9 b9 00 00 00 01
>> EIP: [<c04e5848>] swiotlb_init_with_default_size+0x8a/0x153 SS:ESP
>> e021:c0730f44
>> <0>Kernel panic - not syncing: Attempted to kill the idle task!
>>
>>
>> please help, I think that having ivtv working in a xen domU would be
>> of great benefit to all :)
>>
>> Thanks,
>> -Guil
>>
>>
>>
>>
>> _______________________________________________
>> ivtv-devel mailing list
>> ivtv-devel[at]ivtvdriver.org
>> http://ivtvdriver.org/mailman/listinfo/ivtv-devel
>
>
> _______________________________________________
> ivtv-devel mailing list
> ivtv-devel[at]ivtvdriver.org
> http://ivtvdriver.org/mailman/listinfo/ivtv-devel
>





_______________________________________________
ivtv-devel mailing list
ivtv-devel[at]ivtvdriver.org
http://ivtvdriver.org/mailman/listinfo/ivtv-devel


ijc at hellion

May 2, 2007, 12:47 PM

Post #4 of 7 (1373 views)
Permalink
Re: ivtv not working in xen domU ? [In reply to]

On Tue, 2007-05-01 at 19:41 -0500, Guil Barros wrote:
> Note, I am moving this thread over here from ivtv-users in hopes that
> it gets some attention/fixing :) For further info please see the
> ivtv-users archive.

Thinking about it a bit further -- I think the problem is more likely
with the "swiotlb=foo" options not working, without it the ivtv driver
failure is somewhat expected.

The reason for the failure is that Xen to disallow multipage contiguous
allocations for non-privileged domUs. Unfortunately a swiotlb is
precisely a multipage contiguous allocation.

It seems that the way to become a "privileged domU" is to have a
non-empty set of I/O capabilities and that doing PCI pass-through should
cause this to happen. (I presume you are passing the PVR device
through).

At least on 3.0.5 this doesn't seem to happen correctly. I see you are
using 3.0.3 but the code looks pretty similar on the hypervisor and
kernel side so that just leaves the tools/xend etc which isn't an area I
know much about...

You could take this to xen-devel where someone might have some more
insight.

If you are comfortable rebuilding the hypervisor you could try the patch
below to confirm this is the issue. It will make all domains
privileged...

Ian.

diff -r 2678e31d20f3 xen/include/xen/iocap.h
--- a/xen/include/xen/iocap.h Wed May 02 09:42:43 2007 -0700
+++ b/xen/include/xen/iocap.h Wed May 02 20:02:38 2007 +0100
@@ -29,7 +29,7 @@
rangeset_contains_singleton((d)->irq_caps, i)

#define multipage_allocation_permitted(d) \
- (!rangeset_is_empty((d)->iomem_caps))
+ (1 || !rangeset_is_empty((d)->iomem_caps))

/*
* Until TLB flushing issues are sorted out we consider it unsafe for

--
Ian Campbell

RELATIVES!!


_______________________________________________
ivtv-devel mailing list
ivtv-devel[at]ivtvdriver.org
http://ivtvdriver.org/mailman/listinfo/ivtv-devel


guil at bappos

May 2, 2007, 2:10 PM

Post #5 of 7 (1359 views)
Permalink
Re: ivtv not working in xen domU ? [In reply to]

I'm happy to try this out, but it will take me some time to brush up
on how to patch a kernel with the xen sources goes. I'll get back to
you.

Thanks,
-Guil

Quoting Ian Campbell <ijc[at]hellion.org.uk>:

> On Tue, 2007-05-01 at 19:41 -0500, Guil Barros wrote:
>> Note, I am moving this thread over here from ivtv-users in hopes that
>> it gets some attention/fixing :) For further info please see the
>> ivtv-users archive.
>
> Thinking about it a bit further -- I think the problem is more likely
> with the "swiotlb=foo" options not working, without it the ivtv driver
> failure is somewhat expected.
>
> The reason for the failure is that Xen to disallow multipage contiguous
> allocations for non-privileged domUs. Unfortunately a swiotlb is
> precisely a multipage contiguous allocation.
>
> It seems that the way to become a "privileged domU" is to have a
> non-empty set of I/O capabilities and that doing PCI pass-through should
> cause this to happen. (I presume you are passing the PVR device
> through).
>
> At least on 3.0.5 this doesn't seem to happen correctly. I see you are
> using 3.0.3 but the code looks pretty similar on the hypervisor and
> kernel side so that just leaves the tools/xend etc which isn't an area I
> know much about...
>
> You could take this to xen-devel where someone might have some more
> insight.
>
> If you are comfortable rebuilding the hypervisor you could try the patch
> below to confirm this is the issue. It will make all domains
> privileged...
>
> Ian.
>
> diff -r 2678e31d20f3 xen/include/xen/iocap.h
> --- a/xen/include/xen/iocap.h Wed May 02 09:42:43 2007 -0700
> +++ b/xen/include/xen/iocap.h Wed May 02 20:02:38 2007 +0100
> @@ -29,7 +29,7 @@
> rangeset_contains_singleton((d)->irq_caps, i)
>
> #define multipage_allocation_permitted(d) \
> - (!rangeset_is_empty((d)->iomem_caps))
> + (1 || !rangeset_is_empty((d)->iomem_caps))
>
> /*
> * Until TLB flushing issues are sorted out we consider it unsafe for
>
> --
> Ian Campbell
>
> RELATIVES!!
>
>
> _______________________________________________
> ivtv-devel mailing list
> ivtv-devel[at]ivtvdriver.org
> http://ivtvdriver.org/mailman/listinfo/ivtv-devel
>





_______________________________________________
ivtv-devel mailing list
ivtv-devel[at]ivtvdriver.org
http://ivtvdriver.org/mailman/listinfo/ivtv-devel


ijc at hellion

May 2, 2007, 2:59 PM

Post #6 of 7 (1367 views)
Permalink
Re: ivtv not working in xen domU ? [In reply to]

On Wed, 2007-05-02 at 20:47 +0100, Ian Campbell wrote:
> On Tue, 2007-05-01 at 19:41 -0500, Guil Barros wrote:
> > Note, I am moving this thread over here from ivtv-users in hopes that
> > it gets some attention/fixing :) For further info please see the
> > ivtv-users archive.
>
> Thinking about it a bit further -- I think the problem is more likely
> with the "swiotlb=foo" options not working, without it the ivtv driver
> failure is somewhat expected.
>
> The reason for the failure is that Xen to disallow multipage contiguous
> allocations for non-privileged domUs. Unfortunately a swiotlb is
> precisely a multipage contiguous allocation.
>
> It seems that the way to become a "privileged domU" is to have a
> non-empty set of I/O capabilities and that doing PCI pass-through should
> cause this to happen. (I presume you are passing the PVR device
> through).
>
> At least on 3.0.5 this doesn't seem to happen correctly.

Actually it looks like the PCI device needs to have an I/O memory region
and the device I was testing with (a spare USB host controller) only had
an I/O port region.

My PVR box isn't a Xen box so I can't check but I think that since my
pvr card shows I/O memory in lspci you should be OK.

You can confirm by starting the domain with on_crash=preserve then
pressing Ctrl-A 3 times on the Xen console and pressing 'q'. You should
get output like:
(XEN) Rangesets belonging to domain 4:
(XEN) Interrupts { 16 }
(XEN) I/O Memory { e0000-e7fff, e8200-e823f }
(XEN) I/O Ports { 2000-20ff }
(XEN) I/O Memory { }
(XEN) I/O Ports { 3080-309f }
which should show I/O Memory for your domain. Also /var/log/xen/xend.log
on dom0 should contain something like:
[2007-05-02 22:55:45 2956] INFO (pciquirk:90) NO quirks found for PCI device [1002:5b60:174b:0500]
[2007-05-02 22:55:45 2956] DEBUG (pciquirk:131) Permissive mode NOT enabled for PCI device [1002:5b60:174b:0500]
[2007-05-02 22:55:45 2956] DEBUG (pciif:155) pci: enabling ioport 0x2000/0x100
[2007-05-02 22:55:45 2956] DEBUG (pciif:168) pci: enabling iomem 0xe0000000/0x8000000 pfn 0xe0000/0x8000
[2007-05-02 22:55:45 2956] DEBUG (pciif:168) pci: enabling iomem 0xe8210000/0x10000 pfn 0xe8210/0x10
[2007-05-02 22:55:45 2956] DEBUG (pciif:168) pci: enabling iomem 0xe8220000/0x20000 pfn 0xe8220/0x20
[2007-05-02 22:55:45 2956] DEBUG (pciif:179) pci: enabling irq 16

Ian.
--
Ian Campbell

Likewise, the national appetizer, brine-cured herring with raw onions,
wins few friends, Germans excepted.
-- Darwin Porter "Scandinavia On $50 A Day"


_______________________________________________
ivtv-devel mailing list
ivtv-devel[at]ivtvdriver.org
http://ivtvdriver.org/mailman/listinfo/ivtv-devel


ijc at hellion

May 3, 2007, 9:18 AM

Post #7 of 7 (1364 views)
Permalink
Re: ivtv not working in xen domU ? [In reply to]

On Wed, 2007-05-02 at 16:10 -0500, Guil Barros wrote:
> I'm happy to try this out, but it will take me some time to brush up
> on how to patch a kernel with the xen sources goes. I'll get back to
> you.

Don't worry about this -- I think the problem lies elsewhere (see my
other mail).

Ian.
--
Ian Campbell

Cops never say good-bye. They're always hoping to see you again in the line-up.
-- Raymond Chandler


_______________________________________________
ivtv-devel mailing list
ivtv-devel[at]ivtvdriver.org
http://ivtvdriver.org/mailman/listinfo/ivtv-devel

ivtv devel RSS feed   Index | Next | Previous | View Threaded
 
 


Interested in having your list archived? Contact lists@gossamer-threads.com
 
  Web Applications & Managed Hosting Powered by Gossamer Threads Inc.