Subject: Re: Multiple Processor support and LKM's
To: None <netbsd-users@netbsd.org>
From: Christos Zoulas <christos@astron.com>
List: netbsd-users
Date: 07/27/2007 15:21:52
In article <46A8BCB3.3060203@cat.co.za>, Ian McIntosh  <ianm@cat.co.za> wrote:
>Christos Zoulas wrote:
>>
>> Yes, compiling with MULTIPROCESSOR should work. Are your kernels compiled
>> with LOCKDEBUG or other options that might change the size of structures?
>>
>> christos
>>
>>   
>Thanks for the help, I cleaned my kernel and carefully config'ed it 
>again without LOCKDEBUG or any other options that change the structures 
>(as far as I can see). With this kernel I get somewhat better behaviour 
>in that PCI reads seem to work correctly. The problem now, is that once 
>the lkm loads it doesn't get any interrupts. A look at dmesg indicates 
>that my driver has been assigned ioapic0 pin 11 as its interrupt pin but 
>vmstat indicates there are no interrupts being generated for this pin.
>However the interrupt counts for ioapic0 pin 17 seem to be going wild. A 
>top on the system indicates that CPU0 is 72% idle when it was 100% idle 
>before the lkm loaded. Looking at /var/log/messages ioapic0 pin 17 is 
>assigned to uhci1 (USB controller I think).  Below is the vmstat before 
>and after the lkm load and the relevant dmesg.
>
>
>I would really appreciate any pointers here...
>

I don't remember the API for 3.x, but under current you need to both
map and establish the interrupt...

christos