freebsd-skq/sys
Marcel Moolenaar 0d9ae4e24e Further work-out the handling of the high FP registers. The most
important change is in cpu_switch() where we disable the high FP
registers for the thread that we switch-out if the CPU currently
has its high FP registers. This avoids that the high FP registers
remain enabled for the thread even when the CPU has unloaded them
or the thread migrated to another processor.
Likewise, when we switch-in a thread of that has its high FP
registers on the CPU, we enable them. This avoids an otherwise
harmless, but unnecessary trap to have them enabled.

The code that handles the disabled high FP trap (in trap()) has
been turned into a critical section for the most part to avoid
being preempted. If there's a race, we bail out and have the
processor trap again if necessary.

Avoid using the generic ia64_highfp_save() function when the
context is predictable. The function adds unnecessary overhead.
Don't use ia64_highfp_load() for the same reason. The function
is now unused and can be removed.

These changes make the lazy context switching of the high FP
registers in an UP kernel functional.
2003-11-12 01:26:02 +00:00
..
alpha Change the clear_ret argument of get_mcontext() to be a flags argument. 2003-11-09 20:31:04 +00:00
amd64 Don't probe busses in the MP Table for the MP Table PCI bridge drivers 2003-11-11 21:19:43 +00:00
arm Add sysentvec->sv_fixlimits() hook so that we can catch cases on 64 bit 2003-09-25 01:10:26 +00:00
boot Set RB_SERIAL in boothowto if the firmware output-device is ttya or ttyb. 2003-11-11 18:01:44 +00:00
cam - Implement selwakeuppri() which allows raising the priority of a 2003-11-09 09:17:26 +00:00
coda - Implement selwakeuppri() which allows raising the priority of a 2003-11-09 09:17:26 +00:00
compat Use kern_sendit rather than sendit for the Linux send* syscalls. 2003-11-09 17:04:04 +00:00
conf Add an implementation of turnstiles and change the sleep mutex code to use 2003-11-11 22:07:29 +00:00
contrib This commit was generated by cvs2svn to compensate for changes in r122208, 2003-11-07 08:54:27 +00:00
crypto cleanup rijndael API. 2003-11-11 18:58:54 +00:00
ddb Reworked rev.1.14. Use the ELF symbol type again to summarily reject 2003-09-28 06:02:33 +00:00
dev Add ID for ALC658 CODEC. 2003-11-11 22:15:17 +00:00
fs If fifo_open() is interrupted, fifo_close() may not get called, causing 2003-11-10 22:21:00 +00:00
geom Close the right consumers if we run into trouble opening them all. 2003-10-24 18:47:31 +00:00
gnu Fixed a reference to a nonexistent variable in previous commit. Renaming 2003-11-05 11:56:58 +00:00
i4b Based on an excellent suggestion from tanimura@ define I4BPRI and use it 2003-11-10 14:20:34 +00:00
i386 Don't probe busses in the MP Table for the MP Table PCI bridge drivers 2003-11-11 21:19:43 +00:00
ia64 Further work-out the handling of the high FP registers. The most 2003-11-12 01:26:02 +00:00
isa - Implement selwakeuppri() which allows raising the priority of a 2003-11-09 09:17:26 +00:00
isofs/cd9660 DuH! 2003-10-18 14:10:28 +00:00
kern Add an implementation of turnstiles and change the sleep mutex code to use 2003-11-11 22:07:29 +00:00
libkern - Support for multibyte charsets in LIBICONV. 2003-09-26 20:26:25 +00:00
modules Following the repo-copy from src/sys/modules/mac_none/Makefile, 2003-11-11 21:23:54 +00:00
net Remove the m_defrag call from if_loop; testing with m_fragment 2003-11-11 17:58:36 +00:00
net80211 fix typo that broke AP scanning by BSSID 2003-11-09 23:36:46 +00:00
netatalk o add a flags parameter to netisr_register that is used to specify 2003-11-08 22:28:40 +00:00
netatm o add a flags parameter to netisr_register that is used to specify 2003-11-08 22:28:40 +00:00
netgraph MFS: Change interface name from "nge" to "ngeth" to avoid conflict 2003-11-11 16:12:05 +00:00
netinet correct typos 2003-11-11 18:16:54 +00:00
netinet6 cleanup rijndael API. 2003-11-11 18:58:54 +00:00
netipsec MFp4: portability work, general cleanup, locking fixes 2003-09-29 22:57:43 +00:00
netipx o add a flags parameter to netisr_register that is used to specify 2003-11-08 22:28:40 +00:00
netkey ipsec_esp_auth is unused when IPSEC_ESP is not defined. 2003-11-11 17:25:45 +00:00
netnatm o add a flags parameter to netisr_register that is used to specify 2003-11-08 22:28:40 +00:00
netncp The present defaults for the open and close for device drivers which 2003-09-27 12:01:01 +00:00
netsmb - Support for multibyte charsets in LIBICONV. 2003-09-26 20:26:25 +00:00
nfs
nfsclient Stop using shared locks for nfs vop locks. 2003-11-11 00:32:46 +00:00
nfsserver Assert GIANT_REQUIRED where sockets are manipulated. This is 2003-11-07 22:57:09 +00:00
opencrypto falloc allocates a file structure and adds it to the file descriptor 2003-10-19 20:41:07 +00:00
pc98 Change the clear_ret argument of get_mcontext() to be a flags argument. 2003-11-09 20:31:04 +00:00
pccard - Implement selwakeuppri() which allows raising the priority of a 2003-11-09 09:17:26 +00:00
pci - Disable AGP on ALI chipsets if aperture size is 0. 2003-11-11 21:49:18 +00:00
posix4 sched_setscheduler: Return EINVAL when a invalid policy is specified, 2003-09-13 18:46:24 +00:00
powerpc Change the clear_ret argument of get_mcontext() to be a flags argument. 2003-11-09 20:31:04 +00:00
rpc
security Whitespace sync to MAC branch, expand comment at the head of the file. 2003-11-11 03:40:04 +00:00
sparc64 Remove reference to sio (superseded by uart). 2003-11-11 07:49:13 +00:00
sys Oh dear, forgot this file in the turnstile commit. This header defines 2003-11-11 23:08:26 +00:00
tools Changes for new SMP-safe kobj method dispatch algorithm. 2003-10-16 13:29:26 +00:00
ufs Remove mntvnode_mtx and replace it with per-mountpoint mutex. 2003-11-05 04:30:08 +00:00
vm - The Open Group Base Specifications Issue 6 specifies that an munmap(2) 2003-11-10 01:37:40 +00:00
Makefile