[rfc] [patch] Qdisc drops not being reported

From: Ravikiran G Thirumalai (kiran@in.ibm.com)
Date: Mon Sep 02 2002 - 06:28:53 EST


Hi,
The Qdisc drops does not seem to be reported to user space for the
default queuing discipline -- pfifo_fast_ops. I ran isic tests on a up
to test if the drops happen at all, and yes there were significant no of
packets dropped under heavy tx load. Here is a patch which reports just
the qdisc drops to the /proc/net/dev entry. Does this sound like a
good idea?

Comments welcome.

-Kiran

diff -X dontdiff -ruN linux-2.5.31/include/asm-i386/mmu.h statctr-2.5.31/include/asm-i386/mmu.h
--- linux-2.5.31/include/asm-i386/mmu.h Sun Aug 11 07:11:42 2002
+++ statctr-2.5.31/include/asm-i386/mmu.h Wed Aug 21 12:40:35 2002
@@ -1,6 +1,8 @@
 #ifndef __i386_MMU_H
 #define __i386_MMU_H
 
+#include <asm/semaphore.h>
+
 /*
  * The i386 doesn't have a mmu context, but
  * we put the segment information here.
diff -X dontdiff -ruN linux-2.5.31/net/core/dev.c statctr-2.5.31/net/core/dev.c
--- linux-2.5.31/net/core/dev.c Sun Aug 11 07:11:30 2002
+++ statctr-2.5.31/net/core/dev.c Wed Aug 21 17:57:24 2002
@@ -1746,10 +1746,12 @@
                                                           NULL;
         int size;
 
+ struct Qdisc *q = dev->qdisc;
+
         if (stats)
                 size = sprintf(buffer, "%6s:%8lu %7lu %4lu %4lu %4lu %5lu "
                                        "%10lu %9lu %8lu %7lu %4lu %4lu %4lu "
- "%5lu %7lu %10lu\n",
+ "%5lu %7lu %10lu %10u\n",
                     dev->name,
                    stats->rx_bytes,
                    stats->rx_packets, stats->rx_errors,
@@ -1763,7 +1765,8 @@
                    stats->tx_fifo_errors, stats->collisions,
                    stats->tx_carrier_errors + stats->tx_aborted_errors +
                            stats->tx_window_errors + stats->tx_heartbeat_errors,
- stats->tx_compressed);
+ stats->tx_compressed,
+ q->stats.drops);
         else
                 size = sprintf(buffer, "%6s: No statistics available.\n",
                                dev->name);
@@ -1785,7 +1788,7 @@
 
         size = sprintf(buffer,
                 "Inter-| Receive | Transmit\n"
- " face |bytes packets errs drop fifo frame compressed multicast|bytes packets errs drop fifo colls carrier compressed\n");
+ " face |bytes packets errs drop fifo frame compressed multicast|bytes packets errs drop fifo colls carrier compressed Qdiscdrops\n");
 
         pos += size;
         len += size;
-
To unsubscribe from this list: send the line "unsubscribe linux-net" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html



This archive was generated by hypermail 2b29 : Sat Sep 07 2002 - 22:00:01 EST