From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753461AbYFNGDz (ORCPT ); Sat, 14 Jun 2008 02:03:55 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1750964AbYFNGDp (ORCPT ); Sat, 14 Jun 2008 02:03:45 -0400 Received: from mx3.mail.elte.hu ([157.181.1.138]:58330 "EHLO mx3.mail.elte.hu" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750701AbYFNGDo (ORCPT ); Sat, 14 Jun 2008 02:03:44 -0400 Date: Sat, 14 Jun 2008 08:03:20 +0200 From: Ingo Molnar To: David Miller Cc: torvalds@linux-foundation.org, akpm@linux-foundation.org, netdev@vger.kernel.org, linux-kernel@vger.kernel.org, "Rafael J. Wysocki" Subject: Re: [GIT]: Networking Message-ID: <20080614060320.GA18454@elte.hu> References: <20080612.211959.52937006.davem@davemloft.net> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20080612.211959.52937006.davem@davemloft.net> User-Agent: Mutt/1.5.18 (2008-05-17) X-ELTE-VirusStatus: clean X-ELTE-SpamScore: -1.5 X-ELTE-SpamLevel: X-ELTE-SpamCheck: no X-ELTE-SpamVersion: ELTE 2.0 X-ELTE-SpamCheck-Details: score=-1.5 required=5.9 tests=BAYES_00 autolearn=no SpamAssassin version=3.2.3 -1.5 BAYES_00 BODY: Bayesian spam probability is 0 to 1% [score: 0.0000] Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org * David Miller wrote: > 1) Revert one of the deferred-accept TCP changes as it > has tons of bugs with no imminent cures and the feature > itself can wait to 2.6.27 if at all. > > This clears up an entry on the regression list. FYI, that regression is not fully fixed yet - your revert differs from the one i tested (from Ilpo) by the delta patch below. Without the extra change below i got this net/sched/sch_generic.c warning, twice: [ 173.354049] NETDEV WATCHDOG: eth0: transmit timed out [ 173.354148] ------------[ cut here ]------------ [ 173.354221] WARNING: at net/sched/sch_generic.c:222 dev_watchdog+0x9a/0xec() [ 173.354298] Modules linked in: [ 173.354421] Pid: 13452, comm: cc1 Tainted: G W 2.6.26-rc6-00273-g81ae43a-dirty #2573 [ 173.354516] [] warn_on_slowpath+0x46/0x76 [ 173.354641] [] ? try_to_wake_up+0x1d6/0x1e0 [ 173.354815] [] ? trace_hardirqs_off+0xb/0xd [ 173.357370] [] ? default_wake_function+0xb/0xd [ 173.357370] [] ? trace_hardirqs_off_caller+0x15/0xc9 [ 173.357370] [] ? trace_hardirqs_off+0xb/0xd [ 173.357370] [] ? trace_hardirqs_on+0xb/0xd [ 173.357370] [] ? trace_hardirqs_on_caller+0x16/0x15b [ 173.357370] [] ? trace_hardirqs_on+0xb/0xd [ 173.357370] [] ? _spin_unlock_irqrestore+0x5b/0x71 [ 173.357370] [] ? __queue_work+0x2d/0x32 [ 173.357370] [] ? queue_work+0x50/0x72 [ 173.357483] [] ? schedule_work+0x14/0x16 [ 173.357654] [] dev_watchdog+0x9a/0xec [ 173.357783] [] run_timer_softirq+0x13d/0x19d [ 173.357905] [] ? dev_watchdog+0x0/0xec [ 173.358073] [] ? dev_watchdog+0x0/0xec [ 173.360804] [] __do_softirq+0xb2/0x15c [ 173.360804] [] ? __do_softirq+0x0/0x15c [ 173.360804] [] do_softirq+0x84/0xe9 [ 173.360804] [] irq_exit+0x4b/0x88 [ 173.360804] [] smp_apic_timer_interrupt+0x73/0x81 [ 173.360804] [] apic_timer_interrupt+0x2d/0x34 [ 173.360804] ======================= [ 173.360804] ---[ end trace a7919e7f17c0a725 ]--- full report can be found at: http://lkml.org/lkml/2008/6/13/224 once i added the patch below this new warning went away. I'm wondering what this difference is about and why your revert differs from Ilpo's. It might as well be the right thing to do and the warning just shows something latent. Ingo ---------------> commit 3019ae9652fe44c099669e5dba116acad583cfcb Author: Ingo Molnar Date: Fri Jun 13 23:09:28 2008 +0200 tcp: revert the TCP-accept changes as per Ilpo's patch Signed-off-by: Ingo Molnar diff --git a/net/ipv4/inet_connection_sock.c b/net/ipv4/inet_connection_sock.c index 045e799..ec83448 100644 --- a/net/ipv4/inet_connection_sock.c +++ b/net/ipv4/inet_connection_sock.c @@ -466,9 +466,9 @@ void inet_csk_reqsk_queue_prune(struct sock *parent, reqp=&lopt->syn_table[i]; while ((req = *reqp) != NULL) { if (time_after_eq(now, req->expires)) { - if ((req->retrans < (inet_rsk(req)->acked ? max_retries : thresh)) && - (inet_rsk(req)->acked || - !req->rsk_ops->rtx_syn_ack(parent, req))) { + if ((req->retrans < thresh || + (inet_rsk(req)->acked && req->retrans < max_retries)) + && !req->rsk_ops->rtx_syn_ack(parent, req)) { unsigned long timeo; if (req->retrans++ == 0)