mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* Problems with e1000 driver and ksoftirqd_CPU0
  2002-06-11 13:33 sysctl net.ipv4.icmp_default_ttl Lev V. Vanyan
@ 2002-06-11 10:50 ` Renato
  2002-06-11 14:00 ` sysctl net.ipv4.icmp_default_ttl David S. Miller
  1 sibling, 0 replies; 3+ messages in thread
From: Renato @ 2002-06-11 10:50 UTC (permalink / raw)
  To: linux-kernel

Hi all,

I'm just using the latest kernel from RedHat - 2.4.18-4smp ( which I 
suppose it mostly -ac series ) and I'm having real problems with an 
Ethernet Gigabit network. It looks like "ksoftirqd_CPU0" eats up all the 
CPU processing with a traffic of just 55 Mbps !! ( it's not my hardware... 
I'm using a Dual Xeon 2Ghz and with kernel 2.4.9 it could handle easily 85 
Mbps ) 

'vmstat 1' output:
 r  b  w   swpd   free   buff  cache  si  so    bi    bo   in    cs  us  
sy  id
 0  0  1      0 1988284   2528  17052   0   0     0     0  826   352   0  
16  84
 0  0  0      0 1988264   2528  17052   0   0     0     0 17486    51   0  
25  75
 0  0  1      0 1988264   2528  17052   0   0     0     0 17661    29   0  
25  75
 0  0  1      0 1988264   2528  17052   0   0     0     0 17424    32   0  
25  75
 0  0  1      0 1988264   2528  17052   0   0     0     0 17428    42   0  
25  75
 0  0  1      0 1988264   2528  17052   0   0     0     0 17572    46   0  
25  75

( with 2.4.9 interrupt rate was over 50.000 !! )

lsmod output:

Module                  Size  Used by    Tainted: P  
ipchains               46184 162 
e1000                  57508   2 
raid1                  15780   2 
aic7xxx               125440   6 
sd_mod                 12896  12 
scsi_mod              112272   2  [aic7xxx sd_mod]

