Opened 9 years ago

Closed 9 years ago

#5511 closed bug (fixed)

intel 3945 driver cause an interrupt storm

Reported by: pulkomandy Owned by: colin
Priority: normal Milestone: R1
Component: Drivers/Network Version: R1/Development
Keywords: Cc:
Blocked By: Blocking: #5569
Has a Patch: no Platform: All

Description

Hardware is Dell inspiron 1525. Booting Haiku shows a lot of CPU usage. With the driver disabled it is ok. I didn't manage to enter kdl (what were the keys to use already) and I don't really know what to do in there anyway. Please tell me what info you need.

Attachments (2)

interrupts_default_boot_options.txt (1.6 KB) - added by pulkomandy 9 years ago.
pulkomandy's interrupts config on linux
interrupts_noapic_nolapic_pci_nomsi.txt (1.1 KB) - added by pulkomandy 9 years ago.
pulkomandy's interrupt config on linux, without rerouting. Looks similar to haiku ints command

Download all attachments as: .zip

Change History (16)

comment:1 Changed 9 years ago by pulkomandy

Ok, I did some more tests...

  • Trying to enter KDL failed : the computer is totally freezed, I can(t use the mouse nor the keyboard
  • Adding sc->irq->r_bushandle = 0x0A; (in if_wpi.c line 557, as suggested by luroh) lets me with a running system. I'm not sure it works, but CPU usage is ok, and I see things hapenning (channel scan) in systlog.

In this configuration, i can see two intel interrupts in kdl ints command : an interrupt wrapper in int10 and something else in int11.

Please tell me what you need. I'll do a test with an open network reachable to see if it actually works.

comment:2 Changed 9 years ago by colin

Status: newin-progress

I suppose it is an irq mapping problem. To be absolutely sure I need the following info retrieved with linux running on the same hardware:

  1. just boot linux, open a terminal and run: cat /proc/interrupts and append the output as interrupts-default-boot-options.txt
  2. start linux by adding the following kernel boot params to boot loader of your choice: noapic nolapic pci=nomsi and get me the output of cat /proc/interrupts again. Preferably as interrupts-noapic-nolapic-pci-nomsi.txt

This first file will show the default interrupt mapping of linux, which I then can compare to the second file to see

  1. that it made a difference to use the boot options, at all
  2. how the interrupt mapping should be in haiku.

Changed 9 years ago by pulkomandy

pulkomandy's interrupts config on linux

Changed 9 years ago by pulkomandy

pulkomandy's interrupt config on linux, without rerouting. Looks similar to haiku ints command

comment:3 Changed 9 years ago by colin

Ok, you should use 0x07, instead of the 0x0A you mentioned before. This should make it work for you.
Though note, this is only a hack, as the right way to do it, would be to implement irq routing by using ACPI in Haiku. As far as I know someone is working on that already.
Please report back.

comment:4 Changed 9 years ago by axeld

FWIW I have a similar problem on my Lenovo T60 - there, LAN, and WLAN are affected (both worked well at some point, but the interrupt mapping is broken ever since I updated to OpenSUSE 11.2).

I can manually alter the interrupt lines (to 3 and 4 in my case), and then everything works as intended. Quite annoying, but something that will be solved once we're using the configuration via ACPI.

comment:5 Changed 9 years ago by jackburton

Blocking: 5569 added

(In #5569) Replying to colin:

Looks like a duplicate of ticket #5511. Even though you aren't reporting interrupt storms, the syslog says "timeout waiting for adapter to initialize" which means that irqs are misrouted. Though as ticket #5511 presents no real solution (which would be implementing acpi irq routing) it contains a work around. If you are running a linux on your machine and retrieve the needed info with it we can, at least, make it work for you.

Thanks. It's not really a problem at the moment, since to be able to use the wireless network I need WPA2 support. For the moment I can just remove the driver, hoping that someone implements ACPI routing soon. Let's close this as dup of #5511 then.

comment:6 in reply to:  3 Changed 9 years ago by mmadia

Blocked By: 5 added

Replying to colin:

... the right way to do it, would be to implement irq routing by using ACPI in Haiku. As far as I know someone is working on that already.

Setting #5 as a blocker.

comment:7 Changed 9 years ago by jackburton

Still here after hrev36225.

comment:8 Changed 9 years ago by pulkomandy

Yes, still here. I can confirm that with the workaround of bruteforcing the interrupt, wlan works properly. It's pretty hard to debug as the interrupt storm lets me with no keyboard at all...

comment:9 Changed 9 years ago by jackburton

I thought that Michael's commit could've fixed the problem, that's why I put that note.

comment:10 Changed 9 years ago by pulkomandy

Axel added the missing bits in #36292 It now works for me ! But not for axel, still.

Waiting for feedback from the other users now...

comment:11 Changed 9 years ago by axeld

While it doesn't work for me (the device for whatever reason), the interrupt storm is definitely gone.

comment:12 Changed 9 years ago by luroh

Fixed for me as well; no interrupt storms and no more need for IRQ hacks to get wifi (iprowifi3945) and Ethernet (ipro1000) going.

comment:13 Changed 9 years ago by jackburton

Blocked By: 5 removed

Fixed for me as well.

comment:14 Changed 9 years ago by jackburton

Resolution: fixed
Status: in-progressclosed
Note: See TracTickets for help on using tickets.