From owner-freebsd-hackers Mon Aug 5 12:14:59 2002 Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.FreeBSD.org (mx1.FreeBSD.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 6A9C837B48B for ; Mon, 5 Aug 2002 12:14:46 -0700 (PDT) Received: from catalepsy.pdl.cmu.edu (CATALEPSY.PDL.CMU.EDU [128.2.134.92]) by mx1.FreeBSD.org (Postfix) with ESMTP id D01B243E3B for ; Mon, 5 Aug 2002 12:14:45 -0700 (PDT) (envelope-from bucy@catalepsy.pdl.cmu.edu) Received: (from bucy@localhost) by catalepsy.pdl.cmu.edu (8.11.4/8.11.4) id g75JEgS26451; Mon, 5 Aug 2002 15:14:42 -0400 Date: Mon, 5 Aug 2002 15:14:42 -0400 From: "John S. Bucy" To: Terry Lambert Cc: freebsd-hackers@freebsd.org Subject: Re: weird npxintr Message-ID: <20020805191440.GE494@catalepsy.pdl.cmu.edu> References: <20020805182753.GD494@catalepsy.pdl.cmu.edu> <3D4EC913.528452C2@mindspring.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <3D4EC913.528452C2@mindspring.com> User-Agent: Mutt/1.4i Sender: owner-freebsd-hackers@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG On Mon, Aug 05, 2002 at 11:50:59AM -0700, Terry Lambert wrote: > On a hunch: are you using an AMD K6 or similar and enabling > the CPU specific options within the config file? Nope. CPU is PIII/Xeon. We've configed I686_CPU but not turned on -march=foo, etc. Does gcc ever issue mmx instructions for long long math? > Copies occurring at interrupt time can result in this behaviour > due to an inability to obtain a process context for a current > process that's the real current process when the FPU state is > switched out via late-binding. > > The copy you are doing at that point is attempting a lazy bind > without a process context (because it's happening at interrupt). > > If you can, move the large data manipulation, etc., out of the > interrupt handler itself, and do it via pullup instead. That > type of thing should only ever be in the upper level interrupt > handler (e.g. via software interrupt, or in the user process > context on behalf of which the work is being done, after the > wakeup of the user process which is waiting on an operation). > It's a bad idea to do a lot of work in the interrupt handler, > in any case, unless there is a technical reason for it, like > quenching interrupts on purpose for network cards to avoid > receiver livelock. Err ... our code is getting called from dadone which gets called up from swi_cambio which is the soft interrupt handler, right? By copy, do you mean bcopy/memcpy or load/store to a register? We're certainly not in the middle of a bcopy when we get the interrupt... Again, I'm fairly certain that we aren't touching any fp registers or issuing any fp instructions. thanks john To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-hackers" in the body of the message