Date: Wed, 15 Dec 2004 19:55:05 +0000 (UTC) From: Alan Cox <alc@FreeBSD.org> To: src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org Subject: cvs commit: src/sys/alpha/alpha pmap.c src/sys/amd64/amd64 pmap.c src/sys/arm/arm pmap.c src/sys/i386/i386 pmap.c src/sys/ia64/ia64 pmap.c src/sys/powerpc/powerpc pmap.c src/sys/sparc64/sparc64 pmap.c src/sys/vm vm_fault.c vm_map.c Message-ID: <200412151955.iBFJt5hM069574@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
alc 2004-12-15 19:55:05 UTC FreeBSD src repository Modified files: sys/alpha/alpha pmap.c sys/amd64/amd64 pmap.c sys/arm/arm pmap.c sys/i386/i386 pmap.c sys/ia64/ia64 pmap.c sys/powerpc/powerpc pmap.c sys/sparc64/sparc64 pmap.c sys/vm vm_fault.c vm_map.c Log: 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.) Revision Changes Path 1.175 +30 -13 src/sys/alpha/alpha/pmap.c 1.512 +12 -2 src/sys/amd64/amd64/pmap.c 1.21 +11 -0 src/sys/arm/arm/pmap.c 1.519 +12 -2 src/sys/i386/i386/pmap.c 1.156 +4 -0 src/sys/ia64/ia64/pmap.c 1.91 +8 -0 src/sys/powerpc/powerpc/pmap.c 1.142 +8 -0 src/sys/sparc64/sparc64/pmap.c 1.199 +2 -8 src/sys/vm/vm_fault.c 1.362 +4 -9 src/sys/vm/vm_map.c
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200412151955.iBFJt5hM069574>