opnsense-src/sys/amd64/amd64
Alan Cox 9c6a71e4ca Introduce pmap_try_insert_pv_entry(), a function that conditionally creates
a pv entry if the number of entries is below the high water mark for pv
entries.

Use pmap_try_insert_pv_entry() in pmap_copy() instead of
pmap_insert_entry().  This avoids possible recursion on a pmap lock in
get_pv_entry().

Eliminate the explicit low-memory checks in pmap_copy().  The check that
the number of pv entries was below the high water mark was largely
ineffective because it was located in the outer loop rather than the
inner loop where pv entries were allocated.  Instead of checking, we
attempt the allocation and handle the failure.

Reviewed by: tegge
Reported by: kris
MFC after: 5 days
2006-04-02 05:45:05 +00:00
..
amd64_mem.c Move the definition of M_MEMDESC to a non-optional file. This allows 2004-08-07 06:21:37 +00:00
apic_vector.S Cosmetic sync with i386 2006-03-13 23:55:31 +00:00
atomic.c
autoconf.c Create nexus in configure_first() instead of in configure(). This 2005-05-29 23:44:22 +00:00
bios.c Make the facility for recognizing BIOS-signatures more general 2005-07-21 09:48:37 +00:00
bpf_jit_machdep.c - Explicitly validate an empty filter to match bpf_filter() comment[1]. 2006-01-03 20:26:03 +00:00
bpf_jit_machdep.h Fix ZERO_EDX() macro from the previous commit. It was emitting 2005-12-06 20:11:07 +00:00
busdma_machdep.c Free the newtag if we exit with a failure from alloc_bounce_zone(). 2006-01-14 17:22:47 +00:00
cpu_switch.S Micro optimization for context switch. Eliminate code for saving gs.base 2005-10-17 23:10:31 +00:00
db_disasm.c Checkpoint today's tidy-up of the WIP disassembler. It now agrees with 2005-03-30 22:57:41 +00:00
db_interface.c Begin all license/copyright comments with /*- 2005-01-05 20:17:21 +00:00
db_trace.c MFi386: add a TRAP_INTERRUPT case 2006-03-13 23:56:44 +00:00
dump_machdep.c Fix a buglet that was present in the ia64 code and that got inherited 2005-07-02 19:57:31 +00:00
elf_machdep.c Remove kern.elf32.can_exec_dyn sysctl. Instead extend Brandinfo structure 2005-12-26 21:23:57 +00:00
exception.S - Special-case NMI handling on the AMD64. 2005-08-27 16:03:40 +00:00
fpu.c Remove diffs to i386 version that came in via the compiler support ifdefs. 2005-03-11 22:16:09 +00:00
gdb_machdep.c Kill pcb_rflags. It served no purpose. 2005-09-27 21:10:10 +00:00
genassym.c Kill pcb_rflags. It served no purpose. 2005-09-27 21:10:10 +00:00
identcpu.c It seems bit 5 of cpu_feature2 is the VMX (Virtual Machine Extensions) 2006-02-15 14:48:59 +00:00
in_cksum.c Begin all license/copyright comments with /*- 2005-01-05 20:17:21 +00:00
initcpu.c - Print number of physical/logical cores and more CPUID info. 2005-10-14 22:52:01 +00:00
intr_machdep.c Rework how we wire up interrupt sources to CPUs: 2006-02-28 22:24:55 +00:00
io.c Break out the MI part of the /dev/[k]mem and /dev/io drivers into 2004-08-01 11:40:54 +00:00
io_apic.c Drop some unneeded casts since we program the kernel in C rather than C++. 2006-03-20 19:39:08 +00:00
legacy.c MFi386 rev 1.61: Fix a few bugs in the legacy cpu attachment ivars. 2005-02-15 07:26:28 +00:00
local_apic.c Drop some unneeded casts since we program the kernel in C rather than C++. 2006-03-20 19:39:08 +00:00
locore.S
machdep.c Don't allow userland to set hardware watch points on kernel memory at all. 2006-03-14 16:13:55 +00:00
mem.c Move the definition of M_MEMDESC to a non-optional file. This allows 2004-08-07 06:21:37 +00:00
mp_machdep.c Enable global pages TLB extension on Application Processors. 2006-03-18 19:32:46 +00:00
mp_watchdog.c Typo. 2005-02-28 08:55:53 +00:00
mpboot.S Initial PG_NX support (no-execute page bit) 2004-06-08 01:02:52 +00:00
mptable.c Normalize a significant number of kernel malloc type names: 2005-10-31 15:41:29 +00:00
mptable_pci.c - Make pcib_devclass private to sys/dev/pci/pci_pci.c and change all the 2006-01-06 19:22:19 +00:00
nexus.c __RMAN_RESOURCE_VISIBLE is not actually needed. 2005-09-25 20:03:41 +00:00
pmap.c Introduce pmap_try_insert_pv_entry(), a function that conditionally creates 2006-04-02 05:45:05 +00:00
prof_machdep.c - Move timerreg.h to <arch>/include and split i8253 specific defines into 2005-05-14 09:10:02 +00:00
sigtramp.S
support.S Fix a minor nit that has been bugging me for a while. Fix the obvious 2005-09-27 18:32:46 +00:00
sys_machdep.c Validate if the value written into {FS,GS}.base is a canonical 2005-07-10 23:31:11 +00:00
trap.c Cosmetic sync with i386 2006-03-13 23:55:31 +00:00
tsc.c CPU time accounting speedup (step 2) 2006-02-11 09:33:07 +00:00
uio_machdep.c Begin all license/copyright comments with /*- 2005-01-05 20:17:21 +00:00
uma_machdep.c MFia64 2003-10-14 05:51:31 +00:00
vm_machdep.c When restarting the BSP during cpu_reset() use a membar to ensure that 2005-10-24 20:53:52 +00:00