freebsd-nq/sys/i386/i386
Alan Cox 85f5b24573 In the common case, pmap_enter_quick() completes without sleeping.
In such cases, the busying of the page and the unlocking of the
containing object by vm_map_pmap_enter() and vm_fault_prefault() is
unnecessary overhead.  To eliminate this overhead, this change
modifies pmap_enter_quick() so that it expects the object to be locked
on entry and it assumes the responsibility for busying the page and
unlocking the object if it must sleep.  Note: alpha, amd64, i386 and
ia64 are the only implementations optimized by this change; arm,
powerpc, and sparc64 still conservatively busy the page and unlock the
object within every pmap_enter_quick() call.

Additionally, this change is the first case where we synchronize
access to the page's PG_BUSY flag and busy field using the containing
object's lock rather than the global page queues lock.  (Modifications
to the page's PG_BUSY flag and busy field have asserted both locks for
several weeks, enabling an incremental transition.)
2004-12-15 19:55:05 +00:00
..
apic_vector.s Avoid more than two pending IPI interrupt vectors per local APIC 2004-12-07 20:15:01 +00:00
atomic.c Fix copyright comment & FBSDID style nits. 2003-08-25 09:48:48 +00:00
autoconf.c cosmetic changes. 2004-11-10 12:28:06 +00:00
bios.c PNP BIOS devices are fundamentally different than ISA PNP devices. 2004-12-07 05:30:02 +00:00
bioscall.s
busdma_machdep.c Don't flag alignment constraints as a reason for bouncing. This fixes the 2004-11-29 14:49:27 +00:00
critical.c Include <machine/psl.h> for the definition of PSL_I instead of depending 2004-03-05 14:23:13 +00:00
db_disasm.c Fix copyright comment & FBSDID style nits. 2003-08-25 09:48:48 +00:00
db_interface.c Mega update for the KDB framework: turn DDB into a KDB backend. 2004-07-10 23:47:20 +00:00
db_trace.c - Change the ddb paging "support" to use a variable (db_lines_per_page) to 2004-11-01 22:15:15 +00:00
dump_machdep.c Fix copyright comment & FBSDID style nits. 2003-08-25 09:48:48 +00:00
elan-mmcr.c Add zero flags argument to sysctl calls. 2004-10-12 07:59:02 +00:00
elf_machdep.c Add __elfN(dump_thread). This function is called from __elfN(coredump) 2004-08-11 02:35:06 +00:00
exception.s MFamd64: 2004-05-26 07:43:41 +00:00
gdb_machdep.c Change gdb_cpu_setreg() to not take the value to which to set the 2004-12-01 06:40:35 +00:00
genassym.c Remove references to U area and garbage collect includes. 2004-11-20 02:30:59 +00:00
geode.c Do the dreaded s/dev_t/struct cdev */ 2004-06-16 09:47:26 +00:00
i686_mem.c Trim a few things from the dmesg output and stick them under bootverbose to 2004-07-01 07:46:29 +00:00
identcpu.c Move the author's copyright notice to match the initial LongRun import 2004-12-12 05:53:57 +00:00
in_cksum.c Remove advertising clause from University of California Regent's 2004-04-07 20:46:16 +00:00
initcpu.c Update a comment. 2003-11-10 15:48:30 +00:00
intr_machdep.c Allow fast interrupts to cause preemption. 2004-12-06 22:25:01 +00:00
io_apic.c Optimize intr_execute_handlers() by combining the pic_disable_source() and 2004-08-02 15:31:10 +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
k6_mem.c Fix copyright comment & FBSDID style nits. 2003-08-25 09:48:48 +00:00
legacy.c NEC PC-98 machines do not have and cannot have an EISA bus. They have 2004-12-07 15:36:19 +00:00
local_apic.c Correct bounds check in lapic_create(). 2004-07-14 18:12:15 +00:00
locore.s U areas are going away, so don't allocate one for process 0. 2004-11-20 02:29:25 +00:00
longrun.c Move the author's copyright notice to match the initial LongRun import 2004-12-12 05:53:57 +00:00
machdep.c Don't include sys/user.h merely for its side-effect of recursively 2004-11-27 06:51:39 +00:00
mem.c Fix module builds for i386 and amd64. 2004-08-04 18:30:31 +00:00
mp_clock.c Add missing #include <sys/module.h> 2004-05-30 20:34:58 +00:00
mp_machdep.c Avoid more than two pending IPI interrupt vectors per local APIC 2004-12-07 20:15:01 +00:00
mp_watchdog.c Preemptive anti-footshooting: cause a #error if MP_WATCHDOG is compiled 2004-08-15 20:32:40 +00:00
mpboot.s New i386 SMP code: 2003-11-03 22:32:04 +00:00
mptable_pci.c Use a private attach method for the MP Table host-PCI bridge driver rather 2004-05-03 14:49:10 +00:00
mptable.c Improve the panic message for a busted MP table with conflicting entries 2004-09-24 18:42:54 +00:00
nexus.c Print flags in the nexus for child devices. 2004-10-14 22:36:47 +00:00
p4tcc.c o Fix whitespace bug introduced in the previous commit. 2004-08-23 10:09:29 +00:00
perfmon.c Do the dreaded s/dev_t/struct cdev */ 2004-06-16 09:47:26 +00:00
pmap.c In the common case, pmap_enter_quick() completes without sleeping. 2004-12-15 19:55:05 +00:00
support.s Initiate deorbit burn sequence for 80386 support in FreeBSD: Remove 2004-11-16 20:42:32 +00:00
swtch.s Fix a typo in a comment. 2004-07-15 16:37:48 +00:00
symbols.raw Remove atdevbase and replace it's remaining uses with direct references to 2004-06-10 20:31:00 +00:00
sys_machdep.c Don't include sys/user.h merely for its side-effect of recursively 2004-11-27 06:51:39 +00:00
trap.c Initiate deorbit burn sequence for 80386 support in FreeBSD: Remove 2004-11-16 20:42:32 +00:00
tsc.c Change all SYSCTLS which are readonly and have a related TUNABLE 2003-10-21 18:28:36 +00:00
uio_machdep.c Properly free the temporary sf_buf in uiomove_fromphys() if a copyin or 2004-08-21 18:50:34 +00:00
vm86.c Don't include sys/user.h merely for its side-effect of recursively 2004-11-27 06:51:39 +00:00
vm86bios.s - Add support for PAE and more than 4 gigs of ram on x86, dependent on the 2003-03-30 05:24:52 +00:00
vm_machdep.c If the parent process has the trap bit set (i.e. a debugger had single 2004-12-08 19:03:55 +00:00