Age | Commit message (Collapse) | Author |
|
|
|
Conflicts:
vm/vm_page.h
|
|
|
|
Import the macro definitions from the x15 kernel project, and replace
all similar definitions littered all over the place with it.
Importing this file will make importing code from the x15 kernel
easier. We are already using the red-black tree implementation and
the slab allocator from it, and we will import even more code in the
near future.
* kern/list.h: Do not define `structof', include `macros.h' instead.
* kern/rbtree.h: Likewise.
* kern/slab.c: Do not define `ARRAY_SIZE', include `macros.h' instead.
* i386/grub/misc.h: Likewise.
* i386/i386/xen.h: Do not define `barrier', include `macros.h' instead.
* kern/macro_help.h: Delete file. Replaced by `macros.h'.
* kern/macros.h: New file.
* Makefrag.am (libkernel_a_SOURCES): Add new file, remove old file.
* device/dev_master.h: Adopt accordingly.
* device/io_req.h: Likewise.
* device/net_io.h: Likewise.
* i386/intel/read_fault.c: Likewise.
* ipc/ipc_kmsg.h: Likewise.
* ipc/ipc_mqueue.h: Likewise.
* ipc/ipc_object.h: Likewise.
* ipc/ipc_port.h: Likewise.
* ipc/ipc_space.h: Likewise.
* ipc/ipc_splay.c: Likewise.
* ipc/ipc_splay.h: Likewise.
* kern/assert.h: Likewise.
* kern/ast.h: Likewise.
* kern/pc_sample.h: Likewise.
* kern/refcount.h: Likewise.
* kern/sched.h: Likewise.
* kern/sched_prim.c: Likewise.
* kern/timer.c: Likewise.
* kern/timer.h: Likewise.
* vm/vm_fault.c: Likewise.
* vm/vm_map.h: Likewise.
* vm/vm_object.h: Likewise.
* vm/vm_page.h: Likewise.
|
|
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.
|
|
* 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.
|
|
* device/dev_lookup.c: Replace zalloc header, types and function calls
with their slab counterparts.
* device/dev_pager.c: Likewise.
* device/ds_routines.c: Likewise.
* device/io_req.h: Likewise.
* device/net_io.c: Likewise.
* i386/i386/fpu.c: Likewise.
* i386/i386/io_perm.c: Likewise.
* i386/i386/machine_task.c: Likewise.
* i386/i386/pcb.c: Likewise.
* i386/i386/task.h: Likewise.
* i386/intel/pmap.c: Likewise.
* i386/intel/pmap.h: Remove #include <kernel/zalloc.h>.
* include/mach_debug/mach_debug.defs (host_zone_info): Replace
routine declaration with skip directive.
(host_slab_info): New routine declaration.
* include/mach_debug/mach_debug_types.defs (zone_name_t)
(zone_name_array_t, zone_info_t, zone_info_array_t): Remove types.
(cache_info_t, cache_info_array_t): New types.
* include/mach_debug/mach_debug_types.h: Replace #include
<mach_debug/zone_info.h> with <mach_debug/slab_info.h>.
* ipc/ipc_entry.c: Replace zalloc header, types and function calls with
their slab counterparts.
* ipc/ipc_entry.h: Likewise.
* ipc/ipc_init.c: Likewise.
* ipc/ipc_marequest.c: Likewise.
* ipc/ipc_object.c: Likewise.
* ipc/ipc_object.h: Likewise.
* ipc/ipc_space.c: Likewise.
* ipc/ipc_space.h: Likewise.
* ipc/ipc_table.c (kalloc_map): Remove extern declaration.
* kern/act.c: Replace zalloc header, types and function calls with their
slab counterparts.
* kern/kalloc.h: Add #include <vm/vm_types.h>.
(MINSIZE): Remove definition.
(kalloc_map): Add extern declaration.
(kget): Remove prototype.
* kern/mach_clock.c: Adjust comment.
* kern/processor.c: Replace zalloc header, types and function calls with
their slab counterparts.
* kern/startup.c: Remove #include <kernel/zalloc.h>.
* kern/task.c: Replace zalloc header, types and function calls with
their slab counterparts.
* kern/thread.c: Likewise.
* vm/memory_object_proxy.c: Likewise.
* vm/vm_external.c: Likewise.
* vm/vm_fault.c: Likewise.
* vm/vm_init.c: Likewise.
* vm/vm_map.c: Likewise.
* vm/vm_object.c: Likewise.
* vm/vm_page.h: Remove #include <kernel/zalloc.h>.
* vm/vm_pageout.c: Replace zalloc header, types and function calls with
their slab counterparts.
* vm/vm_resident.c: Likewise.
(zdata, zdata_size): Remove declarations.
(vm_page_bootstrap): Don't steal memory for the zone system.
|
|
We're not in the eighties anymore. List arguments in function
prototypes and definitions for a lot of symbols. Also drop some unused
prototypes. I refrain from listing every changed symbol.
* vm/memory_object.c: Do as described.
* vm/memory_object.h: Likewise.
* vm/pmap.h: Likewise.
* vm/vm_external.c: Likewise.
* vm/vm_external.h: Likewise.
* vm/vm_fault.c: Likewise.
* vm/vm_fault.h: Likewise.
* vm/vm_kern.h: Likewise.
* vm/vm_map.c: Likewise.
* vm/vm_map.h: Likewise.
* vm/vm_pageout.h: Likewise.
* vm/vm_user.h: Likewise.
* vm/memory_object.h: Include <ipc/ipc_types.h>.
* vm/pmap.h: Include <kern/thread.h>.
* vm/vm_fault.h: Include <mach/vm_prot.h>, <vm/vm_map.h> and
<vm/vm_types.h>.
* vm/vm_map.h: Include <mach/vm_attributes.h> and <vm/vm_types.h>.
(vm_map_t, VM_MAP_NULL): Remove type and definition.
* vm/vm_object.h (vm_object_t, VM_OBJECT_NULL): Remove type and
definition.
* vm/vm_page.h: Include <vm/vm_types.h>.
(vm_page_t, VM_PAGE_NULL): Remove type and definition.
* vm/vm_user.h: Include <mach/std_types.h>.
* kern/task.h: Include <vm/vm_types.h> instead of <vm/vm_map.h>.
* vm/vm_types.h: New file: the above-removed types and definitions.
|
|
[task #5956 --- ``Automake'ify GNU Mach's code base'']
* kern/bootstrap.c: Don't include `bootstrap_symbols.h'.
* ddb/db_command.c: Don't include `cpus.h'.
* ddb/db_mp.c: Likewise.
* i386/i386/ast_check.c: Likewise.
* i386/i386/cswitch.S: Likewise.
* i386/i386/db_interface.c: Likewise.
* i386/i386/fpu.c: Likewise.
* i386/i386/fpu.h: Likewise.
* i386/i386/i386asm.sym: Likewise.
* i386/i386/locore.S: Likewise.
* i386/i386/mp_desc.c: Likewise.
* i386/i386/mp_desc.h: Likewise.
* i386/i386/pcb.c: Likewise.
* i386/i386/trap.c: Likewise.
* i386/intel/pmap.c: Likewise.
* include/mach/machine.h: Likewise.
* ipc/ipc_kmsg.c: Likewise.
* ipc/ipc_kmsg.h: Likewise.
* kern/ast.c: Likewise.
* kern/ast.h: Likewise.
* kern/cpu_number.h: Likewise.
* kern/debug.c: Likewise.
* kern/eventcount.c: Likewise.
* kern/host.c: Likewise.
* kern/ipc_sched.c: Likewise.
* kern/lock.c: Likewise.
* kern/lock.h: Likewise.
* kern/lock_mon.c: Likewise.
* kern/mach_clock.c: Likewise.
* kern/mach_factor.c: Likewise.
* kern/machine.c: Likewise.
* kern/priority.c: Likewise.
* kern/processor.c: Likewise.
* kern/processor.h: Likewise.
* kern/sched.h: Likewise.
* kern/sched_prim.c: Likewise.
* kern/startup.c: Likewise.
* kern/syscall_subr.c: Likewise.
* kern/thread.c: Likewise.
* kern/timer.c: Likewise.
* kern/timer.h: Likewise.
* vm/vm_resident.c: Likewise.
* kern/sched_prim.c: Don't include `fast_tas.h'.
* kern/task.c: Likewise.
* kern/task.h: Likewise.
* kern/sched_prim.c: Don't include `hw_footprint.h'.
* kern/thread.c: Likewise.
* kern/thread.h: Likewise.
* kern/counters.c: Don't include `mach_counters.h'.
* kern/counters.h: Likewise.
* ddb/db_ext_symtab.c: Don't include `mach_debug.h'.
* i386/i386/pcb.c: Likewise.
* kern/ipc_kobject.c: Likewise.
* kern/thread.c: Likewise.
* kern/zalloc.c: Likewise.
* kern/ast.c: Don't include `mach_fixpri.h'.
* kern/processor.c: Likewise.
* kern/processor.h: Likewise.
* kern/sched.h: Likewise.
* kern/sched_prim.c: Likewise.
* kern/syscall_subr.c: Likewise.
* kern/thread.c: Likewise.
* kern/thread.h: Likewise.
* kern/host.c: Don't include `mach_host.h'.
* kern/ipc_sched.c: Likewise.
* kern/machine.c: Likewise.
* kern/processor.c: Likewise.
* kern/processor.h: Likewise.
* kern/sched_prim.c: Likewise.
* kern/startup.c: Likewise.
* kern/task.c: Likewise.
* kern/thread.c: Likewise.
* kern/thread.h: Likewise.
* include/mach/mach.defs: Don't include `mach_ipc_compat.h'.
* include/mach/mach_param.h: Likewise.
* include/mach/mach_traps.h: Likewise.
* include/mach/message.h: Likewise.
* include/mach/mig_errors.h: Likewise.
* include/mach/notify.h: Likewise.
* include/mach/port.h: Likewise.
* include/mach/std_types.defs: Likewise.
* include/mach/task_special_ports.h: Likewise.
* include/mach/thread_special_ports.h: Likewise.
* ipc/ipc_kmsg.c: Likewise.
* ipc/ipc_kmsg.h: Likewise.
* ipc/ipc_marequest.c: Likewise.
* ipc/ipc_notify.c: Likewise.
* ipc/ipc_notify.h: Likewise.
* ipc/ipc_object.c: Likewise.
* ipc/ipc_object.h: Likewise.
* ipc/ipc_port.c: Likewise.
* ipc/ipc_port.h: Likewise.
* ipc/ipc_right.c: Likewise.
* ipc/ipc_right.h: Likewise.
* ipc/ipc_space.c: Likewise.
* ipc/ipc_space.h: Likewise.
* ipc/mach_debug.c: Likewise.
* ipc/mach_msg.c: Likewise.
* ipc/mach_msg.h: Likewise.
* ipc/mach_port.c: Likewise.
* kern/ipc_tt.c: Likewise.
* kern/syscall_sw.c: Likewise.
* kern/thread.h: Likewise.
* include/mach_debug/mach_debug.defs: Don't include `mach_ipc_debug.h'.
* ipc/ipc_hash.c: Likewise.
* ipc/ipc_hash.h: Likewise.
* ipc/ipc_marequest.c: Likewise.
* ipc/ipc_marequest.h: Likewise.
* kern/ipc_kobject.c: Don't include `mach_ipc_test.h'.
* ddb/db_access.c: Don't include `mach_kdb.h'.
* ddb/db_aout.c: Likewise.
* ddb/db_break.c: Likewise.
* ddb/db_command.c: Likewise.
* ddb/db_command.h: 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.
* ddb/db_watch.h: Likewise.
* ddb/db_write_cmd.c: Likewise.
* i386/i386/db_disasm.c: Likewise.
* i386/i386/db_interface.c: Likewise.
* i386/i386/db_trace.c: Likewise.
* i386/i386/i386asm.sym: Likewise.
* i386/i386/locore.S: Likewise.
* i386/i386/trap.c: Likewise.
* i386/i386at/kd.c: Likewise.
* i386/i386at/model_dep.c: Likewise.
* include/mach_debug/mach_debug.defs: Likewise.
* ipc/ipc_kmsg.c: Likewise.
* ipc/ipc_object.c: Likewise.
* ipc/ipc_port.c: Likewise.
* ipc/ipc_pset.c: Likewise.
* kern/bootstrap.c: Likewise.
* kern/debug.c: Likewise.
* kern/exception.c: Likewise.
* kern/lock.c: Likewise.
* kern/xpr.c: Likewise.
* vm/vm_fault.c: Likewise.
* vm/vm_map.c: Likewise.
* vm/vm_object.c: Likewise.
* vm/vm_resident.c: Likewise.
* kern/lock.h: Don't include `mach_ldebug.h'.
* kern/lock_mon.c: Don't include `mach_lock_mon.h'.
* kern/ipc_kobject.c: Don't include `mach_machine_routines.h'.
* kern/lock_mon.c: Don't include `mach_mp_debug.h'.
* vm/memory_object.c: Don't include `mach_pagemap.h'.
* vm/vm_fault.c: Likewise.
* vm/vm_object.c: Likewise.
* vm/vm_object.h: Likewise.
* vm/vm_pageout.c: Likewise.
* i386/i386/trap.c: Don't include `mach_pcsample.h'.
* kern/mach4.srv: Likewise.
* kern/mach_clock.c: Likewise.
* kern/pc_sample.c: Likewise.
* kern/task.c: Likewise.
* kern/thread.c: Likewise.
* vm/vm_fault.c: Likewise.
* device/net_io.c: Don't include `mach_ttd.h'.
* i386/i386/kttd_interface.c: Likewise.
* i386/i386/locore.S: Likewise.
* i386/i386/trap.c: Likewise.
* i386/i386at/autoconf.c: Likewise.
* include/mach_debug/mach_debug.defs: Don't include `mach_vm_debug.h'.
* vm/vm_debug.c: Likewise.
* vm/vm_page.h: Likewise.
* vm/vm_resident.c: Likewise.
* kern/sched_prim.c: Don't include `power_save.h'.
* kern/sched.h: Don't include `simple_clock.h'.
* kern/sched_prim.c: Likewise.
* kern/thread.c: Likewise.
* kern/mach_clock.c: Don't include `stat_time.h'.
* i386/i386/i386asm.sym: Likewise.
* i386/i386/locore.S: Likewise.
* kern/sched.h: Likewise.
* kern/timer.c: Likewise.
* kern/timer.h: Likewise.
* kern/startup.c: Don't include `xpr_debug.h'.
* kern/xpr.h: Likewise.
* i386/i386at/autoconf.c: Don't include `com.h'.
* i386/i386at/com.c: Likewise.
* i386/i386at/conf.c: Likewise.
* i386/i386at/cons_conf.c: Likewise.
* i386/i386/fpe_linkage.c: Don't include `fpe.h'.
* i386/i386/fpu.c: Likewise.
* i386/i386/fpu.h: Likewise.
* i386/i386/trap.c: Likewise.
* i386/i386at/autoconf.c: Don't include `lpr.h'.
* i386/i386at/conf.c: Likewise.
* i386/i386at/lpr.c: Likewise.
* i386/i386/cswitch.S: Don't include `platforms.h'.
* i386/i386/fpu.c: Likewise.
* i386/i386/gdt.c: Likewise.
* i386/i386/hardclock.c: Likewise.
* i386/i386/i386asm.sym: Likewise.
* i386/i386/io_emulate.c: Likewise.
* i386/i386/locore.S: Likewise.
* i386/i386/pic.c: Likewise.
* i386/i386/pic.h: Likewise.
* i386/i386/pit.c: Likewise.
* i386/i386/pit.h: Likewise.
* i386/i386/seg.h: Likewise.
* i386/i386at/model_dep.c: Likewise.
* i386/i386at/com.c: Don't include `rc.h'
* i386/i386at/cons_conf.c: Likewise.
* i386/i386at/pic_isa.c: Likewise.
* device/ds_routines.c: Don't include <i386/linux/device-drivers.h>.
* i386/i386at/i386at_ds_routines.c: Likewise.
* i386/linux/dev/include/linux/autoconf.h: Likewise.
* linux/dev/arch/i386/kernel/setup.c: Likewise.
* linux/dev/init/main.c: Likewise.
* linux/pcmcia-cs/glue/pcmcia_glue.h: Likewise.
* linux/pcmcia-cs/glue/wireless_glue.h: Likewise.
* kern/lock_mon.c: Don't include <time_stamp.h>.
* device/cons.c: Include <device/cons.h> instead of <cons.h>.
* i386/i386at/com.c: Likewise.
* i386/i386at/kd.c: Likewise.
* i386/i386at/cons_conf.c: Likewise.
* i386/i386at/i386at_ds_routines.c: Include <device/device.server.h>
instead of "device_interface.h".
* device/chario.c: Include <device/device_reply.user.h> instead of
"device_reply.h".
* device/ds_routines.c: Likewise.
* linux/dev/glue/block.c: Likewise.
* linux/dev/glue/net.c: Likewise.
* linux/pcmcia-cs/glue/ds.c: Likewise.
* device/cons.c: Include <device/kmsg.h> instead of <kmsg.h>.
* device/kmsg.c: Likewise.
* i386/i386/cswitch.S: Include <i386/cpu_number.h> instead of
"cpu_number.h".
* i386/i386/locore.S: Likewise.
* i386/intel/pmap.c: Likewise.
* ipc/ipc_kmsg.h: Likewise.
* i386/i386/i386asm.sym: Include <i386/gdt.h> instead of "gdt.h".
* i386/i386/idt.c: Likewise.
* i386/i386at/int_init.c: Likewise.
* i386/i386/cswitch.S: Include <i386/i386asm.h> instead of "i386asm.h".
* i386/i386/locore.S: Likewise.
* i386/i386at/boothdr.S: Likewise.
* i386/i386at/interrupt.S: Likewise.
* i386/i386at/idt.h: Include <i386/idt-gen.h> instead of "idt-gen.h".
* i386/i386at/interrupt.S: Include <i386/ipl.h> instead of "ipl.h".
* i386/i386/i386asm.sym: Include <i386/ldt.h> instead of "ldt.h".
* i386/i386/locore.S: Likewise.
* i386/i386/i386asm.sym: Include <i386/mp_desc.h> instead of
"mp_desc.h".
* i386/i386at/interrupt.S: Include <i386/pic.h> instead of "pic.h".
* i386/i386/cswitch.S: Include <i386/proc_reg.h> instead of
"proc_reg.h".
* i386/i386/locore.S: Likewise.
* i386/i386at/model_dep.c: Likewise.
* i386/i386/i386asm.sym: Include <i386/seg.h> instead of "seg.h".
* i386/i386/idt.c: Likewise.
* i386/i386/locore.S: Likewise.
* i386/i386/locore.S: Include <i386/trap.h> instead of "trap.h".
* i386/i386/i386asm.sym: Include <i386/tss.h> instead of "tss.h".
* i386/i386/i386asm.sym: Include <i386/vm_param.h> instead of
"vm_param.h".
* i386/i386/idt.c: Likewise.
* i386/i386at/kd.c: Likewise.
* i386/i386at/model_dep.c: Likewise.
* i386/intel/pmap.c: Likewise.
* i386/i386/i386asm.sym: Include <i386at/idt.h> instead of "idt.h".
* i386/i386/idt.c: Likewise.
* i386/i386at/int_init.c: Likewise.
* ipc/ipc_target.c: Include <kern/sched_prim.h> instead of
"sched_prim.h".
* vm/memory_object.c: Include <vm/memory_object_default.user.h> instead
of "memory_object_default.h".
* vm/vm_object.c: Likewise.
* vm/vm_pageout.c: Likewise.
* vm/memory_object.c: Include <vm/memory_object_user.user.h> instead of
"memory_object_user.h".
* vm/vm_fault.c: Likewise.
* vm/vm_object.c: Likewise.
* vm/vm_pageout.c: Likewise.
|
|
|
|
* vm/vm_resident.c (vm_page_external_count): Define variable.
(vm_page_grab): New argument `external'. All callers changed.
Keep track of number of externally managed pages. Don't let
non-privileged threads exceed the externally-managed page limit.
(vm_page_grab_contiguous_pages): New argument `external'. All
callers changed. Keep track of number of externally managed
pages. Don't let non-privileged threads exceed the
externally-managed page limit.
(vm_page_convert): New argument `external'. All callers changed.
(vm_page_release): New argument `external'. All callers
changed. Keep track of number of externally managed pages.
(vm_page_bootstrap): Initialize M->external.
* vm/vm_page.h (vm_page_external_limit, vm_page_external_count):
New variables.
(struct vm_page): New members `external' and `extcounted'.
* vm/vm_pageout.c (vm_pageout): Initialize vm_page_external_limit
and vm_page_external_target.
(VM_PAGE_EXTERNAL_LIMIT, VM_PAGE_EXTERNAL_TARGET): New macro.
(vm_pageout_external_target): New variable.
(vm_pageout_scan): Regard "too many externally managed pages" as a
reason to keep doing work, but if that's the only reason we're
doing work, then the only thing we do is schedule cleaning of
pages. Help keep track of the number of externally managed pages
that we care about.
* vm/vm_pageout.c (VM_PAGEOUT_BURST_WAIT): Reduce to 10ms/page.
(VM_PAGEOUT_EMPTY_WAIT): Reduce to 75 ms.
(VM_PAGE_FREE_RESERVED): Increase to 50 pages.
(VM_PAGEOUT_RESERVED_INTERNAL): Adjust to `(reserve) - 25'.
(VM_PAGEOUT_RESERVED_REALLY): Adjust to `(reserve) - 40'.
|
|
|