( I don't rules loaded that could impact performance )

Anybody ? 

Renato - Brazil.


^ permalink raw reply	[flat|nested] 3+ messages in thread

* sysctl net.ipv4.icmp_default_ttl
@ 2002-06-11 13:33 Lev V. Vanyan
  2002-06-11 10:50 ` Problems with e1000 driver and ksoftirqd_CPU0 Renato
  2002-06-11 14:00 ` sysctl net.ipv4.icmp_default_ttl David S. Miller
  0 siblings, 2 replies; 3+ messages in thread
From: Lev V. Vanyan @ 2002-06-11 13:33 UTC (permalink / raw)
  To: linux-kernel

-----BEGIN PGP SIGNED MESSAGE-----

I wrote a new sysctl flag allowing to control Time To Live for ICMP packages. 
I've applied it to my 2.4.18 and it runs stable on fortress.mirotel.net 
(Linux i386).

PS: This is my first kernel patch, so it would be better if community will 
forgive me in case i've done something wrong :)


- --- linux/net/ipv4/sysctl_net_ipv4.c	Wed Oct 31 01:08:12 2001
+++ linux-2.4.18/net/ipv4/sysctl_net_ipv4.c	Mon Jun 10 21:51:08 2002
@@ -22,6 +22,7 @@
 extern int sysctl_icmp_echo_ignore_all;
 extern int sysctl_icmp_echo_ignore_broadcasts;
 extern int sysctl_icmp_ignore_bogus_error_responses;
+extern int sysctl_icmp_default_ttl;
 
 /* From ip_fragment.c */
 extern int sysctl_ipfrag_low_thresh;
@@ -176,6 +177,9 @@
 	{NET_IPV4_ICMP_IGNORE_BOGUS_ERROR_RESPONSES, 
"icmp_ignore_bogus_error_responses",
 	 &sysctl_icmp_ignore_bogus_error_responses, sizeof(int), 0644, NULL,
 	 &proc_dointvec},
+	{NET_IPV4_ICMP_DEFAULT_TTL, "icmp_default_ttl",
+	&sysctl_icmp_default_ttl,sizeof(int), 0644,NULL,
+	&proc_dointvec},
 	{NET_IPV4_ROUTE, "route", NULL, 0, 0555, ipv4_route_table},
 #ifdef CONFIG_IP_MULTICAST
 	{NET_IPV4_IGMP_MAX_MEMBERSHIPS, "igmp_max_memberships",
- --- linux/net/ipv4/ip_output.c	Thu Oct 18 00:16:39 2001
+++ linux-2.4.18/net/ipv4/ip_output.c	Tue Jun 11 15:58:07 2002
@@ -84,6 +84,9 @@
 
 int sysctl_ip_dynaddr = 0;
 int sysctl_ip_default_ttl = IPDEFTTL;
+#ifdef CONFIG_SYSCTL
+extern int sysctl_icmp_default_ttl;
+#endif
 
 /* Generate a checksum for an outgoing IP datagram. */
 __inline__ void ip_send_check(struct iphdr *iph)
@@ -572,10 +575,17 @@
 				 */
 				mf = htons(IP_MF);
 			}
- -			if (rt->rt_type == RTN_MULTICAST)
- -				iph->ttl = sk->protinfo.af_inet.mc_ttl;
- -			else
- -				iph->ttl = sk->protinfo.af_inet.ttl;
+#ifdef CONFIG_SYSCTL
+			if(sk->protocol != IPPROTO_ICMP) {
+#endif
+				if (rt->rt_type == RTN_MULTICAST) 
+					iph->ttl = sk->protinfo.af_inet.mc_ttl;
+				else
+					iph->ttl = sk->protinfo.af_inet.ttl;
+#ifdef CONFIG_SYSCTL			
+			}
+				else iph->ttl = sysctl_icmp_default_ttl;
+#endif
 			iph->protocol = sk->protocol;
 			iph->check = 0;
 			iph->saddr = rt->rt_src;
@@ -693,10 +703,19 @@
 		iph->tos=sk->protinfo.af_inet.tos;
 		iph->tot_len = htons(length);
 		iph->frag_off = df;
- -		iph->ttl=sk->protinfo.af_inet.mc_ttl;
+		/* set TTL for ICMP packets */
+#ifdef	CONFIG_SYSCTL
+		if(iph->protocol == IPPROTO_ICMP)
+			iph->ttl = sysctl_icmp_default_ttl;
+		else {
+#endif
+			if(rt->rt_type != RTN_MULTICAST)
+				iph->ttl = sk->protinfo.af_inet.ttl;
+			else iph->ttl = sk->protinfo.af_inet.mc_ttl;
+#ifdef CONFIG_SYSCTL
+		}
+#endif
 		ip_select_ident(iph, &rt->u.dst, sk);
- -		if (rt->rt_type != RTN_MULTICAST)
- -			iph->ttl=sk->protinfo.af_inet.ttl;
 		iph->protocol=sk->protocol;
 		iph->saddr=rt->rt_src;
 		iph->daddr=rt->rt_dst;
- --- linux/net/ipv4/icmp.c	Mon Feb 25 21:38:14 2002
+++ linux-2.4.18/net/ipv4/icmp.c	Tue Jun 11 15:36:36 2002
@@ -143,6 +143,9 @@
 int sysctl_icmp_echo_ignore_all;
 int sysctl_icmp_echo_ignore_broadcasts;
 
+/* Control max icmp ttl. */
+int sysctl_icmp_default_ttl = 255;
+
 /* Control parameter - ignore bogus broadcast responses? */
 int sysctl_icmp_ignore_bogus_error_responses;
 
П\x02

- -- 
Lev V. Vanyan                    Software Engineer
Mirotel ISP                      nic-hdl: VL1580-RIPE, LV2560-NIC
mailto: remedy@mirotel.net
-----BEGIN PGP SIGNATURE-----
Version: 2.6.3a
Charset: noconv

iQB1AwUBPQX8O89Sz223N4s1AQGg9wL+MvqmTeGEo+fPPQO0N9xhuDCskpOypQ/7
AoV7dkqx3IhvYqrZPFUJ2P2KYR1l/whzQK0gmFsWkc0jpPpsfW0Krtmn8JzS4U4h
PQhHhOqhbhWLOEMQoOGhkT/g/mOmAXnE
=d6XJ
-----END PGP SIGNATURE-----

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: sysctl net.ipv4.icmp_default_ttl
  2002-06-11 13:33 sysctl net.ipv4.icmp_default_ttl Lev V. Vanyan
  2002-06-11 10:50 ` Problems with e1000 driver and ksoftirqd_CPU0 Renato
@ 2002-06-11 14:00 ` David S. Miller
  1 sibling, 0 replies; 3+ messages in thread
From: David S. Miller @ 2002-06-11 14:00 UTC (permalink / raw)
  To: remedy; +Cc: linux-kernel


What is this useful for?  You can control the TTL in the APP and now
you've broken this in that you'll override the application selected
socket TTL.  That is broken.

Also you messed up the patch, it is a patch of a patch instead of
before/after versions of the files.

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2002-06-11 14:04 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2002-06-11 13:33 sysctl net.ipv4.icmp_default_ttl Lev V. Vanyan
2002-06-11 10:50 ` Problems with e1000 driver and ksoftirqd_CPU0 Renato
2002-06-11 14:00 ` sysctl net.ipv4.icmp_default_ttl David S. Miller

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®