From owner-freebsd-smp Tue Dec 5 15:21:10 2000 From owner-freebsd-smp@FreeBSD.ORG Tue Dec 5 15:21:08 2000 Return-Path: Delivered-To: freebsd-smp@freebsd.org Received: from monk.via.net (monk.via.net [209.81.2.10]) by hub.freebsd.org (Postfix) with ESMTP id 4BBD337B401 for ; Tue, 5 Dec 2000 15:21:08 -0800 (PST) Received: (from joe@localhost) by monk.via.net (8.11.0/8.11.0) id eB5NMM480841 for smp@FreeBSD.ORG; Tue, 5 Dec 2000 15:22:22 -0800 (PST) (envelope-from joe) From: Joe McGuckin Message-Id: <200012052322.eB5NMM480841@monk.via.net> Date: Tue, 5 Dec 2000 15:21:52 -0800 (PST) To: smp@FreeBSD.ORG Subject: Re[2]: BSD/OS interrupt code In-Reply-To: X-Mailer: Ishmail 1.3.1-970608-bsdi MIME-Version: 1.0 Content-Type: text/plain Sender: owner-freebsd-smp@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.org Hey, I've been out of town for a week & just saw this... Doesn't this sound similar to Henry Massalin's and Calton Pu's synthesis kernel papers? Where they dynamically generate specifically compiled O/S entry points? Instead of having one read() system call (for example) with various state and constraint checks in the code, a custom read() entry point would be generated. It was extremely fast. As part of this work, they also created a superoptimizer that would produce very compact and fast code sequences for use in the runtime code generator. My guess is that they were pre-generating function stub routines & performing limited instruction substitution in the stub routines to customize it. Supposedly the superoptimizer reduced the doprnt() routine (it used to be the guts of printf(), etc) to something like 800 bytes, but it took weeks to generate the code! joe -- Joe McGuckin ViaNet Communications 994 San Antonio Road Palo Alto, CA 94303 Phone: 650-969-2203 Cell: 650-207-0372 Fax: 650-969-2124 To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-smp" in the body of the message