From owner-freebsd-net@FreeBSD.ORG Sat Jun 11 09:28:08 2005 Return-Path: X-Original-To: freebsd-net@freebsd.org Delivered-To: freebsd-net@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 0420A16A41F for ; Sat, 11 Jun 2005 09:28:08 +0000 (GMT) (envelope-from vladgalu@gmail.com) Received: from zproxy.gmail.com (zproxy.gmail.com [64.233.162.196]) by mx1.FreeBSD.org (Postfix) with ESMTP id 6F2B643D4C for ; Sat, 11 Jun 2005 09:28:07 +0000 (GMT) (envelope-from vladgalu@gmail.com) Received: by zproxy.gmail.com with SMTP id 18so568344nzp for ; Sat, 11 Jun 2005 02:28:06 -0700 (PDT) DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=beta; d=gmail.com; h=received:message-id:date:from:reply-to:to:subject:in-reply-to:mime-version:content-type:content-transfer-encoding:content-disposition:references; b=ob5jeVavrwnpLKmiW0zugJaINgYVBV/zHwKTtEN4v9OdIzwUw4stKnotxHej6fw0gc83Xlw1mWh1lzTNF5XznCbaDizpBdFQS9LPQ/2AlFa3UBe46GeXF0NSImlFKyH6yNQF+hR0/7jAij7nbl4t1/9+x531Mqk6+2bfzbe3qPI= Received: by 10.36.106.20 with SMTP id e20mr1703304nzc; Sat, 11 Jun 2005 02:28:06 -0700 (PDT) Received: by 10.36.86.4 with HTTP; Sat, 11 Jun 2005 02:28:06 -0700 (PDT) Message-ID: <79722fad0506110228538ee434@mail.gmail.com> Date: Sat, 11 Jun 2005 12:28:06 +0300 From: Vlad GALU To: freebsd-pf@freebsd.org, freebsd-net@freebsd.org In-Reply-To: <79722fad050609151068c71c91@mail.gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Content-Disposition: inline References: <79722fad05060914123edd1004@mail.gmail.com> <79722fad050609151068c71c91@mail.gmail.com> Cc: Subject: Re: Please review & test this X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: Vlad GALU List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 11 Jun 2005 09:28:08 -0000 On 6/10/05, Vlad GALU wrote: > On 6/10/05, Vlad GALU wrote: > > As you may all know, the packet classifier in ALTQ is very > > slow on large numbers of classes, because it stores them linearly, in > > an array. I rewrote the way classes are stored, replacing the array > > with a hash table. I tested [1] on a system with about 8000 classes > > and noticed a remarkable performance difference (the system went from > > almost unusable to nice & smooth). It breaks the ABI by adding an > > extra TAILQ_ENTRY member to the HFSC class structure, though. >=20 > And also replaces the class array in struct hfsc_if with the hash table= . Bummer. Increasing the number of classes led to locking the machine up. Something slipped my eye: the filters are also linearly searched for. I'll try to do something about them as well and come back with something. >=20 > > If anyone reviews and tests it, I would be grateful. > > > > [1] http://night.rdslink.ro/dudu/altq/altq_hfschash.diff > > > > P.S. please keep in mind that I'm not exactly a black belt in kernel > > programming, so glitches might exist. I would be most happy to hear > > some suggestions. > > > > -- > > If it's there, and you can see it, it's real. > > If it's not there, and you can see it, it's virtual. > > If it's there, and you can't see it, it's transparent. > > If it's not there, and you can't see it, you erased it. > > >=20 >=20 > -- > If it's there, and you can see it, it's real. > If it's not there, and you can see it, it's virtual. > If it's there, and you can't see it, it's transparent. > If it's not there, and you can't see it, you erased it. >=20 --=20 If it's there, and you can see it, it's real. If it's not there, and you can see it, it's virtual. If it's there, and you can't see it, it's transparent. If it's not there, and you can't see it, you erased it.