* [PATCH iproute2/net-next v3] tc_util: Add support for showing TCA_STATS_BASIC_HW statistics
@ 2018-10-02 7:27 Eelco Chaudron
2018-10-02 21:50 ` David Ahern
0 siblings, 1 reply; 2+ messages in thread
From: Eelco Chaudron @ 2018-10-02 7:27 UTC (permalink / raw)
To: netdev; +Cc: davem, stephen, dsahern
Add support for showing hardware specific counters to easy
troubleshooting hardware offload.
$ tc -s filter show dev enp3s0np0 parent ffff:
filter protocol ip pref 1 flower chain 0
filter protocol ip pref 1 flower chain 0 handle 0x1
eth_type ipv4
dst_ip 2.0.0.0
src_ip 1.0.0.0
ip_flags nofrag
in_hw
action order 1: mirred (Egress Redirect to device eth1) stolen
index 1 ref 1 bind 1 installed 0 sec used 0 sec
Action statistics:
Sent 534884742 bytes 8915697 pkt (dropped 0, overlimits 0 requeues 0)
Sent software 187542 bytes 4077 pkt
Sent hardware 534697200 bytes 8911620 pkt
backlog 0b 0p requeues 0
cookie 89173e6a44447001becfd486bda17e29
Signed-off-by: Eelco Chaudron <echaudro@redhat.com>
---
v3:
* Resent as kernel side is now in
* Rebased on latest iproute2-next branch
v2:
* Removed unnecessary initialization
* Made not displaying of missing TCA_STATS_BASIC_HW more obvious
* Use _SL_ macro for single line output
tc/tc_util.c | 41 +++++++++++++++++++++++++++++++++++++++++
1 file changed, 41 insertions(+)
diff --git a/tc/tc_util.c b/tc/tc_util.c
index cafbe49..a082c73 100644
--- a/tc/tc_util.c
+++ b/tc/tc_util.c
@@ -754,6 +754,44 @@ void print_tm(FILE *f, const struct tcf_t *tm)
}
}
+static void print_tcstats_basic_hw(struct rtattr **tbs, char *prefix)
+{
+ struct gnet_stats_basic bs_hw;
+
+ if (!tbs[TCA_STATS_BASIC_HW])
+ return;
+
+ memcpy(&bs_hw, RTA_DATA(tbs[TCA_STATS_BASIC_HW]),
+ MIN(RTA_PAYLOAD(tbs[TCA_STATS_BASIC_HW]), sizeof(bs_hw)));
+
+ if (bs_hw.bytes == 0 && bs_hw.packets == 0)
+ return;
+
+ if (tbs[TCA_STATS_BASIC]) {
+ struct gnet_stats_basic bs;
+
+ memcpy(&bs, RTA_DATA(tbs[TCA_STATS_BASIC]),
+ MIN(RTA_PAYLOAD(tbs[TCA_STATS_BASIC]),
+ sizeof(bs)));
+
+ if (bs.bytes >= bs_hw.bytes && bs.packets >= bs_hw.packets) {
+ print_string(PRINT_FP, NULL, "%s", _SL_);
+ print_string(PRINT_FP, NULL, "%s", prefix);
+ print_lluint(PRINT_ANY, "sw_bytes",
+ "Sent software %llu bytes",
+ bs.bytes - bs_hw.bytes);
+ print_uint(PRINT_ANY, "sw_packets", " %u pkt",
+ bs.packets - bs_hw.packets);
+ }
+ }
+
+ print_string(PRINT_FP, NULL, "%s", _SL_);
+ print_string(PRINT_FP, NULL, "%s", prefix);
+ print_lluint(PRINT_ANY, "hw_bytes", "Sent hardware %llu bytes",
+ bs_hw.bytes);
+ print_uint(PRINT_ANY, "hw_packets", " %u pkt", bs_hw.packets);
+}
+
void print_tcstats2_attr(FILE *fp, struct rtattr *rta, char *prefix, struct rtattr **xstats)
{
SPRINT_BUF(b1);
@@ -780,6 +818,9 @@ void print_tcstats2_attr(FILE *fp, struct rtattr *rta, char *prefix, struct rtat
print_uint(PRINT_ANY, "requeues", " requeues %u) ", q.requeues);
}
+ if (tbs[TCA_STATS_BASIC_HW])
+ print_tcstats_basic_hw(tbs, prefix);
+
if (tbs[TCA_STATS_RATE_EST64]) {
struct gnet_stats_rate_est64 re = {0};
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCH iproute2/net-next v3] tc_util: Add support for showing TCA_STATS_BASIC_HW statistics
2018-10-02 7:27 [PATCH iproute2/net-next v3] tc_util: Add support for showing TCA_STATS_BASIC_HW statistics Eelco Chaudron
@ 2018-10-02 21:50 ` David Ahern
0 siblings, 0 replies; 2+ messages in thread
From: David Ahern @ 2018-10-02 21:50 UTC (permalink / raw)
To: Eelco Chaudron, netdev; +Cc: davem, stephen
On 10/2/18 1:27 AM, Eelco Chaudron wrote:
> Add support for showing hardware specific counters to easy
> troubleshooting hardware offload.
>
> $ tc -s filter show dev enp3s0np0 parent ffff:
> filter protocol ip pref 1 flower chain 0
> filter protocol ip pref 1 flower chain 0 handle 0x1
> eth_type ipv4
> dst_ip 2.0.0.0
> src_ip 1.0.0.0
> ip_flags nofrag
> in_hw
> action order 1: mirred (Egress Redirect to device eth1) stolen
> index 1 ref 1 bind 1 installed 0 sec used 0 sec
> Action statistics:
> Sent 534884742 bytes 8915697 pkt (dropped 0, overlimits 0 requeues 0)
> Sent software 187542 bytes 4077 pkt
> Sent hardware 534697200 bytes 8911620 pkt
> backlog 0b 0p requeues 0
> cookie 89173e6a44447001becfd486bda17e29
>
>
> Signed-off-by: Eelco Chaudron <echaudro@redhat.com>
>
> ---
> v3:
> * Resent as kernel side is now in
> * Rebased on latest iproute2-next branch
>
> v2:
> * Removed unnecessary initialization
> * Made not displaying of missing TCA_STATS_BASIC_HW more obvious
> * Use _SL_ macro for single line output
>
> tc/tc_util.c | 41 +++++++++++++++++++++++++++++++++++++++++
> 1 file changed, 41 insertions(+)
applied to iproute2-next. Thanks
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2018-10-03 4:35 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-10-02 7:27 [PATCH iproute2/net-next v3] tc_util: Add support for showing TCA_STATS_BASIC_HW statistics Eelco Chaudron
2018-10-02 21:50 ` David Ahern
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).