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/25/2007 23:14:31
In article <46A71475.2040400@cat.co.za>, Ian McIntosh  <ianm@cat.co.za> wrote:
>Hi all
>
>I am having trouble with a netbsd 3 kernel compiled with multiple 
>processor support (GENERIC.MPAPIC) and the lkms my company uses to 
>interface with the PCI cards we produce.
>
>If using a single processor kernel everything works as expected. The 
>lkms load correctly and the PCI interfaces to the cards works as expected.
>
>However with the multiprocessor kernel I get some quite strange 
>behavior. The lkms appear to load correctly, in that there are no errors 
>reported on the attach(). Once loaded, however, any register reads using 
>bus_space_read_4() returns rubbish data. To me it seems that the PCI 
>registers have been incorrectly mapped, even though the attach() returns 
>no errors. There is no difference in source code between the 
>multiprocessor and single processor lkms.
>
>I would have expected that compiling the lkms with the -DMULTIPROCESSOR 
>flag would be all that is needed to get them to function correctly. Am I 
>correct in this assumption? I am not an expert in this area and would 
>appreciate any pointers on where to look or any good reading material on 
>the subject.
>
>I felt netbsd-users was the most appropriate list to post to (my other 
>option was tech-kern). Please redirect me if this is the incorrect list.
>

Yes, compiling with MULTIPROCESSOR should work. Are your kernels compiled
with LOCKDEBUG or other options that might change the size of structures?

christos