From owner-freebsd-current Tue May 23 10:46:27 2000 Delivered-To: freebsd-current@freebsd.org Received: from apollo.backplane.com (apollo.backplane.com [216.240.41.2]) by hub.freebsd.org (Postfix) with ESMTP id F3C8337B7F4 for ; Tue, 23 May 2000 10:46:21 -0700 (PDT) (envelope-from dillon@apollo.backplane.com) Received: (from dillon@localhost) by apollo.backplane.com (8.9.3/8.9.1) id KAA68462; Tue, 23 May 2000 10:46:14 -0700 (PDT) (envelope-from dillon) Date: Tue, 23 May 2000 10:46:14 -0700 (PDT) From: Matthew Dillon Message-Id: <200005231746.KAA68462@apollo.backplane.com> To: Bruce Evans Cc: Boris Popov , Garrett Wollman , "Jordan K. Hubbard" , current@FreeBSD.ORG Subject: Re: Anyone else seeing jumpy mice? References: Sender: owner-freebsd-current@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG :The patch seems to have completely broken fast interrupts. :GET_FAST_INTR_LOCK is neither necessary nor sufficient as far as I can see. :The necessary and sufficient locking is done by COM_LOCK() in individual :drivers. The patch changed GET_FAST_INTR_LOCK from s_lock(&fast_intr_lock), :which does nothing very well, to `sti(); get_mplock(); cli();', which :essentially de-prioritizes "fast" interrupts from "higher than the highest" :(higher than clock interrupts which are nominally highest) to "lower than :the lowest" (lower than all normal interrupts, all software interrupts, :and all MP-unsafe syscalls). It isn't quite that bad. Remember that interrupts are vectored to the cpu already running in supervisor mode, and the MP lock is recursive. So GET_FAST_INTR_LOCK will generally not block against MP-unsafe syscalls or anything else. It will still operate as a high-priority interrupt. I understand the point about COM_LOCK, and agree - but I also never trusted the MP-safeness of the fast-interrupt code hack so lets not commit this until we have a chance to audit the entire fast-interrupt path. Frankly, I would much rather see MP-safe NIC interrupt code then MP-safe serial interrupt code. -Matt To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message