From owner-cvs-all@FreeBSD.ORG Tue Jun 12 18:22:37 2007 Return-Path: X-Original-To: cvs-all@freebsd.org Delivered-To: cvs-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 9C1D616A41F; Tue, 12 Jun 2007 18:22:37 +0000 (UTC) (envelope-from bright@elvis.mu.org) Received: from elvis.mu.org (elvis.mu.org [192.203.228.196]) by mx1.freebsd.org (Postfix) with ESMTP id 808BF13C4C1; Tue, 12 Jun 2007 18:22:37 +0000 (UTC) (envelope-from bright@elvis.mu.org) Received: by elvis.mu.org (Postfix, from userid 1192) id 6F74E1A4D84; Tue, 12 Jun 2007 11:22:17 -0700 (PDT) Date: Tue, 12 Jun 2007 11:22:17 -0700 From: Alfred Perlstein To: Kip Macy Message-ID: <20070612182217.GP96936@elvis.mu.org> References: <200706112008.l5BK8CQ7033543@repoman.freebsd.org> <466DACD6.4040606@errno.com> <2a41acea0706111330v6a39cf84o495f6acf62ba7ff7@mail.gmail.com> <2a41acea0706111333p5349993dg9315bfe8396f78a@mail.gmail.com> <466DB362.8010902@freebsd.org> <2a41acea0706111346l227b1399jd80d85771345d8be@mail.gmail.com> <466DB70D.8080800@freebsd.org> <2a41acea0706111403l5f4e1db1re2c901670e327485@mail.gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.4.2.2i Cc: src-committers@freebsd.org, Andre Oppermann , cvs-src@freebsd.org, cvs-all@freebsd.org, Jack Vogel , Sam Leffler Subject: Re: cvs commit: src/sys/net if.h X-BeenThere: cvs-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: CVS commit messages for the entire tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 12 Jun 2007 18:22:37 -0000 * Kip Macy [070611 15:54] wrote: > >I think its a windowism, stands for Receive Side Scaling, and what it means > >is multiple receive queues, each with an MSI/X vector so they can interrupt > >different CPUs, or they can be tied to virtual guests, or MACs, etc etc... > > AFAICT FreeBSD can't currently benefit from this as there is no cpu > affinity for connections. I may be wrong, but I see lower > single-connection throughput using a receive queue per core than using > a single receive queue. RSS is done by hashing a TCP tuple (I'm > deliberately vague because at least with cxgb there are multiple > combinations, the default is the standard 4-tuple) to a receive queue. True, but support it is relatively trivial from the kernel PoV. Basically you allow the process to fetch which cpu a socket is bound to, then you can use descriptor passing (processes) or shared fdtable (threads) and a call to bind to cpu to properly juggle things around. -- - Alfred Perlstein