Hi, 21/10/2013 09:09, Qinglai Xiao : > Physical Function assignes Tx/Rx queues to each VF according to > different schemes[1]. By querying through mailbox, VF is able to > get number of Tx/Rx queues assigned to it. > > Note that current Intel ixgbe driver ixgbe-3.18.7 does not fully > support mailbox message IXGBE_VF_GET_QUEUES. The service routine > for IXGBE_VF_GET_QUEUES must be fixed, otherwise PF always return > 1 as Tx/Rx queue number. > > [1] See section 7.2.1.2.1, 7.1.2.2 and 7.10.2.7.2 of Intel 82599 10 > Gbe Controller Datasheet. > > Signed-off-by: Qinglai Xiao <jigsaw at gmail.com> > ---
Thanks for the patch, your comments are clear. > +static void ixgbevf_negotiate_api(struct ixgbe_hw *hw) > +{ > + int api[] = { ixgbe_mbox_api_11, > + ixgbe_mbox_api_10, > + ixgbe_mbox_api_unknown }; > + int err = 0, idx = 0; > + > + while (api[idx] != ixgbe_mbox_api_unknown) { > + err = ixgbevf_negotiate_api_version(hw, api[idx]); > + if (!err) > + break; > + idx++; > + } > +} I have comments about the mbox API: 1) Why not call directly ixgbevf_negotiate_api_version for ixgbe_mbox_api_11 only ? It seems that only version 1.1 supports ixgbevf_get_queues. 2) If a loop is still needed, why not use a simple "for loop" ? 3) If ixgbevf_negotiate_api is still needed, I'd prefer to have "_mbx" in its name. Thank you -- Thomas