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

Re: [Xen-devel] HVR-4000 DVB can't scan or tune (properly) with Xen

To: xen-devel@xxxxxxxxxxxxxxxxxxx
Subject: Re: [Xen-devel] HVR-4000 DVB can't scan or tune (properly) with Xen
From: "jonathanjstevens@xxxxxxxxx" <jonathanjstevens@xxxxxxxxx>
Date: Tue, 15 Nov 2011 00:52:56 +0000
Delivery-date: Mon, 14 Nov 2011 17:02:30 -0800
Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type:content-transfer-encoding; bh=hb8pTKUwxR81qqo+Ht1NCyJZfKpaEmqXMJzaUlRbDxA=; b=ByZOZ2tDk4+rrMo7RN2EE/Y+A/sEqkQkaUr4TFcSAJTDMQA7LMSYCgprJfOP7TibV/ oaVyCPTDDqRRFaow2+aHWsnR9iBd0cRohrei0ZV8HgBmdamo/ps8ASRma8CcruyvlNDd o4zdydClz9p10Lr9gGJt1Zsu3PKsBoPYl2s3c=
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
In-reply-to: <20111114183807.GA15284@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>
References: <CAA7M+FD1mis7C1+cU0eCYZHhu96-B-g7_73FjC430fo4CHohvQ@xxxxxxxxxxxxxx> <CAA7M+FBP1SAa2cn9Rfsdcde=ruKekq+tVP1Jnj17RK6qrgvfNw@xxxxxxxxxxxxxx> <20111114183807.GA15284@xxxxxxxxxxxxxxxxxxx>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
>
> Excellent. Everything that is new.

Shiney. :)

>
>>
>> When I boot without Xen the DVB PCI cards can tune and scan perfectly.
>> I also have a USB DVB unit, which can tune and scan regardless of
>> whether Xen is running. However when I try to scan and tune with the
>> PCI DVB cards it fails.
>
> OK, and you are _not_ passing it to a guest right?

Indeed not, this is in dom0. I do not have IOMMU so my dvb stuff will
run in dom0.


>>
>> [   26.572693] cx88[1]/1: IRQ loop detected, disabling interrupts
>> [   26.574810] cx88[1]: irq aud [0x1001] dn_risci1* dn_sync*
>
> Great. Can you do a couple of tests:

Certainly. However, first I will say that I have made the above
messages go away. I had been trying various boot options based on what
I had been reading on net. I was using irqpoll at the time that those
messages appeared. Removing irqpoll has stopped them from occurring.
Hopefully that is useful information in itself.

>
> 1). Boot your Linux machine with 'mem=3G' and see if that makes the issue
>    disappear.

I have tried mem=2G and 4G (not 3 but I will if you think it'll be different).
I have also been trying with ballooning disabled, and with dom0_mem=2G / 4G
I also tried swiotlb=65762
I have tried most combinations of the above - but not necessarily all.


>
> 2). Tell me what is the 'scan' tool you use? Is it there a command
>   line version of the tool that triggers this?
>
I've been using as many as I can try.
Mainly it's the F16 provided scandvb, which I think is just a renamed
dvbscan and also w_scan.
I've also tried mplayer, xine, kaffeine, and mythtv. I haven't got vlc
to compile yet...

I think I have a bit more information for you after today's hacking about.
First off there was a kernel update, so I'm now at

Linux mythtvtuner.home 3.1.1-1.fc16.x86_64 #1 SMP Fri Nov 11 21:47:56
UTC 2011 x86_64 x86_64 x86_64 GNU/Linux


>From what I can see I think in fact the tuning works OK, but there is
some sort of issue getting at the streams once tuned.
e.g. tzap will get a lock OK
> tzap -a 1 -f 1 -d 1 -c ~/tzap.channels.conf "BBC ONE(BBC)"
using '/dev/dvb/adapter1/frontend1' and '/dev/dvb/adapter1/demux1'
tuning to 650000000 Hz
video pid 0x0065, audio pid 0x0066
status 01 | signal 5151 | snr 8000 | ber 00003fff | unc 00000000 |
status 1f | signal 4e4e | snr ffff | ber 00000000 | unc 00000000 | FE_HAS_LOCK
status 1f | signal 4e4e | snr ffff | ber 00000000 | unc 00000000 | FE_HAS_LOCK


I don't know if the following is useful?

