summaryrefslogtreecommitdiffstats
path: root/sys/powerpc/aim
Commit message (Collapse)AuthorAgeFilesLines
* Reduce the number of "magic constants" used for page coloringalc1999-07-221-2/+2
| | | | | by one: PQ_PRIME2 and PQ_PRIME3 are used to accomplish the same thing at different places in the kernel. Drop PQ_PRIME3.
* Slight reorganization of kernel thread/process creation. Instead of usingpeter1999-07-011-3/+3
| | | | | | | | | | | | | | | SYSINIT_KT() etc (which is a static, compile-time procedure), use a NetBSD-style kthread_create() interface. kproc_start is still available as a SYSINIT() hook. This allowed simplification of chunks of the sysinit code in the process. This kthread_create() is our old kproc_start internals, with the SYSINIT_KT fork hooks grafted in and tweaked to work the same as the NetBSD one. One thing I'd like to do shortly is get rid of nfsiod as a user initiated process. It makes sense for the nfs client code to create them on the fly as needed up to a user settable limit. This means that nfsiod doesn't need to be in /sbin and is always "available". This is a fair bit easier to do outside of the SYSINIT_KT() framework.
* Replace my previous fix of saving the FP state with a much simpler one: whendt1999-06-101-4/+2
| | | | | | we swap out fpcurproc, save its FP state. Suggested by: bde
* Keep fpcurproc locked in memory, so that we always can save the FP statedt1999-06-081-2/+4
| | | | | | | | correctly. This should fix the "pmap_changebit didn't" panic that some people see. Reviewed by: dfr
* Fixed several (not all) warnings.dt1999-04-231-2/+1
|
* Added consts to cpu_set_fork_handler prototype. (Follow i386 version.)dt1999-04-201-3/+3
|
* unifdef -DVM_STACK - it's been on for a while for x86 and was checkedpeter1999-04-191-56/+1
| | | | and appeared to be working for the Alpha some time ago.
* Adjust idle zero-page fill hysteresis based on tests. Use 2/3 and 4/5dillon1999-02-081-4/+8
| | | | | | | zero-fill levels. Adjust comment for ozfod in vmmeter.h - this counter represents non-optimal ( on the fly ) zero fills, not prefills.
* Add hysteresis to alpha version of vm_page_zero_idle().dillon1999-02-081-14/+17
|
* Rip out PQ_ZERO queue. PQ_ZERO functionality is now combined in withdillon1999-02-081-6/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | PQ_FREE. There is little operational difference other then the kernel being a few kilobytes smaller and the code being more readable. * vm_page_select_free() has been *greatly* simplified. * The PQ_ZERO page queue and supporting structures have been removed * vm_page_zero_idle() revamped (see below) PG_ZERO setting and clearing has been migrated from vm_page_alloc() to vm_page_free[_zero]() and will eventually be guarenteed to remain tracked throughout a page's life ( if it isn't already ). When a page is freed, PG_ZERO pages are appended to the appropriate tailq in the PQ_FREE queue while non-PG_ZERO pages are prepended. When locating a new free page, PG_ZERO selection operates from within vm_page_list_find() ( get page from end of queue instead of beginning of queue ) and then only occurs in the nominal critical path case. If the nominal case misses, both normal and zero-page allocation devolves into the same _vm_page_list_find() select code without any specific zero-page optimizations. Additionally, vm_page_zero_idle() has been revamped. Hysteresis has been added and zero-page tracking adjusted to conform with the other changes. Currently hysteresis is set at 1/3 (lo) and 1/2 (hi) the number of free pages. We may wish to increase both parameters as time permits. The hysteresis is designed to avoid silly zeroing in borderline allocation/free situations.
* Mostly remove the VM_STACK OPTION.julian1999-01-261-1/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This changes the definitions of a few items so that structures are the same whether or not the option itself is enabled. This allows people to enable and disable the option without recompilng the world. As the author says: |I ran into a problem pulling out the VM_STACK option. I was aware of this |when I first did the work, but then forgot about it. The VM_STACK stuff |has some code changes in the i386 branch. There need to be corresponding |changes in the alpha branch before it can come out completely. what is done: | |1) Pull the VM_STACK option out of the header files it appears in. This |really shouldn't affect anything that executes with or without the rest |of the VM_STACK patches. The vm_map_entry will then always have one |extra element (avail_ssize). It just won't be used if the VM_STACK |option is not turned on. | |I've also pulled the option out of vm_map.c. This shouldn't harm anything, |since the routines that are enabled as a result are not called unless |the VM_STACK option is enabled elsewhere. | |2) Add what appears to be appropriate code the the alpha branch, still |protected behind the VM_STACK switch. I don't have an alpha machine, |so we would need to get some testers with alpha machines to try it out. | |Once there is some testing, we can consider making the change permanent |for both i386 and alpha. | [..] | |Once the alpha code is adequately tested, we can pull VM_STACK out |everywhere. | Submitted by: "Richard Seaman, Jr." <dick@tar.com>
* Various changes to support OSF1 emulation:dfr1998-12-301-5/+5
| | | | | | | | | | | * Move the user stack from VM_MAXUSER_ADDRESS to a place below the 32bit boundary (needed to support 32bit OSF programs). This should also save one pagetable per process. * Add cvtqlsv to the set of instructions handled by the floating point software completion code. * Disable all floating point exceptions by default. * A minor change to execve to allow the OSF1 image activator to support dynamic loading.
* Removed bogus casts of USRSTACK and/or the other operand in binarybde1998-12-161-4/+4
| | | | expressions involving USRSTACK.
* Implement 'software completion' for floating point arithmetic. On thedfr1998-12-041-1/+13
| | | | | | | | | | | | | | | | | | alpha, operations involving non-finite numbers or denormalised numbers or operations which should generate such numbers will cause an arithmetic exception. For programs which follow some strict code generation rules, the kernel trap handler can then 'complete' the operation by emulating the faulting instruction. To use software completion, a program must be compiled with the arguments '-mtrap-precision=i' and '-mfp-trap-mode=su' or '-mfp-trap-mode=sui'. Programs compiled in this way can use non-finite and denormalised numbers at the expense of slightly less efficient code generation of floating point instructions. Programs not compiled with these options will receive a SIGFPE signal when non-finite or denormalised numbers are used or generated. Reviewed by: John Polstra <jdp@polstra.com>
* Change a bogus cast to the correct one.dfr1998-10-151-2/+2
|
* Don't bother calling pmap_emulate_reference() from cpu_fork(). It isn'tdfr1998-07-121-11/+1
| | | | needed and it panics a DIAGNOSTIC kernel.
* Add missing copyrights. Thanks to Jason Thorpe for politely noting thedfr1998-06-101-0/+516
mistake...
OpenPOWER on IntegriCloud