Age | Commit message (Collapse) | Author |
|
As vm_allocate does.
* vm/vm_user.c (vm_map): When `anywhere' is true, set `address' to the
minimum address of the `target_map'.
|
|
This targets having always at least 8% free memory instead of just 1%.
This has shown improving buildd stability a lot. Also increase the
reserved amount to nowadays standards.
* vm/vm_pageout.c (VM_PAGE_FREE_TARGET): Increase to 10%.
(VM_PAGE_FREE_MIN): Increase to 8%.
(VM_PAGE_FREE_RESERVED): Increase to 500 pages.
(VM_PAGEOUT_RESERVED_INTERNAL): Increase to 150 pages.
(VM_PAGEOUT_RESERVED_REALLY): Increase to 100 pages.
|
|
* vm/vm_pageout.c (vm_pageout): Set the priority to 0.
|
|
Currently, the size of struct vm_map is 68 bytes. By using a bit
field for the boolean flags, it can be made fit into a cache line.
* vm/vm_map.h (struct vm_map): Use a bit field for the boolean flags
wait_for_space and wiring_required.
|
|
Convert from K&R style function definitions to ANSI style
function definitions.
* ddb/db_access.c: Convert function prototypes from K&R to ANSI.
* ddb/db_aout.c: Likewise.
* ddb/db_break.c: Likewise.
* ddb/db_command.c: Likewise.
* ddb/db_cond.c: Likewise.
* ddb/db_examine.c: Likewise.
* ddb/db_expr.c: Likewise.
* ddb/db_ext_symtab.c: Likewise.
* ddb/db_input.c: Likewise.
* ddb/db_lex.c: Likewise.
* ddb/db_macro.c: Likewise.
* ddb/db_mp.c: Likewise.
* ddb/db_output.c: Likewise.
* ddb/db_print.c: Likewise.
* ddb/db_run.c: Likewise.
* ddb/db_sym.c: Likewise.
* ddb/db_task_thread.c: Likewise.
* ddb/db_trap.c: Likewise.
* ddb/db_variables.c: Likewise.
* ddb/db_watch.c: Likewise.
* device/blkio.c: Likewise.
* device/chario.c: Likewise.
* device/dev_lookup.c: Likewise.
* device/dev_name.c: Likewise.
* device/dev_pager.c: Likewise.
* device/ds_routines.c: Likewise.
* device/net_io.c: Likewise.
* device/subrs.c: Likewise.
* i386/i386/db_interface.c: Likewise.
* i386/i386/fpu.c: Likewise.
* i386/i386/io_map.c: Likewise.
* i386/i386/loose_ends.c: Likewise.
* i386/i386/mp_desc.c: Likewise.
* i386/i386/pcb.c: Likewise.
* i386/i386/phys.c: Likewise.
* i386/i386/trap.c: Likewise.
* i386/i386/user_ldt.c: Likewise.
* i386/i386at/com.c: Likewise.
* i386/i386at/kd.c: Likewise.
* i386/i386at/kd_event.c: Likewise.
* i386/i386at/kd_mouse.c: Likewise.
* i386/i386at/kd_queue.c: Likewise.
* i386/i386at/lpr.c: Likewise.
* i386/i386at/model_dep.c: Likewise.
* i386/i386at/rtc.c: Likewise.
* i386/intel/pmap.c: Likewise.
* i386/intel/read_fault.c: Likewise.
* ipc/ipc_entry.c: Likewise.
* ipc/ipc_hash.c: Likewise.
* ipc/ipc_kmsg.c: Likewise.
* ipc/ipc_marequest.c: Likewise.
* ipc/ipc_mqueue.c: Likewise.
* ipc/ipc_notify.c: Likewise.
* ipc/ipc_port.c: Likewise.
* ipc/ipc_right.c: Likewise.
* ipc/mach_debug.c: Likewise.
* ipc/mach_msg.c: Likewise.
* ipc/mach_port.c: Likewise.
* ipc/mach_rpc.c: Likewise.
* kern/act.c: Likewise.
* kern/exception.c: Likewise.
* kern/ipc_mig.c: Likewise.
* kern/ipc_tt.c: Likewise.
* kern/lock_mon.c: Likewise.
* kern/mach_clock.c: Likewise.
* kern/machine.c: Likewise.
* kern/printf.c: Likewise.
* kern/priority.c: Likewise.
* kern/startup.c: Likewise.
* kern/syscall_emulation.c: Likewise.
* kern/syscall_subr.c: Likewise.
* kern/thread_swap.c: Likewise.
* kern/time_stamp.c: Likewise.
* kern/timer.c: Likewise.
* kern/xpr.c: Likewise.
* vm/memory_object.c: Likewise.
* vm/vm_debug.c: Likewise.
* vm/vm_external.c: Likewise.
* vm/vm_fault.c: Likewise.
* vm/vm_kern.c: Likewise.
* vm/vm_map.c: Likewise.
* vm/vm_pageout.c: Likewise.
* vm/vm_user.c: Likewise.
|
|
In addition to physical pages, the slab allocator also consumes kernel
virtual memory, so reclaim pages on failure to allocate from a kernel map.
This method isn't foolproof but helps alleviate fragmentation.
* vm/vm_kern.c (kmem_alloc): Call slab_collect and retry allocation
once on failure.
(kmem_realloc): Likewise.
(kmem_alloc_wired): Likewise.
(kmem_alloc_wired): Likewise.
(kmem_alloc_aligned): Likewise.
|
|
* vm/vm_kern.c (projected_buffer_deallocate): Look for `map' being NULL
or kernel_map before locking it.
|
|
It is not clear to me why the declaration was put there in the first
place. It is not used anywhere, and it conflicts with the declaration
generated by mig.
* vm/memory_object_proxy.h (memory_object_create_proxy): Remove declaration.
|
|
Previously, the bit field left 31 bits unused. By reducing the size
of wire_count by one bit, the size of the whole struct is reduced by
four bytes.
* vm/vm_page.h (struct vm_page): Reduce the size of wire_count to 15
bits.
|
|
* vm/vm_page.h (struct vm_page): Merge the two bit fields.
|
|
Apparently, the NS32000 was a 32-bit CPU from the 1990ies. The string
"ns32000" appears nowhere else in the source.
* vm/vm_page.h (struct vm_page): Remove NS32000-specific padding.
|
|
Declare void argument lists that were not declared in the first
part of this patch and
* kern/sched_prim.h (recompute_priorities): Fix prototype.
* kern/startup.c (setup_main) (recompute_priorities): Fix call.
|
|
|
|
|
|
Members offset and phys_addr are of vm_offset_t types.
* vm/vm_resident.c (vm_page_print) (offset, phys_addr): Remove unnecessary casts.
|
|
The return value from vm_map_min() is already of vm_offset_t type.
* vm/vm_kern.c (kmem_submap) (addr): Remove unnecessary cast.
|
|
|
|
Addresses were cast to (void *). Pointers uncasted.
* device/ds_routines.c (ds_read_done) (memset) (start_sent): Cast to (void *) instead to (char *). Argument is an address.
(ds_read_done) (memset) (end_data): Likewise.
* i386/i386/pcb.c (thread_getstatus) (memcpy) (pm): Don't cast. Argument is a pointer.
(thread_getstatus) (memcpy) (iopb): Likewise.
* i386/i386at/immc.c (immc_cnputc) (memmove): Cast first argument to (void *). Argument is an address.
(immc_cnputc) (memmove): Cast second argument to (void *). Argument is an address.
(immc_cnputc) (memset): Cast first argument to (void *). Argument is an address.
* i386/i386at/model_dep.c (i386at_init) (memcpy) (phystokv): Cast to (void *) instead to (char *). Argument is an address.
* i386/intel/pmap.c (pmap_init) (memset) (addr): Likewise.
* ipc/mach_debug.c (mach_port_space_info) (memset) (table_addr + size_used): Likewise.
(mach_port_space_info) (memset) (tree_addr + size_used): Likewise.
* kern/host.c (host_processor_sets) (memcpy) (newaddr): Likewise.
(host_processor_sets) (memcpy) (addr): Likewise.
* kern/xpr.c (xprbootstrap) (memset) (addr): Likewise.
* vm/vm_debug.c (mach_vm_object_pages) (memset) (addr + size_used): Likewise.
|
|
* vm/vm_map.c (vm_map_pmap_enter_print, vm_map_pmap_enter_enable): Use boolean instead of an int.
|
|
* vm/vm_object.c (vm_object_terminate_remove_all): Remove unused variable.
|
|
* vm/vm_pageout.c (vm_pageout_continue, vm_pageout_scan_continue): Remove forward declarations.
* vm/vm_pageout.h (vm_pageout_continue, vm_pageout_scan_continue): Add prototypes.
|
|
* device/cirbuf.h (nqdb): Remove prototype without definition.
* device/conf.h (dev_set_indirect): Likewise.
* kern/boot_script.h (boot_script_read_file): Likewise.
* kern/eventcount.h (evc_notify_abort): Remove duplicate prototype.
* kern/thread.h (thread_set_own_priority): Likewise.
* kern/thread_swap.h (thread_swapout): Remove prototype without definition.
* kern/timer.h (softclock): Remove duplicate prototype.
* vm/pmap.h (pmap_resident_count, pmap_access, pmap_phys_address, pmap_phys_to_frame): Remove prototypes without function definition.
* vm/vm_page.h (vm_set_page_size): Likewise.
|
|
* vm/vm_page.h (first_phys_addr, last_phys_addr): Remove unused variables.
|
|
* vm/vm_user.c (vm_map_machine_attribute): Remove forward declaration.
|
|
This is vm_resident.c, not vm_page.c.
* vm/vm_resident.c: Correct comment.
|
|
* vm/vm_map.c (_vm_map_clip_start, _vm_map_copy_clip_start, _vm_map_clip_end, _vm_map_copy_clip_end): Remove forward declarations.
* vm/vm_map.h (_vm_map_clip_end): Correct prototype.
|
|
* vm/vm_kern.c (kmem_alloc_pages, kmem_remap_pages): Remove forward declarations.
* vm/vm_kern.h (kmem_alloc_pages, kmem_remap_pages): Add prototypes.
|
|
* vm/vm_fault.c (vm_fault_wire_fast): Remove forward declaration.
* vm/vm_fault.h (vm_fault_wire_fast): Add prototype.
|
|
* Makefrag.am: Include kern/bootstrap.h.
Include vm/vm_init.h.
Include device/device_init.h.
* device/device_init.h: New file.
Add copyright.
[_DEVICE_DEVICE_INIT_H_]: Add ifndef.
(device_service_create): Add prototype.
* i386/i386/mp_desc.h (start_other_cpus): Add prototype.
* kern/bootstrap.h: New file.
Add copyright.
[_KERN_BOOTSTRAP_H_]: Add ifndef.
(bootstrap_create): Add prototype.
* kern/sched_prim.h (idle_thread, sched_thread): Add prototypes.
* kern/startup.c: Include kern/bootstrap.h.
Include kern/startup.h.
Include vm/vm_init.h.
Include vm/vm_pageout.h.
Include device/device_init.h.
(vm_mem_init, vm_mem_bootstrap, init_timeout, machine_init, idle_thread, vm_pageout, reaper_thread, swapin_thread, sched_thread, bootstrap_create, device_service_create, cpu_launch_first_thread, start_kernel_threads, start_other_cpus, action_thread): Remove forward declarations.
[NCPUS > 1] Include machine/mp_desc.h and kern/machine.h.
* kern/startup.h: Include kern/thread.h.
(cpu_launch_first_thread, start_kernel_threads): Add prototypes.
* vm/vm_init.h: New file.
Add copyright.
[_VM_VM_INIT_H_]: Add ifndef.
(vm_mem_init, vm_mem_bootstrap): Add prototypes.
* vm/vm_pageout.h (vm_pageout): Add prototype.
|
|
* vm/vm_map.c (vm_map_delete, vm_map_copyout_page_list, vm_map_copy_page_discard, vm_map_lookup_entry): Remove forward declarations.
* vm/vm_map.h (vm_map_delete, vm_map_copyout_page_list, vm_map_copy_page_discard, vm_map_lookup_entry): Add prototypes.
|
|
* vm/vm_object.c (memory_object_release, vm_object_deactivate_pages, vm_object_copy_delayed): Remove forward declarations.
* vm/vm_object.h (memory_object_release, vm_object_deactivate_pages, vm_object_copy_delayed): Add prototypes.
|
|
* ddb/db_break.c: Remove register qualifiers.
* i386/i386/pcb.c: Likewise.
* i386/i386at/com.c: Likewise.
* i386/i386at/lpr.c: Likewise.
* i386/intel/pmap.c: Likewise.
* kern/machine.c: Likewise.
* kern/queue.h: Likewise.
* kern/sched_prim.c: Likewise.
* kern/sched_prim.h: Likewise.
* kern/timer.c: Likewise.
* vm/vm_fault.c: Likewise.
* vm/vm_resident.h: Likewise.
|
|
* ddb/db_write_cmd.h: Add copyright.
* ipc/ipc_print.h: Likewise.
* vm/vm_print.h: Likewise.
|
|
* i386/Makefrag.am: Remove i386/i386/vm_tuning.h.
* i386/i386/vm_tuning.h: Remove file.
* vm/vm_pageout.c: Don't include i386/i386/vm_tuning.h.
|
|
* vm/vm_user.c: Remove register qualifiers.
|
|
* vm/vm_resident.c: Remove register qualifiers.
|
|
* vm/vm_pageout.c: Remove register qualifiers.
|
|
* vm/vm_object.c: Remove register qualifiers.
|
|
* vm/vm_map.c: Remove register qualifiers.
|
|
* vm/vm_map.c: Trivial stylistic fix for consistency.
|
|
* vm/vm_kern.c: Remove register qualifiers.
|
|
* vm/vm_fault.c: Remove register qualifiers.
|
|
* vm/vm_fault.c: Remove unused variable.
|
|
* vm/memory_object_proxy.h (_VM_MEMORY_OBJECT_PROXY_H_): Fix definition.
|
|
* vm/memory_object.c: Remove register qualifiers.
|
|
|
|
* vm/vm_map.h (KENTRY_DATA_SIZE): Set to 256 pages.
|
|
* vm/vm_print.h: New file.
Include <vm/vm_map.h>.
Include <machine/db_machdep.h>.
(vm_map_print): Add prototype.
(vm_map_copy_print): Likewise.
(vm_object_print): Likewise.
(vm_page_print): Likewise.
Include <vm/vm_object.h>.
Include <vm/vm_page.h>
* vm/vm_map.h (vm_map_print): Remove prototype.
* vm/vm_map.c [MACH_KDB]: Include <vm/vm_print.h>.
* vm/vm_object.h (vm_object_print): Remove prototype.
* vm/vm_object.c [MACH_KDB]: Include <vm/vm_print.h>.
* vm/vm_resident.c [MACH_KDB]: Include <vm/vm_print.h>.
|
|
* vm/vm_resident.c (pmap_startup): Fix printf format.
* xen/block.c (hyp_block_init, device_write): Likewise.
* xen/net.c (hyp_net_init): Likewise.
|
|
* vm/vm_fault.c (vm_fault_page): Properly increment
current_task()->zero_fills and cow_faults.
|