root@mythtvtuner jon]# strace -f -v scandvb -a 1 -f1 -d 0 -5 -v -v -v
~jon/dvbscan.channels.conf
execve("/usr/bin/scandvb", ["scandvb", "-a", "1", "-f1", "-d", "0",
"-5", "-v", "-v", "-v", "/home/jon/dvbscan.channels.conf"],
["XDG_SESSION_ID=69", "HOSTNAME=mythtvtuner.home", "SHELL=/bin/bash",
"TERM=xterm", "HISTSIZE=1000", "SSH_CLIENT=192.168.2.179 48391 2"...,
"SSH_TTY=/dev/pts/7", "USER=jon",
"LS_COLORS=rs=0:di=01;34:ln=01;36"...,
"PATH=/usr/lib64/ccache:/usr/loca"..., "MAIL=/var/spool/mail/jon",
"PWD=/home/jon", "XMODIFIERS=@im=none", "LANG=en_US.UTF-8",
"KDE_IS_PRELINKED=1", "KDEDIRS=/usr", "HISTCONTROL=ignoredups",
"HOME=/root", "SHLVL=2", "LOGNAME=jon", "CVS_RSH=ssh",
"SSH_CONNECTION=192.168.2.179 483"...,
"LESSOPEN=||/usr/bin/lesspipe.sh "...,
"XDG_RUNTIME_DIR=/run/user/jon", "_=/usr/bin/strace"]) = 0
brk(0)                                  = 0x20fe000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1,
0) = 0x7ff5ccd7a000
access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
fstat(3, {st_dev=makedev(253, 1), st_ino=132752, st_mode=S_IFREG|0644,
st_nlink=1, st_uid=0, st_gid=0, st_blksize=4096, st_blocks=224,
st_size=112482, st_atime=2011/11/14-12:23:08,
st_mtime=2011/11/14-12:23:06, st_ctime=2011/11/14-12:23:06}) = 0
mmap(NULL, 112482, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7ff5ccd5e000
close(3)                                = 0
open("/lib64/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\260\27\2\2008\0\0\0"...,
832) = 832
fstat(3, {st_dev=makedev(253, 1), st_ino=157705, st_mode=S_IFREG|0755,
st_nlink=1, st_uid=0, st_gid=0, st_blksize=4096, st_blocks=4032,
st_size=2063512, st_atime=2011/11/14-23:30:01,
st_mtime=2011/10/26-20:57:26, st_ctime=2011/11/09-23:29:49}) = 0
mmap(0x3880000000, 3884344, PROT_READ|PROT_EXEC,
MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x3880000000
mprotect(0x38801aa000, 2097152, PROT_NONE) = 0
mmap(0x38803aa000, 24576, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1aa000) = 0x38803aa000
mmap(0x38803b0000, 17720, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x38803b0000
close(3)                                = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1,
0) = 0x7ff5ccd5d000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1,
0) = 0x7ff5ccd5c000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1,
0) = 0x7ff5ccd5b000
arch_prctl(ARCH_SET_FS, 0x7ff5ccd5c700) = 0
mprotect(0x38803aa000, 16384, PROT_READ) = 0
mprotect(0x387fe21000, 4096, PROT_READ) = 0
munmap(0x7ff5ccd5e000, 112482)          = 0
write(2, "scanning /home/jon/dvbscan.chann"..., 41scanning
/home/jon/dvbscan.channels.conf
) = 41
write(2, "using '/dev/dvb/adapter1/fronten"..., 67using
'/dev/dvb/adapter1/frontend1' and '/dev/dvb/adapter1/demux0'
) = 67
open("/dev/dvb/adapter1/frontend1", O_RDWR) = 3
ioctl(3, FE_GET_INFO, 0x60a640)         = 0
rt_sigaction(SIGINT, {0x403300, [INT], SA_RESTORER|SA_RESTART,
0x3880036320}, {SIG_DFL, [], 0}, 8) = 0
brk(0)                                  = 0x20fe000
brk(0x211f000)                          = 0x211f000
brk(0)                                  = 0x211f000
open("/home/jon/dvbscan.channels.conf", O_RDONLY) = 4
fstat(4, {st_dev=makedev(253, 16), st_ino=1704027,
st_mode=S_IFREG|0664, st_nlink=1, st_uid=1000, st_gid=1000,
st_blksize=4096, st_blocks=8, st_size=1028,
st_atime=2011/11/14-15:05:46, st_mtime=2011/11/10-23:05:38,
st_ctime=2011/11/10-23:05:38}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1,
0) = 0x7ff5ccd79000
read(4, "#-------------------------------"..., 4096) = 1028
write(2, "initial transponder 650000000 0 "..., 44initial transponder
650000000 0 9 9 6 2 4 4
) = 44
write(2, "initial transponder 754000000 0 "..., 44initial transponder
754000000 0 3 9 3 1 0 0
) = 44
write(2, "initial transponder 794000000 0 "..., 44initial transponder
794000000 0 2 9 3 1 0 0
) = 44
write(2, "initial transponder 738000000 0 "..., 44initial transponder
738000000 0 2 9 3 1 0 0
) = 44
write(2, "initial transponder 690000000 0 "..., 44initial transponder
690000000 0 2 9 3 1 0 0
) = 44
write(2, "initial transponder 722000000 0 "..., 44initial transponder
722000000 0 2 9 3 1 0 0
) = 44
write(2, "initial transponder 706000000 0 "..., 44initial transponder
706000000 0 9 9 6 2 4 4
) = 44
write(2, "initial transponder 842000000 0 "..., 44initial transponder
842000000 0 9 9 6 2 4 4
) = 44
read(4, "", 4096)                       = 0
close(4)                                = 0
munmap(0x7ff5ccd79000, 4096)            = 0
write(2, ">>> tune to: ", 13>>> tune to: )           = 13
write(2, "650000000:", 10650000000:)              = 10
write(2, "INVERSION_AUTO:", 15INVERSION_AUTO:)         = 15
write(2, "BANDWIDTH_8_MHZ:", 16BANDWIDTH_8_MHZ:)        = 16
write(2, "FEC_AUTO:", 9FEC_AUTO:)                = 9
write(2, "FEC_AUTO:", 9FEC_AUTO:)                = 9
write(2, "QAM_AUTO:", 9QAM_AUTO:)                = 9
write(2, "TRANSMISSION_MODE_AUTO:", 23TRANSMISSION_MODE_AUTO:) = 23
write(2, "GUARD_INTERVAL_AUTO:", 20GUARD_INTERVAL_AUTO:)    = 20
write(2, "HIERARCHY_AUTO", 14HIERARCHY_AUTO)          = 14
write(2, "\n", 1
)                       = 1
ioctl(3, FE_SET_FRONTEND, 0x7fffe82681c0) = 0
nanosleep({0, 200000000}, NULL)         = 0
ioctl(3, FE_READ_STATUS, 0x7fffe82681ec) = 0
write(2, ">>> tuning status == 0x01\n", 26>>> tuning status == 0x01
) = 26
nanosleep({0, 200000000}, NULL)         = 0
ioctl(3, FE_READ_STATUS, 0x7fffe82681ec) = 0
write(2, ">>> tuning status == 0x1f\n", 26>>> tuning status == 0x1f
) = 26
open("/dev/dvb/adapter1/demux0", O_RDWR|O_NONBLOCK) = 4
ioctl(4, DMX_SET_FILTER, 0x7fffe8266fc0) = 0
open("/dev/dvb/adapter1/demux0", O_RDWR|O_NONBLOCK) = 5
ioctl(5, DMX_SET_FILTER, 0x7fffe8266fc0) = 0
open("/dev/dvb/adapter1/demux0", O_RDWR|O_NONBLOCK) = 6
ioctl(6, DMX_SET_FILTER, 0x7fffe8266fc0) = 0
poll([{fd=6, events=POLLIN}, {fd=5, events=POLLIN}, {fd=4,
events=POLLIN}], 3, 1000) = 0 (Timeout)
poll([{fd=6, events=POLLIN}, {fd=5, events=POLLIN}, {fd=4,
events=POLLIN}], 3, 1000) = 0 (Timeout)
poll([{fd=6, events=POLLIN}, {fd=5, events=POLLIN}, {fd=4,
events=POLLIN}], 3, 1000) = 0 (Timeout)
poll([{fd=6, events=POLLIN}, {fd=5, events=POLLIN}, {fd=4,
events=POLLIN}], 3, 1000) = 0 (Timeout)
poll([{fd=6, events=POLLIN}, {fd=5, events=POLLIN}, {fd=4,
events=POLLIN}], 3, 1000) = 0 (Timeout)
poll([{fd=6, events=POLLIN}, {fd=5, events=POLLIN}, {fd=4,
events=POLLIN}], 3, 1000) = 0 (Timeout)
poll([{fd=6, events=POLLIN}, {fd=5, events=POLLIN}, {fd=4,
events=POLLIN}], 3, 1000) = 0 (Timeout)
poll([{fd=6, events=POLLIN}, {fd=5, events=POLLIN}, {fd=4,
events=POLLIN}], 3, 1000) = 0 (Timeout)
poll([{fd=6, events=POLLIN}, {fd=5, events=POLLIN}, {fd=4,
events=POLLIN}], 3, 1000) = 0 (Timeout)
poll([{fd=6, events=POLLIN}, {fd=5, events=POLLIN}, {fd=4,
events=POLLIN}], 3, 1000) = 0 (Timeout)
poll([{fd=6, events=POLLIN}, {fd=5, events=POLLIN}, {fd=4,
events=POLLIN}], 3, 1000) = 0 (Timeout)
poll([{fd=6, events=POLLIN}, {fd=5, events=POLLIN}, {fd=4,
events=POLLIN}], 3, 1000) = 0 (Timeout)
poll([{fd=6, events=POLLIN}, {fd=5, events=POLLIN}, {fd=4,
events=POLLIN}], 3, 1000) = 0 (Timeout)
poll([{fd=6, events=POLLIN}, {fd=5, events=POLLIN}, {fd=4,
events=POLLIN}], 3, 1000) = 0 (Timeout)
poll([{fd=6, events=POLLIN}, {fd=5, events=POLLIN}, {fd=4,
events=POLLIN}], 3, 1000) = 0 (Timeout)
poll([{fd=6, events=POLLIN}, {fd=5, events=POLLIN}, {fd=4,
events=POLLIN}], 3, 1000) = 0 (Timeout)
poll([{fd=6, events=POLLIN}, {fd=5, events=POLLIN}, {fd=4,
events=POLLIN}], 3, 1000) = 0 (Timeout)
poll([{fd=6, events=POLLIN}, {fd=5, events=POLLIN}, {fd=4,
events=POLLIN}], 3, 1000) = 0 (Timeout)
poll([{fd=6, events=POLLIN}, {fd=5, events=POLLIN}, {fd=4,
events=POLLIN}], 3, 1000) = 0 (Timeout)
poll([{fd=6, events=POLLIN}, {fd=5, events=POLLIN}, {fd=4,
events=POLLIN}], 3, 1000) = 0 (Timeout)
poll([{fd=6, events=POLLIN}, {fd=5, events=POLLIN}, {fd=4,
events=POLLIN}], 3, 1000) = 0 (Timeout)
poll([{fd=6, events=POLLIN}, {fd=5, events=POLLIN}, {fd=4,
events=POLLIN}], 3, 1000) = 0 (Timeout)
poll([{fd=6, events=POLLIN}, {fd=5, events=POLLIN}, {fd=4,
events=POLLIN}], 3, 1000) = 0 (Timeout)
poll([{fd=6, events=POLLIN}, {fd=5, events=POLLIN}, {fd=4,
events=POLLIN}], 3, 1000) = 0 (Timeout)
poll([{fd=6, events=POLLIN}, {fd=5, events=POLLIN}, {fd=4,
events=POLLIN}], 3, 1000) = 0 (Timeout)
poll([{fd=6, events=POLLIN}, {fd=5, events=POLLIN}, {fd=4,
events=POLLIN}], 3, 1000) = 0 (Timeout)
write(2, "WARNING: filter timeout pid 0x00"..., 35WARNING: filter
timeout pid 0x0011
) = 35
ioctl(5, DMX_STOP, 0x38803b0a80)        = 0
close(5)                                = 0
poll([{fd=6, events=POLLIN}, {fd=4, events=POLLIN}], 2, 1000) = 0 (Timeout)
write(2, "WARNING: filter timeout pid 0x00"..., 35WARNING: filter
timeout pid 0x0000
) = 35
ioctl(4, DMX_STOP, 0x38803b0a80)        = 0
close(4)                                = 0
poll([{fd=6, events=POLLIN}], 1, 1000)  = 0 (Timeout)
poll([{fd=6, events=POLLIN}], 1, 1000)  = 0 (Timeout)
poll([{fd=6, events=POLLIN}], 1, 1000)  = 0 (Timeout)
poll([{fd=6, events=POLLIN}], 1, 1000^C <unfinished ...>

etc...

Occasionally the POLLIN doesn't timeout (since kernel upgrade), but
the data can't seem to be interpreted (my guess) and I can't find what
makes this occur (and I can't seem to make it happen right now
annoyingly!).
I don't want to bombard you with unwanted diags but can capture more
fully similar to above if useful?



> 3). Or does this happend when you just load the module and it starts
>   doing the IRQ loop detected' thingy?

Not entirely sure, can recreate by turning irqpoll back on and testing
if you want? From memory there were very few of the
>> [   26.572693] cx88[1]/1: IRQ loop detected, disabling interrupts

but lots and lots of:
>> [   26.574810] cx88[1]: irq aud [0x1001] dn_risci1* dn_sync*


Thanks very much for looking into this.

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel

<Prev in Thread] Current Thread [Next in Thread>