netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "David S. Miller" <davem@redhat.com>
To: sim@netnation.com
Cc: xerox@foonet.net, fw@deneb.enyo.de, netdev@oss.sgi.com,
	hadi@shell.cyberus.ca, Robert.Olsson@data.slu.se,
	kuznet@ms2.inr.ac.ru
Subject: Re: Route cache performance under stress
Date: Mon, 09 Jun 2003 07:14:51 -0700 (PDT)	[thread overview]
Message-ID: <20030609.071451.108794109.davem@redhat.com> (raw)
In-Reply-To: <20030609081803.GF20613@netnation.com>


Ok Simon/Robert/Mr.Foo :), give this a try, it's my final installment
for the evening :-)

If this shows improvement, we can make even larger strides
by moving the struct flowi up into struct dst_entry.

--- net/core/dst.c.~1~	Mon Jun  9 01:47:26 2003
+++ net/core/dst.c	Mon Jun  9 03:13:56 2003
@@ -122,13 +122,34 @@ void * dst_alloc(struct dst_ops * ops)
 	dst = kmem_cache_alloc(ops->kmem_cachep, SLAB_ATOMIC);
 	if (!dst)
 		return NULL;
-	memset(dst, 0, ops->entry_size);
+	dst->next = NULL;
 	atomic_set(&dst->__refcnt, 0);
-	dst->ops = ops;
+	dst->__use = 0;
+	dst->child = NULL;
+	dst->dev = NULL;
+	dst->obsolete = 0;
+	dst->flags = 0;
 	dst->lastuse = jiffies;
+	dst->expires = 0;
+	dst->header_len = 0;
+	dst->trailer_len = 0;
+	memset(dst->metrics, 0, sizeof(dst->metrics));
 	dst->path = dst;
+	dst->rate_last = 0;
+	dst->rate_tokens = 0;
+	dst->error = 0;
+	dst->neighbour = NULL;
+	dst->hh = NULL;
+	dst->xfrm = NULL;
 	dst->input = dst_discard;
 	dst->output = dst_blackhole;
+#ifdef CONFIG_NET_CLS_ROUTE
+	dst->tclassid = 0;
+#endif
+	dst->ops = ops;
+	INIT_RCU_HEAD(&dst->rcu_head);
+	memset(dst->info, 0,
+	       ops->entry_size - offsetof(struct dst_entry, info));
 #if RT_CACHE_DEBUG >= 2 
 	atomic_inc(&dst_total);
 #endif
--- net/ipv4/route.c.~1~	Sun Jun  8 23:28:00 2003
+++ net/ipv4/route.c	Mon Jun  9 06:49:15 2003
@@ -88,6 +88,7 @@
 #include <linux/random.h>
 #include <linux/jhash.h>
 #include <linux/rcupdate.h>
+#include <linux/prefetch.h>
 #include <net/protocol.h>
 #include <net/ip.h>
 #include <net/route.h>
@@ -882,6 +883,60 @@ static void rt_del(unsigned hash, struct
 	spin_unlock_bh(&rt_hash_table[hash].lock);
 }
 
