Opened 2 months ago

Last modified 2 months ago

#18818 new bug

iprowifi2200 causes a page fault in kernel space

Reported by: zeldakatze Owned by: nobody
Priority: normal Milestone: Unscheduled
Component: Drivers/Network/iprowifi2200 Version: R1/beta4
Keywords: Cc:
Blocked By: Blocking:
Platform: x86

Description

using an iprowifi2200 device, the driver causes a page fault in kernel space when there is a lot of swapping. It only occurs if the dirver is in use and a lot more often if the connection is unstable and there are lots of reconnects.

To reproduce, use the iprowifi2200 driver whilst the swap usage is high

I'll attach a log of sorts shortly, the syslog does not contain useful information.

Attachments (1)

ipro2200KDL.jpg (168.5 KB ) - added by zeldakatze 2 months ago.
a literal screenshot the kdl screen. Qrencode for some reason does not exist in KDL

Download all attachments as: .zip

Change History (5)

by zeldakatze, 2 months ago

Attachment: ipro2200KDL.jpg added

a literal screenshot the kdl screen. Qrencode for some reason does not exist in KDL

comment:1 by zeldakatze, 2 months ago

The hrev used was 57589

comment:2 by waddlesplash, 2 months ago

Interesting it happens while swap usage is high, because this isn't a NULL dereference KDL.

comment:3 by zeldakatze, 2 months ago

Is it possible to mark the entier driver as non-swappable or something like that? (if it is not marked like that already)? That could make it possible to narrow down the problem. Sorry for this probably very obvious question, I don't really have that much of a clue about the Haiku sourcecode and currently don't really have a way to compile it until tomorrow

comment:4 by waddlesplash, 2 months ago

Swap should be entirely transparent to drivers.

This fault happened inside the interrupt handler, but the message isn't "page fault interrupts disabled", it's just "unhandled page fault." I guess it may be the case that the interrupts routine tried to access swapped memory. Checking what area the address in question is in may be useful here.

Note: See TracTickets for help on using tickets.