All of lore.kernel.org
 help / color / mirror / Atom feed
From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
To: "jonathanjstevens@gmail.com" <jonathanjstevens@gmail.com>
Cc: xen-devel@lists.xensource.com
Subject: Re: HVR-4000 DVB can't scan or tune (properly) with Xen
Date: Tue, 15 Nov 2011 09:31:32 -0500	[thread overview]
Message-ID: <20111115143131.GB22675@phenom.dumpdata.com> (raw)
In-Reply-To: <CAA7M+FCKCqHfBwkx7LUe6qH-_z4E+vZ2rwKi013MZxdT4GfKnw@mail.gmail.com>

On Tue, Nov 15, 2011 at 12:52:56AM +0000, jonathanjstevens@gmail.com wrote:
> >
> > 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.

Why did pick irqpoll? Was there something in the past that was hanging on your box.

> 
> >
> > 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.

And all fail? Was this with the irqpoll option?
Is this a two socket box?

> 
> 
> >
> > 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...

rpmfusion has a version of it built for F16.

> 
> 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*


Well, that one is the worry some one. It reads as if it can't get the
interrupts fast enough, which would be worrysome.

I think I need to look at the code itself to get a better understanding
of where that 'irq aud ..' is.


Are there cheap versions of these DVB cards? I've only Hauppage PV-150 which
works for me, but that is not a DVB type card.

  reply	other threads:[~2011-11-15 14:31 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <CAA7M+FD1mis7C1+cU0eCYZHhu96-B-g7_73FjC430fo4CHohvQ@mail.gmail.com>
2011-11-13 18:47 ` HVR-4000 DVB can't scan or tune (properly) with Xen jonathanjstevens
2011-11-14 18:38   ` Konrad Rzeszutek Wilk
2011-11-15  0:52     ` jonathanjstevens
2011-11-15 14:31       ` Konrad Rzeszutek Wilk [this message]
2011-11-15 15:59         ` jonathanjstevens

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20111115143131.GB22675@phenom.dumpdata.com \
    --to=konrad.wilk@oracle.com \
    --cc=jonathanjstevens@gmail.com \
    --cc=xen-devel@lists.xensource.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.