Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 15 May 1996 23:58:45 +1000
From:      Bruce Evans <bde@zeta.org.au>
To:        asami@cs.berkeley.edu, bde@zeta.org.au
Cc:        ccd@stampede.cs.berkeley.edu, current@freebsd.org
Subject:   Re: some more on fast bcopy
Message-ID:  <199605151358.XAA22996@godzilla.zeta.org.au>

index | next in thread | raw e-mail

>Okay, I implemented this (I think) with the help of gcc -S, but I
>still get "FPU not available" panics intermittently (often during
>"make install"s).  Here's the diff, can you please check and see if
>something's wrong?

It should work better with a kernel mode trap handler for "FPU not
available" :-).  Add a T_DNA case for kernel mode in trap() by copying
the first 5 lines from the user mode T_DNA case (`break;' if npxdna()
doesn't handle the panic (this "can't happen")).  When you get everything
working, add some tests and flags to restore the panic if an T_DNA
trap occurs unexpectedly (set a flag FP_KERNEL_USING_FP in pcb->pcbflags
while the kernel is using FP in fastmove() or elsewhere, and `break;'
for the kernel T_DNA case if this flag isn't set).

Also, the `intr_nesting_level > 0' case needs to preserve the TS bit.
This case probably hasn't been executed yet (it will be executed when
bcopy() uses fastmove() and an interrupt handler calls bcopy()).

Bruce


home | help

Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199605151358.XAA22996>