assigning interrupts

Ronnel P. Maglasang rmaglasang at infoweapons.com
Fri Nov 14 00:26:46 PST 2008


John Baldwin wrote:
> On Thursday 13 November 2008 05:03:20 am Ronnel P. Maglasang wrote:
>   
>> Hi All,
>>
>> Is there a way to explicitly assign an interrupt
>> of a device? I'm running on 6.3 and the two NICs
>> share the same interrupt. Obviously this will affect
>> the performance if the NICs are exposed to heavy network
>> traffic.
>>
>> # vmstat -i
>> interrupt                          total       rate
>> <sniff>
>> irq11: em0 vr0+                  1081099         77
>> <sniff>
>> Total                           16958562       1222
>>
>>
>> Looking at the driver's code, I have the initial though
>> that this is the place where I can modify.
>>
>> --
>>         adapter->res_interrupt = bus_alloc_resource_any(dev,
>>             SYS_RES_IRQ, &rid, RF_SHAREABLE | RF_ACTIVE);
>> --
>>
>> I've tried changing RF_SHAREABLE to RF_ALLOCATED or other
>> values but still could not get the desired result and worst
>> the device fail to initialize. Is this possible in 6.3?
>>     
>
> You can not easily assign them, no.  In many cases the interrupt pins from the 
> devices may be hardwired to a single input pin on an interrupt controller.  
> In that case there is nothing you can do.  You can read more about the gory 
> details here:
>
> http://people.freebsd.org/~jhb/papers/bsdcan/2007/
>
>   
What was changed in 7.x in terms of assigning interrupts? I have another
box running on 7.0 (2 NICs). I noticed there are no devices sharing
interrupts. But if 6.x is installed on the same box (previous installation),
the two NICs will share the same interrupt. I'm now looking at the drivers.
I assume this is not NIC-firmware related.




More information about the freebsd-hackers mailing list