[PATCH] s390: qeth driver statistics fixes
[patch 2/6] s390: qeth driver statistics fixes From: Ursula Braun <braunu@de.ibm.com> - display "unsigned int" values in /proc/qeth_perf with %u instead of %i - omit qdio header length when increasing card->stats.tx_bytes Signed-off-by: Frank Pavlic <fpavlic@de.ibm.com> diffstat: qeth_main.c | 3 ++- qeth_proc.c | 38 +++++++++++++++++++------------------- 2 files changed, 21 insertions(+), 20 deletions(-) Signed-off-by: Jeff Garzik <jeff@garzik.org>
This commit is contained in:
Родитель
c2d3d4b938
Коммит
95f6b5a1e3
|
@ -4419,6 +4419,7 @@ qeth_send_packet(struct qeth_card *card, struct sk_buff *skb)
|
||||||
int elements_needed = 0;
|
int elements_needed = 0;
|
||||||
enum qeth_large_send_types large_send = QETH_LARGE_SEND_NO;
|
enum qeth_large_send_types large_send = QETH_LARGE_SEND_NO;
|
||||||
struct qeth_eddp_context *ctx = NULL;
|
struct qeth_eddp_context *ctx = NULL;
|
||||||
|
int tx_bytes = skb->len;
|
||||||
int rc;
|
int rc;
|
||||||
|
|
||||||
QETH_DBF_TEXT(trace, 6, "sendpkt");
|
QETH_DBF_TEXT(trace, 6, "sendpkt");
|
||||||
|
@ -4499,7 +4500,7 @@ qeth_send_packet(struct qeth_card *card, struct sk_buff *skb)
|
||||||
elements_needed, ctx);
|
elements_needed, ctx);
|
||||||
if (!rc){
|
if (!rc){
|
||||||
card->stats.tx_packets++;
|
card->stats.tx_packets++;
|
||||||
card->stats.tx_bytes += skb->len;
|
card->stats.tx_bytes += tx_bytes;
|
||||||
#ifdef CONFIG_QETH_PERF_STATS
|
#ifdef CONFIG_QETH_PERF_STATS
|
||||||
if (skb_shinfo(skb)->tso_size &&
|
if (skb_shinfo(skb)->tso_size &&
|
||||||
!(large_send == QETH_LARGE_SEND_NO)) {
|
!(large_send == QETH_LARGE_SEND_NO)) {
|
||||||
|
|
|
@ -192,27 +192,27 @@ qeth_perf_procfile_seq_show(struct seq_file *s, void *it)
|
||||||
CARD_DDEV_ID(card),
|
CARD_DDEV_ID(card),
|
||||||
QETH_CARD_IFNAME(card)
|
QETH_CARD_IFNAME(card)
|
||||||
);
|
);
|
||||||
seq_printf(s, " Skb's/buffers received : %li/%i\n"
|
seq_printf(s, " Skb's/buffers received : %lu/%u\n"
|
||||||
" Skb's/buffers sent : %li/%i\n\n",
|
" Skb's/buffers sent : %lu/%u\n\n",
|
||||||
card->stats.rx_packets, card->perf_stats.bufs_rec,
|
card->stats.rx_packets, card->perf_stats.bufs_rec,
|
||||||
card->stats.tx_packets, card->perf_stats.bufs_sent
|
card->stats.tx_packets, card->perf_stats.bufs_sent
|
||||||
);
|
);
|
||||||
seq_printf(s, " Skb's/buffers sent without packing : %li/%i\n"
|
seq_printf(s, " Skb's/buffers sent without packing : %lu/%u\n"
|
||||||
" Skb's/buffers sent with packing : %i/%i\n\n",
|
" Skb's/buffers sent with packing : %u/%u\n\n",
|
||||||
card->stats.tx_packets - card->perf_stats.skbs_sent_pack,
|
card->stats.tx_packets - card->perf_stats.skbs_sent_pack,
|
||||||
card->perf_stats.bufs_sent - card->perf_stats.bufs_sent_pack,
|
card->perf_stats.bufs_sent - card->perf_stats.bufs_sent_pack,
|
||||||
card->perf_stats.skbs_sent_pack,
|
card->perf_stats.skbs_sent_pack,
|
||||||
card->perf_stats.bufs_sent_pack
|
card->perf_stats.bufs_sent_pack
|
||||||
);
|
);
|
||||||
seq_printf(s, " Skbs sent in SG mode : %i\n"
|
seq_printf(s, " Skbs sent in SG mode : %u\n"
|
||||||
" Skb fragments sent in SG mode : %i\n\n",
|
" Skb fragments sent in SG mode : %u\n\n",
|
||||||
card->perf_stats.sg_skbs_sent,
|
card->perf_stats.sg_skbs_sent,
|
||||||
card->perf_stats.sg_frags_sent);
|
card->perf_stats.sg_frags_sent);
|
||||||
seq_printf(s, " large_send tx (in Kbytes) : %i\n"
|
seq_printf(s, " large_send tx (in Kbytes) : %u\n"
|
||||||
" large_send count : %i\n\n",
|
" large_send count : %u\n\n",
|
||||||
card->perf_stats.large_send_bytes >> 10,
|
card->perf_stats.large_send_bytes >> 10,
|
||||||
card->perf_stats.large_send_cnt);
|
card->perf_stats.large_send_cnt);
|
||||||
seq_printf(s, " Packing state changes no pkg.->packing : %i/%i\n"
|
seq_printf(s, " Packing state changes no pkg.->packing : %u/%u\n"
|
||||||
" Watermarks L/H : %i/%i\n"
|
" Watermarks L/H : %i/%i\n"
|
||||||
" Current buffer usage (outbound q's) : "
|
" Current buffer usage (outbound q's) : "
|
||||||
"%i/%i/%i/%i\n\n",
|
"%i/%i/%i/%i\n\n",
|
||||||
|
@ -229,16 +229,16 @@ qeth_perf_procfile_seq_show(struct seq_file *s, void *it)
|
||||||
atomic_read(&card->qdio.out_qs[3]->used_buffers)
|
atomic_read(&card->qdio.out_qs[3]->used_buffers)
|
||||||
: 0
|
: 0
|
||||||
);
|
);
|
||||||
seq_printf(s, " Inbound handler time (in us) : %i\n"
|
seq_printf(s, " Inbound handler time (in us) : %u\n"
|
||||||
" Inbound handler count : %i\n"
|
" Inbound handler count : %u\n"
|
||||||
" Inbound do_QDIO time (in us) : %i\n"
|
" Inbound do_QDIO time (in us) : %u\n"
|
||||||
" Inbound do_QDIO count : %i\n\n"
|
" Inbound do_QDIO count : %u\n\n"
|
||||||
" Outbound handler time (in us) : %i\n"
|
" Outbound handler time (in us) : %u\n"
|
||||||
" Outbound handler count : %i\n\n"
|
" Outbound handler count : %u\n\n"
|
||||||
" Outbound time (in us, incl QDIO) : %i\n"
|
" Outbound time (in us, incl QDIO) : %u\n"
|
||||||
" Outbound count : %i\n"
|
" Outbound count : %u\n"
|
||||||
" Outbound do_QDIO time (in us) : %i\n"
|
" Outbound do_QDIO time (in us) : %u\n"
|
||||||
" Outbound do_QDIO count : %i\n\n",
|
" Outbound do_QDIO count : %u\n\n",
|
||||||
card->perf_stats.inbound_time,
|
card->perf_stats.inbound_time,
|
||||||
card->perf_stats.inbound_cnt,
|
card->perf_stats.inbound_cnt,
|
||||||
card->perf_stats.inbound_do_qdio_time,
|
card->perf_stats.inbound_do_qdio_time,
|
||||||
|
|
Загрузка…
Ссылка в новой задаче