+static void __rt_hash_shrink(unsigned int hash)
+{
+	struct rtable *rth, **rthp;
+	struct rtable *cand, **candp;
+	unsigned int min_use = ~(unsigned int) 0;
+
+	spin_lock_bh(&rt_hash_table[hash].lock);
+	cand = NULL;
+	candp = NULL;
+	rthp = &rt_hash_table[hash].chain;
+	while ((rth = *rthp) != NULL) {
+		if (!atomic_read(&rth->u.dst.__refcnt) &&
+		    ((unsigned int) rth->u.dst.__use) < min_use) {
+			cand = rth;
+			candp = rthp;
+			min_use = rth->u.dst.__use;
+		}
+		rthp = &rth->u.rt_next;
+	}
+	if (cand) {
+		*candp = cand->u.rt_next;
+		rt_free(cand);
+	}
+
+	spin_unlock_bh(&rt_hash_table[hash].lock);
+}
+
+static inline struct rtable *ip_rt_dst_alloc(unsigned int hash)
+{
+	if (atomic_read(&ipv4_dst_ops.entries) >
+	    ipv4_dst_ops.gc_thresh)
+		__rt_hash_shrink(hash);
+
+	return dst_alloc(&ipv4_dst_ops);
+}
+
+static void ip_rt_copy(struct rtable *rt, struct rtable *old)
+{
+	memcpy(rt, old, sizeof(*rt));
+
+	INIT_RCU_HEAD(&rt->u.dst.rcu_head);
+	rt->u.dst.__use		= 1;
+	atomic_set(&rt->u.dst.__refcnt, 1);
+	rt->u.dst.child		= NULL;
+	if (rt->u.dst.dev)
+		dev_hold(rt->u.dst.dev);
+	rt->u.dst.obsolete	= 0;
+	rt->u.dst.lastuse	= jiffies;
+	rt->u.dst.path		= &rt->u.dst;
+	rt->u.dst.neighbour	= NULL;
+	rt->u.dst.hh		= NULL;
+	rt->u.dst.xfrm		= NULL;
+}
+
 void ip_rt_redirect(u32 old_gw, u32 daddr, u32 new_gw,
 		    u32 saddr, u8 tos, struct net_device *dev)
 {
@@ -912,9 +967,10 @@ void ip_rt_redirect(u32 old_gw, u32 dadd
 
 	for (i = 0; i < 2; i++) {
 		for (k = 0; k < 2; k++) {
-			unsigned hash = rt_hash_code(daddr,
-						     skeys[i] ^ (ikeys[k] << 5),
-						     tos);
+			unsigned int hash = rt_hash_code(daddr,
+							 skeys[i] ^
+							 (ikeys[k] << 5),
+							 tos);
 
 			rthp=&rt_hash_table[hash].chain;
 
@@ -942,7 +998,7 @@ void ip_rt_redirect(u32 old_gw, u32 dadd
 				dst_hold(&rth->u.dst);
 				rcu_read_unlock();
 
-				rt = dst_alloc(&ipv4_dst_ops);
+				rt = ip_rt_dst_alloc(hash);
 				if (rt == NULL) {
 					ip_rt_put(rth);
 					in_dev_put(in_dev);
@@ -950,19 +1006,7 @@ void ip_rt_redirect(u32 old_gw, u32 dadd
 				}
 
 				/* Copy all the information. */
-				*rt = *rth;
- 				INIT_RCU_HEAD(&rt->u.dst.rcu_head);
-				rt->u.dst.__use		= 1;
-				atomic_set(&rt->u.dst.__refcnt, 1);
-				rt->u.dst.child		= NULL;
-				if (rt->u.dst.dev)
-					dev_hold(rt->u.dst.dev);
-				rt->u.dst.obsolete	= 0;
-				rt->u.dst.lastuse	= jiffies;
-				rt->u.dst.path		= &rt->u.dst;
-				rt->u.dst.neighbour	= NULL;
-				rt->u.dst.hh		= NULL;
-				rt->u.dst.xfrm		= NULL;
+				ip_rt_copy(rt, rth);
 
 				rt->rt_flags		|= RTCF_REDIRECTED;
 
@@ -1352,7 +1396,7 @@ static void rt_set_nexthop(struct rtable
 static int ip_route_input_mc(struct sk_buff *skb, u32 daddr, u32 saddr,
 				u8 tos, struct net_device *dev, int our)
 {
-	unsigned hash;
+	unsigned int hash;
 	struct rtable *rth;
 	u32 spec_dst;
 	struct in_device *in_dev = in_dev_get(dev);
@@ -1375,7 +1419,9 @@ static int ip_route_input_mc(struct sk_b
 					dev, &spec_dst, &itag) < 0)
 		goto e_inval;
 
-	rth = dst_alloc(&ipv4_dst_ops);
+	hash = rt_hash_code(daddr, saddr ^ (dev->ifindex << 5), tos);
+
+	rth = ip_rt_dst_alloc(hash);
 	if (!rth)
 		goto e_nobufs;
 
@@ -1421,7 +1467,6 @@ static int ip_route_input_mc(struct sk_b
 	RT_CACHE_STAT_INC(in_slow_mc);
 
 	in_dev_put(in_dev);
-	hash = rt_hash_code(daddr, saddr ^ (dev->ifindex << 5), tos);
 	return rt_intern_hash(hash, rth, (struct rtable**) &skb->dst);
 
 e_nobufs:
@@ -1584,45 +1629,42 @@ int ip_route_input_slow(struct sk_buff *
 			goto e_inval;
 	}
 
-	rth = dst_alloc(&ipv4_dst_ops);
+	rth = ip_rt_dst_alloc(hash);
 	if (!rth)
 		goto e_nobufs;
 
 	atomic_set(&rth->u.dst.__refcnt, 1);
-	rth->u.dst.flags= DST_HOST;
-	if (in_dev->cnf.no_policy)
-		rth->u.dst.flags |= DST_NOPOLICY;
-	if (in_dev->cnf.no_xfrm)
-		rth->u.dst.flags |= DST_NOXFRM;
-	rth->fl.fl4_dst	= daddr;
+	rth->u.dst.dev	= out_dev->dev;
+	dev_hold(out_dev->dev);
+	rth->u.dst.flags= (DST_HOST |
+			   (in_dev->cnf.no_policy ? DST_NOPOLICY : 0) |
+			   (in_dev->cnf.no_xfrm ? DST_NOXFRM : 0));
+	rth->u.dst.input = ip_forward;
+	rth->u.dst.output = ip_output;
+
+	rth->rt_flags	= flags;
+	rth->rt_src	= saddr;
 	rth->rt_dst	= daddr;
-	rth->fl.fl4_tos	= tos;
+	rth->rt_iif 	= dev->ifindex;
+	rth->rt_gateway	= daddr;
+
+	rth->fl.iif	= dev->ifindex;
+	rth->fl.fl4_dst	= daddr;
+	rth->fl.fl4_src	= saddr;
 #ifdef CONFIG_IP_ROUTE_FWMARK
 	rth->fl.fl4_fwmark= skb->nfmark;
 #endif
-	rth->fl.fl4_src	= saddr;
-	rth->rt_src	= saddr;
-	rth->rt_gateway	= daddr;
+	rth->fl.fl4_tos	= tos;
+	rth->rt_spec_dst= spec_dst;
 #ifdef CONFIG_IP_ROUTE_NAT
 	rth->rt_src_map	= fl.fl4_src;
 	rth->rt_dst_map	= fl.fl4_dst;
-	if (flags&RTCF_DNAT)
+	if (flags & RTCF_DNAT)
 		rth->rt_gateway	= fl.fl4_dst;
 #endif
-	rth->rt_iif 	=
-	rth->fl.iif	= dev->ifindex;
-	rth->u.dst.dev	= out_dev->dev;
-	dev_hold(rth->u.dst.dev);
-	rth->fl.oif 	= 0;
-	rth->rt_spec_dst= spec_dst;
-
-	rth->u.dst.input = ip_forward;
-	rth->u.dst.output = ip_output;
 
 	rt_set_nexthop(rth, &res, itag);
 
-	rth->rt_flags = flags;
-
 #ifdef CONFIG_NET_FASTROUTE
 	if (netdev_fastroute && !(flags&(RTCF_NAT|RTCF_MASQ|RTCF_DOREDIRECT))) {
 		struct net_device *odev = rth->u.dst.dev;
@@ -1663,45 +1705,45 @@ brd_input:
 	RT_CACHE_STAT_INC(in_brd);
 
 local_input:
-	rth = dst_alloc(&ipv4_dst_ops);
+	rth = ip_rt_dst_alloc(hash);
 	if (!rth)
 		goto e_nobufs;
 
+	atomic_set(&rth->u.dst.__refcnt, 1);
+	rth->u.dst.dev	= &loopback_dev;
+	dev_hold(&loopback_dev);
+	rth->u.dst.flags= (DST_HOST |
+			   (in_dev->cnf.no_policy ? DST_NOPOLICY : 0));
+	rth->u.dst.input= ip_local_deliver;
 	rth->u.dst.output= ip_rt_bug;
+#ifdef CONFIG_NET_CLS_ROUTE
+	rth->u.dst.tclassid = itag;
+#endif
 
-	atomic_set(&rth->u.dst.__refcnt, 1);
-	rth->u.dst.flags= DST_HOST;
-	if (in_dev->cnf.no_policy)
-		rth->u.dst.flags |= DST_NOPOLICY;
-	rth->fl.fl4_dst	= daddr;
+	rth->rt_flags 	= flags|RTCF_LOCAL;
+	rth->rt_type	= res.type;
+	rth->rt_src	= saddr;
 	rth->rt_dst	= daddr;
-	rth->fl.fl4_tos	= tos;
+	rth->rt_iif	= dev->ifindex;
+	rth->rt_gateway	= daddr;
+
+	rth->fl.iif	= dev->ifindex;
+	rth->fl.fl4_dst	= daddr;
+	rth->fl.fl4_src	= saddr;
 #ifdef CONFIG_IP_ROUTE_FWMARK
 	rth->fl.fl4_fwmark= skb->nfmark;
 #endif
-	rth->fl.fl4_src	= saddr;
-	rth->rt_src	= saddr;
+	rth->fl.fl4_tos	= tos;
+	rth->rt_spec_dst= spec_dst;
 #ifdef CONFIG_IP_ROUTE_NAT
 	rth->rt_dst_map	= fl.fl4_dst;
 	rth->rt_src_map	= fl.fl4_src;
 #endif
-#ifdef CONFIG_NET_CLS_ROUTE
-	rth->u.dst.tclassid = itag;
-#endif
-	rth->rt_iif	=
-	rth->fl.iif	= dev->ifindex;
-	rth->u.dst.dev	= &loopback_dev;
-	dev_hold(rth->u.dst.dev);
-	rth->rt_gateway	= daddr;
-	rth->rt_spec_dst= spec_dst;
-	rth->u.dst.input= ip_local_deliver;
-	rth->rt_flags 	= flags|RTCF_LOCAL;
 	if (res.type == RTN_UNREACHABLE) {
 		rth->u.dst.input= ip_error;
 		rth->u.dst.error= -err;
 		rth->rt_flags 	&= ~RTCF_LOCAL;
 	}
-	rth->rt_type	= res.type;
 	goto intern;
 
 no_route:
@@ -1767,6 +1809,8 @@ int ip_route_input(struct sk_buff *skb, 
 	tos &= IPTOS_RT_MASK;
 	hash = rt_hash_code(daddr, saddr ^ (iif << 5), tos);
 
+	prefetch(&rt_hash_table[hash].chain->fl);
+
 	rcu_read_lock();
 	for (rth = rt_hash_table[hash].chain; rth; rth = rth->u.rt_next) {
 		smp_read_barrier_depends();
@@ -2048,7 +2092,10 @@ make_route:
 		}
 	}
 
-	rth = dst_alloc(&ipv4_dst_ops);
+	hash = rt_hash_code(oldflp->fl4_dst,
+			    oldflp->fl4_src ^ (oldflp->oif << 5), tos);
+
+	rth = ip_rt_dst_alloc(hash);
 	if (!rth)
 		goto e_nobufs;
 
@@ -2104,10 +2151,6 @@ make_route:
 
 	rt_set_nexthop(rth, &res, 0);
 	
-
-	rth->rt_flags = flags;
-
-	hash = rt_hash_code(oldflp->fl4_dst, oldflp->fl4_src ^ (oldflp->oif << 5), tos);
 	err = rt_intern_hash(hash, rth, rp);
 done:
 	if (free_res)
@@ -2132,6 +2175,8 @@ int __ip_route_output_key(struct rtable 
 	struct rtable *rth;
 
 	hash = rt_hash_code(flp->fl4_dst, flp->fl4_src ^ (flp->oif << 5), flp->fl4_tos);
+
+	prefetch(&rt_hash_table[hash].chain->fl);
 
 	rcu_read_lock();
 	for (rth = rt_hash_table[hash].chain; rth; rth = rth->u.rt_next) {

  parent reply	other threads:[~2003-06-09 14:14 UTC|newest]

Thread overview: 217+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <87d6iit4g7.fsf@deneb.enyo.de>
     [not found] ` <20030517.150933.74723581.davem@redhat.com>
     [not found]   ` <87iss87gqd.fsf@deneb.enyo.de>
2003-05-18  9:31     ` Route cache performance under stress David S. Miller
2003-05-19 17:36       ` Jamal Hadi
2003-05-19 19:18         ` Ralph Doncaster
2003-05-19 22:37           ` Jamal Hadi
2003-05-20  1:10             ` Simon Kirby
2003-05-20  1:14               ` David S. Miller
2003-05-20  1:23                 ` Jamal Hadi
2003-05-20  1:24                   ` David S. Miller
2003-05-20  2:13                     ` Jamal Hadi
2003-05-20  5:01                       ` Pekka Savola
2003-05-20 11:47                         ` Jamal Hadi
2003-05-20 11:55                           ` Pekka Savola
2003-05-20  6:46                       ` David S. Miller
2003-05-20 12:04                         ` Jamal Hadi
2003-05-21  0:36                           ` David S. Miller
2003-05-21 13:03                             ` Jamal Hadi
2003-05-23  5:42                               ` David S. Miller
2003-05-22  8:40                             ` Simon Kirby
2003-05-22  8:58                               ` David S. Miller
2003-05-22 10:40                                 ` David S. Miller
2003-05-22 11:15                                   ` Martin Josefsson
2003-05-23  1:00                                     ` David S. Miller
2003-05-23  1:01                                     ` David S. Miller
2003-05-23  8:21                                       ` Andi Kleen
2003-05-23  8:22                                         ` David S. Miller
2003-05-23  9:03                                           ` Andi Kleen
2003-05-23  9:59                                             ` David S. Miller
2003-05-24  0:41                                     ` Andrew Morton
2003-05-26  2:29                                       ` David S. Miller
2003-05-22 11:44                                   ` Simon Kirby
2003-05-22 13:03                                     ` Martin Josefsson
2003-05-23  0:55                                       ` David S. Miller
2003-05-22 22:33                                     ` David S. Miller
2003-05-29 20:51                                       ` Simon Kirby
2003-06-02 10:58                                         ` Robert Olsson
2003-06-02 15:18                                           ` Simon Kirby
2003-06-02 16:36                                             ` Robert Olsson
2003-06-02 18:05                                               ` Simon Kirby
2003-06-09 17:21                                               ` David S. Miller
2003-06-09 17:19                                           ` David S. Miller
2003-05-23  0:59                                     ` David S. Miller
2003-05-26  7:18                   ` Florian Weimer
2003-05-26  7:29                     ` David S. Miller
2003-05-26  9:34                       ` Florian Weimer
2003-05-27  6:32                         ` David S. Miller
2003-06-08 11:39                           ` Florian Weimer
2003-06-08 12:05                             ` David S. Miller
2003-06-08 13:10                               ` Florian Weimer
2003-06-08 23:49                                 ` Simon Kirby
2003-06-08 23:55                                   ` CIT/Paul
2003-06-09  3:15                                     ` Jamal Hadi
2003-06-09  5:27                                       ` CIT/Paul
2003-06-09  5:58                                         ` David S. Miller
2003-06-09  6:28                                           ` CIT/Paul
2003-06-09  6:28                                             ` David S. Miller
2003-06-09 16:23                                               ` Stephen Hemminger
2003-06-09 16:37                                                 ` David S. Miller
2003-06-09  7:13                                             ` Simon Kirby
2003-06-09  8:10                                               ` CIT/Paul
2003-06-09  8:27                                                 ` Simon Kirby
2003-06-09 19:38                                                   ` CIT/Paul
2003-06-09 21:30                                                     ` David S. Miller
2003-06-09 22:19                                                     ` Simon Kirby
2003-06-09 22:54                                                       ` Robert Olsson
2003-06-13  6:21                                                         ` David S. Miller
2003-06-13 10:40                                                           ` Robert Olsson
2003-06-15  6:36                                                             ` David S. Miller
2003-06-17 17:03                                                             ` Robert Olsson
2003-06-09 22:56                                                       ` CIT/Paul
2003-06-09 23:05                                                         ` David S. Miller
2003-06-10 13:41                                                           ` Robert Olsson
2003-06-10  0:03                                                         ` Jamal Hadi
2003-06-10  0:32                                                           ` Ralph Doncaster
2003-06-10  1:15                                                             ` Jamal Hadi
2003-06-10  2:45                                                               ` Ralph Doncaster
2003-06-10  3:23                                                                 ` Ben Greear
2003-06-10  3:41                                                                   ` Ralph Doncaster
2003-06-10 18:10                                                                   ` Ralph Doncaster
2003-06-10 18:21                                                                     ` Ben Greear
2003-06-10  4:34                                                                 ` Simon Kirby
2003-06-10 11:01                                                                   ` Jamal Hadi
2003-06-10 11:28                                                                   ` Jamal Hadi
2003-06-10 13:18                                                                     ` Ralph Doncaster
2003-06-10 16:10                                                                   ` David S. Miller
2003-06-10 10:53                                                                 ` Jamal Hadi
2003-06-10 11:41                                                                   ` chas williams
2003-06-10 16:27                                                                     ` David S. Miller
2003-06-10 16:57                                                                       ` chas williams
2003-06-10 11:41                                                                   ` Pekka Savola
2003-06-10 11:58                                                                     ` John S. Denker
2003-06-10 12:12                                                                       ` Jamal Hadi
2003-06-10 16:33                                                                         ` David S. Miller
2003-06-10 12:07                                                                     ` Jamal Hadi
2003-06-10 15:29                                                                       ` Ralph Doncaster
2003-06-11 19:48                                                                         ` Florian Weimer
2003-06-11 19:40                                                                           ` CIT/Paul
2003-06-11 21:09                                                                           ` Florian Weimer
2003-06-10 13:10                                                                   ` Ralph Doncaster
2003-06-10 13:36                                                                     ` Jamal Hadi
2003-06-10 14:03                                                                       ` Ralph Doncaster
2003-06-10 16:38                                                                     ` David S. Miller
2003-06-10 16:39                                                                     ` David S. Miller
2003-06-10 18:41                                                                   ` Florian Weimer
2003-06-11 11:47                                                                     ` Was (Re: " Jamal Hadi
2003-06-11 18:41                                                                       ` Real World Routers 8-) Florian Weimer
2003-06-10 15:53                                                               ` Route cache performance under stress David S. Miller
2003-06-10 16:15                                                                 ` 3c59x (was Route cache performance under stress) Bogdan Costescu
2003-06-10 16:20                                                                   ` Andi Kleen
2003-06-10 16:23                                                                     ` Jeff Garzik
2003-06-10 17:02                                                                       ` 3c59x David S. Miller
2003-06-10 17:16                                                                         ` 3c59x Jeff Garzik
2003-06-10 17:14                                                                           ` 3c59x David S. Miller
2003-06-10 17:25                                                                             ` 3c59x Jeff Garzik
2003-06-10 17:30                                                                               ` 3c59x David S. Miller
2003-06-10 19:20                                                                                 ` 3c59x Jeff Garzik
2003-06-10 19:21                                                                                   ` 3c59x David S. Miller
2003-06-10 17:18                                                                           ` 3c59x Andi Kleen
2003-06-10 17:29                                                                           ` 3c59x chas williams
2003-06-10 17:31                                                                             ` 3c59x David S. Miller
2003-06-10 17:39                                                                               ` 3c59x chas williams
2003-06-10 17:43                                                                                 ` 3c59x David S. Miller
2003-06-11 17:52                                                               ` Route cache performance under stress Robert Olsson
2003-06-10  1:53                                                             ` Simon Kirby
2003-06-10  3:18                                                               ` Ralph Doncaster
2003-06-10 16:06                                                                 ` David S. Miller
2003-06-10 15:56                                                               ` David S. Miller
2003-06-10 16:45                                                                 ` 3c59x (was Route cache performance under stress) Bogdan Costescu
2003-06-10 16:49                                                                   ` Andi Kleen
2003-06-11  9:54                                                                     ` Robert Olsson
2003-06-11 10:05                                                                       ` Andi Kleen
2003-06-11 10:38                                                                         ` Robert Olsson
2003-06-11 12:08                                                                         ` Jamal Hadi
2003-06-10 17:12                                                                   ` 3c59x David S. Miller
2003-06-10 17:19                                                                 ` Route cache performance under stress Ralph Doncaster
2003-06-10 15:49                                                             ` David S. Miller
2003-06-10 17:33                                                               ` Ralph Doncaster
2003-06-10 17:32                                                                 ` David S. Miller
2003-06-10 18:34                                                                   ` Robert Olsson
2003-06-10 18:57                                                                     ` David S. Miller
2003-06-10 19:53                                                                       ` Robert Olsson
2003-06-10 21:36                                                                       ` CIT/Paul
2003-06-10 21:39                                                                       ` Ralph Doncaster
2003-06-10 22:20                                                                         ` David S. Miller
2003-06-10 23:58                                                                           ` Ralph Doncaster
2003-06-10 23:57                                                                             ` David S. Miller
2003-06-11  0:41                                                                               ` Ralph Doncaster
2003-06-11  0:58                                                                                 ` David S. Miller
2003-06-11  0:58                                                                                 ` David S. Miller
2003-06-11  0:51                                                                             ` Ben Greear
2003-06-11  1:01                                                                               ` David S. Miller
2003-06-11  1:15                                                                                 ` Ben Greear
2003-06-11  1:22                                                                                   ` David S. Miller
2003-06-11  1:51                                                                                     ` Ben Greear
2003-06-11  3:33                                                                                       ` David S. Miller
2003-06-11 11:54                                                                                         ` gettime: Was (Re: " Jamal Hadi
2003-06-11 12:08                                                                                           ` Andi Kleen
2003-06-12  3:30                                                                                             ` David S. Miller
2003-06-12  6:32                                                                                               ` Ben Greear
2003-06-12  8:46                                                                                                 ` David S. Miller
2003-06-11 15:57                                                                                           ` Ben Greear
2003-06-12  3:29                                                                                           ` David S. Miller
2003-06-11  1:17                                                                                 ` Ralph Doncaster
2003-06-11  1:23                                                                                   ` David S. Miller
2003-06-11  7:28                                                                                     ` Andi Kleen
2003-06-11  7:25                                                                                 ` Andi Kleen
2003-06-11 17:40                                                                       ` Robert Olsson
2003-06-13  5:38                                                                         ` David S. Miller
2003-06-13 10:22                                                                           ` Robert Olsson
2003-06-13 17:15                                                                           ` Robert Olsson
2003-06-12  6:45                                                                     ` David S. Miller
2003-06-12 13:56                                                                       ` Robert Olsson
2003-06-12 21:35                                                                         ` David S. Miller
2003-06-13 10:50                                                                           ` Robert Olsson
2003-06-10  0:56                                                       ` Ralph Doncaster
2003-06-09 11:38                                                 ` Jamal Hadi
2003-06-09 11:55                                                   ` David S. Miller
2003-06-09 12:18                                                     ` Jamal Hadi
2003-06-09 12:32                                                       ` David S. Miller
2003-06-09 13:22                                                         ` Jamal Hadi
2003-06-09 13:22                                                           ` David S. Miller
2003-06-09  8:56                                               ` David S. Miller
2003-06-09 22:39                                                 ` Robert Olsson
2003-06-09  6:25                                       ` David S. Miller
2003-06-09  6:59                                         ` Simon Kirby
2003-06-09  7:03                                           ` David S. Miller
2003-06-09 13:04                                       ` Ralph Doncaster
2003-06-09 13:26                                         ` Jamal Hadi
2003-06-09  5:44                                     ` David S. Miller
2003-06-09  5:51                                       ` CIT/Paul
2003-06-09  6:03                                         ` David S. Miller
2003-06-09  6:52                                           ` Simon Kirby
2003-06-09  6:56                                             ` David S. Miller
2003-06-09  7:36                                               ` Simon Kirby
2003-06-09  8:18                                               ` Simon Kirby
2003-06-09  8:22                                                 ` David S. Miller
2003-06-09  8:31                                                   ` Simon Kirby
2003-06-09  9:01                                                 ` David S. Miller
2003-06-09  9:47                                                   ` Andi Kleen
2003-06-09 10:03                                                     ` David S. Miller
2003-06-09 10:13                                                       ` Andi Kleen
2003-06-09 10:13                                                         ` David S. Miller
2003-06-09 10:40                                                           ` YOSHIFUJI Hideaki / 吉藤英明
2003-06-09 10:40                                                             ` David S. Miller
2003-06-09 14:14                                                 ` David S. Miller [this message]
2003-06-09  6:47                                     ` Simon Kirby
2003-06-09  6:49                                       ` David S. Miller
2003-06-09 13:28                                       ` Ralph Doncaster
2003-06-09 16:30                                         ` Simon Kirby
2003-06-17 20:58                                           ` Florian Weimer
2003-06-09  5:38                                   ` David S. Miller
2003-06-10  3:05                                 ` Steven Blake
2003-06-12  6:31                                   ` David S. Miller
2003-06-08 17:58                             ` Pekka Savola
2003-05-21  0:09                 ` Simon Kirby
2003-05-21  0:13                   ` David S. Miller
2003-05-26  9:29                     ` Florian Weimer
     [not found] <8765pshpd4.fsf@deneb.enyo.de>
2003-04-05 18:17 ` Martin Josefsson

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=20030609.071451.108794109.davem@redhat.com \
    --to=davem@redhat.com \
    --cc=Robert.Olsson@data.slu.se \
    --cc=fw@deneb.enyo.de \
    --cc=hadi@shell.cyberus.ca \
    --cc=kuznet@ms2.inr.ac.ru \
    --cc=netdev@oss.sgi.com \
    --cc=sim@netnation.com \
    --cc=xerox@foonet.net \
    /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 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).