Jeff, Peter,

I've detected a regression in ixgbe MSI-X initialization when running on 
a ppc64 machine with 2 cpu cores/threads.

This was the patch that introduced the regression:
http://git.kernel.org/?p=linux/kernel/git/davem/net-2.6.git;a=commitdiff;h=342bde1b70c79bfc8509b017b3987f3c7541ff8e

With the current code, MSI-X initialization fails.

The reason is that the firmware in power machines only allocate a number 
of queues that is a power of 2. When a request is made for a number of 
queues that is not a power of 2, the value is rounded down.

So, after the patch, a typical v_budget value on a system with 
num_online_cpus==2 is 3. The ppc FW gets this request and allocates only 
2 queues (nearest power of 2 less than 3), which is less than the 
minimum accepted inside the driver (MIN_MSIX_COUNT == 3), causing the 
MSI-X initialization to fail.

Is there some acceptable way to avoid this problem?
A lower limit of 4 would have to be imposed to v_budget somehow.

On a side note, it seems that, after the patch, MSI-X will never succeed 
on any machine with only 1 cpu core/thread, since v_budget will be no 
more than 2 (which is less than MIN_MSIX_COUNT). Is this intentional?

Cheers,

-- 
André Detsch
Kernel Software Engineer - Network Device Drivers
Linux Technology Center Brazil

------------------------------------------------------------------------------
ThinkGeek and WIRED's GeekDad team up for the Ultimate 
GeekDad Father's Day Giveaway. ONE MASSIVE PRIZE to the 
lucky parental unit.  See the prize list and enter to win: 
http://p.sf.net/sfu/thinkgeek-promo
_______________________________________________
E1000-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/e1000-devel
To learn more about Intel® Ethernet, visit 
http://communities.intel.com/community/wired

Reply via email to