Date: Mon, 16 Jul 2001 20:35:13 +1000 (EST) From: Bruce Evans <bde@zeta.org.au> To: Tor.Egge@fast.no Cc: juriy@aviaport.ru, freebsd-current@FreeBSD.ORG, peter@FreeBSD.ORG Subject: Re: kernel with SSE is unstable Message-ID: <Pine.BSF.4.21.0107162017400.58001-100000@besplex.bde.org> In-Reply-To: <200107151627.SAA01763@midten.fast.no>
next in thread | previous in thread | raw e-mail | index | archive | help
On Sun, 15 Jul 2001 Tor.Egge@fast.no wrote: > > In my system kernel(WITH SSE) falls when I use commands netstat and swapinfo. > > kernel without SSE works fine. > > I got a very similar panic when trying an UP kernel with SSE enabled. > > mi_switch() sets curproc->p_oncpu to NOCPU before calling > cpu_switch(). cpu_switch() might call npxsave() which calls fpusave > with NOCPU as the 'oncpu' argument. > > A suggested patch is enclosed. > Index: sys/i386/isa/npx.c > =================================================================== > RCS file: /home/ncvs/src/sys/i386/isa/npx.c,v > retrieving revision 1.104 > diff -u -r1.104 npx.c > --- sys/i386/isa/npx.c 2001/07/12 12:21:53 1.104 > +++ sys/i386/isa/npx.c 2001/07/15 16:23:02 > @@ -160,8 +160,8 @@ > #endif > static int npx_probe __P((device_t dev)); > static int npx_probe1 __P((device_t dev)); > -static void fpusave __P((union savefpu *, u_char)); > -static void fpurstor __P((union savefpu *, u_char)); > +static void fpusave __P((union savefpu *)); > +static void fpurstor __P((union savefpu *)); Good. I want all use of the cpu number removed. It seems to be just to avoid alignment problems that shouldn't happen in practice (the save area should always be suitably aligned if it isn't already, and I think it is already). > static void > -fpusave(addr, oncpu) > +fpusave(addr) > union savefpu *addr; > - u_char oncpu; > { > static struct savexmm svxmm[MAXCPU]; > + u_char oncpu = PCPU_GET(cpuid); > > if (!cpu_fxsr) > fnsave(addr); Also, `struct savexmm' is not too large to put on the stack. Bruce To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.4.21.0107162017400.58001-100000>