From owner-freebsd-net@FreeBSD.ORG Wed Apr 15 12:42:32 2015 Return-Path: Delivered-To: net@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 74F48E18; Wed, 15 Apr 2015 12:42:32 +0000 (UTC) Received: from cell.glebius.int.ru (glebius.int.ru [81.19.69.10]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "cell.glebius.int.ru", Issuer "cell.glebius.int.ru" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id D7C838F2; Wed, 15 Apr 2015 12:42:30 +0000 (UTC) Received: from cell.glebius.int.ru (localhost [127.0.0.1]) by cell.glebius.int.ru (8.14.9/8.14.9) with ESMTP id t3FCgToE029157 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO); Wed, 15 Apr 2015 15:42:29 +0300 (MSK) (envelope-from glebius@FreeBSD.org) Received: (from glebius@localhost) by cell.glebius.int.ru (8.14.9/8.14.9/Submit) id t3FCgSIf029156; Wed, 15 Apr 2015 15:42:28 +0300 (MSK) (envelope-from glebius@FreeBSD.org) X-Authentication-Warning: cell.glebius.int.ru: glebius set sender to glebius@FreeBSD.org using -f Date: Wed, 15 Apr 2015 15:42:28 +0300 From: Gleb Smirnoff To: Ermal =?iso-8859-1?Q?Lu=E7i?= Cc: Luigi Rizzo , "net@freebsd.org" Subject: Re: moving ALTQ out of contrib Message-ID: <20150415124228.GA883@glebius.int.ru> References: <20150414135346.GU883@FreeBSD.org> <20150415073823.GA94402@onelab2.iet.unipi.it> <20150415122627.GZ883@glebius.int.ru> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: User-Agent: Mutt/1.5.23 (2014-03-12) X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 15 Apr 2015 12:42:32 -0000 On Wed, Apr 15, 2015 at 02:38:21PM +0200, Ermal Luçi wrote: E> > projects/ifnet, E> > L> > the ALTQ will need some tweaking. It is discontinued by initial author E> > L> > for a decade now, and it has already experienced direct commits in E> > L> > our tree. Thus, I see no good reasons to continue keeping it in E> > contrib. E> > L> > In NetBSD they have it in sys/altq. E> > L> > E> > L> > I'd prefer to move it to sys/net/altq. E> > L> > E> > L> > Any objections or better ideas? E> > L> E> > L> my first question is what is the expected residual lifetime of altq ? E> > E> > If I get it working properly in projects/ifnet, I see no reasons to E> > remove it. It is going to be a plugin into network stack and will no E> > longer require editing drivers. It will run on drivers that aren't E> > supported by ALTQ now. However in the latter case the ALTQ will sit E> > on top of interface own queue, and will start to work only when E> > interface's own queue overflows. But if we later add a new interface E> > method to modify length of own queue at runtime, this issue will E> > go away. E> > E> E> I would be interested on your approach on this as well. E> Also i can remind you that dragonflybsd has made some work on it to support E> multiqueue. E> IIRC they even mapped the queues directly the hardware queues so it might E> be interesting to look at their approach if it applies. The latter is definitely a better design. However, it requires much more work. My plan for now is just keep the ALTQ supported with removal of 'struct ifqueue' from 'struct ifnet' and at the same time provide a proof of concept code, that demonstrates that a shaping system can be a plugin shim in place of if_transmit method. Actually, I've been told that Yandex already had such a shaping system, so proof of concept already exists, but not open sourced. -- Totus tuus, Glebius.