[linux-dvb] Re: IRQ issues with Nova-S CI when using CI Module
Michael Ditum
mrskensington at gmail.com
Thu Jul 28 18:32:16 CEST 2005
I've just has a chance to test the changes you made... unfortunately I
could not test the latest CVS version as I couldn't get 2.6.13 to boot
on my hardware... some problem with lvm... Instead I basically took
the changes you made to dvb_ca_en50221.c and put them into my source
tree which is fedora core 3's 2.6.12-1.1372 kernel. When I booted up
and run vlc I got the following error in /var/log/messages....
Jul 26 17:12:25 bloodhound kernel: Debug: sleeping function called
from invalid context at arch/i386/lib/usercopy.c:601
Jul 26 17:12:25 bloodhound kernel: in_atomic():0, irqs_disabled():1
Jul 26 17:12:25 bloodhound kernel: [<c011ed91>] __might_sleep+0x9d/0xae
Jul 26 17:12:25 bloodhound kernel: [<c01d2f11>] copy_to_user+0x18/0x5f
Jul 26 17:12:25 bloodhound kernel: [<e099f67b>]
dvb_ringbuffer_pkt_read+0xea/0x111 [dvb_core]
Jul 26 17:12:25 bloodhound kernel: [<e099b399>]
dvb_ca_en50221_io_read+0x18f/0x3ae [dvb_core]
Jul 26 17:12:25 bloodhound kernel: [<c0172415>] poll_freewait+0x34/0x3c
Jul 26 17:12:25 bloodhound kernel: [<c0160a9f>] vfs_read+0x106/0x108
Jul 26 17:12:25 bloodhound kernel: [<c0160ce1>] sys_read+0x41/0x6a
Jul 26 17:12:25 bloodhound kernel: [<c0103fe9>] syscall_call+0x7/0xb
I get one of these roughly every second. Do the changes you made
require more changes than the ones in dvb_ca_en50221.c?
I then modified the kernel adding in my modifications and didn't get
any IRQ messages including the NMI releated one. I have noticed that
cat /proc/interrupts now shows...
[root at bloodhound php]# cat /proc/interrupts
CPU0 CPU1
0: 155663 158340 IO-APIC-edge timer
1: 6 4 IO-APIC-edge i8042
8: 1 0 IO-APIC-edge rtc
9: 0 1 IO-APIC-level acpi
12: 51 50 IO-APIC-edge i8042
15: 1186 1257 IO-APIC-edge ide1
169: 0 0 IO-APIC-level uhci_hcd:usb2
177: 4004 3309 IO-APIC-level ioc0
185: 17 13 IO-APIC-level ioc1
193: 18717 18 IO-APIC-level eth0
201: 0 0 IO-APIC-level saa7146 (0)
209: 1890 843 IO-APIC-level saa7146 (1)
217: 0 2 IO-APIC-level saa7146 (2)
225: 0 0 IO-APIC-level ehci_hcd:usb1
233: 0 0 IO-APIC-level uhci_hcd:usb3
NMI: 0 0
LOC: 307139 307581
ERR: 0
MIS: 0
which is completely different to what it was showing before. I assume
that the new kernel supports the hardware better somehow. I'll do some
more testing but I believe that the NMI issue has been resolved. If
you want me to test any more changes to fix the above error I am happy
to.
Mike
On 7/25/05, Andrew de Quincey <adq_dvb at lidskialf.net> wrote:
> On Monday 25 July 2005 15:08, Michael Ditum wrote:
> > Thanks for that Andrew, I'll try the latest CVS version in a while,
> > I'm currently having trouble getting 2.6.13 booting at the moment...
> > I'll have a look to see if your modification are ok once I've got that
> > booting.
> >
> > Back to the other IRQ problem...
> >
> > I've done some more testing. I've now tested it on 2 servers which
> > have similar, but not exactly the same, hardware. It occurs on our HP
> > Proliant ML350 G4 and our HP Proliant ML370 G4.
> >
> > The problem only seems to occur on bootup from a poweroff. If I
> > reboot, it then starts working correctly until I power it off.
> >
> > 2 different print outs to /var/log/messages depending on if the card
> > has a CI or not.
> >
> > With:
> >
> > Jul 13 16:27:34 bloodhound kernel: Uhhuh. NMI received. Dazed and
> > confused, but trying to continue
> > Jul 13 16:27:34 bloodhound kernel: You probably have a hardware
> > problem with your RAM chips
> > Jul 13 16:27:34 bloodhound kernel: irq 11: nobody cared!
> > Jul 13 16:27:34 bloodhound kernel: [<c014efc4>] __report_bad_irq+0x24/0x7d
> > Jul 13 16:27:34 bloodhound kernel: [<c014f0a6>] note_interrupt+0x6b/0x89
>
> [snip]
>
> > 10: 11805 XT-PIC ioc0, ioc1, saa7146 (0), saa7146 (1),
> > uhci_hcd:usb3, uhci_hcd:usb4
> > 11: 3900000 XT-PIC ehci_hcd:usb1, uhci_hcd:usb2,
> > uhci_hcd:usb5, eth0
>
> [snip]
>
> Bear with me - its been a year or so since I messed about with ACPI.
>
> So you're getting IRQ 11 when you shouldn't be effectively. Since its
> happening on two servers, this is likely either a kernel bug or a BIOS bug. I
> take it the cards work fine on other (non-HP) machines?
>
> AFAIR, the motherboard chipset of modern machines can usually be reprogrammed
> to route IRQs to a variety of destinations. This looks like linux thinks the
> IRQ for your DVB cards is 10 when actually your motherboard chipset is set up
> for IRQ 11.
>
> In legacy (non-ACPI) mode linux has a set of functions for each chipset for
> configuring IRQ routing. It may be that there is a bug in this, or else this
> is a newer chipset it doesn't quite know everything about (some manufactuers
> don't release this documentation :( ). Or else your BIOS is setting it up
> wrongly... I'm sorry I can't remember the exact details.
>
> You're running your motherboard in legacy (non-ACPI) mode. Have you tried
> using ACPI under linux? Under ACPI, linux executes a set of virtual machine
> instructions on startup. This configures the hardware without linux having to
> have specific support for that chipset.
>
> Another possibility might be to upgrade the bios.
>
More information about the linux-dvb
mailing list