summaryrefslogtreecommitdiffstats
path: root/sys/amd64
Commit message (Collapse)AuthorAgeFilesLines
* The Great PC98 Merge.asami1996-06-143-3/+62
| | | | | | | | All new code is "#ifdef PC98"ed so this should make no difference to PC/AT (and its clones) users. Ok'd by: core Submitted by: FreeBSD(98) development team
* Change CONF1_ENABLE_MSK to 0x7ff00000 in another attempt to decidese1996-06-132-4/+4
| | | | | whether a system could possibly support PCI configuration mechanism 1 (or whether it rather is an EISA only system ...).
* A fast memory copy for Pentiums using floating point registers.asami1996-06-133-3/+391
| | | | | | | | | | | | | | | | | | It is called from copyin and copyout. The new routine is conditioned on I586_CPU and I586_FAST_BCOPY, so you need options "I586_FAST_BCOPY" (quotes essenstial) in your kernel config file. Also, if you have other kernel types configured in your kernel, an additional check to make sure it is running on a Pentium is inserted. (It is not clear why it doesn't help on P6s, it may be just that the Orion chipset doesn't prefetch as efficiently as Tritons and friends.) Bruce can now hack this away. :)
* Fix a very significant cnt.v_wire_count leak in vm_page.c, and somedyson1996-06-121-4/+6
| | | | minor leaks in pmap.c. Bruce Evans made me aware of this problem.
* Clean up -Wunused warnings.gpalmer1996-06-123-13/+3
| | | | Reviewed by: bde
* Move warning messages under bootverbosepst1996-06-112-8/+16
|
* Put clock calibration #defines in opt_clock.h to ease reconfigurationpst1996-06-112-2/+4
|
* Removed unnecessary forward declarations of incomplete structs.bde1996-06-081-3/+1
|
* Stop using the alias `pcb_ptd' for `pcb_tcc.tss_cr3'. Use the (existing)bde1996-06-081-3/+3
| | | | | | alias `pcb_cr3' instead. That is still one alias too many, but is convenient for me since I've replaced the tss in the pcb by a few scalar variables in the pcb.
* Removed bogus `altfmt' code. No alternative formats are supported, butbde1996-06-081-10/+1
| | | | | | altfmt was abused to sometimes screw up the disassembly of the bytes following unconditional jump instructions. Gas doesn't pad to a longword boundary like the comment said - that is the programmer's responsibility.
* Removed recently introduced unnecessary #includes of <machine/cpu.h>bde1996-06-081-3/+1
| | | | (bootverbose isn't there in -current) and nearby unnecessary #includes.
* Adjust the threshold for blocking on movement of pages from the cachedyson1996-06-081-24/+13
| | | | | | | | | | | | | | | | | queue in vm_fault. Move the PG_BUSY in vm_fault to the correct place. Remove redundant/unnecessary code in pmap.c. Properly block on rundown of page table pages, if they are busy. I think that the VM system is in pretty good shape now, and the following individuals (among others, in no particular order) have helped with this recent bunch of bugs, thanks! If I left anyone out, I apologize! Stephen McKay, Stephen Hocking, Eric J. Chet, Dan O'Brien, James Raynard, Marc Fournier.
* Fix a bug in the pmap_object_init_pt routine that pages aren't takendyson1996-06-071-1/+3
| | | | from the cache queue before being mapped into the process.
* I missed a case of the page table page dirty-bit fix.dyson1996-06-051-2/+4
|
* Keep page-table pages from ever being sensed as dirty. This should fixdyson1996-06-051-15/+40
| | | | | | | some problems with the page-table page management code, since it can't deal with the notion of page-table pages being paged out or in transit. Also, clean up some stylistic issues per some suggestions from Stephen McKay.
* Added missing CR0_NW define for Cyrix 486DLC support. It's still notsos1996-06-031-1/+3
| | | | | | stable on my hardware, but its better... *sigh* Obtained from: NetBSD
* Don't carry the modified or referenced bits through to the childdyson1996-06-021-12/+30
| | | | | | | process during pmap_copy. This minimizes unnecessary swapping or creation of swap space. If there is a hold_count flaw for page-table pages, clear the page before freeing it to lessen the chance of a system crash -- this is a robustness thing only, NOT a fix.
* Be slightly more verbose during configure() in the bootverbose case.joerg1996-06-021-3/+23
| | | | | This breaks the long silence after the ``npx0'' message and allows to track some of the problems regarding the root f/s decisions.
* Fix the problem with pmap_copy that breaks X in small memory machines. Alsodyson1996-06-011-13/+23
| | | | | | close some windows that are opened up by page table allocations. The prefaulting code no longer uses hold counts, but now uses the busy flag for synchronization.
* Jump some hoops to have the *.s code being able to be run through both anpeter1996-05-317-130/+133
| | | | | | | | | ansi and traditional cpp. The nesting rules of macros are different, which required some changes. Use __CONCAT(x,y) instead of /**/. Redo some comments to use /* */ rather than "# comment" because the ansi cpp cares about those, and also cares about quote matching.
* This commit is dual-purpose, to fix more of the pageout daemondyson1996-05-311-44/+57
| | | | | | queue corruption problems, and to apply Gary Palmer's code cleanups. David Greenman helped with these problems also. There is still a hang problem using X in small memory machines.
* The wrong address (pindex) was being used for the page table directory. Nodyson1996-05-291-7/+5
| | | | negative side effects right now, but just a clean-up.
* Cleanup the last of the assembly time "-KERNBASE" relocations.phk1996-05-272-44/+44
|
* Fix harmless warning.. pmap_nw_modified was not having it's argpeter1996-05-221-2/+2
| | | | cast to pt_entry_t like the others inside the DIAGNOSTIC code.
* A serious error in pmap.c(pmap_remove) is corrected by this. Whendyson1996-05-221-30/+4
| | | | | | | comparing the PTD pointers, they needed to be masked by PG_FRAME, and they weren't. Also, the "improved" non-386 code wasn't really an improvement, so I simplified and fixed the code. This might have caused some of the panics caused by the VM megacommit.
* To quote Stephen McKay: pmap_copy is a complex NOP at this moment :-).dyson1996-05-211-2/+2
| | | | | | | | | With this fix from Stephen, we are getting the target fork performance that I have been trying to attain: P5-166, before the mega-commit: 700-800usecs, after: 600usecs, with Stephen's fix: 500usecs!!! Also, this could be the solution of some strange panic problems... Reviewed by: dyson@freebsd.org Submitted by: Stephen McKay <syssgm@devetir.qld.gov.au>
* Initial support for mincore and madvise. Both are almost fullydyson1996-05-191-3/+51
| | | | | supported, except madvise does not page in with MADV_WILLNEED, and MADV_DONTNEED doesn't force dirty pages out.
* This set of commits to the VM system does the following, and containdyson1996-05-185-611/+801
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | contributions or ideas from Stephen McKay <syssgm@devetir.qld.gov.au>, Alan Cox <alc@cs.rice.edu>, David Greenman <davidg@freebsd.org> and me: More usage of the TAILQ macros. Additional minor fix to queue.h. Performance enhancements to the pageout daemon. Addition of a wait in the case that the pageout daemon has to run immediately. Slightly modify the pageout algorithm. Significant revamp of the pmap/fork code: 1) PTE's and UPAGES's are NO LONGER in the process's map. 2) PTE's and UPAGES's reside in their own objects. 3) TOTAL elimination of recursive page table pagefaults. 4) The page directory now resides in the PTE object. 5) Implemented pmap_copy, thereby speeding up fork time. 6) Changed the pv entries so that the head is a pointer and not an entire entry. 7) Significant cleanup of pmap_protect, and pmap_remove. 8) Removed significant amounts of machine dependent fork code from vm_glue. Pushed much of that code into the machine dependent pmap module. 9) Support more completely the reuse of already zeroed pages (Page table pages and page directories) as being already zeroed. Performance and code cleanups in vm_map: 1) Improved and simplified allocation of map entries. 2) Improved vm_map_copy code. 3) Corrected some minor problems in the simplify code. Implemented splvm (combo of splbio and splimp.) The VM code now seldom uses splhigh. Improved the speed of and simplified kmem_malloc. Minor mod to vm_fault to avoid using pre-zeroed pages in the case of objects with backing objects along with the already existant condition of having a vnode. (If there is a backing object, there will likely be a COW... With a COW, it isn't necessary to start with a pre-zeroed page.) Minor reorg of source to perhaps improve locality of ref.
* Added commented out PCCARD entries to GENERIC, also document and addnate1996-05-131-1/+5
| | | | entries in LINT.
* Allocate mbufs from a separate submap so that NMBCLUSTERS works aswollman1996-05-101-2/+9
| | | | expected.
* Fix brino on my part. _etext doesn't include the padding to a pagephk1996-05-092-2/+6
| | | | | | boundary, which means that it doesn't mark the start of the data section (which is then inaccessible to the programmer ??). Hopefully fixes recent locore reboot problems.
* Another sweep over the pmap/vm macros, this time with more focus onphk1996-05-035-16/+15
| | | | | the usage. I'm not satisfied with the naming, but now at least there is less bogus stuff around.
* Move atdevbase out of locore.s and into machdep.cphk1996-05-026-199/+168
| | | | | | | | | | | | | | | | | Macroize locore.s' page table setup even more, now it's almost readable. Rename PG_U to PG_A (so that I can...) Rename PG_u to PG_U. "PG_u" was just too ugly... Remove some unused vars in pmap.c Remove PG_KR and PG_KW Remove SSIZE Remove SINCR Remove BTOPKERNBASE This concludes my spring cleaning, modulus any bug fixes for messes I have made on the way. (Funny to be back here in pmap.c, that's where my first significant contribution to 386BSD was... :-)
* removed:phk1996-05-0211-103/+104
| | | | | | | | | CLBYTES PD_SHIFT PGSHIFT NBPG PGOFSET CLSIZELOG2 CLSIZE pdei() ptei() kvtopte() ptetov() ispt() ptetoav() &c &c new: NPDEPG Major macro cleanup.
* First pass at cleaning up macros relating to pages, clusters and all that.phk1996-05-024-38/+38
|
* KGDB is dead. It may come back one day if somebody does it.phk1996-05-022-56/+4
|
* Added calibration the i8254 and the i586 clocks agains the RTC at bootbde1996-05-014-97/+504
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | time. The results are currently ignored unless certain temporary options are used. Added sysctls to support reading and writing the clock frequency variables (not the frequencies themselves). Writing is supposed to atomically adjust all related variables. machdep.c: Fixed spelling of a function name in a comment so that I can log this message which should have been with the previous commit. Initialize `cpu_class' earlier so that it can be used in startrtclock() instead of in calibrate_cyclecounter() (which no longer exists). Removed range checking of `cpu'. It is always initialized to CPU_XXX so it is less likely to be out of bounds than most variables. clock.h: Removed I586_CYCLECTR(). Use rdtsc() instead. clock.c: TIMER_FREQ is now a variable timer_freq that defaults to the old value of TIMER_FREQ. #define'ing TIMER_FREQ should still work and may be the best way of setting the frequency. Calibration involves counting cycles while watching the RTC for one second. This gives values correct to within (a few ppm) + (the innaccuracy of the RTC) on my systems.
* i386/machdep.cbde1996-05-011-14/+3
| | | | | include/clock.h isa/clock.c
* Don't return unused values in cpu_switch() or savectx().bde1996-05-013-14/+6
| | | | Don't preserve unused registers in the NPX case in savectx().
* Only disable sio3 by default.bde1996-05-011-2/+2
|
* Make pcibus_check() ignore Device/Vendor IDs of all 0.se1996-04-302-4/+4
|
* pte.h: Add the VADDR(pdi,pti) macro to construct virtual address fromphk1996-04-302-18/+23
| | | | | | | page dir+table index. pmap.h: remove NUPDE, it was wrong and not used. Sanitize KSTKPTEOFF. vmparam.h: Calculate virtual addr from PDI+PTI from pmap.h rather than using magic math. Remove UPDT, not used.
* Remove a spurious mapping that was introduced earlier.phk1996-04-302-18/+2
|
* Add ATAPI_STATIC so that the ATAPI cdroms work correctly againjkh1996-04-291-2/+3
| | | | | under -current. Submitted-By: Serge Vakulenko <vak@cronyx.ru>
* Fix some bugs I introduced and some old ones as well.phk1996-04-282-108/+410
| | | | | | | | | Add BDE_DEBUGGER back. Improve quality of comments. Thanks Bruce! Reviewed by: phk Submitted by: bde
* Fixed a bug introoduced in the previous change. ISA device memory wasbde1996-04-262-6/+6
| | | | | | | mapped to semi-random place(s) depending on the content(s) of physical address 0xA0000. This was fatal at least on my system with a some memory-mapped devices. Console syscons somehow wasn't affected. It bogusly hardcodes the address. Sigh.
* A significant debogofication of locore.s. I havn't found any actualyphk1996-04-263-697/+598
| | | | bugs, but it is a lot easier to navigate this twisted code now.
* Fix cpu_fork for real.phk1996-04-255-20/+14
| | | | Suggested by: bde
* - add apm to the GENERIC kernel (disabled by default), and add some commentsnate1996-04-224-12/+55
| | | | | | | | | | | regarding apm to LINT - Disabled the statistics clock on machines which have an APM BIOS and have the options "APM_BROKEN_STATCLOCK" enabled (which is default in GENERIC now) - move around some of the code in clock.c dealing with the rtc to make it more obvios the effects of disabling the statistics clock Reviewed by: bde
* This fixes a troubling oversight in some of the pmap code enhancements.dyson1996-04-221-1/+2
| | | | | | | | One of the manifiestations of the problem includes the -4 RSS problem in ps. Reviewed by: dyson Submitted by: Stephen McKay <syssgm@devetir.qld.gov.au>
OpenPOWER on IntegriCloud