Up to [cvs.NetBSD.org] / src / sys / uvm
Request diff between arbitrary revisions
Default branch: MAIN
Current tag: MAIN
Revision 1.75 / (download) - annotate - [select for diffs], Sat May 5 20:45:35 2012 UTC (12 months, 2 weeks ago) by rmind
Branch: MAIN
CVS Tags: yamt-pagecache-base8,
yamt-pagecache-base7,
yamt-pagecache-base6,
yamt-pagecache-base5,
tls-maxphys-nbase,
tls-maxphys-base,
tls-maxphys,
khorben-n900,
jmcneill-usbmp-base10,
agc-symver-base,
agc-symver,
HEAD
Changes since 1.74: +69 -25
lines
Diff to previous 1.74 (colored)
Describe PG_ flags (for struct vm_page). Reviewed by yamt@.
Revision 1.74 / (download) - annotate - [select for diffs], Sat Jan 28 19:12:10 2012 UTC (15 months, 3 weeks ago) by rmind
Branch: MAIN
CVS Tags: yamt-pagecache-base4,
netbsd-6-base,
netbsd-6-1-RELEASE,
netbsd-6-1-RC4,
netbsd-6-1-RC3,
netbsd-6-1-RC2,
netbsd-6-1-RC1,
netbsd-6-1,
netbsd-6-0-RELEASE,
netbsd-6-0-RC2,
netbsd-6-0-RC1,
netbsd-6-0-2-RELEASE,
netbsd-6-0-1-RELEASE,
netbsd-6-0,
netbsd-6,
matt-nb6-plus-nbase,
matt-nb6-plus-base,
matt-nb6-plus,
jmcneill-usbmp-base9,
jmcneill-usbmp-base8,
jmcneill-usbmp-base7,
jmcneill-usbmp-base6,
jmcneill-usbmp-base5,
jmcneill-usbmp-base4,
jmcneill-usbmp-base3,
jmcneill-usbmp-base2
Changes since 1.73: +50 -57
lines
Diff to previous 1.73 (colored)
Improve description on struct vm_page and explain locking a little bit more.
Revision 1.73 / (download) - annotate - [select for diffs], Sun Jun 12 03:36:03 2011 UTC (23 months, 1 week ago) by rmind
Branch: MAIN
CVS Tags: yamt-pagecache-base3,
yamt-pagecache-base2,
yamt-pagecache-base,
jmcneill-usbmp-pre-base2,
jmcneill-usbmp-base,
jmcneill-audiomp3-base,
jmcneill-audiomp3
Branch point for: yamt-pagecache,
jmcneill-usbmp
Changes since 1.72: +2 -1
lines
Diff to previous 1.72 (colored)
Welcome to 5.99.53! Merge rmind-uvmplock branch: - Reorganize locking in UVM and provide extra serialisation for pmap(9). New lock order: [vmpage-owner-lock] -> pmap-lock. - Simplify locking in some pmap(9) modules by removing P->V locking. - Use lock object on vmobjlock (and thus vnode_t::v_interlock) to share the locks amongst UVM objects where necessary (tmpfs, layerfs, unionfs). - Rewrite and optimise x86 TLB shootdown code, make it simpler and cleaner. Add TLBSTATS option for x86 to collect statistics about TLB shootdowns. - Unify /dev/mem et al in MI code and provide required locking (removes kernel-lock on some ports). Also, avoid cache-aliasing issues. Thanks to Andrew Doran and Joerg Sonnenberger, as their initial patches formed the core changes of this branch.
Revision 1.72 / (download) - annotate - [select for diffs], Thu May 19 09:57:20 2011 UTC (2 years ago) by yamt
Branch: MAIN
CVS Tags: rmind-uvmplock-nbase,
rmind-uvmplock-base,
cherry-xenmp-base
Branch point for: cherry-xenmp
Changes since 1.71: +1 -3
lines
Diff to previous 1.71 (colored)
g/c unused function prototypes
Revision 1.71 / (download) - annotate - [select for diffs], Wed Feb 2 15:25:27 2011 UTC (2 years, 3 months ago) by chuck
Branch: MAIN
CVS Tags: uebayasi-xip-base7,
bouyer-quota2-nbase,
bouyer-quota2-base
Changes since 1.70: +2 -7
lines
Diff to previous 1.70 (colored)
udpate license clauses on my code to match the new-style BSD licenses. based on second diff that rmind@ sent me. no functional change with this commit.
Revision 1.70 / (download) - annotate - [select for diffs], Tue Jan 18 21:43:29 2011 UTC (2 years, 4 months ago) by matt
Branch: MAIN
Branch point for: bouyer-quota2
Changes since 1.69: +4 -2
lines
Diff to previous 1.69 (colored)
Improve the efficiency of searching for a contiguous set of free pages.
Revision 1.69 / (download) - annotate - [select for diffs], Fri Nov 26 00:45:27 2010 UTC (2 years, 5 months ago) by uebayasi
Branch: MAIN
CVS Tags: matt-mips64-premerge-20101231,
jruoho-x86intr-base
Branch point for: jruoho-x86intr
Changes since 1.68: +4 -0
lines
Diff to previous 1.68 (colored)
Put back VM_PAGE_TO_MD(); pointed out by skrll@, thanks.
Revision 1.68 / (download) - annotate - [select for diffs], Thu Nov 25 04:45:30 2010 UTC (2 years, 5 months ago) by uebayasi
Branch: MAIN
Changes since 1.67: +5 -13
lines
Diff to previous 1.67 (colored)
Revert vm_physseg allocation changes. A report says that it causes panics when used with mplayer in heavy load.
Revision 1.67 / (download) - annotate - [select for diffs], Sun Nov 14 15:06:34 2010 UTC (2 years, 6 months ago) by uebayasi
Branch: MAIN
CVS Tags: uebayasi-xip-base6
Changes since 1.66: +9 -5
lines
Diff to previous 1.66 (colored)
Be a little more friendly to dynamic physical segment registration. Maintain an array of pointer to struct vm_physseg, instead of struct array. So that VM subsystem can take its pointer safely. Pointer to this struct will replace raw paddr_t usage in the future. Dynamic removal is not supported yet. Only MD data structure changes, no kernel bump needed. Tested on i386, amd64, powerpc/ibm40x, arm11.
Revision 1.66 / (download) - annotate - [select for diffs], Fri Nov 12 07:59:24 2010 UTC (2 years, 6 months ago) by uebayasi
Branch: MAIN
Changes since 1.65: +4 -0
lines
Diff to previous 1.65 (colored)
Put VM_PAGE_TO_MD() definition in one place. No functional changes.
Revision 1.65 / (download) - annotate - [select for diffs], Fri Nov 12 05:23:41 2010 UTC (2 years, 6 months ago) by uebayasi
Branch: MAIN
Changes since 1.64: +4 -19
lines
Diff to previous 1.64 (colored)
Abstraction fix; move physical address -> per-page metadata (struct vm_page *) "reverse" lookup code from uvm_page.h to uvm_page.c, to help migration to not do that. Likewise move per-page metadata (struct vm_page *) -> physical address "forward" conversion code into *.c too. This is called only low-layer VM and MD code.
Revision 1.64 / (download) - annotate - [select for diffs], Fri Nov 12 03:21:04 2010 UTC (2 years, 6 months ago) by uebayasi
Branch: MAIN
Changes since 1.63: +1 -107
lines
Diff to previous 1.63 (colored)
Abstraction fix; move physical address -> physical segment "reverse" lookup code from uvm_page.h to uvm_page.c. This code is used by some pmaps to lookup per-page state (PV) from per-segment metadata (struct vm_physseg). This is not needed if UVM looks up physical segment once in fault handler, then directly passes it to pmap. This change helps transition to that model. The only users of vm_physseg_find() are pmap_motorola.c and powerpc/ibm4xx/pmap.c. Tested By: Compiling and running powerpc/ibm4xx/pmap.c (evbppc/conf/OPENBLOCKS266)
Revision 1.63 / (download) - annotate - [select for diffs], Wed Nov 10 09:27:21 2010 UTC (2 years, 6 months ago) by uebayasi
Branch: MAIN
Changes since 1.62: +2 -1
lines
Diff to previous 1.62 (colored)
Use more VM_PHYSMEM_*() accessors. No functional changes.
Revision 1.62 / (download) - annotate - [select for diffs], Wed Nov 10 01:24:46 2010 UTC (2 years, 6 months ago) by uebayasi
Branch: MAIN
Changes since 1.61: +4 -1
lines
Diff to previous 1.61 (colored)
Prepare vm_physmem[] -> (*vm_physmem)[] migration, so that physical segments can be changed at run-time. Pointers are easier to update.
Revision 1.61 / (download) - annotate - [select for diffs], Sat Sep 25 01:42:40 2010 UTC (2 years, 7 months ago) by matt
Branch: MAIN
CVS Tags: yamt-nfs-mp-base11,
uebayasi-xip-base5,
uebayasi-xip-base4,
uebayasi-xip-base3
Changes since 1.60: +2 -2
lines
Diff to previous 1.60 (colored)
Rename rb.h to rbtree.h, as it is more appropriate (c.f. ptree.h). Also helps find code that hasn't been updated to use the new rbtree API.
Revision 1.60 / (download) - annotate - [select for diffs], Thu Jul 29 10:54:51 2010 UTC (2 years, 9 months ago) by hannken
Branch: MAIN
CVS Tags: yamt-nfs-mp-base10,
uebayasi-xip-base2
Changes since 1.59: +3 -2
lines
Diff to previous 1.59 (colored)
Add vm page flag PG_MARKER and use it to tag dummy marker pages in genfs_do_putpages() and uao_put(). Use 'v_uobj.uo_npages' to check for an empty memq. Put some assertions where these marker pages may not appear. Ok: YAMAMOTO Takashi <yamt@netbsd.org>
Revision 1.59 / (download) - annotate - [select for diffs], Sat Feb 6 12:10:59 2010 UTC (3 years, 3 months ago) by uebayasi
Branch: MAIN
CVS Tags: yamt-nfs-mp-base9,
uebayasi-xip-base1,
uebayasi-xip-base
Branch point for: uebayasi-xip,
rmind-uvmplock
Changes since 1.58: +8 -8
lines
Diff to previous 1.58 (colored)
__inline -> inline
Revision 1.58 / (download) - annotate - [select for diffs], Sat Feb 6 02:56:17 2010 UTC (3 years, 3 months ago) by uebayasi
Branch: MAIN
Changes since 1.57: +43 -13
lines
Diff to previous 1.57 (colored)
Make vm_physseg lookup routines take the target vm_physseg. This is for the coming "managed" device segments.
Revision 1.57 / (download) - annotate - [select for diffs], Tue Aug 18 18:06:54 2009 UTC (3 years, 9 months ago) by thorpej
Branch: MAIN
CVS Tags: yamt-nfs-mp-base8,
yamt-nfs-mp-base7,
matt-premerge-20091211,
jym-xensuspend-nbase
Changes since 1.56: +2 -7
lines
Diff to previous 1.56 (colored)
Add a real API for testing if a page is a managed page, and adjust callers to stop relying on vm_physseg_find() for this purpose.
Revision 1.56 / (download) - annotate - [select for diffs], Fri Jan 16 02:33:14 2009 UTC (4 years, 4 months ago) by yamt
Branch: MAIN
CVS Tags: yamt-nfs-mp-base6,
yamt-nfs-mp-base5,
yamt-nfs-mp-base4,
yamt-nfs-mp-base3,
nick-hppapmap-base4,
nick-hppapmap-base3,
nick-hppapmap-base2,
nick-hppapmap-base,
mjf-devfs2-base,
jymxensuspend-base,
jym-xensuspend-base,
jym-xensuspend
Changes since 1.55: +2 -6
lines
Diff to previous 1.55 (colored)
- g/c stale function prototypes. - rename UVM_PAGE_HASH_PENALTY to UVM_PAGE_TREE_PENALTY.
Revision 1.55 / (download) - annotate - [select for diffs], Wed Jun 4 15:06:04 2008 UTC (4 years, 11 months ago) by ad
Branch: MAIN
CVS Tags: yamt-pf42-base4,
wrstuden-revivesa-base-4,
wrstuden-revivesa-base-3,
wrstuden-revivesa-base-2,
wrstuden-revivesa-base-1,
wrstuden-revivesa-base,
simonb-wapbl-nbase,
simonb-wapbl-base,
simonb-wapbl,
netbsd-5-base,
netbsd-5-2-RELEASE,
netbsd-5-2-RC1,
netbsd-5-2,
netbsd-5-1-RELEASE,
netbsd-5-1-RC4,
netbsd-5-1-RC3,
netbsd-5-1-RC2,
netbsd-5-1-RC1,
netbsd-5-1-2-RELEASE,
netbsd-5-1-1-RELEASE,
netbsd-5-1,
netbsd-5-0-RELEASE,
netbsd-5-0-RC4,
netbsd-5-0-RC3,
netbsd-5-0-RC2,
netbsd-5-0-RC1,
netbsd-5-0-2-RELEASE,
netbsd-5-0-1-RELEASE,
netbsd-5-0,
netbsd-5,
matt-nb5-pq3-base,
matt-nb5-mips64-u2-k2-k4-k7-k8-k9,
matt-nb5-mips64-u1-k1-k5,
matt-nb5-mips64-premerge-20091211,
matt-nb4-mips64-k7-u2a-k9b,
matt-mips64-base2,
haad-nbase2,
haad-dm-base2,
haad-dm-base1,
haad-dm-base,
haad-dm,
ad-audiomp2-base,
ad-audiomp2
Branch point for: nick-hppapmap,
matt-nb5-pq3,
matt-nb5-mips64
Changes since 1.54: +7 -4
lines
Diff to previous 1.54 (colored)
Replace the global vm_page hash with a per vm_object rbtree. Proposed on tech-kern@.
Revision 1.54 / (download) - annotate - [select for diffs], Wed Jun 4 12:45:28 2008 UTC (4 years, 11 months ago) by ad
Branch: MAIN
Changes since 1.53: +12 -7
lines
Diff to previous 1.53 (colored)
- vm_page: put listq, pageq into a union alongside a LIST_ENTRY, so we can use both types of list. - Make page coloring and idle zero state per-CPU. - Maintain per-CPU page freelists. When freeing, put pages onto the local CPU's lists and the global lists. When allocating, prefer to take pages from the local CPU. If none are available take from the global list as done now. Proposed on tech-kern@.
Revision 1.53 / (download) - annotate - [select for diffs], Mon Jun 2 11:11:14 2008 UTC (4 years, 11 months ago) by ad
Branch: MAIN
CVS Tags: yamt-pf42-base3
Changes since 1.52: +3 -2
lines
Diff to previous 1.52 (colored)
uvm_pageidlezero: - Use high and low water marks to try and reduce power consumption. - Do trylock on uvm_fpageqlock, and bail if we can't get it. - Only run on one CPU at a time.
Revision 1.52 / (download) - annotate - [select for diffs], Wed Feb 27 19:38:57 2008 UTC (5 years, 2 months ago) by matt
Branch: MAIN
CVS Tags: yamt-pf42-baseX,
yamt-pf42-base2,
yamt-pf42-base,
yamt-nfs-mp-base2,
yamt-nfs-mp-base,
yamt-lazymbuf-base15,
yamt-lazymbuf-base14,
matt-armv6-nbase,
keiichi-mipv6-nbase,
keiichi-mipv6-base,
hpcarm-cleanup-nbase,
ad-socklock-base1
Branch point for: yamt-pf42,
yamt-nfs-mp,
wrstuden-revivesa
Changes since 1.51: +3 -6
lines
Diff to previous 1.51 (colored)
Convert two inlines from old-style-definitions to ansi.
Revision 1.51 / (download) - annotate - [select for diffs], Wed Feb 27 14:23:33 2008 UTC (5 years, 2 months ago) by ad
Branch: MAIN
CVS Tags: hpcarm-cleanup-base
Changes since 1.50: +3 -3
lines
Diff to previous 1.50 (colored)
Minor corrections to comments.
Revision 1.50 / (download) - annotate - [select for diffs], Wed Jan 2 11:49:19 2008 UTC (5 years, 4 months ago) by ad
Branch: MAIN
CVS Tags: nick-net80211-sync-base,
nick-net80211-sync,
mjf-devfs-base,
matt-armv6-base,
bouyer-xeni386-nbase,
bouyer-xeni386-base
Branch point for: mjf-devfs2,
keiichi-mipv6
Changes since 1.49: +1 -5
lines
Diff to previous 1.49 (colored)
Merge vmlocking2 to head.
Revision 1.49 / (download) - annotate - [select for diffs], Sat Jul 21 19:21:55 2007 UTC (5 years, 10 months ago) by ad
Branch: MAIN
CVS Tags: yamt-x86pmap-base4,
yamt-x86pmap-base3,
yamt-x86pmap-base2,
yamt-x86pmap-base,
yamt-x86pmap,
yamt-kmem-base3,
yamt-kmem-base2,
yamt-kmem-base,
yamt-kmem,
vmlocking2-base3,
vmlocking2-base2,
vmlocking2-base1,
vmlocking-nbase,
vmlocking-base,
reinoud-bufcleanup-nbase,
reinoud-bufcleanup-base,
nick-csl-alignment-base5,
matt-mips64-base,
matt-armv6-prevmlocking,
jmcneill-pm-base,
jmcneill-pm,
jmcneill-base,
hpcarm-cleanup,
cube-autoconf-base,
cube-autoconf,
bouyer-xenamd64-base2,
bouyer-xenamd64-base,
bouyer-xenamd64
Branch point for: vmlocking2,
mjf-devfs,
matt-mips64,
matt-armv6,
bouyer-xeni386
Changes since 1.48: +1 -4
lines
Diff to previous 1.48 (colored)
Merge unobtrusive locking changes from the vmlocking branch.
Revision 1.48 / (download) - annotate - [select for diffs], Sat Apr 14 07:01:33 2007 UTC (6 years, 1 month ago) by perseant
Branch: MAIN
CVS Tags: yamt-idlelwp-base8,
nick-csl-alignment-base,
mjf-ufs-trans-base
Branch point for: nick-csl-alignment
Changes since 1.47: +2 -1
lines
Diff to previous 1.47 (colored)
Track lwp as well as proc owner with UVM_PAGE_TRKOWN
Revision 1.47 / (download) - annotate - [select for diffs], Wed Feb 21 23:00:14 2007 UTC (6 years, 3 months ago) by thorpej
Branch: MAIN
CVS Tags: thorpej-atomic-base,
thorpej-atomic,
reinoud-bufcleanup,
ad-audiomp-base,
ad-audiomp
Branch point for: vmlocking,
mjf-ufs-trans
Changes since 1.46: +3 -3
lines
Diff to previous 1.46 (colored)
Replace the Mach-derived boolean_t type with the C99 bool type. A future commit will replace use of TRUE and FALSE with true and false.
Revision 1.46 / (download) - annotate - [select for diffs], Fri Sep 15 15:51:13 2006 UTC (6 years, 8 months ago) by yamt
Branch: MAIN
CVS Tags: yamt-splraiseipl-base5,
yamt-splraiseipl-base4,
yamt-splraiseipl-base3,
yamt-splraiseipl-base2,
yamt-splraiseipl-base,
yamt-splraiseipl,
wrstuden-fixsa-newbase,
wrstuden-fixsa-base-1,
wrstuden-fixsa-base,
wrstuden-fixsa,
post-newlock2-merge,
newlock2-nbase,
newlock2-base,
netbsd-4-base,
netbsd-4-0-RELEASE,
netbsd-4-0-RC5,
netbsd-4-0-RC4,
netbsd-4-0-RC3,
netbsd-4-0-RC2,
netbsd-4-0-RC1,
netbsd-4-0-1-RELEASE,
netbsd-4-0,
netbsd-4,
matt-nb4-arm-base,
matt-nb4-arm
Branch point for: yamt-idlelwp
Changes since 1.45: +24 -7
lines
Diff to previous 1.45 (colored)
merge yamt-pdpolicy branch. - separate page replacement policy from the rest of kernel - implement an alternative replacement policy
Revision 1.45 / (download) - annotate - [select for diffs], Thu Apr 6 07:18:23 2006 UTC (7 years, 1 month ago) by uebayasi
Branch: MAIN
CVS Tags: yamt-pdpolicy-base9,
yamt-pdpolicy-base8,
yamt-pdpolicy-base7,
yamt-pdpolicy-base6,
yamt-pdpolicy-base5,
yamt-pdpolicy-base4,
simonb-timecounters-base,
rpaulo-netinet-merge-pcb-base,
gdamore-uart-base,
gdamore-uart,
elad-kernelauth-base,
chap-midi-nbase,
chap-midi-base,
chap-midi,
abandoned-netbsd-4-base,
abandoned-netbsd-4
Branch point for: newlock2
Changes since 1.44: +2 -2
lines
Diff to previous 1.44 (colored)
Update comment to match reality (vm_physmemseg -> vm_physseg).
Revision 1.44 / (download) - annotate - [select for diffs], Thu Feb 16 20:17:20 2006 UTC (7 years, 3 months ago) by perry
Branch: MAIN
CVS Tags: yamt-uio_vmspace-base5,
yamt-pdpolicy-base3,
yamt-pdpolicy-base2,
yamt-pdpolicy-base,
peter-altq-base
Branch point for: yamt-pdpolicy,
peter-altq,
elad-kernelauth
Changes since 1.43: +3 -3
lines
Diff to previous 1.43 (colored)
Change "inline" back to "__inline" in .h files -- C99 is still too new, and some apps compile things in C89 mode. C89 keywords stay. As per core@.
Revision 1.43 / (download) - annotate - [select for diffs], Sat Feb 11 12:45:07 2006 UTC (7 years, 3 months ago) by yamt
Branch: MAIN
Changes since 1.42: +14 -24
lines
Diff to previous 1.42 (colored)
remove the following options. no objections on tech-kern@. UVM_PAGER_INLINE UVM_AMAP_INLINE UVM_PAGE_INLINE UVM_MAP_INLINE
Revision 1.42 / (download) - annotate - [select for diffs], Sat Dec 24 20:45:10 2005 UTC (7 years, 4 months ago) by perry
Branch: MAIN
Branch point for: yamt-uio_vmspace,
simonb-timecounters,
rpaulo-netinet-merge-pcb
Changes since 1.41: +4 -4
lines
Diff to previous 1.41 (colored)
Remove leading __ from __(const|inline|signed|volatile) -- it is obsolete.
Revision 1.41 / (download) - annotate - [select for diffs], Tue Nov 29 15:45:28 2005 UTC (7 years, 5 months ago) by yamt
Branch: MAIN
CVS Tags: yamt-readahead-base3,
ktrace-lwp-base
Changes since 1.40: +2 -1
lines
Diff to previous 1.40 (colored)
read-ahead statistics.
Revision 1.40 / (download) - annotate - [select for diffs], Sat Jun 4 13:48:35 2005 UTC (7 years, 11 months ago) by chs
Branch: MAIN
CVS Tags: yamt-vop-base3,
yamt-vop-base2,
yamt-vop-base,
yamt-vop,
yamt-readahead-pervnode,
yamt-readahead-perfile,
yamt-readahead-base2,
yamt-readahead-base,
thorpej-vnode-attr-base,
thorpej-vnode-attr
Branch point for: yamt-readahead,
yamt-lazymbuf
Changes since 1.39: +3 -3
lines
Diff to previous 1.39 (colored)
adapt to const changes.
Revision 1.39 / (download) - annotate - [select for diffs], Thu Oct 7 10:56:26 2004 UTC (8 years, 7 months ago) by yamt
Branch: MAIN
CVS Tags: yamt-km-base4,
yamt-km-base3,
yamt-km-base2,
yamt-km-base,
yamt-km,
netbsd-3-base,
netbsd-3-1-RELEASE,
netbsd-3-1-RC4,
netbsd-3-1-RC3,
netbsd-3-1-RC2,
netbsd-3-1-RC1,
netbsd-3-1-1-RELEASE,
netbsd-3-1,
netbsd-3-0-RELEASE,
netbsd-3-0-RC6,
netbsd-3-0-RC5,
netbsd-3-0-RC4,
netbsd-3-0-RC3,
netbsd-3-0-RC2,
netbsd-3-0-RC1,
netbsd-3-0-3-RELEASE,
netbsd-3-0-2-RELEASE,
netbsd-3-0-1-RELEASE,
netbsd-3-0,
netbsd-3,
matt-timespec,
kent-audio2-base,
kent-audio2,
kent-audio1-beforemerge,
kent-audio1-base,
kent-audio1
Changes since 1.38: +1 -21
lines
Diff to previous 1.38 (colored)
g/c stale declarations of page queues.
Revision 1.38 / (download) - annotate - [select for diffs], Wed May 12 20:09:52 2004 UTC (9 years ago) by yamt
Branch: MAIN
Changes since 1.37: +2 -1
lines
Diff to previous 1.37 (colored)
add assertions.
Revision 1.37 / (download) - annotate - [select for diffs], Wed Mar 24 07:55:01 2004 UTC (9 years, 2 months ago) by junyoung
Branch: MAIN
CVS Tags: netbsd-2-base,
netbsd-2-1-RELEASE,
netbsd-2-1-RC6,
netbsd-2-1-RC5,
netbsd-2-1-RC4,
netbsd-2-1-RC3,
netbsd-2-1-RC2,
netbsd-2-1-RC1,
netbsd-2-1,
netbsd-2-0-base,
netbsd-2-0-RELEASE,
netbsd-2-0-RC5,
netbsd-2-0-RC4,
netbsd-2-0-RC3,
netbsd-2-0-RC2,
netbsd-2-0-RC1,
netbsd-2-0-3-RELEASE,
netbsd-2-0-2-RELEASE,
netbsd-2-0-1-RELEASE,
netbsd-2-0,
netbsd-2
Changes since 1.36: +27 -27
lines
Diff to previous 1.36 (colored)
Nuke __P().
Revision 1.36 / (download) - annotate - [select for diffs], Mon Nov 10 16:13:05 2003 UTC (9 years, 6 months ago) by rearnsha
Branch: MAIN
Changes since 1.35: +2 -2
lines
Diff to previous 1.35 (colored)
In vm_phsyseg_find, use u_int for start, len and try when doing a binary search. Avoids the need for signed division by 2. Approved by thorpej.
Revision 1.35 / (download) - annotate - [select for diffs], Mon Nov 3 03:58:28 2003 UTC (9 years, 6 months ago) by yamt
Branch: MAIN
Changes since 1.34: +5 -1
lines
Diff to previous 1.34 (colored)
add a DEBUG check if freed PG_ZERO pages are really zero-filled.
Revision 1.34 / (download) - annotate - [select for diffs], Sat May 10 21:10:24 2003 UTC (10 years ago) by thorpej
Branch: MAIN
Branch point for: ktrace-lwp
Changes since 1.33: +1 -1
lines
Diff to previous 1.33 (colored)
Back out the following chagne:
http://mail-index.netbsd.org/source-changes/2003/05/08/0068.html
There were some side-effects that I didn't anticipate, and fixing them
is proving to be more difficult than I thought, do just eject for now.
Maybe one day we can look at this again.
Fixes PR kern/21517.
Revision 1.33 / (download) - annotate - [select for diffs], Thu May 8 18:13:29 2003 UTC (10 years ago) by thorpej
Branch: MAIN
Changes since 1.32: +2 -2
lines
Diff to previous 1.32 (colored)
Simplify the way the bounds of the managed kernel virtual address
space is advertised to UVM by making virtual_avail and virtual_end
first-class exported variables by UVM. Machine-dependent code is
responsible for initializing them before main() is called. Anything
that steals KVA must adjust these variables accordingly.
This reduces the number of instances of this info from 3 to 1, and
simplifies the pmap(9) interface by removing the pmap_virtual_space()
function call, and removing two arguments from pmap_steal_memory().
This also eliminates some kludges such as having to burn kernel_map
entries on space used by the kernel and stolen KVA.
This also eliminates use of VM_{MIN,MAX}_KERNEL_ADDRESS from MI code,
this giving MD code greater flexibility over the bounds of the managed
kernel virtual address space if a given port's specific platforms can
vary in this regard (this is especially true of the evb* ports).
Revision 1.32 / (download) - annotate - [select for diffs], Fri Nov 8 02:05:16 2002 UTC (10 years, 6 months ago) by enami
Branch: MAIN
CVS Tags: nathanw_sa_before_merge,
nathanw_sa_base,
gmcgarry_ucred_base,
gmcgarry_ucred,
gmcgarry_ctxsw_base,
gmcgarry_ctxsw,
fvdl_fs64_base
Changes since 1.31: +2 -2
lines
Diff to previous 1.31 (colored)
s/than than/than/.
Revision 1.31 / (download) - annotate - [select for diffs], Sat Sep 15 20:36:46 2001 UTC (11 years, 8 months ago) by chs
Branch: MAIN
CVS Tags: thorpej-mips-cache-base,
thorpej-mips-cache,
thorpej-devvp-base3,
thorpej-devvp-base2,
post-chs-ubcperf,
newlock-base,
netbsd-1-6-base,
netbsd-1-6-RELEASE,
netbsd-1-6-RC3,
netbsd-1-6-RC2,
netbsd-1-6-RC1,
netbsd-1-6-PATCH002-RELEASE,
netbsd-1-6-PATCH002-RC4,
netbsd-1-6-PATCH002-RC3,
netbsd-1-6-PATCH002-RC2,
netbsd-1-6-PATCH002-RC1,
netbsd-1-6-PATCH002,
netbsd-1-6-PATCH001-RELEASE,
netbsd-1-6-PATCH001-RC3,
netbsd-1-6-PATCH001-RC2,
netbsd-1-6-PATCH001-RC1,
netbsd-1-6-PATCH001,
netbsd-1-6,
kqueue-beforemerge,
kqueue-base,
kqueue-aftermerge,
ifpoll-base,
ifpoll,
gehenna-devsw-base,
gehenna-devsw,
eeh-devprop-base,
eeh-devprop
Branch point for: newlock
Changes since 1.30: +12 -14
lines
Diff to previous 1.30 (colored)
a whole bunch of changes to improve performance and robustness under load:
- remove special treatment of pager_map mappings in pmaps. this is
required now, since I've removed the globals that expose the address range.
pager_map now uses pmap_kenter_pa() instead of pmap_enter(), so there's
no longer any need to special-case it.
- eliminate struct uvm_vnode by moving its fields into struct vnode.
- rewrite the pageout path. the pager is now responsible for handling the
high-level requests instead of only getting control after a bunch of work
has already been done on its behalf. this will allow us to UBCify LFS,
which needs tighter control over its pages than other filesystems do.
writing a page to disk no longer requires making it read-only, which
allows us to write wired pages without causing all kinds of havoc.
- use a new PG_PAGEOUT flag to indicate that a page should be freed
on behalf of the pagedaemon when it's unlocked. this flag is very similar
to PG_RELEASED, but unlike PG_RELEASED, PG_PAGEOUT can be cleared if the
pageout fails due to eg. an indirect-block buffer being locked.
this allows us to remove the "version" field from struct vm_page,
and together with shrinking "loan_count" from 32 bits to 16,
struct vm_page is now 4 bytes smaller.
- no longer use PG_RELEASED for swap-backed pages. if the page is busy
because it's being paged out, we can't release the swap slot to be
reallocated until that write is complete, but unlike with vnodes we
don't keep a count of in-progress writes so there's no good way to
know when the write is done. instead, when we need to free a busy
swap-backed page, just sleep until we can get it busy ourselves.
- implement a fast-path for extending writes which allows us to avoid
zeroing new pages. this substantially reduces cpu usage.
- encapsulate the data used by the genfs code in a struct genfs_node,
which must be the first element of the filesystem-specific vnode data
for filesystems which use genfs_{get,put}pages().
- eliminate many of the UVM pagerops, since they aren't needed anymore
now that the pager "put" operation is a higher-level operation.
- enhance the genfs code to allow NFS to use the genfs_{get,put}pages
instead of a modified copy.
- clean up struct vnode by removing all the fields that used to be used by
the vfs_cluster.c code (which we don't use anymore with UBC).
- remove kmem_object and mb_object since they were useless.
instead of allocating pages to these objects, we now just allocate
pages with no object. such pages are mapped in the kernel until they
are freed, so we can use the mapping to find the page to free it.
this allows us to remove splvm() protection in several places.
The sum of all these changes improves write throughput on my
decstation 5000/200 to within 1% of the rate of NetBSD 1.5
and reduces the elapsed time for "make release" of a NetBSD 1.5
source tree on my 128MB pc to 10% less than a 1.5 kernel took.
Revision 1.30 / (download) - annotate - [select for diffs], Wed Jul 25 23:05:04 2001 UTC (11 years, 10 months ago) by thorpej
Branch: MAIN
CVS Tags: thorpej-devvp-base,
pre-chs-ubcperf
Branch point for: thorpej-devvp
Changes since 1.29: +1 -1
lines
Diff to previous 1.29 (colored)
Back out previous -- christos needs to update his lint(1).
Revision 1.29 / (download) - annotate - [select for diffs], Wed Jul 25 22:41:10 2001 UTC (11 years, 10 months ago) by christos
Branch: MAIN
Changes since 1.28: +2 -2
lines
Diff to previous 1.28 (colored)
fix non-portable bitmap warning.
Revision 1.28 / (download) - annotate - [select for diffs], Sun Jul 22 13:34:12 2001 UTC (11 years, 10 months ago) by wiz
Branch: MAIN
Changes since 1.27: +2 -2
lines
Diff to previous 1.27 (colored)
seperate -> separate
Revision 1.27 / (download) - annotate - [select for diffs], Thu Jun 28 00:26:38 2001 UTC (11 years, 10 months ago) by thorpej
Branch: MAIN
Branch point for: kqueue
Changes since 1.26: +13 -15
lines
Diff to previous 1.26 (colored)
Rather than using u_shorts, use u_ints and bitfields in the vm_page. This provides us more flexibility with pageq-locked fields, and clarifies the locking semantics for platforms which cannot address shorts. From Ross Harvey.
Revision 1.26 / (download) - annotate - [select for diffs], Fri May 25 04:06:16 2001 UTC (12 years ago) by chs
Branch: MAIN
Changes since 1.25: +12 -12
lines
Diff to previous 1.25 (colored)
remove trailing whitespace.
Revision 1.25 / (download) - annotate - [select for diffs], Wed May 16 00:16:01 2001 UTC (12 years ago) by ross
Branch: MAIN
Changes since 1.24: +6 -1
lines
Diff to previous 1.24 (colored)
Expand on the locking notes comment with a XXX warning about u_short fields.
Revision 1.24 / (download) - annotate - [select for diffs], Wed May 2 01:22:20 2001 UTC (12 years ago) by thorpej
Branch: MAIN
Changes since 1.23: +3 -4
lines
Diff to previous 1.23 (colored)
Support dynamic sizing of the page color bins. We also support dynamically re-coloring pages; as machine-dependent code discovers the size of the system's caches, it may call uvm_page_recolor() with the new number of colors to use. If the new mumber of colors is smaller (or equal to) the current number of colors, then uvm_page_recolor() is a no-op. The system defaults to one bucket if machine-dependent code does not initialize uvmexp.ncolors before uvm_page_init() is called. Note that the number of color bins should be initialized to something reasonable as early as possible -- for many early memory allocations, we live with the consequences of the page choice for the lifetime of the boot.
Revision 1.23 / (download) - annotate - [select for diffs], Tue May 1 03:01:18 2001 UTC (12 years ago) by thorpej
Branch: MAIN
Changes since 1.22: +1 -3
lines
Diff to previous 1.22 (colored)
Garbage-collect a comment that has not been applicable since Mach.
Revision 1.22 / (download) - annotate - [select for diffs], Tue May 1 02:19:20 2001 UTC (12 years ago) by thorpej
Branch: MAIN
Changes since 1.21: +5 -3
lines
Diff to previous 1.21 (colored)
Per discussion w/ chuck and chuck, restructure the md page stuff to use a structure called "vm_page_md", and use __HAVE_VM_PAGE_MD and __HAVE_PMAP_PHYSSEG.
Revision 1.21 / (download) - annotate - [select for diffs], Sun Apr 29 22:44:39 2001 UTC (12 years ago) by thorpej
Branch: MAIN
Changes since 1.20: +6 -1
lines
Diff to previous 1.20 (colored)
Add a VM_MDPAGE_MEMBERS macro that defines pmap-specific data for each vm_page structure. Add a VM_MDPAGE_INIT() macro to init this data when pages are initialized by UVM. These macros are mandatory, but ports may #define them to nothing if they are not needed/used. This deprecates struct pmap_physseg. As a transitional measure, allow a port to #define PMAP_PHYSSEG so that it can continue to use it until its pmap is converted to use VM_MDPAGE_MEMBERS. Use all this stuff to eliminate a lot of extra work in the Alpha pmap module (it's smaller and faster now). Changes to other pmap modules will follow.
Revision 1.20 / (download) - annotate - [select for diffs], Sun Apr 29 04:23:21 2001 UTC (12 years ago) by thorpej
Branch: MAIN
Changes since 1.19: +9 -1
lines
Diff to previous 1.19 (colored)
Implement page coloring, using a round-robin bucket selection algorithm (Solaris calls this "Bin Hopping"). This implementation currently relies on MD code to define a constant defining the number of buckets. This will change reasonably soon (MD code will be able to dynamically size the bucket array).
Revision 1.19 / (download) - annotate - [select for diffs], Thu Dec 28 08:24:55 2000 UTC (12 years, 4 months ago) by chs
Branch: MAIN
CVS Tags: thorpej_scsipi_nbase,
thorpej_scsipi_beforemerge,
thorpej_scsipi_base
Branch point for: nathanw_sa
Changes since 1.18: +1 -60
lines
Diff to previous 1.18 (colored)
remove some more leftovers from Mach.
Revision 1.18 / (download) - annotate - [select for diffs], Mon Nov 27 08:40:05 2000 UTC (12 years, 5 months ago) by chs
Branch: MAIN
Changes since 1.17: +36 -42
lines
Diff to previous 1.17 (colored)
Initial integration of the Unified Buffer Cache project.
Revision 1.17 / (download) - annotate - [select for diffs], Tue Oct 3 20:50:49 2000 UTC (12 years, 7 months ago) by mrg
Branch: MAIN
Changes since 1.16: +2 -3
lines
Diff to previous 1.16 (colored)
clean up a comment.
Revision 1.16 / (download) - annotate - [select for diffs], Tue Jun 27 09:00:14 2000 UTC (12 years, 10 months ago) by mrg
Branch: MAIN
Changes since 1.15: +347 -7
lines
Diff to previous 1.15 (colored)
more vm header file changes: <vm/vm_extern.h> merged into <uvm/uvm_extern.h> <vm/vm_page.h> merged into <uvm/uvm_page.h> <vm/pmap.h> has become <uvm/uvm_pmap.h> this leaves just <vm/vm.h> in NetBSD.
Revision 1.15 / (download) - annotate - [select for diffs], Mon Apr 24 17:12:01 2000 UTC (13 years, 1 month ago) by thorpej
Branch: MAIN
CVS Tags: netbsd-1-5-base,
netbsd-1-5-RELEASE,
netbsd-1-5-PATCH003,
netbsd-1-5-PATCH002,
netbsd-1-5-PATCH001,
netbsd-1-5-BETA2,
netbsd-1-5-BETA,
netbsd-1-5-ALPHA2,
netbsd-1-5,
minoura-xpg4dl-base,
minoura-xpg4dl
Changes since 1.14: +10 -1
lines
Diff to previous 1.14 (colored)
Changes necessary to implement pre-zero'ing of pages in the idle loop: - Make page free lists have two actual queues: known-zero pages and pages with unknown contents. - Implement uvm_pageidlezero(). This function attempts to zero up to the target number of pages until the target has been reached (currently target is `all free pages') or until whichqs becomes non-zero (indicating that a process is ready to run). - Define a new hook for the pmap module for pre-zero'ing pages. This is used to zero the pages using uncached access. This allows us to zero as many pages as we want without polluting the cache. In order to use this feature, each platform must add the appropropriate glue in their idle loop.
Revision 1.14 / (download) - annotate - [select for diffs], Sun Mar 26 20:54:47 2000 UTC (13 years, 1 month ago) by kleink
Branch: MAIN
Changes since 1.13: +2 -3
lines
Diff to previous 1.13 (colored)
Merge parts of chs-ubc2 into the trunk: Add a new type voff_t (defined as a synonym for off_t) to describe offsets into uvm objects, and update the appropriate interfaces to use it, the most visible effect being the ability to mmap() file offsets beyond the range of a vaddr_t. Originally by Chuck Silvers; blame me for problems caused by merging this into non-UBC.
Revision 1.13 / (download) - annotate - [select for diffs], Mon Jun 21 17:25:12 1999 UTC (13 years, 11 months ago) by thorpej
Branch: MAIN
CVS Tags: wrstuden-devbsize-base,
wrstuden-devbsize-19991221,
wrstuden-devbsize,
fvdl-softdep-base,
fvdl-softdep,
comdex-fall-1999-base,
comdex-fall-1999,
chs-ubc2-newbase,
chs-ubc2-base
Branch point for: thorpej_scsipi
Changes since 1.12: +5 -1
lines
Diff to previous 1.12 (colored)
Protect prototypes, certain macros, and inlines from userland.
Revision 1.12 / (download) - annotate - [select for diffs], Mon May 24 19:10:57 1999 UTC (14 years ago) by thorpej
Branch: MAIN
Changes since 1.11: +4 -3
lines
Diff to previous 1.11 (colored)
- Change uvm_{lock,unlock}_fpageq() to return/take the previous interrupt
level directly, instead of making the caller wrap the calls in
splimp()/splx().
- Add a comment documenting that interrupts that cause memory allocation
must be blocked while the free page queue is locked.
Since interrupts must be blocked while this lock is asserted, tying them
together like this helps to prevent mistakes.
Revision 1.11 / (download) - annotate - [select for diffs], Thu Mar 25 18:48:53 1999 UTC (14 years, 2 months ago) by mrg
Branch: MAIN
CVS Tags: netbsd-1-4-base,
netbsd-1-4-RELEASE,
netbsd-1-4-PATCH003,
netbsd-1-4-PATCH002,
netbsd-1-4-PATCH001,
netbsd-1-4,
kame_14_19990705,
kame_14_19990628,
kame_141_19991130,
kame
Branch point for: chs-ubc2
Changes since 1.10: +1 -5
lines
Diff to previous 1.10 (colored)
remove now >1 year old pre-release message.
Revision 1.10 / (download) - annotate - [select for diffs], Thu Aug 13 02:11:02 1998 UTC (14 years, 9 months ago) by eeh
Branch: MAIN
CVS Tags: kenh-if-detach-base,
kenh-if-detach,
chs-ubc-base,
chs-ubc
Changes since 1.9: +5 -5
lines
Diff to previous 1.9 (colored)
Merge paddr_t changes into the main branch.
Revision 1.9 / (download) - annotate - [select for diffs], Wed Jul 8 04:28:28 1998 UTC (14 years, 10 months ago) by thorpej
Branch: MAIN
CVS Tags: eeh-paddr_t-base
Branch point for: eeh-paddr_t
Changes since 1.8: +3 -1
lines
Diff to previous 1.8 (colored)
Add support for multiple memory free lists. There is at least one default free list, and 0 - N additional free list, in order of descending priority. A new page allocation function, uvm_pagealloc_strat(), has been added, providing three page allocation strategies: - normal: high -> low priority free list walk, taking the page off the first free list that has one. - only: attempt to allocate a page only from the specified free list, failing if that free list has none available. - fallback: if `only' fails, fall back on `normal'. uvm_pagealloc(...) is provided for normal use (and is a synonym for uvm_pagealloc_strat(..., UVM_PGA_STRAT_NORMAL, 0); the free list argument is ignored for the `normal' case). uvm_page_physload() now specified which free list the pages will be loaded onto. This means that some platforms which have multiple physical memory segments may define additional vm_physsegs if they wish to break individual physical segments into differing priorities. Machine-dependent code must define _at least_ the following constants in <machine/vmparam.h>: VM_NFREELIST: the number of free lists the system will have VM_FREELIST_DEFAULT: the default freelist (should always be 0, but is defined in machdep code so that it's with all of the other free list-related constants). Additional free list names may be defined by machine-dependent code, but they will only be used by machine-dependent code (e.g. for loading the vm_physsegs).
Revision 1.8 / (download) - annotate - [select for diffs], Thu May 28 15:31:31 1998 UTC (14 years, 11 months ago) by chuck
Branch: MAIN
Changes since 1.7: +6 -2
lines
Diff to previous 1.7 (colored)
unstatic uvm_page_physload so pmap modules can use it too. as requested by Eduardo E. Horvath
Revision 1.7 / (download) - annotate - [select for diffs], Sun Mar 22 21:29:30 1998 UTC (15 years, 2 months ago) by chuck
Branch: MAIN
Changes since 1.6: +2 -2
lines
Diff to previous 1.6 (colored)
remove tmpwire arg from uvm_pagewire() -- it isn't needed anymore. noted by chuck s.
Revision 1.6 / (download) - annotate - [select for diffs], Mon Mar 9 00:58:58 1998 UTC (15 years, 2 months ago) by mrg
Branch: MAIN
Changes since 1.5: +2 -2
lines
Diff to previous 1.5 (colored)
KNF.
Revision 1.5 / (download) - annotate - [select for diffs], Tue Feb 10 14:12:24 1998 UTC (15 years, 3 months ago) by mrg
Branch: MAIN
Changes since 1.4: +1 -3
lines
Diff to previous 1.4 (colored)
- add defopt's for UVM, UVMHIST and PMAP_NEW. - remove unnecessary UVMHIST_DECL's.
Revision 1.4 / (download) - annotate - [select for diffs], Tue Feb 10 02:34:52 1998 UTC (15 years, 3 months ago) by perry
Branch: MAIN
Changes since 1.3: +5 -1
lines
Diff to previous 1.3 (colored)
add/cleanup multiple inclusion protection.
Revision 1.3 / (download) - annotate - [select for diffs], Sat Feb 7 11:09:22 1998 UTC (15 years, 3 months ago) by mrg
Branch: MAIN
Changes since 1.2: +1 -0
lines
Diff to previous 1.2 (colored)
restore rcsids
Revision 1.2 / (download) - annotate - [select for diffs], Fri Feb 6 22:32:15 1998 UTC (15 years, 3 months ago) by thorpej
Branch: MAIN
Changes since 1.1: +1 -1
lines
Diff to previous 1.1 (colored)
RCS ID police.
Revision 1.1 / (download) - annotate - [select for diffs], Thu Feb 5 06:25:09 1998 UTC (15 years, 3 months ago) by mrg
Branch: MAIN
Initial revision