[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