[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <4AF96055.90509@trash.net>
Date: Tue, 10 Nov 2009 13:45:09 +0100
From: Patrick McHardy <kaber@...sh.net>
To: Changli Gao <xiaosuo@...il.com>
CC: Eric Dumazet <eric.dumazet@...il.com>,
"David S. Miller" <davem@...emloft.net>, netdev@...r.kernel.org,
Tom Herbert <therbert@...gle.com>
Subject: Re: [PATCH] ifb: add multi-queue support
Changli Gao wrote:
> On Tue, Nov 10, 2009 at 8:19 PM, Patrick McHardy <kaber@...sh.net> wrote:
>
>> You have to add a get_tx_queues() callback to the rtnl_link_ops.
>>
>
> It is used to get the current real_num_tx_queues and num_tx_queues,
> not to setting.
>
Yes, it gets the number from a user-supplied parameter for device
allocation.
>> Additionally you need a new attribute (IFLA_NTXQ or something like
>> that) that contains the number of queues. The callback has to parse
>> the attribute and set the number of queues accordingly.
>>
>
> It seems another patch is needed first.
>
Its a trivial change, you can put them in the same patch:
static int ifb_get_tx_queues(struct net *net, struct nlattr *tb[],
unsigned int *num_tx_queues,
unsigned int *real_num_tx_queues)
{
unsigned int n = 1;
if (tb[IFLA_NTXQ])
n = nla_get_u32(tb[IFLA_NTXQ]);
*num_tx_queues = n;
*real_num_tx_queues = n;
return 0;
}
>>> Does this work?
>>>
>>> ifb_link_ops.priv_size = sizeof(struct ifb_private) * numtxqs;
>>> rtnl_lock();
>>> err = __rtnl_link_register(&ifb_link_ops);
>>>
>> Only for the module parameter. For rtnl_link you need to either
>> allocate the private space seperately or turn priv_size into
>> a callback that returns the required space based on the number
>> of queues.
>>
>
> Do you means that if module ifb is loaded automatically, parameters
> won't be set correctly?
No, I mean if you add a proper interface for this, you have to deal
with different interfaces using a different amount of queues.
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists