[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20090902092351.11649796@nehalam>
Date: Wed, 2 Sep 2009 09:23:51 -0700
From: Stephen Hemminger <shemminger@...tta.com>
To: Eric Dumazet <eric.dumazet@...il.com>
Cc: David Miller <davem@...emloft.net>, jarkao2@...il.com,
cl@...ux-foundation.org, kaber@...sh.net, netdev@...r.kernel.org
Subject: Re: [PATCH net-next-2.6] tc: report informations for multiqueue
devices
On Wed, 02 Sep 2009 14:48:27 +0200
Eric Dumazet <eric.dumazet@...il.com> wrote:
> Eric Dumazet a écrit :
> > David Miller a écrit :
> >> From: Eric Dumazet <eric.dumazet@...il.com>
> >> Date: Wed, 02 Sep 2009 10:28:55 +0200
> >>
> >>> What naming convention should we choose for multiqueue devices ?
> >> We could give an index field to multiple root qdiscs assigned
> >> to a device.
> >
> > Here is a patch then :)
> >
> > Only point is that I am iterating from 0 to dev->real_num_tx_queues
> > instead of dev->num_tx_queues. I hope it's fine, because there are
> > allocated qdisc, but not really used.
> >
> > Next patches to allow selective qdisc change/fetch (providing a TCA_QINDEX
> > selector value to kernel)
> >
> > Thanks
> >
> >
> > [PATCH net-next-2.6] tc: report informations for multiqueue devices
> >
> > qdisc and classes are not yet displayed by "tc -s -d {qdisc|class} show"
> > for multiqueue devices.
> >
> > We use a new TCA_QINDEX attribute, to report queue index to user space.
> > iproute2 tc should be changed to eventually display this queue index as in :
> >
> > $ tc -s -d qdisc
> > qdisc pfifo_fast 0: dev eth0 root bands 3 priomap 1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1
> > Sent 52498 bytes 465 pkt (dropped 0, overlimits 0 requeues 0)
> > rate 0bit 0pps backlog 0b 0p requeues 0
> > qdisc pfifo_fast 0: dev eth0 qindex 1 root bands 3 priomap 1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1
> > Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
> > rate 0bit 0pps backlog 0b 0p requeues 0
> >
>
>
> Here is the iproute2 patch as well, to display queue indexes
>
> Signed-off-by: Eric Dumazet <eric.dumazet@...il.com>
> ---
>
> diff --git a/include/linux/rtnetlink.h b/include/linux/rtnetlink.h
> index ba3254e..b80e0f6 100644
> --- a/include/linux/rtnetlink.h
> +++ b/include/linux/rtnetlink.h
> @@ -490,6 +490,7 @@ enum
> TCA_FCNT,
> TCA_STATS2,
> TCA_STAB,
> + TCA_QINDEX,
> __TCA_MAX
> };
>
> diff --git a/tc/tc_class.c b/tc/tc_class.c
> index 9d4eea5..1bc4bc6 100644
> --- a/tc/tc_class.c
> +++ b/tc/tc_class.c
> @@ -196,6 +196,13 @@ int print_class(const struct sockaddr_nl *who,
> if (filter_ifindex == 0)
> fprintf(fp, "dev %s ", ll_index_to_name(t->tcm_ifindex));
>
> + if (tb[TCA_QINDEX]) {
> + int qindex = 0;
> +
> + memcpy(&qindex, RTA_DATA(tb[TCA_QINDEX]), MIN(RTA_PAYLOAD(tb[TCA_QINDEX]), sizeof(int)));
> + fprintf(fp, "qindex %d ", qindex);
> + }
> +
> if (t->tcm_parent == TC_H_ROOT)
> fprintf(fp, "root ");
> else {
Even if the kernel keeps the value in something else for the API
QINDEX needs to be a fixed size unsigned type like u32.
--
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