summaryrefslogtreecommitdiffstats
path: root/sys/amd64
Commit message (Collapse)AuthorAgeFilesLines
* Cleaned up interrupt masking by declaring the state variable in abde1996-08-281-10/+15
| | | | | | | machine-dependent macro and passing it to all machine-dependent macros. Eliminated the state variable for the GUPROF case.
* Clean up formatting and fix an & -> && bug pointed out by bdepst1996-08-281-87/+52
|
* Support for GDB remote debug protocol.pst1996-08-272-4/+591
| | | | Sponsored by: Juniper Networks, Inc. <pst@jnx.com>
* Add hints to the file ./LINT and the handbook.wosch1996-08-271-1/+10
|
* Collect all the functioons concerned with rebooting into one placejulian1996-08-191-160/+6
| | | | | also add the at_shutdown callout list, and change the one user of the present (broken) method (the vn driver) to use the new scheme.
* Back out mistaken local change that sneaked in on the last commit.wollman1996-08-121-0/+40
|
* Don't declare the user_ldt functions unless USER_LDT is defined.wollman1996-08-122-42/+4
| | | | Eliminates an obnoxious warning.
* Add support for i686 machine check trap.dg1996-08-114-6/+12
|
* Defined T_MCHK exception for i686; renumbered T_RESERVED to 29.dg1996-08-111-2/+3
|
* Add recognition for the AMD 5x86 CPU models.peter1996-08-101-1/+15
| | | | Submitted by: A JOSEPH KOSHY <koshy@india.hp.com>
* Trivial cosmetic tweak to make the i[56]86 CPU MHz reprting round to thepeter1996-08-101-3/+5
| | | | | | | | | nearest .01 Mhz rather than simply truncating it downwards. This hack makes this 89.999928 Mhz clock correctly round to the closer 90.00-MHz rather than 89.99-MHz: > i586 clock: 89999928 Hz, i8254 clock: 1193152 Hz > CPU: Pentium (90.00-MHz 586-class CPU)
* Eliminated i586_ctr_rate. Use i586_ctr_freq instead.bde1996-08-023-29/+15
|
* Eliminated i586_ctr_rate. Use i586_ctr_freq instead.bde1996-08-021-8/+6
| | | | | | | Changed i586_ctr_bias from long long to u_int. Only the low 32 bits are used now that microtime uses a multiplication to do the scaling. Previously the high 32 bits had to match those of rdtsc() to prevent overflow traps and invalid timeval adjustments.
* Add an fls() inline function which does the opposite operation towollman1996-08-011-1/+12
| | | | ffs(). (That is to say, it searches in the opposite direction.)
* Eliminated pcb_inl. It was always 0 because context switches don't occurbde1996-07-314-18/+6
| | | | in interrupt handlers.
* Converted timer/run queues to 4.4BSD queue style. Removed old and unuseddg1996-07-313-43/+11
| | | | | | | sleep(). Implemented wakeup_one() which may be used in the future to combat the "thundering herd" problem for some special cases. Reviewed by: dyson
* Fixed longstanding bug of not checking `dumpdev' or setting `dumplo'bde1996-07-301-10/+7
| | | | | | | | | | | early enough when the dump device is specified in the config file. Removed stale comment about configuration root and swap devices. Don't bother clearing dumplo when dumpdev is set to NODEV. Everything is controlled by dumpdev. Fixed the kern.dumpdev sysctl. Writes were handle bogusly.
* Fixed the machdep.i8254_freq and machdep.i586_freq sysctls. Writes werebde1996-07-303-38/+88
| | | | | | | handled bogusly. Centralized the setting of all the frequency variables. Set these variables atomically. Some new ones aren't used yet.
* Backed out the recent changes/enhancements to the VM code. Thedyson1996-07-302-412/+519
| | | | | | | problem with the 'shell scripts' was found, but there was a 'strange' problem found with a 486 laptop that we could not find. This commit backs the code back to 25-jul, and will be re-entered after the snapshot in smaller (more easily tested) chunks.
* Fix a problem with a DEBUG section of code.dyson1996-07-291-1/+1
|
* Fix an error in statement order in pmap_remove_pages, remove the pmapdyson1996-07-291-39/+10
| | | | pte hint (for now), and general code cleanup.
* Fix a problem that pmap update was not being done for kernel_pmap. Alsodyson1996-07-281-13/+11
| | | | | remove some (currently) gratuitious tests for PG_V... This bug could have caused various anomolous (temporary) behavior.
* This commit is meant to solve a couple of VM system problems ordyson1996-07-272-521/+445
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | performance issues. 1) The pmap module has had too many inlines, and so the object file is simply bigger than it needs to be. Some common code is also merged into subroutines. 2) Removal of some *evil* PHYS_TO_VM_PAGE macro calls. Unfortunately, a few have needed to be added also. The removal caused the need for more vm_page_lookups. I added lookup hints to minimize the need for the page table lookup operations. 3) Removal of some bogus performance improvements, that mostly made the code more complex (tracking individual page table page updates unnecessarily). Those improvements actually hurt 386 processors perf (not that people who worry about perf use 386 processors anymore :-)). 4) Changed pv queue manipulations/structures to be TAILQ's. 5) The pv queue code has had some performance problems since day one. Some significant scalability issues are resolved by threading the pv entries from the pmap AND the physical address instead of just the physical address. This makes certain pmap operations run much faster. This does not affect most micro-benchmarks, but should help loaded system performance *significantly*. DG helped and came up with most of the solution for this one. 6) Most if not all pmap bit operations follow the pattern: pmap_test_bit(); pmap_clear_bit(); That made for twice the necessary pv list traversal. The pmap interface now supports only pmap_tc_bit type operations: pmap_[test/clear]_modified, pmap_[test/clear]_referenced. Additionally, the modified routine now takes a vm_page_t arg instead of a phys address. This eliminates a PHYS_TO_VM_PAGE operation. 7) Several rewrites of routines that contain redundant code to use common routines, so that there is a greater likelihood of keeping the cache footprint smaller.
* Update to current state of PC98 world.asami1996-07-231-1/+3
| | | | Submitted by: The FreeBSD(98) development team
* Post-commit review by Bruce. Mostly stylistic changes.joerg1996-07-212-102/+112
| | | | Submitted by: bde
* Major cleanup of the timerX_{acquire,release} stuff. In particular,joerg1996-07-202-96/+192
| | | | | | | | | | | | | make it more intelligible, improve the partially bogus locking, and allow for a ``quick re-acquiration'' from a pending release of timer 0 that happened ``recently'', so it was not processed yet by clkintr(). This latter modification now finally allows to play XBoing over pcaudio without losing sounds or getting complaints. ;-) (XBoing opens/writes/closes the sound device all over the day.) Correct locking for sysbeep(). Extensively (:-) reviewed by: bde
* Fixed adjustment of `time' when timer0 is released. 27465 was 27645 inbde1996-07-172-4/+4
| | | | | a comment and in code that was only used when pcaudio was closed. The maximum error was 66 usec.
* Moved declaration of zbuf outside of #ifdef DEVFS code.nate1996-07-151-3/+3
|
* Quick fix for previous commit: don't free zbuf on close since it may bebde1996-07-151-9/+2
| | | | in use in another process that blocked in uiomove().
* Almost gratuitious improvement of the performance of readingdyson1996-07-141-5/+14
| | | | /dev/zero.
* Removed "optimization" using gcc's builtin memcpy instead of bcopy.bde1996-07-121-5/+2
| | | | | There is little difference now since the amount copied is large, and bcopy will become much faster on some machines.
* Renamed upa to p0upa to match p0upt.bde1996-07-122-28/+28
| | | | Cleaned up some comments.
* Export `dumpmag' to utilities but not to the kernel.bde1996-07-121-3/+4
| | | | Restored a truncated comment.
* Fixed cloned comments about npx traps to match context.bde1996-07-121-5/+8
|
* Fixed operand order for shld and shrd.bde1996-07-121-82/+80
| | | | | | Finished the constant poisoning that was begun in rev.1.14. Consts aren't very poisonous (or useful) unless -Wcast-qual is in CFLAGS, and it isn't in the default CFLAGS.
* Don't use NULL in non-pointer contexts.bde1996-07-121-3/+3
|
* Merge.jkh1996-07-111-1/+3
|
* Clean out some historical cruft.jkh1996-07-101-6/+1
|
* Fix something that's been bugging me for a long time: move the CPUwollman1996-07-082-195/+284
| | | | | | type identification code out of machdep.c and into a new file of its own. Hopefully other grot can be moved out of machdep.c as well (by other people) into more descriptively-named files.
* Fixed lots of warnings about unportable casts of pointers to volatilebde1996-07-011-3/+10
| | | | | | variables: don't depend on the compiler generating atomic code to set the variables - use inline asm to specify the atomic instruction(s) explicitly.
* Moved declarations of non-cpu things from <machine/cpufunc.h> to betterbde1996-07-012-20/+10
| | | | places.
* Use the standard timer (interrupt) frequency while calibrating the clocks.bde1996-07-012-14/+8
| | | | | | | | | | Testing with the high frequency of 20000 Hz (to find problems) only found the problem that this frequency is too high for slow i386's. Disable interrupts while setting the timer frequency. This was unnecessary before rev.1.57 and forgotten in rev.1.57. The critical (i8254) interrupts are disabled in another way at boot time but not in the sysctl to change the frequency.
* Enable ktrace by default, accompanied by a small reminder about thejoerg1996-06-301-2/+7
| | | | | | implications (4 KB bloat, slight slowdown of syscalls). Reviewed by: freebsd-hackers
* When page table pages were removed from process address space, thedyson1996-06-261-1/+3
| | | | | resident page stats were not being decremented. This mode corrects that problem.
* Added #include of <machine/md_var.h>. This will be needed whenbde1996-06-253-3/+6
| | | | | some declarations are moved from <machine/cpufunc.h> to better places.
* trap.c:bde1996-06-254-107/+15
| | | | | | | | | | | | | | | | | | | | | | | Fixed profiling of system times. It was pre-4.4Lite and didn't support statclocks. System times were too small by a factor of 8. Handle deferred profiling ticks the 4.4Lite way: use addupc_task() instead of addupc(). Call addupc_task() directly instead of using the ADDUPC() macro. Removed vestigial support for PROFTIMER. switch.s: Removed addupc(). resourcevar.h: Removed ADDUPC() and declarations of addupc(). cpu.h: Updated a comment. i386's never were tahoe's, and the deferred profiling tick became (possibly) multiple ticks in 4.4Lite. Obtained from: mostly from NetBSD
* Save John Polstra's initial fix for profiling for reference. Thebde1996-06-252-8/+10
| | | | | | | | multiplication in addupc() overflowed for addresses >= 256K, assuming the usual profil(2) scale parameter of 0x8000. addupc() will go away soon. Submitted by: John Polstra <jdp@polstra.com>
* Limit the scan for preloading pte's to the end of an object.dyson1996-06-251-1/+4
|
* Properly account for non-page aligned buffers.dg1996-06-201-3/+4
|
* Minor KNF formatting change to vmapbuf() and vunmapbuf().dg1996-06-201-13/+9
|
OpenPOWER on IntegriCloud