summaryrefslogtreecommitdiffstats
path: root/sys/amd64
Commit message (Collapse)AuthorAgeFilesLines
* Add missing CLOCK_UNLOCK() before write_eflags().jkh1998-02-212-2/+4
| | | | Submitted by: dave adkins <adkin003@tc.umn.edu>
* Replace TOD clock code with more systematic approach.phk1998-02-203-201/+231
| | | | | | | | | | | | | | | Highlights: * Simple model for underlying hardware. * Hardware basis for timekeeping can be changed on the fly. * Only one hardware clock responsible for TOD keeping. * Provides a real nanotime() function. * Time granularity: .232E-18 seconds. * Frequency granularity: .238E-12 s/s * Frequency adjustment is continuous in time. * Less overhead for frequency adjustment. * Improves xntpd performance. Reviewed by: bde, bde, bde
* Removed unused #includes.bde1998-02-201-2/+1
|
* Remove DISABLE_PSE option which was masking (but not fixing) the problem.msmith1998-02-161-3/+1
| | | | A correct fix for execution off MFS filesystems has been committed.
* TEMPORARILY disable support for the 4MB kernel page, as it appears to bemsmith1998-02-161-1/+3
| | | | | | causing installation images for -current to be unbootable. Submitted by: phk
* Removed a superstitious fnop() that broke the usefulness of the FPU'sbde1998-02-152-4/+2
| | | | "last instruction" pointer.
* Use RDMSR instruction instead of WRMSR.kato1998-02-131-16/+16
|
* Ifdefed SMP-only declarations.bde1998-02-131-3/+8
|
* Update timer0_prescaler_count before calling hardclock() while timer0bde1998-02-132-30/+44
| | | | | | | | | | | | | | | | is "acquired". This fixes a TSC biasing error of about 10 msec when pcaudio is active. Update `time' before calling hardclock() when timer0 is being released. This is not known to be important. Added some delays in writertc(). Efficiency is not critical here, unlike in rtcin(), and we already use conservative delays there. Don't touch the hardware when machdep.i8254_freq is being changed but the maximum count wouldn't change. This fixes jitter of up to 10 msec for most small adjustments to machdep.i8254_freq. When the maximum count needs to change, the hardware should be adjusted more carefully.
* Ifdefed some npx code. npx should be optional again.bde1998-02-131-1/+3
|
* Fixed missing privilege checking and off-by-1 bounds checking inbde1998-02-131-6/+9
| | | | | | | | | i386_set_ioperm(). Don't use a magic number for the bound. Fixed missing bounds checking in i386_get_ioperm(). Don't use a magic number for the bound elsewhere in this function. Removed some bogus initializers.
* Fixed initialization of the 4MB page. Kernels larger than about 2.75MBbde1998-02-121-2/+2
| | | | | (from _btext to _end) crashed in pmap_bootstrap(). Smaller kernels worked accidentally.
* Only use the i586-optimized copying and zeroing functions if they arebde1998-02-122-6/+76
| | | | | | actually faster (more than 20% faster for zeroing 1 MB at boot time). This fixes pessimized copying and zeroing on K6's and perhaps on other CPUs that are misclassified as i586's.
* Fix warning after previous staticization.eivind1998-02-101-2/+2
|
* Staticize.eivind1998-02-0910-44/+50
|
* Remove warnings from f00f_hack.eivind1998-02-091-5/+5
|
* Back out DIAGNOSTIC changes.eivind1998-02-068-18/+8
|
* 1) Start using a cleaner and more consistant page allocator insteaddyson1998-02-052-122/+147
| | | | | | | | | | | | | | | | | | | | | | | | of the various ad-hoc schemes. 2) When bringing in UPAGES, the pmap code needs to do another vm_page_lookup. 3) When appropriate, set the PG_A or PG_M bits a-priori to both avoid some processor errata, and to minimize redundant processor updating of page tables. 4) Modify pmap_protect so that it can only remove permissions (as it originally supported.) The additional capability is not needed. 5) Streamline read-only to read-write page mappings. 6) For pmap_copy_page, don't enable write mapping for source page. 7) Correct and clean-up pmap_incore. 8) Cluster initial kern_exec pagin. 9) Removal of some minor lint from kern_malloc. 10) Correct some ioopt code. 11) Remove some dead code from the MI swapout routine. 12) Correct vm_object_deallocate (to remove backing_object ref.) 13) Fix dead object handling, that had problems under heavy memory load. 14) Add minor vm_page_lookup improvements. 15) Some pages are not in objects, and make sure that the vm_page.c can properly support such pages. 16) Add some more page deficit handling. 17) Some minor code readability improvements.
* Turn DIAGNOSTIC into a new-style option.eivind1998-02-048-8/+18
|
* Make FAILSAFE a new-style option.eivind1998-02-041-1/+2
|
* Converted DISABLE_PSE to a new-style option.bde1998-02-031-1/+3
| | | | Fixed some formatting in options.i386.
* Ifdefed some SMP and VM86 code. Note that although VM86 is not a globalbde1998-02-032-2/+21
| | | | | option, the ifdef on it in a header works because only the name of the VM86 extension is hidden.
* Forward declare a union so that this file is self-sufficient.bde1998-02-031-11/+10
| | | | Cleaned up ifdefs.
* Ifdefed use of a GNU feature.bde1998-02-031-1/+3
|
* Fixed disordering of busdma* and swi_vm.bde1998-02-011-4/+4
|
* Fixed a recently broken comment.bde1998-02-011-4/+4
|
* Declare printf() instead of including <stdio.h>, so that this doesn'tbde1998-02-011-4/+3
| | | | | | | | depend on anything outside of "sys". Removed an unused include. Don't use `extern' in a function declaration.
* Change the busy page mgmt, so that when pages are freed, theydyson1998-01-311-7/+21
| | | | | | | | | | | | | | MUST be PG_BUSY. It is bogus to free a page that isn't busy, because it is in a state of being "unavailable" when being freed. The additional advantage is that the page_remove code has a better cross-check that the page should be busy and unavailable for other use. There were some minor problems with the collapse code, and this plugs those subtile "holes." Also, the vfs_bio code wasn't checking correctly for PG_BUSY pages. I am going to develop a more consistant scheme for grabbing pages, busy or otherwise. For now, we are stuck with the current morass.
* Make the debug options new-style.eivind1998-01-312-2/+4
| | | | | This also zaps a DPT option from lint; it wasn't referenced from anywhere.
* Make POWERFAIL_NMI, PPS_SYNC and NATM new style options.eivind1998-01-311-1/+2
| | | | This also fixes a couple of defunct options; submitted by bde.
* Skip probing devices which have already probed true.eivind1998-01-311-1/+13
|
* Include "opt_nfs.h"eivind1998-01-312-2/+4
| | | | Pointed out by: Eric L. Hernes <erich@lodgenet.com>
* Retire LFS.phk1998-01-301-20/+1
| | | | | | | | | | | | If you want to play with it, you can find the final version of the code in the repository the tag LFS_RETIREMENT. If somebody makes LFS work again, adding it back is certainly desireable, but as it is now nobody seems to care much about it, and it has suffered considerable bitrot since its somewhat haphazard integration. R.I.P
* Make the bounce buffer code a little more robust when space isn'tdyson1998-01-302-19/+25
| | | | | | available. If there isn't bounce space available, the bounce code is disabled. This will allow most large systems to run properly when the bounce space is mistakenly allocated above 16MB.
* APM calls inittodr(0) which is stupid, but at least stop setting thephk1998-01-282-10/+14
| | | | clock back to when Dennis had a good idea.
* Execute cpuid if BIOS disables cpuid instruction of Cyrix 6x86MX CPU.kato1998-01-271-4/+13
|
* Undo previous commit. The cpuid symbol has been already used by SMPkato1998-01-252-23/+5
| | | | | | stuff. Pointed-out by: Manfred Antar <root@mantar.slip.netcom.com>
* Added cpuid instruction.kato1998-01-251-1/+10
|
* Execute cpuid if BIOS disables cpuid instruction of Cyrix 6x86MX CPU,kato1998-01-251-4/+13
| | | | | | and store its result into cpu_id and cpu_feature variables. Tested by: Simon Coggins <chaos@ultra.net.au>
* Even though BIOS writer's guide recommends cpuid instruction of Cyrixkato1998-01-252-17/+56
| | | | | | | | | 6x86MX CPU is enabled (BIOS should not disable it), some BIOS disables it via CCR4. In this case, cpu variable becomes CPU_486 and identblue() is called. Because Cyrix 6x86MX has MSR and doesn't have MSR1002, wrmsr instruction generates general protection fault. Tested by: Simon Coggins <chaos@ultra.net.au>
* Make all file-system (MFS, FFS, NFS, LFS, DEVFS) related option new-style.eivind1998-01-243-7/+15
| | | | | | | | This introduce an xxxFS_BOOT for each of the rootable filesystems. (Presently not required, but encouraged to allow a smooth move of option *FS to opt_dontuse.h later.) LFS is temporarily disabled, and will be re-enabled tomorrow.
* Add better support for larger I/O clusters, including larger physicaldyson1998-01-241-2/+2
| | | | | I/O. The support is not mature yet, and some of the underlying implementation needs help. However, support does exist for IDE devices now.
* VM level code cleanups.dyson1998-01-223-75/+64
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1) Start using TSM. Struct procs continue to point to upages structure, after being freed. Struct vmspace continues to point to pte object and kva space for kstack. u_map is now superfluous. 2) vm_map's don't need to be reference counted. They always exist either in the kernel or in a vmspace. The vmspaces are managed by reference counts. 3) Remove the "wired" vm_map nonsense. 4) No need to keep a cache of kernel stack kva's. 5) Get rid of strange looking ++var, and change to var++. 6) Change more data structures to use our "zone" allocator. Added struct proc, struct vmspace and struct vnode. This saves a significant amount of kva space and physical memory. Additionally, this enables TSM for the zone managed memory. 7) Keep ioopt disabled for now. 8) Remove the now bogus "single use" map concept. 9) Use generation counts or id's for data structures residing in TSM, where it allows us to avoid unneeded restart overhead during traversals, where blocking might occur. 10) Account better for memory deficits, so the pageout daemon will be able to make enough memory available (experimental.) 11) Fix some vnode locking problems. (From Tor, I think.) 12) Add a check in ufs_lookup, to avoid lots of unneeded calls to bcmp. (experimental.) 13) Significantly shrink, cleanup, and make slightly faster the vm_fault.c code. Use generation counts, get rid of unneded collpase operations, and clean up the cluster code. 14) Make vm_zone more suitable for TSM. This commit is partially as a result of discussions and contributions from other people, including DG, Tor Egge, PHK, and probably others that I have forgotten to attribute (so let me know, if I forgot.) This is not the infamous, final cleanup of the vnode stuff, but a necessary step. Vnode mgmt should be correct, but things might still change, and there is still some missing stuff (like ioopt, and physical backing of non-merged cache files, debugging of layering concepts.)
* Add entries for tx card.jkh1998-01-211-1/+2
|
* Add prototypes for swi_vm, setsoftvm, schedsoftvm, and splsoftvm that weregibbs1998-01-211-1/+2
| | | | missed when I originally committed the bus dma code.
* Suggested by: bdejb1998-01-201-1/+12
| | | | | | | | | | Move sigjmp_buf and jmp_buf structure definitions to machine/setjmp.h so that i386 can continue to use int as the basic register type and alpha can use long. Bruce was concerned about possible differing alignment. I've left the definition of _JBLEN in machine/setjmp.h even though Bruce's example used the number directly. I don't know if any other code relies on _JBLEN, so I left it to avoid potential breakage.
* The removal of a page from the free queue in vm_page_zero_idle wastegge1998-01-191-1/+2
| | | | | imcomplete. Also set m->queue, in order to prevent vm_page_select_free from selecting the page being zeroed.
* Tie up some loose ends in vnode/object management. Remove an unneededdyson1998-01-171-24/+6
| | | | | | | config option in pmap. Fix a problem with faulting in pages. Clean-up some loose ends in swap pager memory management. The system should be much more stable, but all subtile bugs aren't fixed yet.
* Bring in IDE ATAPI floppy support.pst1998-01-161-2/+3
| | | | | | | | | | | This is Junichi's v1.0 driver. NOTE: Major device numbers have been changed to avoid conflict with other FreeBSD 3.0 devices. The new numbers should be considered "official." This driver is still considered "beta" quality, although we have been playing with it. Please submit bugs to junichi and myself. Submitted by: junichi@astec.co.jp
* Addition of splsoftvm and a VM SWI to handle bus dma related callbacks.gibbs1998-01-154-12/+12
| | | | This SWI may be useful for other, defered, VM tasks.
OpenPOWER on IntegriCloud