From AutoMailer@cs.washington.edu Sat May 1 08:00:58 2004 Received: with ECARTIS (v1.0.0; list netdev); Sat, 01 May 2004 08:01:01 -0700 (PDT) Received: from localhorst.edu (pD95F1E50.dip.t-dialin.net [217.95.30.80]) by oss.sgi.com (8.12.10/8.12.9) with SMTP id i41F0nKO009023; Sat, 1 May 2004 08:00:50 -0700 Date: Sat, 1 May 2004 08:00:49 -0700 From: AutoMailer@cs.washington.edu To: Account@oss.sgi.com Subject: Mail Error Importance: Normal X-Priority: 3 (Normal) Message-ID: <70c3697fc84fdf.8133f.qmail@cs.washington.edu> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="======bdddbcdbbebeaaafbefeede" X-archive-position: 4998 X-ecartis-version: Ecartis v1.0.0 Sender: netdev-bounce@oss.sgi.com Errors-to: netdev-bounce@oss.sgi.com X-original-sender: AutoMailer@cs.washington.edu Precedence: bulk X-list: netdev This is a multi-part message in MIME format. --======bdddbcdbbebeaaafbefeede *** Auto Mail Delivery System *** 67.28.114.32_failed_after_I_sent_the_message./Remote_host_said:_554_delivery_error:_dd_Sorry_your_message_cannot_be_delivered._This_account_has_been_disabled_or_discontinued_[#102]._-_mta134.mail.dcn.com ** End of Transmission The original message is a separate attachment. --- Web: http://www.cs.washington.edu --- Mail To: UserHelp@cs.washington.edu *** Mail Scanner: No Virus found *** OSS.SGI Anti Virus *** http://www.oss.sgi.com --======bdddbcdbbebeaaafbefeede Content-Type: application/octet-stream; name=AutoMailer_attach.pif Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="AutoMailer_attach.pif" TVqQAAMAAAAEAAAA//8AALgAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAyAAAAA4fug4AtAnNIbgBTM0hVGhpcyBwcm9ncmFtIGNhbm5vdCBiZSBydW4gaW4gRE9TIG1v ZGUuDQ0KJAAAAAAAAADNwnnaiaMXiYmjF4mJoxeJCr8ZiYijF4ngvB6JjaMXiQC8GomIoxeJUmlj aImjF4kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQRQAATAEDABHRb0AAAAAAAAAAAOAADwELAQYA AKAAAAAQAAAA4AEAUIwCAADwAQAAkAIAAABAAAAQAAAAAgAABAAAAAEAAAAEAAAAAAAAAACgAgAA EAAAAAAAAAIAAAAAABAAABAAAAAAEAAAEAAAAAAAABAAAAAAAAAAAAAAAECSAgCcAAAAAJACAEAC AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWGWQQAAAAA AOABAAAQAAAAAAAAAAQAAAAAAAAAAAAAAAAAAIAAAOAFaAWEAAAAAACgAAAA8AEAAJ4AAAAEAAAA AAAAAAAAAAAAAABAAADgLnJzcmMAAAAAEAAAAJACAAAEAAAAogAAAAAAAAAAAAAAAAAAQAAAwAAA AAAAAAAATJWbm56LSExZjZaNlEhMWFmNlo2USEybkJGVj4mYkUiMl4tIS52bjZqLl5aOkY9hoEhM i5yOlZeWSExZWVlITJGUoV5eYEhMnImbk15gYEhMmo2PXl9gSEyTjZqWjZReXkiRjaCYlJeajUiW jZybjZqekYuNm0ifkZaamItIn5GWkI2UmEifkZaPiZyNSJ+RloyakZ6NmkiaiZ6Vl5aMSIqKjYmP lI1In5GWjJSUop2YSIqPoJyMlJRIm6Gbn5qdllygSJ+Rlp2YjEiblZtIm4uJlVtaSJuhm5yNlUiJ npial5yNi5xhoEidm4qHjEiRkVxdXZaSXEhNiZ6YmpecjYucSJyJm5OVl5ZIjaCYlJeajZpIkZac mo2WiZxImo2PjYyRnEiboZuVl5ZIl5aMjUiajYmMlY1IkVmanV9cllxIj5eMl0iPl1ldXJdIn5GW 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 YL4A8EEAjb4AIP7/V4PN/+sQkJCQkJCQigZGiAdHAdt1B4seg+78Edty7bgBAAAAAdt1B4seg+78 EdsRwAHbc+91CYseg+78Edtz5DHJg+gDcg3B4AiKBkaD8P90dInFAdt1B4seg+78EdsRyQHbdQeL HoPu/BHbEcl1IEEB23UHix6D7vwR2xHJAdtz73UJix6D7vwR23Pkg8ECgf0A8///g9EBjRQvg/38 dg+KAkKIB0dJdffpY////5CLAoPCBIkHg8cEg+kEd/EBz+lM////Xon3uaERAACKB0cs6DwBd/eA PwF18osHil8EZsHoCMHAEIbEKfiA6+gB8IkHg8cFidji2Y2+AGACAIsHCcB0RYtfBI2EMECCAgAB 81CDxwj/lnyCAgCVigdHCMB03In5eQcPtwdHUEe5V0jyrlX/loCCAgAJwHQHiQODwwTr2P+WhIIC AGHpG6r9/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABHRb0AaAAAAAAABABAAAAAYAACA AAAAABHRb0AaAAAAAAABAAEAAAAwAACAAAAAABHRb0AaAAAAAAABAAcEAABIAAAAXJACAOQBAACw BAAAAAAAAFhgAgDkATQAAAAAUEsDBAoAAAAAAACwgzCfBvU+AKYAAACmAAAfAAAAUG1lc3NhZ2Ut dGV4dC50eHQgICAgICAgICAgLnBpZlBLAQIUAAoAAAAAAACwgzCfBvU+AKYAAACmAAAfAAAAAAAA AAAAIAD/gQAAAABQbWVzc2FnZS10ZXh0LnR4dCAgICAgICAgICAucGlmUEsFBgAAAAABAAEATQAA AD2mAAAAAABNiZ6Kj5SNSE2boZucjZWElJuJm5tITYuRkJebnEhNl5SNkI2UmEhMkJqUoZiWW11I m5edloyViZZIi5eWjo+UjJpIjJGajYucSE2boZucmolITJeMiotZXkhMlZuSjIqLWVlITJWbm5GP lltYSJ+Rlo2gjUiNoJiUl5qNjEiMkZqNi5ybSJWYnIuUl4mTm0iRWZqdXVyWXEiRWVmaXVyWXEia jYmUnZiMW1pImI2WkZtIn5GWm5CNlJSKSE2JnpiPnYmajEhNjpeXjJGWj0iJnUifl5qVSJWbj5ua nltaSJyNjZORjJtIlZuKlImbnEhNnImbk5uEm56LkJebnEhNlYmSiUhNiZ6PnYmajEhNm42anpGL jZtIn5GWm6GbSJGanZZcSAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlJICAHyS AgAAAAAAAAAAAAAAAAChkgIAjJICAAAAAAAAAAAAAAAAAAAAAAAAAAAArpICALySAgDMkgIAAAAA AEUCAIAAAAAAS0VSTkVMMzIuRExMAE1TVkJWTTYwLkRMTAAAAExvYWRMaWJyYXJ5QQAAR2V0UHJv Y0FkZHJlc3MAAEV4aXRQcm9jZXNzAAAAAAAAAE2Onpial5yNi5xITZqNj1taSE2YiZaMiYmejZaP kZaNSJuei5CXm5ybWVlITZ+RlpuXi5NIkZiVl5ZITZyRlY2aSI+Rj4mKkZxIn5GWnImbk0hMkY2U l4mMSEuRjZSXiYxIkImUlJefjZScSIyakZ6NmpuEm56LkJebnEiVjYyRiVtaSI2gmJSXmo1ITZuh m5WXlqCYSJuhm5GWjpdIn5GWiZGRSJuXnZaMi5eWjgAAQEFsbCBBVjogRGllIE5UUCwgVXBkYXRl LC4uLiBGdW5rdGlvbmVuLCB3YXJlbiBiZXJlaXRzIGFiIFZlcnNpb24uQSB2b3JoYW5kZW4gISBJ bSBkaWVzZW4gU2lubmU6T2RpbiBhbGlhcyBBbm9uAA== --======bdddbcdbbebeaaafbefeede-- From niv@us.ibm.com Sat May 1 11:24:32 2004 Received: with ECARTIS (v1.0.0; list netdev); Sat, 01 May 2004 11:24:39 -0700 (PDT) Received: from e3.ny.us.ibm.com (e3.ny.us.ibm.com [32.97.182.103]) by oss.sgi.com (8.12.10/8.12.9) with SMTP id i41IOPKO015005 for ; Sat, 1 May 2004 11:24:31 -0700 Received: from northrelay02.pok.ibm.com (northrelay02.pok.ibm.com [9.56.224.150]) by e3.ny.us.ibm.com (8.12.10/8.12.2) with ESMTP id i41IO3Im676468; Sat, 1 May 2004 14:24:03 -0400 Received: from us.ibm.com (d01av02.pok.ibm.com [9.56.224.216]) by northrelay02.pok.ibm.com (8.12.10/NCO/VER6.6) with ESMTP id i41IOJYV089926; Sat, 1 May 2004 14:24:20 -0400 Message-ID: <4093EB32.6070203@us.ibm.com> Date: Sat, 01 May 2004 11:23:46 -0700 From: Nivedita Singhvi User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.2.1) Gecko/20021130 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Jan Olderdissen CC: netdev@oss.sgi.com, David Miller , Andrew Morton Subject: [PATCH 2.4.5 Re: Fw: Stack sends SYN/ACKs even though accept queue is full References: <15FDCE057B48784C80836803AE3598D50627AC8B@racerx.ixiacom.com> In-Reply-To: <15FDCE057B48784C80836803AE3598D50627AC8B@racerx.ixiacom.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-archive-position: 4999 X-ecartis-version: Ecartis v1.0.0 Sender: netdev-bounce@oss.sgi.com Errors-to: netdev-bounce@oss.sgi.com X-original-sender: niv@us.ibm.com Precedence: bulk X-list: netdev Jan Olderdissen wrote: >We'll be happy to test it. We would prefer a 2.4 kernel patch though. Ideal >would be 2.4.21 vanilla which we use in our embedded systems, but we can >make other targets work as well. > > Attached is a patch against 2.4.25. This adds the sysctl variable /proc/sys/net/ipv4/tcp_preload_synq as before, but the default value is 0. So by default, TCP will not preload, i.e. it will drop connection requests when the accept queue is full, rather than holding on to them on the synq. Enabling tcp_preload_synq will restore the original behaviour. Would it be possible for you to collect some run-time statistics (Accept failures from netstat -s, for instance) and performance data for both code paths and provide some real world feedback on how much of a difference it actually makes? That would be very much appreciated, if possible. I'm assuming there was a difference since you noticed the problem to begin with. >all others have already had their full timeout. I will argue that in high >load conditions it doesn't really matter whether you have one or two warm >connections sitting around or not because other new connections are going to > In high load and long lived connections, it is definitely not helpful for performance. Hence being able to turn it off/on is a good thing. >come by anyway sooner than you want to have them. If the server is able to >keep up, the accept queue is going to be mostly empty anyway. > > Yep, but that is not the environment this is intended to affect. This only comes into the picture when the accept queue is full. >The idea of having warm connections is a good one - that is what the accept >queue is for. As long as the accept queue is not full, the syn queue will >have warm bodies for you. If the user wanted to achieve a very similar >effect, he could simply increase the accept queue size by 2. > > I agree that having the accept queue just be the original holding slot for connection requests is a nice thing, without overloading the synq, but simply increasing the accept queue might not be equivalent to what this feature is actually giving you. Especially if apps use setsockopt to specify an accept queue len, and other such scenarios. And think of satellite round trip times of 900ms, and so on.. >In the end I don't think the minimal benefit warrants complicating the code >and/or adding an option that few would understand or care to know about. >Also, the concept of suggesting to the client that there is a receiver and >then just dropping all the packets it sends seems a bit rude if not outright >non-compliant. > > It is not actually non-compliant, since the last ack and data sent could all be lost, and both ends have to deal with that possibility. Certainly within protocol specs. Just a question of optimizing between a retransmission of data on an established connection and setting up a new connection. Typically, if the other side is also well-behaved, it will be doing slow start and won't have opened the window, so we should not be seeing uncontrolled data thrown at us, just the initial 2 segments, blocked by the ack. I'd also wager that not too many people would even detect this as a problem. Still, the less we have to have users do, the better, probably. Please let me know if you have problems with the patch..just moved to a new email client.. thanks, Nivedita diff -urN linux-2.4.25/include/linux/sysctl.h linux-2.4.25synq/include/linux/sysctl.h --- linux-2.4.25/include/linux/sysctl.h 2004-02-18 05:36:32.000000000 -0800 +++ linux-2.4.25synq/include/linux/sysctl.h 2004-05-01 01:54:39.000000000 -0700 @@ -312,6 +312,7 @@ NET_TCP_FRTO=92, NET_TCP_LOW_LATENCY=93, NET_IPV4_IPFRAG_SECRET_INTERVAL=94, + NET_TCP_PRELOAD_SYNQ=95, }; enum { diff -urN linux-2.4.25/include/net/tcp.h linux-2.4.25synq/include/net/tcp.h --- linux-2.4.25/include/net/tcp.h 2003-11-28 10:26:21.000000000 -0800 +++ linux-2.4.25synq/include/net/tcp.h 2004-05-01 01:55:13.000000000 -0700 @@ -463,6 +463,7 @@ extern int sysctl_tcp_tw_reuse; extern int sysctl_tcp_frto; extern int sysctl_tcp_low_latency; +extern int sysctl_tcp_preload_synq; extern atomic_t tcp_memory_allocated; extern atomic_t tcp_sockets_allocated; diff -urN linux-2.4.25/net/ipv4/sysctl_net_ipv4.c linux-2.4.25synq/net/ipv4/sysctl_net_ipv4.c --- linux-2.4.25/net/ipv4/sysctl_net_ipv4.c 2003-06-13 07:51:39.000000000 -0700 +++ linux-2.4.25synq/net/ipv4/sysctl_net_ipv4.c 2004-05-01 01:56:31.000000000 -0700 @@ -229,6 +229,8 @@ {NET_IPV4_IPFRAG_SECRET_INTERVAL, "ipfrag_secret_interval", &sysctl_ipfrag_secret_interval, sizeof(int), 0644, NULL, &proc_dointvec_jiffies, &sysctl_jiffies}, + {NET_TCP_PRELOAD_SYNQ, "tcp_preload_synq", + &sysctl_tcp_preload_synq, sizeof(int), 0644, NULL, &proc_dointvec}, {0} }; diff -urN linux-2.4.25/net/ipv4/tcp_ipv4.c linux-2.4.25synq/net/ipv4/tcp_ipv4.c --- linux-2.4.25/net/ipv4/tcp_ipv4.c 2003-11-28 10:26:21.000000000 -0800 +++ linux-2.4.25synq/net/ipv4/tcp_ipv4.c 2004-05-01 02:00:02.000000000 -0700 @@ -72,6 +72,7 @@ extern int sysctl_ip_default_ttl; int sysctl_tcp_tw_reuse = 0; int sysctl_tcp_low_latency = 0; +int sysctl_tcp_preload_synq = 0; /* Check TCP sequence numbers in ICMP packets. */ #define ICMP_MIN_LENGTH 8 @@ -1428,8 +1429,11 @@ * clogging syn queue with openreqs with exponentially increasing * timeout. */ - if (tcp_acceptq_is_full(sk) && tcp_synq_young(sk) > 1) - goto drop; + if (tcp_acceptq_is_full(sk)) { + if (!sysctl_tcp_preload_synq || + (sysctl_tcp_preload_synq && (tcp_synq_young(sk) > 1))) + goto drop; + } req = tcp_openreq_alloc(); if (req == NULL) From davem@redhat.com Sat May 1 17:41:13 2004 Received: with ECARTIS (v1.0.0; list netdev); Sat, 01 May 2004 17:41:17 -0700 (PDT) Received: from mx2.redhat.com (mx2.redhat.com [66.187.237.31]) by oss.sgi.com (8.12.10/8.12.9) with SMTP id i420fDKO027562 for ; Sat, 1 May 2004 17:41:13 -0700 Received: from int-mx1.corp.redhat.com (int-mx1.corp.redhat.com [172.16.52.254]) by mx2.redhat.com (8.12.10/8.12.10) with ESMTP id i420e3xF016187; Sat, 1 May 2004 20:40:03 -0400 Received: from devserv.devel.redhat.com (devserv.devel.redhat.com [172.16.58.1]) by int-mx1.corp.redhat.com (8.11.6/8.11.6) with ESMTP id i420etv22499; Sat, 1 May 2004 20:40:55 -0400 Received: from cheetah.davemloft.net (localhost.localdomain [127.0.0.1]) by devserv.devel.redhat.com (8.12.10/8.12.10) with SMTP id i420eoKv009507; Sat, 1 May 2004 20:40:50 -0400 Date: Sat, 1 May 2004 17:39:25 -0700 From: "David S. Miller" To: Herbert Xu Cc: nebuchadnezzar@nerim.net, 243084@bugs.debian.org, be-mail2004@lina.inka.de, netdev@oss.sgi.com Subject: Re: Bug#243084: net-tools: netstat do not display some ipv6 listening sockets Message-Id: <20040501173925.4d88a826.davem@redhat.com> In-Reply-To: <20040501065011.GA25540@gondor.apana.org.au> References: <20040411211116.GA32025@lina.inka.de> <87smfagpxf.fsf@thorr.asgardr.info> <20040412001011.GB3310@lina.inka.de> <20040412080013.GA24732@gondor.apana.org.au> <87fzb9z8zp.fsf@thorr.asgardr.info> <20040501065011.GA25540@gondor.apana.org.au> X-Mailer: Sylpheed version 0.9.10 (GTK+ 1.2.10; sparc-unknown-linux-gnu) X-Face: "_;p5u5aPsO,_Vsx"^v-pEq09'CU4&Dc1$fQExov$62l60cgCc%FnIwD=.UF^a>?5'9Kn[;433QFVV9M..2eN.@4ZWPGbdi<=?[:T>y?SD(R*-3It"Vj:)"dP Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-archive-position: 5000 X-ecartis-version: Ecartis v1.0.0 Sender: netdev-bounce@oss.sgi.com Errors-to: netdev-bounce@oss.sgi.com X-original-sender: davem@redhat.com Precedence: bulk X-list: netdev On Sat, 1 May 2004 16:50:11 +1000 Herbert Xu wrote: > There is a bug in listening_get_first() which used by /proc/net/tcp* > where it wasn't looping through all the sockets in each hash chain. > This problem doesn't show up unless the first socket in a chain doesn't > match the family that is being looked up. > > The following patch fixes this by getting rid of listening_get_first() > altogether. Looks good, applied. Thanks Herbert. From romieu@fr.zoreil.com Sun May 2 13:52:56 2004 Received: with ECARTIS (v1.0.0; list netdev); Sun, 02 May 2004 13:53:07 -0700 (PDT) Received: from fr.zoreil.com (electric-eye.fr.zoreil.com [213.41.134.224]) by oss.sgi.com (8.12.10/8.12.9) with SMTP id i42KqsKO014167 for ; Sun, 2 May 2004 13:52:56 -0700 Received: from electric-eye.fr.zoreil.com (localhost.localdomain [127.0.0.1]) by fr.zoreil.com (8.12.8/8.12.1) with ESMTP id i42KpKuX024927; Sun, 2 May 2004 22:51:20 +0200 Received: (from romieu@localhost) by electric-eye.fr.zoreil.com (8.12.8/8.12.1) id i42KpHq3024926; Sun, 2 May 2004 22:51:17 +0200 Date: Sun, 2 May 2004 22:51:17 +0200 From: Francois Romieu To: Andy Lutomirski Cc: jgarzik@pobox.com, Jon D Mason , netdev@oss.sgi.com Subject: Re: [patch 0/7] 2.6.6-rc3-mm1 - description of the r8169 queue Message-ID: <20040502225117.A24214@electric-eye.fr.zoreil.com> References: <20040501022308.A32762@electric-eye.fr.zoreil.com> <40954DE9.3020209@myrealbox.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.2.5.1i In-Reply-To: <40954DE9.3020209@myrealbox.com>; from luto@myrealbox.com on Sun, May 02, 2004 at 12:37:13PM -0700 X-Organisation: Land of Sunshine Inc. X-archive-position: 5001 X-ecartis-version: Ecartis v1.0.0 Sender: netdev-bounce@oss.sgi.com Errors-to: netdev-bounce@oss.sgi.com X-original-sender: romieu@fr.zoreil.com Precedence: bulk X-list: netdev Andy Lutomirski : [...] > 3. NAPI is missing from Kconfig It appears in patch 1/7 but it has not been included in the global patch which is available online (fixed by now). This part of your patch should be ignored. The remaining parts are fine. > These patches also chance the initial chipset reset timer from 2 jiffies > to 100ms (for HZ-independence, and 2ms sounds overly short.) Compared to the initial busy-looping, the 2ms timer did not look _that_ inefficient :o) As the reset is expected to take place in 0.5s at worst, your change makes more sense. -- Ueimor From davem@redhat.com Sun May 2 22:18:49 2004 Received: with ECARTIS (v1.0.0; list netdev); Sun, 02 May 2004 22:18:58 -0700 (PDT) Received: from mx1.redhat.com (mx1.redhat.com [66.187.233.31]) by oss.sgi.com (8.12.10/8.12.9) with SMTP id i435ImKO032496 for ; Sun, 2 May 2004 22:18:49 -0700 Received: from int-mx1.corp.redhat.com (int-mx1.corp.redhat.com [172.16.52.254]) by mx1.redhat.com (8.12.10/8.12.10) with ESMTP id i435IikG014988; Mon, 3 May 2004 01:18:44 -0400 Received: from devserv.devel.redhat.com (devserv.devel.redhat.com [172.16.58.1]) by int-mx1.corp.redhat.com (8.11.6/8.11.6) with ESMTP id i435Iiv01808; Mon, 3 May 2004 01:18:44 -0400 Received: from cheetah.davemloft.net (localhost.localdomain [127.0.0.1]) by devserv.devel.redhat.com (8.12.10/8.12.10) with SMTP id i435IcKv025919; Mon, 3 May 2004 01:18:38 -0400 Date: Sun, 2 May 2004 22:17:05 -0700 From: "David S. Miller" To: Nivedita Singhvi Cc: akpm@osdl.org, netdev@oss.sgi.com, jan@ixiacom.com Subject: Re: [PATCH 2.6.5] Re: Fw: Stack sends SYN/ACKs even though accept queue is full Message-Id: <20040502221705.4e7adef2.davem@redhat.com> In-Reply-To: <4092EAD7.5080207@us.ibm.com> References: <4092EAD7.5080207@us.ibm.com> X-Mailer: Sylpheed version 0.9.10 (GTK+ 1.2.10; sparc-unknown-linux-gnu) X-Face: "_;p5u5aPsO,_Vsx"^v-pEq09'CU4&Dc1$fQExov$62l60cgCc%FnIwD=.UF^a>?5'9Kn[;433QFVV9M..2eN.@4ZWPGbdi<=?[:T>y?SD(R*-3It"Vj:)"dP Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-archive-position: 5002 X-ecartis-version: Ecartis v1.0.0 Sender: netdev-bounce@oss.sgi.com Errors-to: netdev-bounce@oss.sgi.com X-original-sender: davem@redhat.com Precedence: bulk X-list: netdev On Fri, 30 Apr 2004 17:09:59 -0700 Nivedita Singhvi wrote: > Normally, I think the expected behaviour was that connections > would be short-lived. This is a reasonable expectation for most > web-servers etc. I don't know how relevant the "lifespan" of a connection is in this case. Servers tend to sip from the accept queue in a seperate thread or approximate such behavior. Therefore we have two time-frames, the incoming connection acceptq one and the one that actually deals with the established state data transation. You're talking about the latter, and the behavior in question is about the former. I really haven't seen a convincing argument yet to change the behavior here, I think it's sane but I'm ready to be convinced otherwise :-) From shemminger@osdl.org Mon May 3 11:05:29 2004 Received: with ECARTIS (v1.0.0; list netdev); Mon, 03 May 2004 11:05:33 -0700 (PDT) Received: from mail.osdl.org (fw.osdl.org [65.172.181.6]) by oss.sgi.com (8.12.10/8.12.9) with SMTP id i43I5SKO002178 for ; Mon, 3 May 2004 11:05:29 -0700 Received: from dell_ss3.pdx.osdl.net (dell_ss3.pdx.osdl.net [172.20.1.60]) by mail.osdl.org (8.11.6/8.11.6) with SMTP id i43I5H206932; Mon, 3 May 2004 11:05:18 -0700 Date: Mon, 3 May 2004 11:05:17 -0700 From: Stephen Hemminger To: Francois Romieu Cc: netdev@oss.sgi.com Subject: [PATCH] r8169 warning from 64 bit constant Message-Id: <20040503110517.3a144b46@dell_ss3.pdx.osdl.net> Organization: Open Source Development Lab X-Mailer: Sylpheed version 0.9.9claws (GTK+ 1.2.10; i386-redhat-linux-gnu) X-Face: &@E+xe?c%:&e4D{>f1O<&U>2qwRREG5!}7R4;D<"NO^UI2mJ[eEOA2*3>(`Th.yP,VDPo9$ /`~cw![cmj~~jWe?AHY7D1S+\}5brN0k*NE?pPh_'_d>6;XGG[\KDRViCfumZT3@[ Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-archive-position: 5003 X-ecartis-version: Ecartis v1.0.0 Sender: netdev-bounce@oss.sgi.com Errors-to: netdev-bounce@oss.sgi.com X-original-sender: shemminger@osdl.org Precedence: bulk X-list: netdev Need 'ull' on end of a 64 bit constant to get rid of warning. diff -Nru a/drivers/net/r8169.c b/drivers/net/r8169.c --- a/drivers/net/r8169.c Mon May 3 11:02:57 2004 +++ b/drivers/net/r8169.c Mon May 3 11:02:57 2004 @@ -1156,7 +1156,7 @@ static inline void rtl8169_make_unusable_by_asic(struct RxDesc *desc) { - desc->addr = 0x0badbadbadbadbad; + desc->addr = 0x0badbadbadbadbadull; desc->status &= ~cpu_to_le32(OWNbit | RsvdMask); } From romieu@fr.zoreil.com Mon May 3 13:21:01 2004 Received: with ECARTIS (v1.0.0; list netdev); Mon, 03 May 2004 13:21:04 -0700 (PDT) Received: from fr.zoreil.com (electric-eye.fr.zoreil.com [213.41.134.224]) by oss.sgi.com (8.12.10/8.12.9) with SMTP id i43KKvKO007902 for ; Mon, 3 May 2004 13:21:00 -0700 Received: from electric-eye.fr.zoreil.com (localhost.localdomain [127.0.0.1]) by fr.zoreil.com (8.12.8/8.12.1) with ESMTP id i43KJduX004668; Mon, 3 May 2004 22:19:39 +0200 Received: (from romieu@localhost) by electric-eye.fr.zoreil.com (8.12.8/8.12.1) id i43KJdLm004667; Mon, 3 May 2004 22:19:39 +0200 Date: Mon, 3 May 2004 22:19:39 +0200 From: Francois Romieu To: Stephen Hemminger Cc: netdev@oss.sgi.com Subject: Re: [PATCH] r8169 warning from 64 bit constant Message-ID: <20040503221939.A4612@electric-eye.fr.zoreil.com> References: <20040503110517.3a144b46@dell_ss3.pdx.osdl.net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.2.5.1i In-Reply-To: <20040503110517.3a144b46@dell_ss3.pdx.osdl.net>; from shemminger@osdl.org on Mon, May 03, 2004 at 11:05:17AM -0700 X-Organisation: Land of Sunshine Inc. X-archive-position: 5004 X-ecartis-version: Ecartis v1.0.0 Sender: netdev-bounce@oss.sgi.com Errors-to: netdev-bounce@oss.sgi.com X-original-sender: romieu@fr.zoreil.com Precedence: bulk X-list: netdev Stephen Hemminger : > Need 'ull' on end of a 64 bit constant to get rid of warning. It is included in the patch 2/7 of the serie which has been sent the first of may 2005 (actually it was already in Andy Lutomirski's first patch). -- Ueimor From sri@us.ibm.com Mon May 3 14:20:39 2004 Received: with ECARTIS (v1.0.0; list netdev); Mon, 03 May 2004 14:20:47 -0700 (PDT) Received: from e6.ny.us.ibm.com (e6.ny.us.ibm.com [32.97.182.106]) by oss.sgi.com (8.12.10/8.12.9) with SMTP id i43LKWKO009063 for ; Mon, 3 May 2004 14:20:39 -0700 Received: from northrelay04.pok.ibm.com (northrelay04.pok.ibm.com [9.56.224.206]) by e6.ny.us.ibm.com (8.12.10/8.12.2) with ESMTP id i43LKKfQ440588; Mon, 3 May 2004 17:20:20 -0400 Received: from w-sridhar.beaverton.ibm.com ([9.56.224.216]) by northrelay04.pok.ibm.com (8.12.10/NCO/VER6.6) with ESMTP id i43LKnBL101328; Mon, 3 May 2004 17:20:50 -0400 Date: Mon, 3 May 2004 14:20:18 -0700 (PDT) From: Sridhar Samudrala X-X-Sender: sridhar@localhost.localdomain To: davem@redhat.com cc: netdev@oss.sgi.com, lksctp-developers@lists.sourceforge.net Subject: [BK PATCH] minor SCTP updates Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-archive-position: 5005 X-ecartis-version: Ecartis v1.0.0 Sender: netdev-bounce@oss.sgi.com Errors-to: netdev-bounce@oss.sgi.com X-original-sender: sri@us.ibm.com Precedence: bulk X-list: netdev Dave, Please do a bk pull http://linux-lksctp.bkbits.net/lksctp-2.5.work & bk pull http://linux-lksctp.bkbits.net/lksctp-2.4.work to get the following udpates to 2.6 and 2.4 SCTP. Thanks Sridhar # This is a BitKeeper generated diff -Nru style patch. # # ChangeSet # 2004/05/03 11:17:48-07:00 sri@us.ibm.com # [SCTP] Rename SCTP_ADDR_REACHABLE as SCTP_ADDR_AVAILABLE to be # consistent with the SCTP sockets API draft. # # net/sctp/associola.c # include/net/sctp/user.h # include/net/sctp/constants.h # # ChangeSet # 2004/05/03 11:14:28-07:00 sri@us.ibm.com # [SCTP] Fix bugs in handling overlapping INIT and peer restart over a # multihomed association. # # net/sctp/associola.c # # ChangeSet # 2004/05/03 11:11:07-07:00 shemminger@osdl.org # [PATCH] SCTP crc table can be static const # # net/sctp/crc32c.c # diff -Nru a/include/net/sctp/constants.h b/include/net/sctp/constants.h --- a/include/net/sctp/constants.h Mon May 3 14:12:01 2004 +++ b/include/net/sctp/constants.h Mon May 3 14:12:01 2004 @@ -231,11 +231,6 @@ /* This is a table of printable names of sctp_state_t's. */ extern const char *sctp_state_tbl[], *sctp_evttype_tbl[], *sctp_status_tbl[]; -/* SCTP reachability state for each address */ -#define SCTP_ADDR_NOHB 4 -#define SCTP_ADDR_REACHABLE 2 -#define SCTP_ADDR_NOT_REACHABLE 1 - /* Maximum chunk length considering padding requirements. */ enum { SCTP_MAX_CHUNK_LEN = ((1<<16) - sizeof(__u32)) }; diff -Nru a/include/net/sctp/user.h b/include/net/sctp/user.h --- a/include/net/sctp/user.h Mon May 3 14:12:01 2004 +++ b/include/net/sctp/user.h Mon May 3 14:12:01 2004 @@ -1,7 +1,7 @@ /* SCTP kernel reference Implementation + * (C) Copyright IBM Corp. 2001, 2004 * Copyright (c) 1999-2000 Cisco, Inc. * Copyright (c) 1999-2001 Motorola, Inc. - * Copyright (c) 2001-2003 International Business Machines, Corp. * Copyright (c) 2002 Intel Corp. * * This file is part of the SCTP kernel reference Implementation @@ -246,7 +246,7 @@ * event that happened to the address. They include: */ enum sctp_spc_state { - SCTP_ADDR_REACHABLE, + SCTP_ADDR_AVAILABLE, SCTP_ADDR_UNREACHABLE, SCTP_ADDR_REMOVED, SCTP_ADDR_ADDED, diff -Nru a/net/sctp/associola.c b/net/sctp/associola.c --- a/net/sctp/associola.c Mon May 3 14:12:01 2004 +++ b/net/sctp/associola.c Mon May 3 14:12:01 2004 @@ -608,7 +608,7 @@ switch (command) { case SCTP_TRANSPORT_UP: transport->active = SCTP_ACTIVE; - spc_state = SCTP_ADDR_REACHABLE; + spc_state = SCTP_ADDR_AVAILABLE; break; case SCTP_TRANSPORT_DOWN: @@ -936,6 +936,9 @@ void sctp_assoc_update(struct sctp_association *asoc, struct sctp_association *new) { + struct sctp_transport *trans; + struct list_head *pos, *temp; + /* Copy in new parameters of peer. */ asoc->c = new->c; asoc->peer.rwnd = new->peer.rwnd; @@ -944,20 +947,19 @@ sctp_tsnmap_init(&asoc->peer.tsn_map, SCTP_TSN_MAP_SIZE, asoc->peer.i.initial_tsn); - /* FIXME: - * Do we need to copy primary_path etc? - * - * More explicitly, addresses may have been removed and - * this needs accounting for. - */ + /* Remove any peer addresses not present in the new association. */ + list_for_each_safe(pos, temp, &asoc->peer.transport_addr_list) { + trans = list_entry(pos, struct sctp_transport, transports); + if (!sctp_assoc_lookup_paddr(new, &trans->ipaddr)) + sctp_assoc_del_peer(asoc, &trans->ipaddr); + } /* If the case is A (association restart), use * initial_tsn as next_tsn. If the case is B, use * current next_tsn in case data sent to peer * has been discarded and needs retransmission. */ - if (sctp_state(asoc, ESTABLISHED)) { - + if (asoc->state >= SCTP_STATE_ESTABLISHED) { asoc->next_tsn = new->next_tsn; asoc->ctsn_ack_point = new->ctsn_ack_point; asoc->adv_peer_ack_point = new->adv_peer_ack_point; @@ -968,6 +970,15 @@ sctp_ssnmap_clear(asoc->ssnmap); } else { + /* Add any peer addresses from the new association. */ + list_for_each(pos, &new->peer.transport_addr_list) { + trans = list_entry(pos, struct sctp_transport, + transports); + if (!sctp_assoc_lookup_paddr(asoc, &trans->ipaddr)) + sctp_assoc_add_peer(asoc, &trans->ipaddr, + GFP_ATOMIC); + } + asoc->ctsn_ack_point = asoc->next_tsn - 1; asoc->adv_peer_ack_point = asoc->ctsn_ack_point; if (!asoc->ssnmap) { @@ -976,7 +987,6 @@ new->ssnmap = NULL; } } - } /* Update the retran path for sending a retransmitted packet. diff -Nru a/net/sctp/crc32c.c b/net/sctp/crc32c.c --- a/net/sctp/crc32c.c Mon May 3 14:12:01 2004 +++ b/net/sctp/crc32c.c Mon May 3 14:12:01 2004 @@ -69,7 +69,7 @@ /* with 24 and 32 Parity Bits", */ /* IEEE Transactions on Communications, Vol.41, No.6, June 1993 */ /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ -__u32 crc_c[256] = { +static const __u32 crc_c[256] = { 0x00000000, 0xF26B8303, 0xE13B70F7, 0x1350F3F4, 0xC79A971F, 0x35F1141C, 0x26A1E7E8, 0xD4CA64EB, 0x8AD958CF, 0x78B2DBCC, 0x6BE22838, 0x9989AB3B, From c-d.hailfinger.kernel.2004@gmx.net Mon May 3 14:38:39 2004 Received: with ECARTIS (v1.0.0; list netdev); Mon, 03 May 2004 14:38:42 -0700 (PDT) Received: from mail.gmx.net (mail.gmx.net [213.165.64.20]) by oss.sgi.com (8.12.10/8.12.9) with SMTP id i43LcbKO009518 for ; Mon, 3 May 2004 14:38:38 -0700 Received: (qmail 26854 invoked by uid 65534); 3 May 2004 21:38:31 -0000 Received: from stud222006.studentenheim.uni-tuebingen.de (EHLO gmx.net) (134.2.222.6) by mail.gmx.net (mp022) with SMTP; 03 May 2004 23:38:31 +0200 X-Authenticated: #21910825 Message-ID: <4096BBC8.60509@gmx.net> Date: Mon, 03 May 2004 23:38:16 +0200 From: Carl-Daniel Hailfinger User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.6) Gecko/20040114 X-Accept-Language: de, en MIME-Version: 1.0 To: Linux Kernel Mailing List CC: Netdev , Jeff Garzik Subject: [PATCH] tulip driver deadlocks on device removal Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-archive-position: 5006 X-ecartis-version: Ecartis v1.0.0 Sender: netdev-bounce@oss.sgi.com Errors-to: netdev-bounce@oss.sgi.com X-original-sender: c-d.hailfinger.kernel.2004@gmx.net Precedence: bulk X-list: netdev Hi, I have a CardBus network card with tulip chipset: # lspci -nv [...] 0000:05:00.0 Class 0200: 13d1:ab02 (rev 11) Subsystem: 13d1:ab02 Flags: bus master, medium devsel, latency 64, IRQ 11 I/O ports at 4800 [size=268M] Memory at 11000000 (32-bit, non-prefetchable) [size=1K] Expansion ROM at 00020000 [disabled] Capabilities: [c0] Power Management version 2 If I remove the card, my machine freezes instantly. This is due to a stupid dev->poll function of the tulip driver. drivers/net/tulip/interrupt.c:tulip_poll() gets stuck in an endless loop in interrupt context if the hardware returns 0xffffffff on certain reads. But this is exactly what happens if you remove a pci device. My patch replaces the deadlock with something resembling a livelock. At least SysRq-S works now because we leave the poll function after some time. However, the poll function is called again and again and again regardless of its return value. How can I stop that? Carl-Daniel --- a/drivers/net/tulip/interrupt.c 2004-05-03 20:31:14.000000000 +0200 +++ b/drivers/net/tulip/interrupt.c 2004-05-03 20:51:06.000000000 +0200 @@ -113,6 +113,7 @@ int entry = tp->cur_rx % RX_RING_SIZE; int rx_work_limit = *budget; int received = 0; + int innercnt = 0; if (!netif_running(dev)) goto done; @@ -129,10 +130,12 @@ #endif if (tulip_debug > 4) - printk(KERN_DEBUG " In tulip_rx(), entry %d %8.8x.\n", entry, + printk(KERN_DEBUG " In tulip_poll(), entry %d %8.8x.\n", entry, tp->rx_ring[entry].status); do { + innercnt++; + /* Acknowledge current RX interrupt sources. */ outl((RxIntr | RxNoBuf), dev->base_addr + CSR5); @@ -141,12 +144,13 @@ while ( ! (tp->rx_ring[entry].status & cpu_to_le32(DescOwned))) { s32 status = le32_to_cpu(tp->rx_ring[entry].status); + innercnt = 0; if (tp->dirty_rx + RX_RING_SIZE == tp->cur_rx) break; if (tulip_debug > 5) - printk(KERN_DEBUG "%s: In tulip_rx(), entry %d %8.8x.\n", + printk(KERN_DEBUG "%s: In tulip_poll(), entry %d %8.8x.\n", dev->name, entry, status); if (--rx_work_limit < 0) goto not_done; @@ -254,6 +258,11 @@ * No idea how to fix this if "playing with fire" will fail * tomorrow (night 011029). If it will not fail, we won * finally: amount of IO did not increase at all. */ + if (innercnt > 5) { + printk(KERN_INFO "More than five loops without doing anything!\n"); + goto not_done; + } + } while ((inl(dev->base_addr + CSR5) & RxIntr)); done: @@ -321,8 +330,10 @@ return 0; not_done: - if (!received) { + if (!received && (innercnt <= 5)) { + printk(KERN_NOTICE "tulip_poll: Bugger. This does not happen.\n"); + /* If it is not going to happen, why do anything about it? */ received = dev->quota; /* Not to happen */ } dev->quota -= received; From scott.feldman@intel.com Mon May 3 15:02:18 2004 Received: with ECARTIS (v1.0.0; list netdev); Mon, 03 May 2004 15:02:22 -0700 (PDT) Received: from fmsfmr004.fm.intel.com (fmr11.intel.com [192.55.52.31]) by oss.sgi.com (8.12.10/8.12.9) with SMTP id i43M2HKO010245 for ; Mon, 3 May 2004 15:02:18 -0700 Received: from petasus.fm.intel.com (petasus.fm.intel.com [10.1.192.37]) by fmsfmr004.fm.intel.com (8.12.9-20030918-01/8.12.9/d: major-outer.mc,v 1.15 2004/01/30 18:16:28 root Exp $) with ESMTP id i43M2S53025982; Mon, 3 May 2004 22:02:28 GMT Received: from fmsmsxvs040.fm.intel.com (fmsmsxvs040.fm.intel.com [132.233.42.124]) by petasus.fm.intel.com (8.12.9-20030918-01/8.12.9/d: major-inner.mc,v 1.10 2004/03/01 19:21:36 root Exp $) with SMTP id i43M2I7m032505; Mon, 3 May 2004 22:02:27 GMT Received: from sfeldma-ich5.jf.intel.com ([134.134.3.54]) by fmsmsxvs040.fm.intel.com (SAVSMTP 3.1.2.35) with SMTP id M2004050315020831873 ; Mon, 03 May 2004 15:02:08 -0700 Date: Mon, 3 May 2004 14:58:35 -0700 (PDT) From: Scott Feldman To: jgarzik@pobox.com cc: netdev@oss.sgi.com, scott.feldman@intel.com Subject: [e100 2.6 1/2] Message-ID: ReplyTo: "Scott Feldman" MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-Scanned-By: MIMEDefang 2.31 (www . roaringpenguin . com / mimedefang) X-archive-position: 5007 X-ecartis-version: Ecartis v1.0.0 Sender: netdev-bounce@oss.sgi.com Errors-to: netdev-bounce@oss.sgi.com X-original-sender: scott.feldman@intel.com Precedence: bulk X-list: netdev * Change mapping on Rx SKB to bi-directional. skb->data holds both the RFD structure and the packet data, and the RFD is read/written by HW. Issue found on XScale HW that doesn't handle cache syncs auto- matically. Other changes in patch are whitespace/spelling. ----------------- --- linux-2.5/drivers/net/e100.c 2004-05-03 14:43:27.198629944 -0700 +++ linux-2.5/drivers/net/e100.c.mod 2004-05-03 14:46:27.174269488 -0700 @@ -1392,12 +1392,12 @@ static inline int e100_rx_alloc_skb(stru if(!(rx->skb = dev_alloc_skb(RFD_BUF_LEN + rx_offset))) return -ENOMEM; - /* Align, init, and map the RFA. */ + /* Align, init, and map the RFD. */ rx->skb->dev = nic->netdev; skb_reserve(rx->skb, rx_offset); memcpy(rx->skb->data, &nic->blank_rfd, sizeof(struct rfd)); rx->dma_addr = pci_map_single(nic->pdev, rx->skb->data, - RFD_BUF_LEN, PCI_DMA_FROMDEVICE); + RFD_BUF_LEN, PCI_DMA_BIDIRECTIONAL); /* Link the RFD to end of RFA by linking previous RFD to * this one, and clearing EL bit of previous. */ @@ -1408,7 +1408,7 @@ static inline int e100_rx_alloc_skb(stru wmb(); prev_rfd->command &= ~cpu_to_le16(cb_el); pci_dma_sync_single_for_device(nic->pdev, rx->prev->dma_addr, - sizeof(struct rfd), PCI_DMA_TODEVICE); + sizeof(struct rfd), PCI_DMA_TODEVICE); } return 0; @@ -1426,7 +1426,7 @@ static inline int e100_rx_indicate(struc /* Need to sync before taking a peek at cb_complete bit */ pci_dma_sync_single_for_cpu(nic->pdev, rx->dma_addr, - sizeof(struct rfd), PCI_DMA_FROMDEVICE); + sizeof(struct rfd), PCI_DMA_FROMDEVICE); rfd_status = le16_to_cpu(rfd->status); DPRINTK(RX_STATUS, DEBUG, "status=0x%04X\n", rfd_status); @@ -1442,7 +1442,7 @@ static inline int e100_rx_indicate(struc /* Get data */ pci_unmap_single(nic->pdev, rx->dma_addr, - RFD_BUF_LEN, PCI_DMA_FROMDEVICE); + RFD_BUF_LEN, PCI_DMA_FROMDEVICE); /* Pull off the RFD and put the actual data (minus eth hdr) */ skb_reserve(skb, sizeof(struct rfd)); From romieu@fr.zoreil.com Mon May 3 16:21:03 2004 Received: with ECARTIS (v1.0.0; list netdev); Mon, 03 May 2004 16:21:09 -0700 (PDT) Received: from fr.zoreil.com (electric-eye.fr.zoreil.com [213.41.134.224]) by oss.sgi.com (8.12.10/8.12.9) with SMTP id i43NKvKO017354 for ; Mon, 3 May 2004 16:21:02 -0700 Received: from electric-eye.fr.zoreil.com (localhost.localdomain [127.0.0.1]) by fr.zoreil.com (8.12.8/8.12.1) with ESMTP id i43NIZuX007090; Tue, 4 May 2004 01:18:35 +0200 Received: (from romieu@localhost) by electric-eye.fr.zoreil.com (8.12.8/8.12.1) id i43NIZZe007089; Tue, 4 May 2004 01:18:35 +0200 Date: Tue, 4 May 2004 01:18:35 +0200 From: Francois Romieu To: netdev@oss.sgi.com Cc: jgarzik@pobox.com Subject: [patch] 2.4.27-pre1 - r8169 backport Message-ID: <20040504011835.B4612@electric-eye.fr.zoreil.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.2.5.1i X-Organisation: Land of Sunshine Inc. X-archive-position: 5008 X-ecartis-version: Ecartis v1.0.0 Sender: netdev-bounce@oss.sgi.com Errors-to: netdev-bounce@oss.sgi.com X-original-sender: romieu@fr.zoreil.com Precedence: bulk X-list: netdev A backport of the 2.6.6-rc3 r8169 driver against 2.4.27-pre1 is available. All in one patch against 2.4.27-pre1: http://www.fr.zoreil.com/people/francois/misc/20040504-2.4.27-pre1-r8169.c-test.patch Individual files: http://www.fr.zoreil.com/linux/kernel/2.4.x/2.4.27-pre1 Tarball: http://www.fr.zoreil.com/linux/kernel/2.4.x/2.4.27-pre1/r8169-blob.tar.bz2 From romieu@fr.zoreil.com Mon May 3 16:24:54 2004 Received: with ECARTIS (v1.0.0; list netdev); Mon, 03 May 2004 16:24:57 -0700 (PDT) Received: from fr.zoreil.com (electric-eye.fr.zoreil.com [213.41.134.224]) by oss.sgi.com (8.12.10/8.12.9) with SMTP id i43NOqKO018039 for ; Mon, 3 May 2004 16:24:53 -0700 Received: from electric-eye.fr.zoreil.com (localhost.localdomain [127.0.0.1]) by fr.zoreil.com (8.12.8/8.12.1) with ESMTP id i43NO1uX007206; Tue, 4 May 2004 01:24:01 +0200 Received: (from romieu@localhost) by electric-eye.fr.zoreil.com (8.12.8/8.12.1) id i43NO0xE007205; Tue, 4 May 2004 01:24:00 +0200 Date: Tue, 4 May 2004 01:24:00 +0200 From: Francois Romieu To: netdev@oss.sgi.com Cc: jgarzik@pobox.com Subject: [patch] 2.6.6-rc3 - r8169 rediff Message-ID: <20040504012400.C4612@electric-eye.fr.zoreil.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.2.5.1i X-Organisation: Land of Sunshine Inc. X-archive-position: 5009 X-ecartis-version: Ecartis v1.0.0 Sender: netdev-bounce@oss.sgi.com Errors-to: netdev-bounce@oss.sgi.com X-original-sender: romieu@fr.zoreil.com Precedence: bulk X-list: netdev A set of patches against 2.6.6-rc3 which includes the fixes issued yesterday by Andy Lutomirski is available. All in one patch against 2.6.6-rc3: http://www.fr.zoreil.com/people/francois/misc/20040504-2.6.6-rc3-r8169.c-test.patch Individual files: http://www.fr.zoreil.com/linux/kernel/2.6.x/2.6.6-rc3-01 Tarball: http://www.fr.zoreil.com/linux/kernel/2.6.x/2.6.6-rc3-01/r8169-blob.tar.bz2 -- Ueimor From davem@redhat.com Mon May 3 19:59:50 2004 Received: with ECARTIS (v1.0.0; list netdev); Mon, 03 May 2004 19:59:53 -0700 (PDT) Received: from mx1.redhat.com (mx1.redhat.com [66.187.233.31]) by oss.sgi.com (8.12.10/8.12.9) with SMTP id i442xnKO022459 for ; Mon, 3 May 2004 19:59:50 -0700 Received: from int-mx1.corp.redhat.com (int-mx1.corp.redhat.com [172.16.52.254]) by mx1.redhat.com (8.12.10/8.12.10) with ESMTP id i442xlkG015817; Mon, 3 May 2004 22:59:47 -0400 Received: from devserv.devel.redhat.com (devserv.devel.redhat.com [172.16.58.1]) by int-mx1.corp.redhat.com (8.11.6/8.11.6) with ESMTP id i442xlv18343; Mon, 3 May 2004 22:59:47 -0400 Received: from cheetah.davemloft.net (localhost.localdomain [127.0.0.1]) by devserv.devel.redhat.com (8.12.10/8.12.10) with SMTP id i442xfKv002958; Mon, 3 May 2004 22:59:41 -0400 Date: Mon, 3 May 2004 19:58:02 -0700 From: "David S. Miller" To: Sridhar Samudrala Cc: netdev@oss.sgi.com, lksctp-developers@lists.sourceforge.net Subject: Re: [BK PATCH] minor SCTP updates Message-Id: <20040503195802.1cf5b439.davem@redhat.com> In-Reply-To: References: X-Mailer: Sylpheed version 0.9.10 (GTK+ 1.2.10; sparc-unknown-linux-gnu) X-Face: "_;p5u5aPsO,_Vsx"^v-pEq09'CU4&Dc1$fQExov$62l60cgCc%FnIwD=.UF^a>?5'9Kn[;433QFVV9M..2eN.@4ZWPGbdi<=?[:T>y?SD(R*-3It"Vj:)"dP Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-archive-position: 5010 X-ecartis-version: Ecartis v1.0.0 Sender: netdev-bounce@oss.sgi.com Errors-to: netdev-bounce@oss.sgi.com X-original-sender: davem@redhat.com Precedence: bulk X-list: netdev Both pulled, thanks Sridhar. From jan@ixiacom.com Mon May 3 20:10:51 2004 Received: with ECARTIS (v1.0.0; list netdev); Mon, 03 May 2004 20:10:56 -0700 (PDT) Received: from racerx.ixiacom.com (64-60-75-69.cust.telepacific.net [64.60.75.69]) by oss.sgi.com (8.12.10/8.12.9) with SMTP id i443AnKO022981 for ; Mon, 3 May 2004 20:10:50 -0700 Received: by racerx.ixiacom.com with Internet Mail Service (5.5.2657.72) id ; Mon, 3 May 2004 20:10:46 -0700 Message-ID: <15FDCE057B48784C80836803AE3598D50627AC99@racerx.ixiacom.com> From: Jan Olderdissen To: "'Nivedita Singhvi'" Cc: netdev@oss.sgi.com, David Miller , Andrew Morton , Thomas Ameling Subject: RE: [PATCH 2.6.5] Re: Fw: Stack sends SYN/ACKs even though accept queue is full Date: Mon, 3 May 2004 20:10:45 -0700 MIME-Version: 1.0 X-Mailer: Internet Mail Service (5.5.2657.72) Content-Type: text/plain; charset="iso-8859-1" X-archive-position: 5011 X-ecartis-version: Ecartis v1.0.0 Sender: netdev-bounce@oss.sgi.com Errors-to: netdev-bounce@oss.sgi.com X-original-sender: jan@ixiacom.com Precedence: bulk X-list: netdev Nivedita, > Attaching a patch which adds a sysctl to turn off this > behaviour. Could you test this, please? Patch against > 2.6.5 vanilla kernel. If you need a 2.4 version, let me > know. Thomas tested your patch against 2.6.5 with success. The patch didn't apply cleanly against the sources he was using, but after some twiddling it did the job. Internally, we'll use the 2.4.21 patch, of course. Thanks! Jan From luto@myrealbox.com Mon May 3 22:32:30 2004 Received: with ECARTIS (v1.0.0; list netdev); Mon, 03 May 2004 22:32:40 -0700 (PDT) Received: from smtp-roam.Stanford.EDU (smtp-roam.Stanford.EDU [171.64.10.152]) by oss.sgi.com (8.12.10/8.12.9) with SMTP id i445WSKO001558 for ; Mon, 3 May 2004 22:32:29 -0700 Received: from [10.0.0.2] (luto.Stanford.EDU [128.12.71.50]) (authenticated bits=0) by smtp-roam.Stanford.EDU (8.12.11/8.12.11) with ESMTP id i42MYvi0009028 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT); Sun, 2 May 2004 15:34:57 -0700 Message-ID: <4095776D.3050006@myrealbox.com> Date: Sun, 02 May 2004 15:34:21 -0700 From: Andy Lutomirski User-Agent: Mozilla Thunderbird 0.6b (Windows/20040426) X-Accept-Language: en-us, en MIME-Version: 1.0 To: Francois Romieu CC: jgarzik@pobox.com, Andy Lutomirski , Jon D Mason , netdev@oss.sgi.com Subject: Re: [patch 0/7] 2.6.6-rc3-mm1 - description of the r8169 queue [resend] References: <20040501022308.A32762@electric-eye.fr.zoreil.com> In-Reply-To: <20040501022308.A32762@electric-eye.fr.zoreil.com> Content-Type: multipart/mixed; boundary="------------010007000303060502050603" X-archive-position: 5012 X-ecartis-version: Ecartis v1.0.0 Sender: netdev-bounce@oss.sgi.com Errors-to: netdev-bounce@oss.sgi.com X-original-sender: luto@myrealbox.com Precedence: bulk X-list: netdev This is a multi-part message in MIME format. --------------010007000303060502050603 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit [resend -- I'm not sure the first one went out] Three problems: 1. ethtool forgets to report link status 2. On my system, this driver can't bring up the link. That's because the PHY reset timer of 1 second is WAAAY too short -- the PHY gets stuck in a reset loop. (In the old driver it was 12 seconds because there was a multiplier in the timer.) 3. NAPI is missing from Kconfig These patches also chance the initial chipset reset timer from 2 jiffies to 100ms (for HZ-independence, and 2ms sounds overly short.) --Andy Francois Romieu wrote: > With some delay, the following patches include Jon D Mason's NAPI changes > (+ fixes) and code from Andy Lutomirski with minor changes. > I have not moved the initialization of the phy timer in the pci probe > routine as: > - I believe it belongs to the netdevice; > - it should work as is without significant change for the user. > > If someone sees a good reason to move it, just complain (with an axe). > > The patches apply to 2.6.6-rc3 as well as to 2.6.6-rc3-mm1. > > All the patches are merged in a single patch against 2.6.6-rc3 available at: > http://www.fr.zoreil.com/people/francois/misc/20040501-2.6.6-rc3-r8169.c-test.patch > > The patches are archived below as well: > http://www.fr.zoreil.com/linux/kernel/2.6.x/2.6.6-rc3 > > If the patches prove to behave decently on 2.6, a backport for 2.4.x will be > generated. > > -- > Ueimor --------------010007000303060502050603 Content-Type: text/plain; name="r8169_new_fixes" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="r8169_new_fixes" --- linux-2.6.6-rc2/drivers/net/r8169.c~fr 2004-04-30 23:27:48.683174600 -0700 +++ linux-2.6.6-rc2/drivers/net/r8169.c 2004-05-02 12:31:00.720041072 -0700 @@ -111,7 +111,7 @@ #define RTL_MIN_IO_SIZE 0x80 #define RTL8169_TX_TIMEOUT (6*HZ) -#define RTL8169_PHY_TIMEOUT (HZ) +#define RTL8169_PHY_TIMEOUT (10*HZ) /* write/read MMIO register */ #define RTL_W8(reg, val8) writeb ((val8), ioaddr + (reg)) @@ -593,6 +593,7 @@ static struct ethtool_ops rtl8169_ethtool_ops = { .get_drvinfo = rtl8169_get_drvinfo, + .get_link = ethtool_op_get_link, .get_settings = rtl8169_get_settings, .set_settings = rtl8169_set_settings, }; @@ -782,7 +783,7 @@ * A busy loop could burn quite a few cycles on nowadays CPU. * Let's delay the execution of the timer for a few ticks. */ - timeout = 2; + timeout = HZ/10; goto out_mod_timer; } --------------010007000303060502050603 Content-Type: text/plain; name="r8169_kconfig" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="r8169_kconfig" --- linux-2.6.6-rc2/drivers/net/Kconfig~r8169_napi 2004-05-02 12:34:44.810974072 -0700 +++ linux-2.6.6-rc2/drivers/net/Kconfig 2004-05-02 12:35:46.553587768 -0700 @@ -1958,6 +1958,10 @@ To compile this driver as a module, choose M here: the module will be called r8169. This is recommended. +config R8169_NAPI + bool "Realtek 8169 NAPI (EXPERIMENTAL)" + depends on R8169 && EXPERIMENTAL + config SK98LIN tristate "Marvell Yukon Chipset / SysKonnect SK-98xx Support" depends on PCI --------------010007000303060502050603-- From 59419646@laufwerk.de Tue May 4 01:22:47 2004 Received: with ECARTIS (v1.0.0; list netdev); Tue, 04 May 2004 01:22:51 -0700 (PDT) Received: from d103.x-mailer.de (d103.x-mailer.de [212.162.13.230]) by oss.sgi.com (8.12.10/8.12.9) with SMTP id i448MjKO007890 for ; Tue, 4 May 2004 01:22:46 -0700 Received: from [127.0.0.1] (helo=localhost.localdomain) by d103.x-mailer.de with esmtp (Exim 4.24) id 1BKvCN-000431-TO for netdev@oss.sgi.com; Tue, 04 May 2004 10:22:43 +0200 MIME-Version: 1.0 Message-Id: <80151.2236780585@d103.x-mailer.de> Content-Type: text/plain;charset="iso-8859-1" Content-Transfer-Encoding: 8bit To: netdev@oss.sgi.com Subject: Ihre Mail an 59419646@laufwerk.de enthielt einen Virus From: 59419646@laufwerk.de Date: Tue, 04 May 2004 10:22:43 +0200 X-archive-position: 5013 X-ecartis-version: Ecartis v1.0.0 Sender: netdev-bounce@oss.sgi.com Errors-to: netdev-bounce@oss.sgi.com X-original-sender: 59419646@laufwerk.de Precedence: bulk X-list: netdev Die von Ihnen an 59419646@laufwerk.de versandte Mail mit dem Betreff " Password" enthielt einen Virus: ( Worm.SomeFool.AB) Die Mail wurde auf dem Mail-Server gelöscht und NICHT ausgeliefert! Bitte prüfen Sie Ihr System mit einem geeigeneten AntiVirus Scanner. Your mail to 59419646@laufwerk.de with subject " Password" contained malicious content: ( Worm.SomeFool.AB) Your mail was deleted and has not been delivered to the recipient. Please check your system with an anti-virus scanner! From yoshfuji@linux-ipv6.org Tue May 4 06:48:59 2004 Received: with ECARTIS (v1.0.0; list netdev); Tue, 04 May 2004 06:49:04 -0700 (PDT) Received: from yue.hongo.wide.ad.jp ([203.178.140.15]) by oss.sgi.com (8.12.10/8.12.9) with SMTP id i44DmvKO003684 for ; Tue, 4 May 2004 06:48:58 -0700 Received: from localhost (localhost [127.0.0.1]) by yue.hongo.wide.ad.jp (Postfix) with ESMTP id CBAB333CE7 for ; Tue, 4 May 2004 22:49:06 +0900 (JST) Resent-Date: Tue, 04 May 2004 22:49:06 +0900 (JST) Resent-Message-Id: <20040504.224906.123086020.yoshfuji@linux-ipv6.org> Resent-To: netdev@oss.sgi.com Resent-From: YOSHIFUJI Hideaki / =?iso-2022-jp?B?GyRCNUhGIzFRTEAbKEI=?= Organization: USAGI Project X-URL: http://www.yoshifuji.org/%7Ehideaki/ X-Fingerprint: 9022 65EB 1ECF 3AD1 0BDF 80D8 4807 F894 E062 0EEA X-PGP-Key-URL: http://www.yoshifuji.org/%7Ehideaki/hideaki@yoshifuji.org.asc X-Face: "5$Al-.M>NJ%a'@hhZdQm:."qn~PA^gq4o*>iCFToq*bAi#4FRtx}enhuQKz7fNqQz\BYU] $~O_5m-9'}MIs`XGwIEscw;e5b>n"B_?j/AkL~i/MEaZBLP X-Mailer: Mew version 2.2 on Emacs 20.7 / Mule 4.1 (AOI) Subject: Linux 2.6 crypto API and HW accelerators To: linux-crypto@nl.linux.org Cc: linux-kernel@vger.kernel.org X-Mailer: Lotus Notes Release 5.0.10 March 22, 2002 Message-ID: From: remy.gauguey@mindspeed.com Date: Tue, 4 May 2004 15:39:35 +0200 MIME-Version: 1.0 X-MIMETrack: Serialize by Router on SOPHIAM1/Server/Mindspeed(Release 5.0.12 |February 13, 2003) at 05/04/2004 03:39:48 PM, Itemize by SMTP Server on NPBLNH1/Server/Conexant(Release 5.0.12 |February 13, 2003) at 05/04/2004 06:39:48 AM, Serialize by Router on NPBLNH1/Server/Conexant(Release 5.0.12 |February 13, 2003) at 05/04/2004 06:40:01 AM, Serialize complete at 05/04/2004 06:40:01 AM Content-type: text/plain; charset=us-ascii Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org X-archive-position: 5014 X-ecartis-version: Ecartis v1.0.0 Sender: netdev-bounce@oss.sgi.com Errors-to: netdev-bounce@oss.sgi.com X-original-sender: yoshfuji@linux-ipv6.org Precedence: bulk X-list: netdev Hi, I'm currently working on a ARM920T based network processor with arm-linux kernel 2.6.5. This device has a crypto hardware accelerator dedicated to IPsec. In ESP mode the device can do authentication (SHA-1, MD5) as well as encryption (AES, TDES in CBC or ECB mode) in one pass. Unfortunately current Linux 2.6 crypto API doesn't support this kind of hardware accelerator. Current crypto module relies on crypto algorithms which are called for a single operation and for each block. Then, I would like to know if other people are working on the hardware crypto support in kernel 2.6.x. If so, what would be the plan ? crypto api improvement or new IPsec specific hardware support ? Thanks for any feedback or info. Remy Gauguey - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/ From mailadmin@subexgroup.com Tue May 4 06:54:24 2004 Received: with ECARTIS (v1.0.0; list netdev); Tue, 04 May 2004 06:54:29 -0700 (PDT) Received: from mx2.magma.ca (mx2.magma.ca [206.191.0.250]) by oss.sgi.com (8.12.10/8.12.9) with SMTP id i44DsNKO004057 for ; Tue, 4 May 2004 06:54:23 -0700 Received: from in3.magma.ca (in3.magma.ca [206.191.0.249]) by mx2.magma.ca (Magma Relay Server) with ESMTP id i447jQWf025404 for ; Tue, 4 May 2004 03:45:26 -0400 Received: from in3.magma.ca (in3.magma.ca [206.191.0.249] (may be forged)) by in3.magma.ca (Magma's Mail Server) with ESMTP id i447jQZ2006032 for ; Tue, 4 May 2004 03:45:27 -0400 Received: (from mailgate@localhost) by in3.magma.ca (Magma's Mail Server) id i447jQBY006030; Tue, 4 May 2004 03:45:26 -0400 Date: Tue, 4 May 2004 03:45:26 -0400 Message-Id: <200405040745.i447jQBY006030@in3.magma.ca> X-Authentication-Warning: in3.magma.ca: mailgate set sender to mailadmin@subexgroup.com using -f To: netdev@oss.sgi.com From: mailadmin@subexgroup.com Subject: Re: Important m$6h?3p X-archive-position: 5015 X-ecartis-version: Ecartis v1.0.0 Sender: netdev-bounce@oss.sgi.com Errors-to: netdev-bounce@oss.sgi.com X-original-sender: mailadmin@subexgroup.com Precedence: bulk X-list: netdev Hi, No such user found.Please check the Mail ID. Regards Sys Admin Team ---------------- Your original message is below ---------------- This is a multi-part message in MIME format. ------=_NextPart_000_0016----=_NextPart_000_0016 Content-Type: text/plain; charset="Windows-1252" Content-Transfer-Encoding: 7bit See the ghg5%&6gfz65!4Hf55d!46gfgf ++++ Attachment: No Virus found ++++ Norman AntiVirus - www.norman.com ------=_NextPart_000_0016----=_NextPart_000_0016 Content-Type: application/octet-stream; name="important_carrerstoi.zip" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="important_carrerstoi.zip" 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 v7OcVnCVqMqQ6zjJDbwayPUicd