From: Thomas Graf <tgraf@suug.ch>
To: "David S. Miller" <davem@davemloft.net>
Cc: netdev@oss.sgi.com, hadi@cyberus.ca
Subject: [PATCH 16/16] ATM: Use gnet_stats for class statistics and dump them
Date: Thu, 21 Oct 2004 14:52:01 +0200 [thread overview]
Message-ID: <20041021125201.GU21977@postel.suug.ch> (raw)
In-Reply-To: <20041021123209.GE21977@postel.suug.ch>
Makes ATM qdisc use gnet_stats for class statistic counters and
adds dumping bits to actually dump those. Althought the counters
were updated they never got dumped to userspace.
Signed-off-by: Thomas Graf <tgraf@suug.ch>
--- linux-2.6.9-rc5.orig/net/sched/sch_atm.c 2004-10-21 11:07:46.000000000 +0200
+++ linux-2.6.9-rc5/net/sched/sch_atm.c 2004-10-21 13:26:05.000000000 +0200
@@ -69,7 +69,8 @@
struct socket *sock; /* for closing */
u32 classid; /* x:y type ID */
int ref; /* reference count */
- struct tc_stats stats;
+ struct gnet_stats_basic bstats;
+ struct gnet_stats_queue qstats;
spinlock_t *stats_lock;
struct atm_flow_data *next;
struct atm_flow_data *excess; /* flow for excess traffic;
@@ -450,13 +451,13 @@
#endif
(ret = flow->q->enqueue(skb,flow->q)) != 0) {
sch->qstats.drops++;
- if (flow) flow->stats.drops++;
+ if (flow) flow->qstats.drops++;
return ret;
}
sch->bstats.bytes += skb->len;
sch->bstats.packets++;
- flow->stats.bytes += skb->len;
- flow->stats.packets++;
+ flow->bstats.bytes += skb->len;
+ flow->bstats.packets++;
/*
* Okay, this may seem weird. We pretend we've dropped the packet if
* it goes via ATM. The reason for this is that the outer qdisc
@@ -550,7 +551,7 @@
sch->qstats.requeues++;
} else {
sch->qstats.drops++;
- p->link.stats.drops++;
+ p->link.qstats.drops++;
}
return ret;
}
@@ -666,6 +667,21 @@
skb_trim(skb,b-skb->data);
return -1;
}
+static int
+atm_tc_dump_class_stats(struct Qdisc *sch, unsigned long arg,
+ struct gnet_dump *d)
+{
+ struct atm_qdisc_data *p = PRIV(sch);
+ struct atm_flow_data *flow = (struct atm_flow_data *) arg;
+
+ flow->qstats.qlen = flow->q->q.qlen;
+
+ if (gnet_stats_copy_basic(d, &flow->bstats) < 0 ||
+ gnet_stats_copy_queue(d, &flow->qstats) < 0)
+ return -1;
+
+ return 0;
+}
static int atm_tc_dump(struct Qdisc *sch, struct sk_buff *skb)
{
@@ -684,6 +700,7 @@
.bind_tcf = atm_tc_bind_filter,
.unbind_tcf = atm_tc_put,
.dump = atm_tc_dump_class,
+ .dump_stats = atm_tc_dump_class_stats,
};
static struct Qdisc_ops atm_qdisc_ops = {
next prev parent reply other threads:[~2004-10-21 12:52 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-10-21 12:32 [PATCHSET 0/16] More gnet_stats conversions Thomas Graf
2004-10-21 12:33 ` [PATCH 1/16] PKT_SCHED: Requeues statistics Thomas Graf
2004-10-21 12:34 ` [PATCH 2/16] PKT_SCHED: Max TLV types cleanup Thomas Graf
2004-10-21 12:36 ` [PATCH 3/16] PKT_SCHED: Add dump_stats qdisc op Thomas Graf
2004-10-21 12:37 ` [PATCH 4/16] CBQ: use dump_stats Thomas Graf
2004-10-21 12:38 ` [PATCH 5/16] RED: " Thomas Graf
2004-10-21 12:39 ` [PATCH 6/16] PKT_SCHED: Add dump_stats class op Thomas Graf
2004-10-21 12:40 ` [PATCH 7/16] CBQ: Use gnet_stats for class statistics Thomas Graf
2004-10-21 12:43 ` [PATCH 8/16] CBQ: Use dump_stats for class statistics dumping Thomas Graf
2004-10-21 12:44 ` [PATCH 9/16] CBQ: Use generic rate estimator Thomas Graf
2004-10-21 12:45 ` [PATCH 10/16] HTB: Use gnet_stats for class statistics Thomas Graf
2004-10-21 12:46 ` [PATCH 11/16] HTB: Use dump_stats for class statistics dumping Thomas Graf
2004-10-21 12:47 ` [PATCH 12/16] HTB: Remove unneeded rate estimator bits Thomas Graf
2004-10-21 12:48 ` [PATCH 13/16] HFSC: Use gnet_stats for class statistics Thomas Graf
2004-10-21 12:49 ` [PATCH 14/16] HFSC: Use generic rate estimator Thomas Graf
2004-10-21 12:51 ` [PATCH 15/16] HFSC: Use dump_stats for class statistics dumping Thomas Graf
2004-10-21 12:52 ` Thomas Graf [this message]
2004-10-21 15:42 ` [RESEND 16/16] ATM: Use gnet_stats for class statistics and dump them Thomas Graf
2004-10-21 19:42 ` [PATCH] iproute2: support generic statistics and add requeues statistics Thomas Graf
2004-10-22 5:48 ` [PATCHSET 0/16] More gnet_stats conversions David S. Miller
2004-10-22 11:08 ` jamal
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20041021125201.GU21977@postel.suug.ch \
--to=tgraf@suug.ch \
--cc=davem@davemloft.net \
--cc=hadi@cyberus.ca \
--cc=netdev@oss.sgi.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.