From owner-cvs-all@FreeBSD.ORG Fri Jan 13 00:33:43 2006 Return-Path: X-Original-To: cvs-all@FreeBSD.org Delivered-To: cvs-all@FreeBSD.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 7126316A41F; Fri, 13 Jan 2006 00:33:43 +0000 (GMT) (envelope-from gallatin@cs.duke.edu) Received: from duke.cs.duke.edu (duke.cs.duke.edu [152.3.140.1]) by mx1.FreeBSD.org (Postfix) with ESMTP id DD06343D45; Fri, 13 Jan 2006 00:33:42 +0000 (GMT) (envelope-from gallatin@cs.duke.edu) Received: from grasshopper.cs.duke.edu (grasshopper.cs.duke.edu [152.3.145.30]) by duke.cs.duke.edu (8.13.4/8.13.4) with ESMTP id k0D0XgJM010666 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Thu, 12 Jan 2006 19:33:42 -0500 (EST) Received: (from gallatin@localhost) by grasshopper.cs.duke.edu (8.12.9p2/8.12.9/Submit) id k0D0XW7D007168; Thu, 12 Jan 2006 19:33:32 -0500 (EST) (envelope-from gallatin) From: Andrew Gallatin MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Message-ID: <17350.62812.122727.808320@grasshopper.cs.duke.edu> Date: Thu, 12 Jan 2006 19:33:32 -0500 (EST) To: Nate Lawson In-Reply-To: <43C6E2EB.7040902@root.org> References: <200601110030.k0B0UPOx009098@repoman.freebsd.org> <20060112152119.A6776@grasshopper.cs.duke.edu> <43C6C4EA.20303@samsco.org> <17350.53992.494972.787933@grasshopper.cs.duke.edu> <43C6DAED.3040901@samsco.org> <43C6E2EB.7040902@root.org> X-Mailer: VM 6.75 under 21.1 (patch 12) "Channel Islands" XEmacs Lucid Cc: cvs-src@FreeBSD.org, Scott Long , src-committers@FreeBSD.org, cvs-all@FreeBSD.org Subject: Re: cvs commit: src/sys/dev/em if_em.c if_em.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: Fri, 13 Jan 2006 00:33:43 -0000 Nate Lawson writes: > Scott Long wrote: > > Andrew Gallatin wrote: > > > >> Scott Long writes: > >> > However, taskqueues are really just a proof of concept for what I > >> really > >> > want, which is to allow drivers to register both a fast handler and an > >> > ithread handler. For drivers doing this, the ithread would be private > >> > >> Ah, the darwin / MacOSX model. That would be very cool. > > > > > > Yep. Working in IOKit was very interesting, and this is one of the few > > things that transfers well to FreeBSD. C++ does have a certain elagence > > for drivers, but the cost of virtual methods in the fast path of the > > driver and stack is still far too high to justify using it. > > Yeah, that's why newbus is only for configuration but interrupt handlers > are called directly. It's nice to have OO for config and relationships > between devices but just direct calls for the fast path. Amusingly, I was just today trying to figure out how to get at my Darwin driver's if_output() routine so I can cut out the interposing layers of C++ crud and improve transmit performance :) Drew