Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755300Ab1CAAqy (ORCPT ); Mon, 28 Feb 2011 19:46:54 -0500 Received: from swm.pp.se ([212.247.200.143]:47374 "EHLO uplift.swm.pp.se" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753228Ab1CAAqx (ORCPT ); Mon, 28 Feb 2011 19:46:53 -0500 Date: Tue, 1 Mar 2011 01:46:51 +0100 (CET) From: Mikael Abrahamsson To: John Heffner cc: Bill Sommerfeld , Hagen Paul Pfeifer , Albert Cahalan , Jussi Kivilinna , Eric Dumazet , linux-kernel , netdev@vger.kernel.org Subject: Re: txqueuelen has wrong units; should be time In-Reply-To: Message-ID: References: <1298793252.8726.45.camel@edumazet-laptop> <20110227125540.40754c5y78j9u2m8@hayate.sektori.org> User-Agent: Alpine 1.10 (DEB 962 2008-03-14) Organization: People's Front Against WWW MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2218 Lines: 44 On Mon, 28 Feb 2011, John Heffner wrote: > Right... while I generally agree that a fixed-length drop-tail queue > isn't optimal, isn't this problem what the various AQM schemes try to > solve? I am not an expert on exactly how Linux does this, but for Cisco and for instance ATM interfaces, there are two stages of queuing. One is the "hardware queue", which is a FIFO queue going into the ATM framer. If one wants low CPU usage, then this needs to be high so multiple packets can be put there per interrupt. Since AQM is working before this, it also means the low-latency-queue will have a higher latency as it ends up behind larger packets in the hw queue. So on what level does the AQM work in Linux? Does it work similarily, that txqueuelen is a FIFO queue to the hardware that AQM feeds packets into? Also, when one uses WRED the thinking is generally to keep the average queue len down, but still allow for bursts by dynamically changing the drop probability and where it happens. When there is no queuing, allow for big queue (so it can fill up if needed), but if the queue is large for several seconds, start to apply WRED to bring it down. There is generally no need at all to constantly buffer > 50 ms of data, then it's better to just start selectively dropping it. In time of burstyness (perhaps when re-routing traffic) there is need to buffer 200-500ms of during perhaps 1-2 seconds before things stabilize. So one queuing scheme and one queue limit isn't going to solve this, there need to be some dynamic built into the system for it to work well. AQM needs to feed into a relatively short hw queue and AQM needs to exist on output also when the traffic is sourced from the box itself, no tonly routed. It would also help if the default would be to use let's say 25% of the bandwidth for smaller packets (< 200 bytes or so) which generally are for interactive uses or are ACKs. -- Mikael Abrahamsson email: swmike@swm.pp.se -- 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/