From owner-cvs-all Tue Oct 24 22:23: 6 2000 Delivered-To: cvs-all@freebsd.org Received: from pike.osd.bsdi.com (pike.osd.bsdi.com [204.216.28.222]) by hub.freebsd.org (Postfix) with ESMTP id 04D7137B479; Tue, 24 Oct 2000 22:23:00 -0700 (PDT) Received: from laptop.baldwin.cx (ether.osd.bsdi.com [204.216.28.196]) by pike.osd.bsdi.com (8.11.0/8.9.3) with ESMTP id e9P5Maf88264; Tue, 24 Oct 2000 22:22:36 -0700 (PDT) (envelope-from jhb@FreeBSD.org) Message-ID: X-Mailer: XFMail 1.4.0 on FreeBSD X-Priority: 3 (Normal) Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 8bit MIME-Version: 1.0 In-Reply-To: <200010250519.WAA59551@freefall.freebsd.org> Date: Tue, 24 Oct 2000 22:23:17 -0700 (PDT) From: John Baldwin To: John Baldwin Subject: RE: cvs commit: src/sys/alpha/alpha busdma_machdep.c clock.c int Cc: cvs-all@FreeBSD.org, cvs-committers@FreeBSD.org Sender: owner-cvs-all@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG On 25-Oct-00 John Baldwin wrote: > jhb 2000/10/24 22:19:40 PDT > > Modified files: > sys/alpha/alpha busdma_machdep.c clock.c interrupt.c > ipl_funcs.c mem.c vm_machdep.c > sys/alpha/include ipl.h md_var.h > sys/cam cam_xpt.c > sys/i386/i386 busdma_machdep.c vm_machdep.c > sys/i386/include ipl.h md_var.h > sys/i386/isa clock.c cy.c intr_machdep.c > intr_machdep.h ipl.s ipl_funcs.c > ithread.c rc.c > sys/ia64/ia64 busdma_machdep.c ipl_funcs.c mem.c > vm_machdep.c > sys/ia64/include ipl.h md_var.h > sys/isa sio.c > sys/kern kern_clock.c kern_intr.c kern_timeout.c > subr_taskqueue.c > sys/net netisr.h > sys/pc98/pc98 clock.c sio.c > sys/sys interrupt.h proc.h systm.h > Log: > - Overhaul the software interrupt code to use interrupt threads for each > type of software interrupt. Roughly, what used to be a bit in spending > now maps to a swi thread. Each thread can have multiple handlers, just > like a hardware interrupt thread. > - Instead of using a bitmask of pending interrupts, we schedule the > specific > software interrupt thread to run, so spending, NSWI, and the shandlers > array are no longer needed. We can now have an arbitrary number of > software interrupt threads. When you register a software interrupt > thread via sinthand_add(), you get back a struct intrhand that you pass > to sched_swi() when you wish to schedule your swi thread to run. > - Convert the name of 'struct intrec' to 'struct intrhand' as it is a bit > more intuitive. Also, prefix all the members of struct intrhand with > 'ih_'. > - Make swi_net() a MI function since there is now no point in it being > MD. > > Submitted by: cp This has been tested and run succesfully on both x86 SMP and alpha. I don't presently have an ia64 simulator environment or a kernel build environment set up yet, so I'm not entirely sure that I haven't broken ia64. Chuck would be extremely glad to field any bug reports that you may have with this. *duck* :-P -- John Baldwin -- http://www.FreeBSD.org/~jhb/ PGP Key: http://www.baldwin.cx/~john/pgpkey.asc "Power Users Use the Power to Serve!" - http://www.FreeBSD.org/ To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe cvs-all" in the body of the message