The NetBSD Project

CVS log for src/sys/uvm/uvm_pdaemon.c

[BACK] Up to [cvs.NetBSD.org] / src / sys / uvm

Request diff between arbitrary revisions


Keyword substitution: kv
Default branch: MAIN


Revision 1.133.16.1: download - view: text, markup, annotated - select for diffs
Mon Oct 2 13:01:46 2023 UTC (14 months ago) by martin
Branches: netbsd-10
CVS tags: netbsd-10-0-RELEASE, netbsd-10-0-RC6, netbsd-10-0-RC5, netbsd-10-0-RC4, netbsd-10-0-RC3, netbsd-10-0-RC2, netbsd-10-0-RC1
Diff to: previous 1.133: preferred, colored; next MAIN 1.134: preferred, colored
Changes since revision 1.133: +7 -6 lines
Pull up following revision(s) (requested by ad in ticket #379):

	sys/uvm/uvm_pdaemon.c: revision 1.134

uvmpd_trylockowner(): release pg->interlock before calling rw_obj_free()
since it can call back into the VM system.

Revision 1.134: download - view: text, markup, annotated - select for diffs
Sun Sep 10 15:01:11 2023 UTC (14 months, 3 weeks ago) by ad
Branches: MAIN
CVS tags: thorpej-ifq-base, thorpej-ifq, thorpej-altq-separation-base, thorpej-altq-separation, perseant-exfatfs-base-20240630, perseant-exfatfs-base, perseant-exfatfs, HEAD
Diff to: previous 1.133: preferred, colored
Changes since revision 1.133: +7 -6 lines
uvmpd_trylockowner(): release pg->interlock before calling rw_obj_free()
since it can call back into the VM system.

Revision 1.133: download - view: text, markup, annotated - select for diffs
Sat Apr 17 21:37:21 2021 UTC (3 years, 7 months ago) by mrg
Branches: MAIN
CVS tags: thorpej-i2c-spi-conf2-base, thorpej-i2c-spi-conf2, thorpej-i2c-spi-conf-base, thorpej-i2c-spi-conf, thorpej-futex2-base, thorpej-futex2, thorpej-cfargs2-base, thorpej-cfargs2, netbsd-10-base, cjep_sun2x-base1, cjep_sun2x-base, cjep_sun2x, cjep_staticlib_x-base1, cjep_staticlib_x-base, cjep_staticlib_x, bouyer-sunxi-drm-base, bouyer-sunxi-drm
Branch point for: netbsd-10
Diff to: previous 1.132: preferred, colored
Changes since revision 1.132: +5 -2 lines
fix error in previous: UVMHIST_PDHIST_SIZE needs to stay next to pdhistbuf[].

Revision 1.131.2.1: download - view: text, markup, annotated - select for diffs
Sat Apr 17 17:26:22 2021 UTC (3 years, 7 months ago) by thorpej
Branches: thorpej-cfargs
Diff to: previous 1.131: preferred, colored; next MAIN 1.132: preferred, colored
Changes since revision 1.131: +4 -3 lines
Sync with HEAD.

Revision 1.132: download - view: text, markup, annotated - select for diffs
Sat Apr 17 01:53:58 2021 UTC (3 years, 7 months ago) by mrg
Branches: MAIN
CVS tags: thorpej-cfargs-base
Diff to: previous 1.131: preferred, colored
Changes since revision 1.131: +4 -3 lines
remove KERNHIST_INIT_STATIC().  it stradles the line between usable
early in boot and broken early in boot by requiring a partly static
structure with another structure that must be present by the time
any uses are performed.  theoretically platform code could allocate
a chunk while seting up memory and assign it here, giving a dynamic
sizing for the entry list, but the reality is that all users have
a statically allocated entry list as well.

the existing KERNHIST_LINK_STATIC() is used in conjunction with
KERNHIST_INITIALIZER() instead.

this stops a NULL pointer deref when the _LOG() macro is called
before the storage is linked in, which happens with GCC 10 on OCTEON
with UVMHIST enabled, crashing in very early kernel init.

Revision 1.130.2.1: download - view: text, markup, annotated - select for diffs
Mon Dec 14 14:38:17 2020 UTC (3 years, 11 months ago) by thorpej
Branches: thorpej-futex
Diff to: previous 1.130: preferred, colored; next MAIN 1.131: preferred, colored
Changes since revision 1.130: +66 -54 lines
Sync w/ HEAD.

Revision 1.131: download - view: text, markup, annotated - select for diffs
Wed Nov 4 01:30:19 2020 UTC (4 years, 1 month ago) by chs
Branches: MAIN
CVS tags: thorpej-futex-base
Branch point for: thorpej-cfargs
Diff to: previous 1.130: preferred, colored
Changes since revision 1.130: +66 -54 lines
In uvmpd_tryownerlock(), if the initial try-lock of the owner lock fails
then rather than do more try-locks and eventually sleep for a tick,
take a hold on the current owner's lock, drop the page interlock,
and acquire the lock that we took the hold on in a blocking fashion.
After we get the lock, check if the lock that we acquired is still
the lock for the owner of the page that we're interested in.
If the owner hasn't changed then can proceed with this page,
otherwise we will skip this page and move on to a different page.
This dramatically reduces the amount of time that the pagedaemon
sleeps trying to get locks, since even 1 tick is an eternity to sleep
in this context and it was easy to trigger that case in practice,
and with this new method the pagedaemon only very rarely actually blocks
to acquire the lock that it wants since the object locks are adaptive,
and when the pagedaemon does block then the amount of time it spends
sleeping will be generally be much less than 1 tick.

Revision 1.130: download - view: text, markup, annotated - select for diffs
Thu Jul 9 05:57:15 2020 UTC (4 years, 4 months ago) by skrll
Branches: MAIN
Branch point for: thorpej-futex
Diff to: previous 1.129: preferred, colored
Changes since revision 1.129: +8 -8 lines
Consistently use UVMHIST(__func__)

Convert UVMHIST_{CALLED,LOG} into UVMHIST_CALLARGS

Revision 1.129: download - view: text, markup, annotated - select for diffs
Thu Jun 11 22:21:05 2020 UTC (4 years, 5 months ago) by ad
Branches: MAIN
Diff to: previous 1.128: preferred, colored
Changes since revision 1.128: +7 -5 lines
Counter tweaks:

- Don't need to count anonpages+filepages any more; clean+unknown+dirty for
  each kind of page can be summed to get the totals.

- Track the number of free pages with a counter so that it's one less thing
  for the allocator to do, which opens up further options there.

- Remove cpu_count_sync_one().  It has no users and doesn't save a whole lot.
  For the cheap option, give cpu_count_sync() a boolean parameter indicating
  that a cached value is okay, and rate limit the updates for cached values
  to hz.

Revision 1.128: download - view: text, markup, annotated - select for diffs
Thu Jun 11 19:20:47 2020 UTC (4 years, 5 months ago) by ad
Branches: MAIN
Diff to: previous 1.127: preferred, colored
Changes since revision 1.127: +12 -11 lines
uvm_availmem(): give it a boolean argument to specify whether a recent
cached value will do, or if the very latest total must be fetched.  It can
be called thousands of times a second and fetching the totals impacts not
only the calling LWP but other CPUs doing unrelated activity in the VM
system.

Revision 1.127: download - view: text, markup, annotated - select for diffs
Mon May 25 19:46:20 2020 UTC (4 years, 6 months ago) by ad
Branches: MAIN
Diff to: previous 1.126: preferred, colored
Changes since revision 1.126: +8 -3 lines
uvm_pageout_done(): do nothing when npages is zero.

Revision 1.109.4.3: download - view: text, markup, annotated - select for diffs
Tue Apr 21 18:42:46 2020 UTC (4 years, 7 months ago) by martin
Branches: phil-wifi
Diff to: previous 1.109.4.2: preferred, colored; branchpoint 1.109: preferred, colored; next MAIN 1.110: preferred, colored
Changes since revision 1.109.4.2: +2 -2 lines
Sync with HEAD

Revision 1.125.4.1: download - view: text, markup, annotated - select for diffs
Mon Apr 20 11:29:14 2020 UTC (4 years, 7 months ago) by bouyer
Branches: bouyer-xenpvh
Diff to: previous 1.125: preferred, colored; next MAIN 1.126: preferred, colored
Changes since revision 1.125: +4 -4 lines
Sync with HEAD

Revision 1.126: download - view: text, markup, annotated - select for diffs
Mon Apr 13 15:54:45 2020 UTC (4 years, 7 months ago) by maxv
Branches: MAIN
CVS tags: phil-wifi-20200421, bouyer-xenpvh-base2, bouyer-xenpvh-base1
Diff to: previous 1.125: preferred, colored
Changes since revision 1.125: +4 -4 lines
hardclock_ticks -> getticks()

Revision 1.109.4.2: download - view: text, markup, annotated - select for diffs
Mon Apr 13 08:05:21 2020 UTC (4 years, 7 months ago) by martin
Branches: phil-wifi
Diff to: previous 1.109.4.1: preferred, colored; branchpoint 1.109: preferred, colored
Changes since revision 1.109.4.1: +203 -223 lines
Mostly merge changes from HEAD upto 20200411

Revision 1.122.2.2: download - view: text, markup, annotated - select for diffs
Sat Feb 29 20:21:11 2020 UTC (4 years, 9 months ago) by ad
Branches: ad-namecache
Diff to: previous 1.122.2.1: preferred, colored; branchpoint 1.122: preferred, colored; next MAIN 1.123: preferred, colored
Changes since revision 1.122.2.1: +19 -36 lines
Sync with head.

Revision 1.125: download - view: text, markup, annotated - select for diffs
Sun Feb 23 15:46:43 2020 UTC (4 years, 9 months ago) by ad
Branches: MAIN
CVS tags: phil-wifi-20200411, phil-wifi-20200406, is-mlppp-base, is-mlppp, bouyer-xenpvh-base, ad-namecache-base3
Branch point for: bouyer-xenpvh
Diff to: previous 1.124: preferred, colored
Changes since revision 1.124: +19 -17 lines
UVM locking changes, proposed on tech-kern:

- Change the lock on uvm_object, vm_amap and vm_anon to be a RW lock.
- Break v_interlock and vmobjlock apart.  v_interlock remains a mutex.
- Do partial PV list locking in the x86 pmap.  Others to follow later.

Revision 1.124: download - view: text, markup, annotated - select for diffs
Tue Feb 18 20:23:17 2020 UTC (4 years, 9 months ago) by chs
Branches: MAIN
Diff to: previous 1.123: preferred, colored
Changes since revision 1.123: +2 -21 lines
remove the aiodoned thread.  I originally added this to provide a thread context
for doing page cache iodone work, but since then biodone() has changed to
hand off all iodone work to a softint thread, so we no longer need the
special-purpose aiodoned thread.

Revision 1.122.2.1: download - view: text, markup, annotated - select for diffs
Fri Jan 17 21:47:38 2020 UTC (4 years, 10 months ago) by ad
Branches: ad-namecache
Diff to: previous 1.122: preferred, colored
Changes since revision 1.122: +11 -7 lines
Sync with head.

Revision 1.123: download - view: text, markup, annotated - select for diffs
Wed Jan 15 17:55:45 2020 UTC (4 years, 10 months ago) by ad
Branches: MAIN
CVS tags: ad-namecache-base2, ad-namecache-base1
Diff to: previous 1.122: preferred, colored
Changes since revision 1.122: +11 -7 lines
Merge from yamt-pagecache (after much testing):

- Reduce unnecessary page scan in putpages esp. when an object has a ton of
  pages cached but only a few of them are dirty.

- Reduce the number of pmap operations by tracking page dirtiness more
  precisely in uvm layer.

Revision 1.122: download - view: text, markup, annotated - select for diffs
Tue Dec 31 22:42:51 2019 UTC (4 years, 11 months ago) by ad
Branches: MAIN
CVS tags: ad-namecache-base
Branch point for: ad-namecache
Diff to: previous 1.121: preferred, colored
Changes since revision 1.121: +10 -2 lines
- Add and use wrapper functions that take and acquire page interlocks, and pairs
  of page interlocks.  Require that the page interlock be held over calls to
  uvm_pageactivate(), uvm_pagewire() and similar.

- Solve the concurrency problem with page replacement state.  Rather than
  updating the global state synchronously, set an intended state on
  individual pages (active, inactive, enqueued, dequeued) while holding the
  page interlock.  After the interlock is released put the pages on a 128
  entry per-CPU queue for their state changes to be made real in batch.
  This results in in a ~400 fold decrease in contention on my test system.
  Proposed on tech-kern but modified to use the page interlock rather than
  atomics to synchronise as it's much easier to maintain that way, and
  cheaper.

Revision 1.121: download - view: text, markup, annotated - select for diffs
Tue Dec 31 13:07:14 2019 UTC (4 years, 11 months ago) by ad
Branches: MAIN
Diff to: previous 1.120: preferred, colored
Changes since revision 1.120: +12 -11 lines
Rename uvm_free() -> uvm_availmem().

Revision 1.120: download - view: text, markup, annotated - select for diffs
Tue Dec 31 12:40:27 2019 UTC (4 years, 11 months ago) by ad
Branches: MAIN
Diff to: previous 1.119: preferred, colored
Changes since revision 1.119: +3 -3 lines
Rename uvm_page_locked_p() -> uvm_page_owner_locked_p()

Revision 1.119: download - view: text, markup, annotated - select for diffs
Mon Dec 30 18:08:37 2019 UTC (4 years, 11 months ago) by ad
Branches: MAIN
Diff to: previous 1.118: preferred, colored
Changes since revision 1.118: +43 -50 lines
pagedaemon:

- Use marker pages to keep place in the queue when scanning, rather than
  relying on assumptions.

- In uvmpdpol_balancequeue(), lock the object once instead of twice.

- When draining pools, the situation is getting desperate, but try to avoid
  saturating the system with xcall, lock and interrupt activity by sleeping
  for 1 clock tick if being continually awoken and all pools have been
  cycled through at least once.

- Pause & resume the freelist cache during pool draining.

PR kern/54209: NetBSD 8 large memory performance extremely low
PR kern/54210: NetBSD-8 processes presumably not exiting
PR kern/54727: writing a large file causes unreasonable system behaviour

Revision 1.118: download - view: text, markup, annotated - select for diffs
Sat Dec 21 16:10:20 2019 UTC (4 years, 11 months ago) by ad
Branches: MAIN
Diff to: previous 1.117: preferred, colored
Changes since revision 1.117: +2 -3 lines
Fix merge error - don't init uvmpd_lock twice.

Revision 1.117: download - view: text, markup, annotated - select for diffs
Sat Dec 21 14:50:34 2019 UTC (4 years, 11 months ago) by ad
Branches: MAIN
Diff to: previous 1.116: preferred, colored
Changes since revision 1.116: +39 -44 lines
Detangle the pagedaemon from uvm_fpageqlock:

- Have a single lock (uvmpd_lock) to protect pagedaemon state that was
  previously covered by uvmpd_pool_drain_lock plus uvm_fpageqlock.
- Don't require any locks be held when calling uvm_kick_pdaemon().
- Use uvm_free().

Revision 1.116: download - view: text, markup, annotated - select for diffs
Sat Dec 21 11:41:18 2019 UTC (4 years, 11 months ago) by ad
Branches: MAIN
Diff to: previous 1.115: preferred, colored
Changes since revision 1.115: +5 -3 lines
uvm_reclaimable(): need to sum the per-CPU values for filepages/execpages.

Revision 1.115: download - view: text, markup, annotated - select for diffs
Sat Dec 14 21:36:00 2019 UTC (4 years, 11 months ago) by ad
Branches: MAIN
Diff to: previous 1.114: preferred, colored
Changes since revision 1.114: +6 -6 lines
The uvmexp.pdpending change was incorrect - revert for now.

Revision 1.114: download - view: text, markup, annotated - select for diffs
Sat Dec 14 15:04:47 2019 UTC (4 years, 11 months ago) by ad
Branches: MAIN
Diff to: previous 1.113: preferred, colored
Changes since revision 1.113: +6 -6 lines
Adjust pdpending in uvm_pageout_start() and uvm_pageout_done() to avoid
the value going temporarily negative.

Revision 1.113: download - view: text, markup, annotated - select for diffs
Fri Dec 13 20:10:22 2019 UTC (4 years, 11 months ago) by ad
Branches: MAIN
Diff to: previous 1.112: preferred, colored
Changes since revision 1.112: +93 -98 lines
Break the global uvm_pageqlock into a per-page identity lock and a private
lock for use of the pagedaemon policy code.  Discussed on tech-kern.

PR kern/54209: NetBSD 8 large memory performance extremely low
PR kern/54210: NetBSD-8 processes presumably not exiting
PR kern/54727: writing a large file causes unreasonable system behaviour

Revision 1.112: download - view: text, markup, annotated - select for diffs
Sun Dec 1 14:40:31 2019 UTC (5 years ago) by ad
Branches: MAIN
Diff to: previous 1.111: preferred, colored
Changes since revision 1.111: +4 -7 lines
- Adjust uvmexp.swpgonly with atomics, and make uvm_swap_data_lock static.
- A bit more __cacheline_aligned on mutexes.

Revision 1.111: download - view: text, markup, annotated - select for diffs
Tue Oct 1 17:40:22 2019 UTC (5 years, 2 months ago) by chs
Branches: MAIN
CVS tags: phil-wifi-20191119
Diff to: previous 1.110: preferred, colored
Changes since revision 1.110: +5 -2 lines
in uvm_wait(), panic if the pagedaemon thread does not exist.
this avoids a hang if the system runs out of memory before
the mechanisms for reclaiming memory have been set up.

Revision 1.109.4.1: download - view: text, markup, annotated - select for diffs
Mon Jun 10 22:09:58 2019 UTC (5 years, 5 months ago) by christos
Branches: phil-wifi
Diff to: previous 1.109: preferred, colored
Changes since revision 1.109: +71 -15 lines
Sync with HEAD

Revision 1.108.22.2: download - view: text, markup, annotated - select for diffs
Mon Apr 22 08:12:06 2019 UTC (5 years, 7 months ago) by martin
Branches: netbsd-8
CVS tags: netbsd-8-3-RELEASE, netbsd-8-2-RELEASE, netbsd-8-1-RELEASE, netbsd-8-1-RC1
Diff to: previous 1.108.22.1: preferred, colored; branchpoint 1.108: preferred, colored; next MAIN 1.109: preferred, colored
Changes since revision 1.108.22.1: +71 -15 lines
Pull up following revision(s) (requested by chs in ticket #1238):

	sys/uvm/uvm_pdaemon.c: revision 1.110

Draining pools from the pagedaemon thread can deadlock, because draining
a pool can involve taking a lock which can be held by a thread which is
blocked waiting for memory.  Avoid this by moving the pool-draining work
to a separate worker thread.

Revision 1.110: download - view: text, markup, annotated - select for diffs
Sun Apr 21 15:32:18 2019 UTC (5 years, 7 months ago) by chs
Branches: MAIN
CVS tags: phil-wifi-20190609, netbsd-9-base, netbsd-9-4-RELEASE, netbsd-9-3-RELEASE, netbsd-9-2-RELEASE, netbsd-9-1-RELEASE, netbsd-9-0-RELEASE, netbsd-9-0-RC2, netbsd-9-0-RC1, netbsd-9
Diff to: previous 1.109: preferred, colored
Changes since revision 1.109: +71 -15 lines
Draining pools from the pagedaemon thread can deadlock, because draining
a pool can involve taking a lock which can be held by a thread which is
blocked waiting for memory.  Avoid this by moving the pool-draining work
to a separate worker thread.

Revision 1.107.2.2: download - view: text, markup, annotated - select for diffs
Sun Dec 3 11:39:22 2017 UTC (7 years ago) by jdolecek
Branches: tls-maxphys
Diff to: previous 1.107.2.1: preferred, colored; branchpoint 1.107: preferred, colored; next MAIN 1.108: preferred, colored
Changes since revision 1.107.2.1: +2 -2 lines
update from HEAD

Revision 1.108.22.1: download - view: text, markup, annotated - select for diffs
Thu Nov 2 21:29:53 2017 UTC (7 years, 1 month ago) by snj
Branches: netbsd-8
CVS tags: netbsd-8-0-RELEASE, netbsd-8-0-RC2, netbsd-8-0-RC1, matt-nb8-mediatek-base, matt-nb8-mediatek
Diff to: previous 1.108: preferred, colored
Changes since revision 1.108: +4 -4 lines
Pull up following revision(s) (requested by pgoyette in ticket #335):
	share/man/man9/kernhist.9: 1.5-1.8
	sys/arch/acorn26/acorn26/pmap.c: 1.39
	sys/arch/arm/arm32/fault.c: 1.105 via patch
	sys/arch/arm/arm32/pmap.c: 1.350, 1.359
	sys/arch/arm/broadcom/bcm2835_bsc.c: 1.7
	sys/arch/arm/omap/if_cpsw.c: 1.20
	sys/arch/arm/omap/tiotg.c: 1.7
	sys/arch/evbarm/conf/RPI2_INSTALL: 1.3
	sys/dev/ic/sl811hs.c: 1.98
	sys/dev/usb/ehci.c: 1.256
	sys/dev/usb/if_axe.c: 1.83
	sys/dev/usb/motg.c: 1.18
	sys/dev/usb/ohci.c: 1.274
	sys/dev/usb/ucom.c: 1.119
	sys/dev/usb/uhci.c: 1.277
	sys/dev/usb/uhub.c: 1.137
	sys/dev/usb/umass.c: 1.160-1.162
	sys/dev/usb/umass_quirks.c: 1.100
	sys/dev/usb/umass_scsipi.c: 1.55
	sys/dev/usb/usb.c: 1.168
	sys/dev/usb/usb_mem.c: 1.70
	sys/dev/usb/usb_subr.c: 1.221
	sys/dev/usb/usbdi.c: 1.175
	sys/dev/usb/usbdi_util.c: 1.67-1.70
	sys/dev/usb/usbroothub.c: 1.3
	sys/dev/usb/xhci.c: 1.75
	sys/external/bsd/drm2/dist/drm/i915/i915_gem.c: 1.34
	sys/kern/kern_history.c: 1.15
	sys/kern/kern_xxx.c: 1.74
	sys/kern/vfs_bio.c: 1.275-1.276
	sys/miscfs/genfs/genfs_io.c: 1.71
	sys/sys/kernhist.h: 1.21
	sys/ufs/ffs/ffs_balloc.c: 1.63
	sys/ufs/lfs/lfs_vfsops.c: 1.361
	sys/ufs/lfs/ulfs_inode.c: 1.21
	sys/ufs/lfs/ulfs_vnops.c: 1.52
	sys/ufs/ufs/ufs_inode.c: 1.102
	sys/ufs/ufs/ufs_vnops.c: 1.239
	sys/uvm/pmap/pmap.c: 1.37-1.39
	sys/uvm/pmap/pmap_tlb.c: 1.22
	sys/uvm/uvm_amap.c: 1.108
	sys/uvm/uvm_anon.c: 1.64
	sys/uvm/uvm_aobj.c: 1.126
	sys/uvm/uvm_bio.c: 1.91
	sys/uvm/uvm_device.c: 1.66
	sys/uvm/uvm_fault.c: 1.201
	sys/uvm/uvm_km.c: 1.144
	sys/uvm/uvm_loan.c: 1.85
	sys/uvm/uvm_map.c: 1.353
	sys/uvm/uvm_page.c: 1.194
	sys/uvm/uvm_pager.c: 1.111
	sys/uvm/uvm_pdaemon.c: 1.109
	sys/uvm/uvm_swap.c: 1.175
	sys/uvm/uvm_vnode.c: 1.103
	usr.bin/vmstat/vmstat.c: 1.219
Reorder to test for null before null deref in debug code
--
Reorder to test for null before null deref in debug code
--
KNF
--
No need for '\n' in UVMHIST_LOG
--
normalise a BIOHIST log message
--
Update the kernhist(9) kernel history code to address issues identified
in PR kern/52639, as well as some general cleaning-up...
(As proposed on tech-kern@ with additional changes and enhancements.)
Details of changes:
* All history arguments are now stored as uintmax_t values[1], both in
   the kernel and in the structures used for exporting the history data
   to userland via sysctl(9).  This avoids problems on some architectures
   where passing a 64-bit (or larger) value to printf(3) can cause it to
   process the value as multiple arguments.  (This can be particularly
   problematic when printf()'s format string is not a literal, since in
   that case the compiler cannot know how large each argument should be.)
* Update the data structures used for exporting kernel history data to
   include a version number as well as the length of history arguments.
* All [2] existing users of kernhist(9) have had their format strings
   updated.  Each format specifier now includes an explicit length
   modifier 'j' to refer to numeric values of the size of uintmax_t.
* All [2] existing users of kernhist(9) have had their format strings
   updated to replace uses of "%p" with "%#jx", and the pointer
   arguments are now cast to (uintptr_t) before being subsequently cast
   to (uintmax_t).  This is needed to avoid compiler warnings about
   casting "pointer to integer of a different size."
* All [2] existing users of kernhist(9) have had instances of "%s" or
   "%c" format strings replaced with numeric formats; several instances
   of mis-match between format string and argument list have been fixed.
* vmstat(1) has been modified to handle the new size of arguments in the
   history data as exported by sysctl(9).
* vmstat(1) now provides a warning message if the history requested with
   the -u option does not exist (previously, this condition was silently
   ignored, with only a single blank line being printed).
* vmstat(1) now checks the version and argument length included in the
   data exported via sysctl(9) and exits if they do not match the values
   with which vmstat was built.
* The kernhist(9) man-page has been updated to note the additional
   requirements imposed on the format strings, along with several other
   minor changes and enhancements.
[1] It would have been possible to use an explicit length (for example,
     uint64_t) for the history arguments.  But that would require another
     "rototill" of all the users in the future when we add support for an
     architecture that supports a larger size.  Also, the printf(3)
format
     specifiers for explicitly-sized values, such as "%"PRIu64, are much
     more verbose (and less aesthetically appealing, IMHO) than simply
     using "%ju".
[2] I've tried very hard to find "all [the] existing users of
kernhist(9)"
     but it is possible that I've missed some of them.  I would be glad
to
     update any stragglers that anyone identifies.
--
For some reason this single kernel seems to have outgrown its declared
size as a result of the kernhist(9) changes.  Bump the size.
XXX The amount of increase may be excessive - anyone with more detailed
XXX knowledge please feel free to further adjust the value
appropriately.
--
Misssed one cast of pointer --> uintptr_t in previous kernhist(9) commit
--
And yet another one.  :(
--
Use correct mark-up for NetBSD version.
--
More improvements in grammar and readability.
--
Remove a stray '"' (obvious typo) and add a couple of casts that are
probably needed.
--
And replace an instance of "%p" conversion with "%#jx"
--
Whitespace fix. Give Bl tag table a width. Fix Xr.

Revision 1.109: download - view: text, markup, annotated - select for diffs
Sat Oct 28 00:37:13 2017 UTC (7 years, 1 month ago) by pgoyette
Branches: MAIN
CVS tags: tls-maxphys-base-20171202, phil-wifi-base, pgoyette-compat-merge-20190127, pgoyette-compat-base, pgoyette-compat-20190127, pgoyette-compat-20190118, pgoyette-compat-1226, pgoyette-compat-1126, pgoyette-compat-1020, pgoyette-compat-0930, pgoyette-compat-0906, pgoyette-compat-0728, pgoyette-compat-0625, pgoyette-compat-0521, pgoyette-compat-0502, pgoyette-compat-0422, pgoyette-compat-0415, pgoyette-compat-0407, pgoyette-compat-0330, pgoyette-compat-0322, pgoyette-compat-0315, pgoyette-compat, isaki-audio2-base, isaki-audio2
Branch point for: phil-wifi
Diff to: previous 1.108: preferred, colored
Changes since revision 1.108: +4 -4 lines
Update the kernhist(9) kernel history code to address issues identified
in PR kern/52639, as well as some general cleaning-up...

(As proposed on tech-kern@ with additional changes and enhancements.)

Details of changes:

* All history arguments are now stored as uintmax_t values[1], both in
  the kernel and in the structures used for exporting the history data
  to userland via sysctl(9).  This avoids problems on some architectures
  where passing a 64-bit (or larger) value to printf(3) can cause it to
  process the value as multiple arguments.  (This can be particularly
  problematic when printf()'s format string is not a literal, since in
  that case the compiler cannot know how large each argument should be.)

* Update the data structures used for exporting kernel history data to
  include a version number as well as the length of history arguments.

* All [2] existing users of kernhist(9) have had their format strings
  updated.  Each format specifier now includes an explicit length
  modifier 'j' to refer to numeric values of the size of uintmax_t.

* All [2] existing users of kernhist(9) have had their format strings
  updated to replace uses of "%p" with "%#jx", and the pointer
  arguments are now cast to (uintptr_t) before being subsequently cast
  to (uintmax_t).  This is needed to avoid compiler warnings about
  casting "pointer to integer of a different size."

* All [2] existing users of kernhist(9) have had instances of "%s" or
  "%c" format strings replaced with numeric formats; several instances
  of mis-match between format string and argument list have been fixed.

* vmstat(1) has been modified to handle the new size of arguments in the
  history data as exported by sysctl(9).

* vmstat(1) now provides a warning message if the history requested with
  the -u option does not exist (previously, this condition was silently
  ignored, with only a single blank line being printed).

* vmstat(1) now checks the version and argument length included in the
  data exported via sysctl(9) and exits if they do not match the values
  with which vmstat was built.

* The kernhist(9) man-page has been updated to note the additional
  requirements imposed on the format strings, along with several other
  minor changes and enhancements.

[1] It would have been possible to use an explicit length (for example,
    uint64_t) for the history arguments.  But that would require another
    "rototill" of all the users in the future when we add support for an
    architecture that supports a larger size.  Also, the printf(3) format
    specifiers for explicitly-sized values, such as "%"PRIu64, are much
    more verbose (and less aesthetically appealing, IMHO) than simply
    using "%ju".

[2] I've tried very hard to find "all [the] existing users of kernhist(9)"
    but it is possible that I've missed some of them.  I would be glad to
    update any stragglers that anyone identifies.

Revision 1.107.2.1: download - view: text, markup, annotated - select for diffs
Wed Aug 20 00:04:45 2014 UTC (10 years, 3 months ago) by tls
Branches: tls-maxphys
Diff to: previous 1.107: preferred, colored
Changes since revision 1.107: +3 -3 lines
Rebase to HEAD as of a few days ago.

Revision 1.103.2.6: download - view: text, markup, annotated - select for diffs
Thu May 22 11:41:19 2014 UTC (10 years, 6 months ago) by yamt
Branches: yamt-pagecache
Diff to: previous 1.103.2.5: preferred, colored; branchpoint 1.103: preferred, colored; next MAIN 1.104: preferred, colored
Changes since revision 1.103.2.5: +3 -3 lines
sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs.  ("Protocol error: too many arguments")

Revision 1.107.4.1: download - view: text, markup, annotated - select for diffs
Sun May 18 17:46:22 2014 UTC (10 years, 6 months ago) by rmind
Branches: rmind-smpnet
Diff to: previous 1.107: preferred, colored; next MAIN 1.108: preferred, colored
Changes since revision 1.107: +3 -3 lines
sync with head

Revision 1.108: download - view: text, markup, annotated - select for diffs
Fri Oct 25 20:28:33 2013 UTC (11 years, 1 month ago) by martin
Branches: MAIN
CVS tags: yamt-pagecache-base9, tls-maxphys-base, tls-earlyentropy-base, tls-earlyentropy, rmind-smpnet-nbase, rmind-smpnet-base, riastradh-xf86-video-intel-2-7-1-pre-2-21-15, riastradh-drm2-base3, prg-localcount2-base3, prg-localcount2-base2, prg-localcount2-base1, prg-localcount2-base, prg-localcount2, pgoyette-localcount-base, pgoyette-localcount-20170426, pgoyette-localcount-20170320, pgoyette-localcount-20170107, pgoyette-localcount-20161104, pgoyette-localcount-20160806, pgoyette-localcount-20160726, pgoyette-localcount, perseant-stdc-iso10646-base, perseant-stdc-iso10646, nick-nhusb-base-20170825, nick-nhusb-base-20170204, nick-nhusb-base-20161204, nick-nhusb-base-20161004, nick-nhusb-base-20160907, nick-nhusb-base-20160529, nick-nhusb-base-20160422, nick-nhusb-base-20160319, nick-nhusb-base-20151226, nick-nhusb-base-20150921, nick-nhusb-base-20150606, nick-nhusb-base-20150406, nick-nhusb-base, nick-nhusb, netbsd-8-base, netbsd-7-nhusb-base-20170116, netbsd-7-nhusb-base, netbsd-7-nhusb, netbsd-7-base, netbsd-7-2-RELEASE, netbsd-7-1-RELEASE, netbsd-7-1-RC2, netbsd-7-1-RC1, netbsd-7-1-2-RELEASE, netbsd-7-1-1-RELEASE, netbsd-7-1, netbsd-7-0-RELEASE, netbsd-7-0-RC3, netbsd-7-0-RC2, netbsd-7-0-RC1, netbsd-7-0-2-RELEASE, netbsd-7-0-1-RELEASE, netbsd-7-0, netbsd-7, localcount-20160914, jdolecek-ncq-base, jdolecek-ncq, bouyer-socketcan-base1, bouyer-socketcan-base, bouyer-socketcan
Branch point for: netbsd-8
Diff to: previous 1.107: preferred, colored
Changes since revision 1.107: +3 -3 lines
Mark a diagnostic-only variable

Revision 1.103.2.5: download - view: text, markup, annotated - select for diffs
Tue Oct 30 17:23:03 2012 UTC (12 years, 1 month ago) by yamt
Branches: yamt-pagecache
CVS tags: yamt-pagecache-tag8
Diff to: previous 1.103.2.4: preferred, colored; branchpoint 1.103: preferred, colored
Changes since revision 1.103.2.4: +8 -11 lines
sync with head

Revision 1.107: download - view: text, markup, annotated - select for diffs
Mon Jul 30 23:56:48 2012 UTC (12 years, 4 months ago) by matt
Branches: MAIN
CVS tags: yamt-pagecache-base8, yamt-pagecache-base7, yamt-pagecache-base6, riastradh-drm2-base2, riastradh-drm2-base1, riastradh-drm2-base, riastradh-drm2, khorben-n900, agc-symver-base, agc-symver
Branch point for: tls-maxphys, rmind-smpnet
Diff to: previous 1.106: preferred, colored
Changes since revision 1.106: +6 -2 lines
-fno-common broke kernhist since it used commons.
Add a KERNHIST_DEFINE which is define the kernel history.
Change UVM to deal with the new usage.

Revision 1.106: download - view: text, markup, annotated - select for diffs
Tue Jun 5 22:51:47 2012 UTC (12 years, 6 months ago) by jym
Branches: MAIN
Diff to: previous 1.105: preferred, colored
Changes since revision 1.105: +4 -11 lines
Now that pool_cache_invalidate() is synchronous and can handle per-CPU
caches, merge together pool_drain_start() and pool_drain_end() into

bool pool_drain(struct pool **ppp);

"bool" value indicates whether reclaiming was fully done (true) or not (false)
"ppp" will contain a pointer to the pool that was drained (optional).

See http://mail-index.netbsd.org/tech-kern/2012/06/04/msg013287.html

Revision 1.93.4.2.4.15: download - view: text, markup, annotated - select for diffs
Mon May 7 18:31:55 2012 UTC (12 years, 7 months ago) by matt
Branches: matt-nb5-mips64
Diff to: previous 1.93.4.2.4.14: preferred, colored; branchpoint 1.93.4.2: preferred, colored; next MAIN 1.94: preferred, colored
Changes since revision 1.93.4.2.4.14: +3 -3 lines
Fix free wakeup

Revision 1.93.4.2.4.14: download - view: text, markup, annotated - select for diffs
Fri Apr 27 20:41:09 2012 UTC (12 years, 7 months ago) by matt
Branches: matt-nb5-mips64
Diff to: previous 1.93.4.2.4.13: preferred, colored; branchpoint 1.93.4.2: preferred, colored
Changes since revision 1.93.4.2.4.13: +3 -3 lines
Don't decrement pgrp_active in radioactive page dequeue since we don't
increment it when activated a radioactive page.

Revision 1.93.4.2.4.13: download - view: text, markup, annotated - select for diffs
Tue Apr 17 00:19:30 2012 UTC (12 years, 7 months ago) by matt
Branches: matt-nb5-mips64
Diff to: previous 1.93.4.2.4.12: preferred, colored; branchpoint 1.93.4.2: preferred, colored
Changes since revision 1.93.4.2.4.12: +19 -6 lines
Don't kick off the page daemon if it's not going to be able to do anything.

Revision 1.103.2.4: download - view: text, markup, annotated - select for diffs
Tue Apr 17 00:09:00 2012 UTC (12 years, 7 months ago) by yamt
Branches: yamt-pagecache
Diff to: previous 1.103.2.3: preferred, colored; branchpoint 1.103: preferred, colored
Changes since revision 1.103.2.3: +10 -57 lines
sync with head

Revision 1.93.4.2.4.12: download - view: text, markup, annotated - select for diffs
Sat Apr 14 00:49:35 2012 UTC (12 years, 7 months ago) by matt
Branches: matt-nb5-mips64
Diff to: previous 1.93.4.2.4.11: preferred, colored; branchpoint 1.93.4.2: preferred, colored
Changes since revision 1.93.4.2.4.11: +29 -24 lines
If the pagedaemon is stalling, don't wake it.  Unless pages were freed for
a group, don't wake things up if paging is 0 (stop spurious wakeups).

Revision 1.93.4.2.4.11: download - view: text, markup, annotated - select for diffs
Fri Apr 13 00:34:54 2012 UTC (12 years, 7 months ago) by matt
Branches: matt-nb5-mips64
Diff to: previous 1.93.4.2.4.10: preferred, colored; branchpoint 1.93.4.2: preferred, colored
Changes since revision 1.93.4.2.4.10: +4 -2 lines
Make sure color passed to uvm_reclaimable is valid.

Revision 1.93.4.2.4.10: download - view: text, markup, annotated - select for diffs
Thu Apr 12 19:41:57 2012 UTC (12 years, 7 months ago) by matt
Branches: matt-nb5-mips64
Diff to: previous 1.93.4.2.4.9: preferred, colored; branchpoint 1.93.4.2: preferred, colored
Changes since revision 1.93.4.2.4.9: +23 -12 lines
If after the pagedaemon is woken and it processes the queues and make no
progress (frees no pages), instead of immediately trying again, wait 2 seconds.

Revision 1.93.4.2.4.9: download - view: text, markup, annotated - select for diffs
Thu Apr 12 01:40:27 2012 UTC (12 years, 7 months ago) by matt
Branches: matt-nb5-mips64
Diff to: previous 1.93.4.2.4.8: preferred, colored; branchpoint 1.93.4.2: preferred, colored
Changes since revision 1.93.4.2.4.8: +56 -13 lines
Separate object-less anon pages out of the active list if there is no swap
device.  Make uvm_reclaimable and uvm.*estimatable understand colors and
kmem allocations.

Revision 1.93.4.2.4.8: download - view: text, markup, annotated - select for diffs
Wed Feb 29 18:03:40 2012 UTC (12 years, 9 months ago) by matt
Branches: matt-nb5-mips64
Diff to: previous 1.93.4.2.4.7: preferred, colored; branchpoint 1.93.4.2: preferred, colored
Changes since revision 1.93.4.2.4.7: +9 -5 lines
Improve UVM_PAGE_TRKOWN.
Add more asserts to uvm_page.

Revision 1.103.6.1: download - view: text, markup, annotated - select for diffs
Sat Feb 18 07:36:01 2012 UTC (12 years, 9 months ago) by mrg
Branches: jmcneill-usbmp
Diff to: previous 1.103: preferred, colored; next MAIN 1.104: preferred, colored
Changes since revision 1.103: +10 -57 lines
merge to -current.

Revision 1.93.4.2.4.7: download - view: text, markup, annotated - select for diffs
Fri Feb 17 23:36:04 2012 UTC (12 years, 9 months ago) by matt
Branches: matt-nb5-mips64
Diff to: previous 1.93.4.2.4.6: preferred, colored; branchpoint 1.93.4.2: preferred, colored
Changes since revision 1.93.4.2.4.6: +11 -5 lines
Change way waiters are handled.

Revision 1.93.4.2.4.6: download - view: text, markup, annotated - select for diffs
Thu Feb 16 04:20:45 2012 UTC (12 years, 9 months ago) by matt
Branches: matt-nb5-mips64
Diff to: previous 1.93.4.2.4.5: preferred, colored; branchpoint 1.93.4.2: preferred, colored
Changes since revision 1.93.4.2.4.5: +30 -12 lines
Track the victims selected by the pagedaemon and what happens to then.
Keep a hint for what page group has the most free pages for a given color.

Revision 1.93.4.2.4.5: download - view: text, markup, annotated - select for diffs
Tue Feb 14 01:12:42 2012 UTC (12 years, 9 months ago) by matt
Branches: matt-nb5-mips64
Diff to: previous 1.93.4.2.4.4: preferred, colored; branchpoint 1.93.4.2: preferred, colored
Changes since revision 1.93.4.2.4.4: +9 -4 lines
Add more KASSERTs (more! more! more!).
When returning page to the free pool, make sure to dequeue the pages before
hand or free page queue corruption will happen.

Revision 1.93.4.2.4.4: download - view: text, markup, annotated - select for diffs
Mon Feb 13 23:07:31 2012 UTC (12 years, 9 months ago) by matt
Branches: matt-nb5-mips64
Diff to: previous 1.93.4.2.4.3: preferred, colored; branchpoint 1.93.4.2: preferred, colored
Changes since revision 1.93.4.2.4.3: +60 -20 lines
Use separate pending and paging tailq entries.
Add a queue check routine to validate the queues aren't corrupt.

Revision 1.93.4.2.4.3: download - view: text, markup, annotated - select for diffs
Thu Feb 9 03:05:01 2012 UTC (12 years, 9 months ago) by matt
Branches: matt-nb5-mips64
Diff to: previous 1.93.4.2.4.2: preferred, colored; branchpoint 1.93.4.2: preferred, colored
Changes since revision 1.93.4.2.4.2: +279 -155 lines
Major changes to uvm.
Support multiple collections (groups) of free pages and run the page
reclaimation algorithm on each group independently.

Revision 1.105: download - view: text, markup, annotated - select for diffs
Wed Feb 1 23:43:49 2012 UTC (12 years, 10 months ago) by para
Branches: MAIN
CVS tags: yamt-pagecache-base5, 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-5-RELEASE, netbsd-6-1-4-RELEASE, netbsd-6-1-3-RELEASE, netbsd-6-1-2-RELEASE, netbsd-6-1-1-RELEASE, netbsd-6-1, netbsd-6-0-RELEASE, netbsd-6-0-RC2, netbsd-6-0-RC1, netbsd-6-0-6-RELEASE, netbsd-6-0-5-RELEASE, netbsd-6-0-4-RELEASE, netbsd-6-0-3-RELEASE, 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, jmcneill-usbmp-base10
Diff to: previous 1.104: preferred, colored
Changes since revision 1.104: +10 -6 lines
allocate uareas and buffers from kernel_map again
add code to drain pools if kmem_arena runs out of space

Revision 1.104: download - view: text, markup, annotated - select for diffs
Fri Jan 27 19:48:42 2012 UTC (12 years, 10 months ago) by para
Branches: MAIN
Diff to: previous 1.103: preferred, colored
Changes since revision 1.103: +3 -54 lines
extending vmem(9) to be able to allocated resources for it's own needs.
simplifying uvm_map handling (no special kernel entries anymore no relocking)
make malloc(9) a thin wrapper around kmem(9)
(with private interface for interrupt safety reasons)

releng@ acknowledged

Revision 1.103.2.3: download - view: text, markup, annotated - select for diffs
Mon Dec 26 16:03:11 2011 UTC (12 years, 11 months ago) by yamt
Branches: yamt-pagecache
Diff to: previous 1.103.2.2: preferred, colored; branchpoint 1.103: preferred, colored
Changes since revision 1.103.2.2: +3 -17 lines
- use O->A loan to serve read(2).  based on a patch from Chuck Silvers
- associated O->A loan fixes.

Revision 1.103.2.2: download - view: text, markup, annotated - select for diffs
Fri Nov 18 00:57:34 2011 UTC (13 years ago) by yamt
Branches: yamt-pagecache
Diff to: previous 1.103.2.1: preferred, colored; branchpoint 1.103: preferred, colored
Changes since revision 1.103.2.1: +7 -18 lines
- use mutex obj for pageable object
- add a function to wait for a mutex obj being available
- replace some "livelock" kpauses with it

Revision 1.103.2.1: download - view: text, markup, annotated - select for diffs
Wed Nov 2 21:54:01 2011 UTC (13 years, 1 month ago) by yamt
Branches: yamt-pagecache
Diff to: previous 1.103: preferred, colored
Changes since revision 1.103: +9 -11 lines
page cache related changes

- maintain object pages in radix tree rather than rb tree.
- reduce unnecessary page scan in putpages.  esp. when an object has a ton of
  pages cached but only a few of them are dirty.
- reduce the number of pmap operations by tracking page dirtiness more
  precisely in uvm layer.
- fix nfs commit range tracking.
- fix nfs write clustering.  XXX hack

Revision 1.102.2.1: download - view: text, markup, annotated - select for diffs
Thu Jun 23 14:20:37 2011 UTC (13 years, 5 months ago) by cherry
Branches: cherry-xenmp
Diff to: previous 1.102: preferred, colored; next MAIN 1.103: preferred, colored
Changes since revision 1.102: +6 -6 lines
Catchup with rmind-uvmplock merge.

Revision 1.103: download - view: text, markup, annotated - select for diffs
Sun Jun 12 03:36:03 2011 UTC (13 years, 5 months ago) by rmind
Branches: 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
Diff to: previous 1.102: preferred, colored
Changes since revision 1.102: +6 -6 lines
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.101.2.1: download - view: text, markup, annotated - select for diffs
Mon Jun 6 09:10:23 2011 UTC (13 years, 6 months ago) by jruoho
Branches: jruoho-x86intr
Diff to: previous 1.101: preferred, colored; next MAIN 1.102: preferred, colored
Changes since revision 1.101: +3 -8 lines
Sync with HEAD.

Revision 1.93.4.2.4.2: download - view: text, markup, annotated - select for diffs
Fri Jun 3 07:59:58 2011 UTC (13 years, 6 months ago) by matt
Branches: matt-nb5-mips64
Diff to: previous 1.93.4.2.4.1: preferred, colored; branchpoint 1.93.4.2: preferred, colored
Changes since revision 1.93.4.2.4.1: +2 -2 lines
Restore $NetBSD$

Revision 1.93.4.2.4.1: download - view: text, markup, annotated - select for diffs
Fri Jun 3 02:43:42 2011 UTC (13 years, 6 months ago) by matt
Branches: matt-nb5-mips64
Diff to: previous 1.93.4.2: preferred, colored
Changes since revision 1.93.4.2: +21 -5 lines
Rework page free lists to be sorted by color first rather than free_list.
Kept per color PGFL_* counter in each page free list.
Minor cleanups.

Revision 1.100.4.4: download - view: text, markup, annotated - select for diffs
Sat Mar 5 20:56:37 2011 UTC (13 years, 9 months ago) by rmind
Branches: rmind-uvmplock
Diff to: previous 1.100.4.3: preferred, colored; branchpoint 1.100: preferred, colored; next MAIN 1.101: preferred, colored
Changes since revision 1.100.4.3: +3 -8 lines
sync with head

Revision 1.101.4.1: download - view: text, markup, annotated - select for diffs
Tue Feb 8 16:20:07 2011 UTC (13 years, 9 months ago) by bouyer
Branches: bouyer-quota2
Diff to: previous 1.101: preferred, colored; next MAIN 1.102: preferred, colored
Changes since revision 1.101: +3 -8 lines
Sync with HEAD

Revision 1.102: download - view: text, markup, annotated - select for diffs
Wed Feb 2 15:25:27 2011 UTC (13 years, 10 months ago) by chuck
Branches: MAIN
CVS tags: uebayasi-xip-base7, rmind-uvmplock-nbase, rmind-uvmplock-base, cherry-xenmp-base, bouyer-quota2-nbase, bouyer-quota2-base
Branch point for: cherry-xenmp
Diff to: previous 1.101: preferred, colored
Changes since revision 1.101: +3 -8 lines
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.100.2.1: download - view: text, markup, annotated - select for diffs
Tue Aug 17 06:48:16 2010 UTC (14 years, 3 months ago) by uebayasi
Branches: uebayasi-xip
Diff to: previous 1.100: preferred, colored; next MAIN 1.101: preferred, colored
Changes since revision 1.100: +3 -3 lines
Sync with HEAD.

Revision 1.92.4.4: download - view: text, markup, annotated - select for diffs
Wed Aug 11 22:55:17 2010 UTC (14 years, 3 months ago) by yamt
Branches: yamt-nfs-mp
Diff to: previous 1.92.4.3: preferred, colored; branchpoint 1.92: preferred, colored; next MAIN 1.93: preferred, colored
Changes since revision 1.92.4.3: +3 -3 lines
sync with head.

Revision 1.100.4.3: download - view: text, markup, annotated - select for diffs
Sat Jul 3 01:20:06 2010 UTC (14 years, 5 months ago) by rmind
Branches: rmind-uvmplock
Diff to: previous 1.100.4.2: preferred, colored; branchpoint 1.100: preferred, colored
Changes since revision 1.100.4.2: +3 -3 lines
sync with head

Revision 1.101: download - view: text, markup, annotated - select for diffs
Wed Jun 2 15:48:49 2010 UTC (14 years, 6 months ago) by pooka
Branches: MAIN
CVS tags: yamt-nfs-mp-base11, yamt-nfs-mp-base10, uebayasi-xip-base6, uebayasi-xip-base5, uebayasi-xip-base4, uebayasi-xip-base3, uebayasi-xip-base2, matt-mips64-premerge-20101231, jruoho-x86intr-base
Branch point for: jruoho-x86intr, bouyer-quota2
Diff to: previous 1.100: preferred, colored
Changes since revision 1.100: +3 -3 lines
it's a wonderful static

Revision 1.100.4.2: download - view: text, markup, annotated - select for diffs
Wed Mar 17 06:03:19 2010 UTC (14 years, 8 months ago) by rmind
Branches: rmind-uvmplock
Diff to: previous 1.100.4.1: preferred, colored; branchpoint 1.100: preferred, colored
Changes since revision 1.100.4.1: +4 -4 lines
Reorganise UVM locking to protect P->V state and serialise pmap(9)
operations on the same page(s) by always locking their owner.  Hence
lock order: "vmpage"-lock -> pmap-lock.

Patch, proposed on tech-kern@, from Andrew Doran.

Revision 1.100.4.1: download - view: text, markup, annotated - select for diffs
Tue Mar 16 15:38:18 2010 UTC (14 years, 8 months ago) by rmind
Branches: rmind-uvmplock
Diff to: previous 1.100: preferred, colored
Changes since revision 1.100: +4 -4 lines
Change struct uvm_object::vmobjlock to be dynamically allocated with
mutex_obj_alloc().  It allows us to share the locks among UVM objects.

Revision 1.92.4.3: download - view: text, markup, annotated - select for diffs
Thu Mar 11 15:04:47 2010 UTC (14 years, 8 months ago) by yamt
Branches: yamt-nfs-mp
Diff to: previous 1.92.4.2: preferred, colored; branchpoint 1.92: preferred, colored
Changes since revision 1.92.4.2: +2 -17 lines
sync with head

Revision 1.100: download - view: text, markup, annotated - select for diffs
Wed Oct 21 21:12:07 2009 UTC (15 years, 1 month ago) by rmind
Branches: MAIN
CVS tags: yamt-nfs-mp-base9, uebayasi-xip-base1, uebayasi-xip-base, matt-premerge-20091211, jym-xensuspend-nbase
Branch point for: uebayasi-xip, rmind-uvmplock
Diff to: previous 1.99: preferred, colored
Changes since revision 1.99: +2 -17 lines
Remove uarea swap-out functionality:

- Addresses the issue described in PR/38828.
- Some simplification in threading and sleepq subsystems.
- Eliminates pmap_collect() and, as a side note, allows pmap optimisations.
- Eliminates XS_CTL_DATA_ONSTACK in scsipi code.
- Avoids few scans on LWP list and thus potentially long holds of proc_lock.
- Cuts ~1.5k lines of code.  Reduces amd64 kernel size by ~4k.
- Removes __SWAP_BROKEN cases.

Tested on x86, mips, acorn32 (thanks <mpumford>) and partly tested on
acorn26 (thanks to <bjh21>).

Discussed on <tech-kern>, reviewed by <ad>.

Revision 1.92.4.2: download - view: text, markup, annotated - select for diffs
Wed Aug 19 18:48:36 2009 UTC (15 years, 3 months ago) by yamt
Branches: yamt-nfs-mp
Diff to: previous 1.92.4.1: preferred, colored; branchpoint 1.92: preferred, colored
Changes since revision 1.92.4.1: +55 -2 lines
sync with head.

Revision 1.99: download - view: text, markup, annotated - select for diffs
Tue Aug 18 02:43:49 2009 UTC (15 years, 3 months ago) by yamt
Branches: MAIN
CVS tags: yamt-nfs-mp-base8, yamt-nfs-mp-base7
Diff to: previous 1.98: preferred, colored
Changes since revision 1.98: +2 -5 lines
whitespace fixes.  no functional changes.

Revision 1.98: download - view: text, markup, annotated - select for diffs
Mon Aug 10 23:17:29 2009 UTC (15 years, 3 months ago) by haad
Branches: MAIN
Diff to: previous 1.97: preferred, colored
Changes since revision 1.97: +58 -2 lines
Add uvm_reclaim_hooks support for reclaiming kernel KVA space and memory.
This is used only by zfs where uvm_reclaim hook is added from arc cache.

Oked ad@.

Revision 1.92.4.1: download - view: text, markup, annotated - select for diffs
Mon May 4 08:14:39 2009 UTC (15 years, 7 months ago) by yamt
Branches: yamt-nfs-mp
Diff to: previous 1.92: preferred, colored
Changes since revision 1.92: +72 -64 lines
sync with head.

Revision 1.93.4.2: download - view: text, markup, annotated - select for diffs
Mon Feb 2 19:24:04 2009 UTC (15 years, 10 months ago) by snj
Branches: netbsd-5
CVS tags: netbsd-5-2-RELEASE, netbsd-5-2-RC1, netbsd-5-2-3-RELEASE, netbsd-5-2-2-RELEASE, netbsd-5-2-1-RELEASE, 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-5-RELEASE, netbsd-5-1-4-RELEASE, netbsd-5-1-3-RELEASE, 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-2-RELEASE, netbsd-5-0-1-RELEASE, netbsd-5-0, matt-nb5-pq3-base, matt-nb5-pq3, matt-nb5-mips64-u2-k2-k4-k7-k8-k9, matt-nb5-mips64-u1-k1-k5, matt-nb5-mips64-premerge-20101231, matt-nb5-mips64-premerge-20091211, matt-nb5-mips64-k15, matt-nb4-mips64-k7-u2a-k9b
Branch point for: matt-nb5-mips64
Diff to: previous 1.93.4.1: preferred, colored; branchpoint 1.93: preferred, colored; next MAIN 1.94: preferred, colored
Changes since revision 1.93.4.1: +19 -16 lines
Apply patch (requested by ad in ticket #357):
Make adjustment of some critical variables atomic.

Revision 1.93.2.1: download - view: text, markup, annotated - select for diffs
Mon Jan 19 13:20:36 2009 UTC (15 years, 10 months ago) by skrll
Branches: nick-hppapmap
Diff to: previous 1.93: preferred, colored; next MAIN 1.94: preferred, colored
Changes since revision 1.93: +38 -36 lines
Sync with HEAD.

Revision 1.91.6.3: download - view: text, markup, annotated - select for diffs
Sat Jan 17 13:29:43 2009 UTC (15 years, 10 months ago) by mjf
Branches: mjf-devfs2
Diff to: previous 1.91.6.2: preferred, colored; branchpoint 1.91: preferred, colored; next MAIN 1.92: preferred, colored
Changes since revision 1.91.6.2: +36 -34 lines
Sync with HEAD.

Revision 1.93.4.1: download - view: text, markup, annotated - select for diffs
Sat Dec 27 18:24:49 2008 UTC (15 years, 11 months ago) by snj
Branches: netbsd-5
CVS tags: netbsd-5-0-RC1
Diff to: previous 1.93: preferred, colored
Changes since revision 1.93: +12 -22 lines
Pull up following revision(s) (requested by bouyer in ticket #211):
	sys/uvm/uvm_pdaemon.c: revision 1.97
PR 40027/pagedaemon loops on memory shortage
uvmpd_scan_queue:
- Fix a bug that prevented the pagedaemon from making forward progress
  if (a) swap was full (b) the first 16 pages on the inactive list were
  unbusy anons not already backed by swap.
- Remove redundant uvm_swapisfull() check and just try to allocate a slot.
  If it fails we know swap is full.

Revision 1.97: download - view: text, markup, annotated - select for diffs
Sat Dec 13 11:26:57 2008 UTC (15 years, 11 months ago) by ad
Branches: 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
Diff to: previous 1.96: preferred, colored
Changes since revision 1.96: +12 -22 lines
PR 40027/pagedaemon loops on memory shortage

uvmpd_scan_queue:

- Fix a bug that prevented the pagedaemon from making forward progress
  if (a) swap was full (b) the first 16 pages on the inactive list were
  unbusy anons not already backed by swap.

- Remove redundant uvm_swapisfull() check and just try to allocate a slot.
  If it fails we know swap is full.

Revision 1.92.10.2: download - view: text, markup, annotated - select for diffs
Sat Dec 13 01:15:43 2008 UTC (15 years, 11 months ago) by haad
Branches: haad-dm
Diff to: previous 1.92.10.1: preferred, colored; branchpoint 1.92: preferred, colored; next MAIN 1.93: preferred, colored
Changes since revision 1.92.10.1: +28 -16 lines
Update haad-dm branch to haad-dm-base2.

Revision 1.96: download - view: text, markup, annotated - select for diffs
Wed Dec 3 11:43:51 2008 UTC (16 years ago) by ad
Branches: MAIN
CVS tags: haad-nbase2, haad-dm-base2, haad-dm-base, ad-audiomp2-base, ad-audiomp2
Diff to: previous 1.95: preferred, colored
Changes since revision 1.95: +6 -7 lines
Make adjustment of uvm_extrapages atomic since it's done without a lock.
XXX This is still a hack.

Revision 1.95: download - view: text, markup, annotated - select for diffs
Tue Dec 2 10:46:43 2008 UTC (16 years ago) by ad
Branches: MAIN
Diff to: previous 1.94: preferred, colored
Changes since revision 1.94: +17 -13 lines
uvmpd_tune: make the adjustments to individual variables atomic.

Revision 1.94: download - view: text, markup, annotated - select for diffs
Fri Nov 14 23:06:45 2008 UTC (16 years ago) by ad
Branches: MAIN
Diff to: previous 1.93: preferred, colored
Changes since revision 1.93: +11 -2 lines
- If the system encounters a severe memory shortage, start unloading
  unused kernel modules.
- Try to unload any autoloaded kernel modules 10 seconds after their
  load was successful.
- Keep a counter to track module load/unload events.

Revision 1.92.10.1: download - view: text, markup, annotated - select for diffs
Sun Oct 19 22:18:11 2008 UTC (16 years, 1 month ago) by haad
Branches: haad-dm
Diff to: previous 1.92: preferred, colored
Changes since revision 1.92: +40 -34 lines
Sync with HEAD.

Revision 1.92.6.1: download - view: text, markup, annotated - select for diffs
Fri Oct 10 22:37:10 2008 UTC (16 years, 1 month ago) by skrll
Branches: wrstuden-revivesa
Diff to: previous 1.92: preferred, colored; next MAIN 1.93: preferred, colored
Changes since revision 1.92: +40 -34 lines
Sync with HEAD.

Revision 1.91.6.2: download - view: text, markup, annotated - select for diffs
Sun Sep 28 10:41:07 2008 UTC (16 years, 2 months ago) by mjf
Branches: mjf-devfs2
Diff to: previous 1.91.6.1: preferred, colored; branchpoint 1.91: preferred, colored
Changes since revision 1.91.6.1: +38 -32 lines
Sync with HEAD.

Revision 1.93: download - view: text, markup, annotated - select for diffs
Tue Sep 23 08:55:52 2008 UTC (16 years, 2 months ago) by ad
Branches: MAIN
CVS tags: wrstuden-revivesa-base-4, netbsd-5-base, matt-mips64-base2, haad-dm-base1
Branch point for: nick-hppapmap, netbsd-5
Diff to: previous 1.92: preferred, colored
Changes since revision 1.92: +40 -34 lines
- Make free target 0.5%, but limit to between 128k and 1024k.
- Scale free target by number of CPUs.
- Prefer pageing to swapping.

Proposed on tech-kern.

Revision 1.91.6.1: download - view: text, markup, annotated - select for diffs
Thu Apr 3 12:43:15 2008 UTC (16 years, 8 months ago) by mjf
Branches: mjf-devfs2
Diff to: previous 1.91: preferred, colored
Changes since revision 1.91: +1 -1 lines
Sync with HEAD.

Revision 1.91.2.1: download - view: text, markup, annotated - select for diffs
Mon Mar 24 07:16:33 2008 UTC (16 years, 8 months ago) by keiichi
Branches: keiichi-mipv6
Diff to: previous 1.91: preferred, colored; next MAIN 1.92: preferred, colored
Changes since revision 1.91: +3 -3 lines
sync with head.

Revision 1.87.6.3: download - view: text, markup, annotated - select for diffs
Sun Mar 23 02:05:13 2008 UTC (16 years, 8 months ago) by matt
Branches: matt-armv6
Diff to: previous 1.87.6.2: preferred, colored; branchpoint 1.87: preferred, colored; next MAIN 1.88: preferred, colored
Changes since revision 1.87.6.2: +8 -11 lines
sync with HEAD

Revision 1.65.2.9: download - view: text, markup, annotated - select for diffs
Mon Mar 17 09:15:52 2008 UTC (16 years, 8 months ago) by yamt
Branches: yamt-lazymbuf
Diff to: previous 1.65.2.8: preferred, colored; next MAIN 1.66: preferred, colored
Changes since revision 1.65.2.8: +3 -3 lines
sync with head.

Revision 1.92: download - view: text, markup, annotated - select for diffs
Fri Feb 29 20:35:23 2008 UTC (16 years, 9 months ago) by yamt
Branches: MAIN
CVS tags: yamt-pf42-baseX, yamt-pf42-base4, yamt-pf42-base3, yamt-pf42-base2, yamt-pf42-base, yamt-pf42, yamt-nfs-mp-base2, yamt-nfs-mp-base, yamt-lazymbuf-base15, yamt-lazymbuf-base14, wrstuden-revivesa-base-3, wrstuden-revivesa-base-2, wrstuden-revivesa-base-1, wrstuden-revivesa-base, simonb-wapbl-nbase, simonb-wapbl-base, simonb-wapbl, matt-armv6-nbase, keiichi-mipv6-nbase, keiichi-mipv6-base, hpcarm-cleanup-nbase, ad-socklock-base1
Branch point for: yamt-nfs-mp, wrstuden-revivesa, haad-dm
Diff to: previous 1.91: preferred, colored
Changes since revision 1.91: +3 -3 lines
uvm_swap_io: if pagedaemon, don't wait for iobuf.

Revision 1.87.12.2: download - view: text, markup, annotated - select for diffs
Mon Feb 18 21:07:33 2008 UTC (16 years, 9 months ago) by mjf
Branches: mjf-devfs
Diff to: previous 1.87.12.1: preferred, colored; branchpoint 1.87: preferred, colored; next MAIN 1.88: preferred, colored
Changes since revision 1.87.12.1: +133 -70 lines
Sync with HEAD.

Revision 1.65.2.8: download - view: text, markup, annotated - select for diffs
Mon Feb 11 15:00:10 2008 UTC (16 years, 9 months ago) by yamt
Branches: yamt-lazymbuf
Diff to: previous 1.65.2.7: preferred, colored
Changes since revision 1.65.2.7: +8 -6 lines
sync with head.

Revision 1.91: download - view: text, markup, annotated - select for diffs
Thu Feb 7 12:24:16 2008 UTC (16 years, 10 months ago) by yamt
Branches: MAIN
CVS tags: nick-net80211-sync-base, nick-net80211-sync, mjf-devfs-base, hpcarm-cleanup-base
Branch point for: mjf-devfs2, keiichi-mipv6
Diff to: previous 1.90: preferred, colored
Changes since revision 1.90: +8 -6 lines
swapcluster_flush: handle nused==0, which can happen if swapcluster_add failed.
PR/37669 from Andrew Doran.

Revision 1.65.2.7: download - view: text, markup, annotated - select for diffs
Mon Feb 4 09:25:10 2008 UTC (16 years, 10 months ago) by yamt
Branches: yamt-lazymbuf
Diff to: previous 1.65.2.6: preferred, colored
Changes since revision 1.65.2.6: +2 -7 lines
sync with head.

Revision 1.90: download - view: text, markup, annotated - select for diffs
Mon Jan 28 12:22:47 2008 UTC (16 years, 10 months ago) by yamt
Branches: MAIN
Diff to: previous 1.89: preferred, colored
Changes since revision 1.89: +2 -7 lines
remove a special allocator for uareas, which is no longer necessary.
use pool_cache instead.

Revision 1.65.2.6: download - view: text, markup, annotated - select for diffs
Mon Jan 21 09:48:24 2008 UTC (16 years, 10 months ago) by yamt
Branches: yamt-lazymbuf
Diff to: previous 1.65.2.5: preferred, colored
Changes since revision 1.65.2.5: +128 -62 lines
sync with head

Revision 1.87.6.2: download - view: text, markup, annotated - select for diffs
Wed Jan 9 01:58:43 2008 UTC (16 years, 11 months ago) by matt
Branches: matt-armv6
Diff to: previous 1.87.6.1: preferred, colored; branchpoint 1.87: preferred, colored
Changes since revision 1.87.6.1: +128 -62 lines
sync with HEAD

Revision 1.88.6.1: download - view: text, markup, annotated - select for diffs
Wed Jan 2 21:58:43 2008 UTC (16 years, 11 months ago) by bouyer
Branches: bouyer-xeni386
CVS tags: bouyer-xeni386-merge1
Diff to: previous 1.88: preferred, colored; next MAIN 1.89: preferred, colored
Changes since revision 1.88: +128 -62 lines
Sync with HEAD

Revision 1.89: download - view: text, markup, annotated - select for diffs
Wed Jan 2 11:49:19 2008 UTC (16 years, 11 months ago) by ad
Branches: MAIN
CVS tags: matt-armv6-base, bouyer-xeni386-nbase, bouyer-xeni386-base
Diff to: previous 1.88: preferred, colored
Changes since revision 1.88: +128 -62 lines
Merge vmlocking2 to head.

Revision 1.88.2.2: download - view: text, markup, annotated - select for diffs
Tue Dec 4 19:59:42 2007 UTC (17 years ago) by ad
Branches: vmlocking2
Diff to: previous 1.88.2.1: preferred, colored; branchpoint 1.88: preferred, colored; next MAIN 1.89: preferred, colored
Changes since revision 1.88.2.1: +3 -3 lines
Fix merge botch.

Revision 1.88.2.1: download - view: text, markup, annotated - select for diffs
Tue Dec 4 13:04:03 2007 UTC (17 years ago) by ad
Branches: vmlocking2
Diff to: previous 1.88: preferred, colored
Changes since revision 1.88: +127 -61 lines
Pull the vmlocking changes into a new branch.

Revision 1.87.12.1: download - view: text, markup, annotated - select for diffs
Mon Nov 19 00:49:39 2007 UTC (17 years ago) by mjf
Branches: mjf-devfs
Diff to: previous 1.87: preferred, colored
Changes since revision 1.87: +15 -6 lines
Sync with HEAD.

Revision 1.65.2.5: download - view: text, markup, annotated - select for diffs
Thu Nov 15 11:45:38 2007 UTC (17 years ago) by yamt
Branches: yamt-lazymbuf
Diff to: previous 1.65.2.4: preferred, colored
Changes since revision 1.65.2.4: +15 -6 lines
sync with head.

Revision 1.87.10.1: download - view: text, markup, annotated - select for diffs
Tue Nov 13 16:03:34 2007 UTC (17 years ago) by bouyer
Branches: bouyer-xenamd64
Diff to: previous 1.87: preferred, colored; next MAIN 1.88: preferred, colored
Changes since revision 1.87: +15 -6 lines
Sync with HEAD

Revision 1.87.4.1: download - view: text, markup, annotated - select for diffs
Sun Nov 11 16:48:57 2007 UTC (17 years ago) by joerg
Branches: jmcneill-pm
Diff to: previous 1.87: preferred, colored; next MAIN 1.88: preferred, colored
Changes since revision 1.87: +15 -6 lines
Sync with HEAD.

Revision 1.87.6.1: download - view: text, markup, annotated - select for diffs
Thu Nov 8 11:00:24 2007 UTC (17 years, 1 month ago) by matt
Branches: matt-armv6
CVS tags: matt-armv6-prevmlocking
Diff to: previous 1.87: preferred, colored
Changes since revision 1.87: +15 -6 lines
sync with -HEAD

Revision 1.88: download - view: text, markup, annotated - select for diffs
Wed Nov 7 00:23:46 2007 UTC (17 years, 1 month ago) by ad
Branches: MAIN
CVS tags: yamt-kmem-base3, yamt-kmem-base2, yamt-kmem-base, yamt-kmem, vmlocking2-base3, vmlocking2-base2, vmlocking2-base1, vmlocking-nbase, reinoud-bufcleanup-nbase, reinoud-bufcleanup-base, jmcneill-pm-base, cube-autoconf-base, cube-autoconf, bouyer-xenamd64-base2, bouyer-xenamd64-base
Branch point for: vmlocking2, bouyer-xeni386
Diff to: previous 1.87: preferred, colored
Changes since revision 1.87: +15 -6 lines
Merge from vmlocking:

- pool_cache changes.
- Debugger/procfs locking fixes.
- Other minor changes.

Revision 1.84.4.11: download - view: text, markup, annotated - select for diffs
Thu Nov 1 23:06:01 2007 UTC (17 years, 1 month ago) by ad
Branches: vmlocking
Diff to: previous 1.84.4.10: preferred, colored; branchpoint 1.84: preferred, colored; next MAIN 1.85: preferred, colored
Changes since revision 1.84.4.10: +4 -3 lines
Yielding to avoid livelock doesn't work well, so just sleep for 1 tick.
This too is inadequate and a better solution must be found. Discussed
with yamt@.

Revision 1.84.4.10: download - view: text, markup, annotated - select for diffs
Sat Oct 27 07:07:40 2007 UTC (17 years, 1 month ago) by yamt
Branches: vmlocking
Diff to: previous 1.84.4.9: preferred, colored; branchpoint 1.84: preferred, colored
Changes since revision 1.84.4.9: +19 -3 lines
uvmpd_scan_queue: avoid too long busy-loops.

Revision 1.84.4.9: download - view: text, markup, annotated - select for diffs
Fri Oct 26 17:03:11 2007 UTC (17 years, 1 month ago) by ad
Branches: vmlocking
Diff to: previous 1.84.4.8: preferred, colored; branchpoint 1.84: preferred, colored
Changes since revision 1.84.4.8: +17 -9 lines
- Use a cross call to drain the per-CPU component of pool caches.
- When draining, skip over pools that are completly inactive.

Revision 1.65.2.4: download - view: text, markup, annotated - select for diffs
Mon Sep 3 14:47:11 2007 UTC (17 years, 3 months ago) by yamt
Branches: yamt-lazymbuf
Diff to: previous 1.65.2.3: preferred, colored
Changes since revision 1.65.2.3: +19 -18 lines
sync with head.

Revision 1.84.4.8: download - view: text, markup, annotated - select for diffs
Mon Aug 27 13:53:24 2007 UTC (17 years, 3 months ago) by yamt
Branches: vmlocking
Diff to: previous 1.84.4.7: preferred, colored; branchpoint 1.84: preferred, colored
Changes since revision 1.84.4.7: +4 -2 lines
fix an uninitialized variable.

Revision 1.84.4.7: download - view: text, markup, annotated - select for diffs
Fri Aug 24 23:28:49 2007 UTC (17 years, 3 months ago) by ad
Branches: vmlocking
Diff to: previous 1.84.4.6: preferred, colored; branchpoint 1.84: preferred, colored
Changes since revision 1.84.4.6: +4 -2 lines
Sync with buffer cache locking changes. See buf.h/vfs_bio.c for details.
Some minor portions are incomplete and needs to be verified as a whole.

Revision 1.84.4.6: download - view: text, markup, annotated - select for diffs
Wed Aug 22 09:36:28 2007 UTC (17 years, 3 months ago) by yamt
Branches: vmlocking
Diff to: previous 1.84.4.5: preferred, colored; branchpoint 1.84: preferred, colored
Changes since revision 1.84.4.5: +3 -3 lines
update a comment.

Revision 1.84.4.5: download - view: text, markup, annotated - select for diffs
Tue Aug 21 22:32:26 2007 UTC (17 years, 3 months ago) by yamt
Branches: vmlocking
Diff to: previous 1.84.4.4: preferred, colored; branchpoint 1.84: preferred, colored
Changes since revision 1.84.4.4: +73 -28 lines
fix some races around pagedaemon and uvm_wait.  ok'ed by Andrew Doran.

Revision 1.84.4.4: download - view: text, markup, annotated - select for diffs
Mon Aug 20 21:28:33 2007 UTC (17 years, 3 months ago) by ad
Branches: vmlocking
Diff to: previous 1.84.4.3: preferred, colored; branchpoint 1.84: preferred, colored
Changes since revision 1.84.4.3: +4 -4 lines
Sync with HEAD.

Revision 1.86.2.1: download - view: text, markup, annotated - select for diffs
Wed Aug 15 13:51:23 2007 UTC (17 years, 3 months ago) by skrll
Branches: nick-csl-alignment
Diff to: previous 1.86: preferred, colored; next MAIN 1.87: preferred, colored
Changes since revision 1.86: +15 -15 lines
Sync with HEAD.

Revision 1.87.14.2: download - view: text, markup, annotated - select for diffs
Sat Jul 21 19:21:56 2007 UTC (17 years, 4 months ago) by ad
Branches: matt-mips64
Diff to: previous 1.87.14.1: preferred, colored; branchpoint 1.87: preferred, colored; next MAIN 1.88: preferred, colored
Changes since revision 1.87.14.1: +961 -0 lines
Merge unobtrusive locking changes from the vmlocking branch.

Revision 1.87.14.1
Sat Jul 21 19:21:55 2007 UTC (17 years, 4 months ago) by ad
Branches: matt-mips64
FILE REMOVED
Changes since revision 1.87: +0 -961 lines
file uvm_pdaemon.c was added on branch matt-mips64 on 2007-07-21 19:21:56 +0000

Revision 1.87: download - view: text, markup, annotated - select for diffs
Sat Jul 21 19:21:55 2007 UTC (17 years, 4 months ago) by ad
Branches: MAIN
CVS tags: yamt-x86pmap-base4, yamt-x86pmap-base3, yamt-x86pmap-base2, yamt-x86pmap-base, yamt-x86pmap, vmlocking-base, nick-csl-alignment-base5, matt-mips64-base, jmcneill-base, hpcarm-cleanup
Branch point for: mjf-devfs, matt-mips64, matt-armv6, jmcneill-pm, bouyer-xenamd64
Diff to: previous 1.86: preferred, colored
Changes since revision 1.86: +15 -15 lines
Merge unobtrusive locking changes from the vmlocking branch.

Revision 1.84.4.3: download - view: text, markup, annotated - select for diffs
Sun Jul 15 15:53:08 2007 UTC (17 years, 4 months ago) by ad
Branches: vmlocking
Diff to: previous 1.84.4.2: preferred, colored; branchpoint 1.84: preferred, colored
Changes since revision 1.84.4.2: +4 -3 lines
Sync with head.

Revision 1.84.6.1: download - view: text, markup, annotated - select for diffs
Wed Jul 11 20:12:57 2007 UTC (17 years, 4 months ago) by mjf
Branches: mjf-ufs-trans
Diff to: previous 1.84: preferred, colored; next MAIN 1.85: preferred, colored
Changes since revision 1.84: +6 -5 lines
Sync with head.

Revision 1.86: download - view: text, markup, annotated - select for diffs
Mon Jul 9 21:11:37 2007 UTC (17 years, 5 months ago) by ad
Branches: MAIN
CVS tags: nick-csl-alignment-base, mjf-ufs-trans-base
Branch point for: nick-csl-alignment
Diff to: previous 1.85: preferred, colored
Changes since revision 1.85: +4 -4 lines
Merge some of the less invasive changes from the vmlocking branch:

- kthread, callout, devsw API changes
- select()/poll() improvements
- miscellaneous MT safety improvements

Revision 1.85: download - view: text, markup, annotated - select for diffs
Fri Jun 15 18:28:39 2007 UTC (17 years, 5 months ago) by ad
Branches: MAIN
Diff to: previous 1.84: preferred, colored
Changes since revision 1.84: +4 -3 lines
Add a sysctl to disable swapout of kernel stacks. Discussed on tech-kern@.

Revision 1.84.4.2: download - view: text, markup, annotated - select for diffs
Mon Apr 9 22:10:09 2007 UTC (17 years, 8 months ago) by ad
Branches: vmlocking
Diff to: previous 1.84.4.1: preferred, colored; branchpoint 1.84: preferred, colored
Changes since revision 1.84.4.1: +4 -4 lines
- Add two new arguments to kthread_create1: pri_t pri, bool mpsafe.
- Fork kthreads off proc0 as new LWPs, not new processes.

Revision 1.84.4.1: download - view: text, markup, annotated - select for diffs
Tue Mar 13 17:51:57 2007 UTC (17 years, 8 months ago) by ad
Branches: vmlocking
Diff to: previous 1.84: preferred, colored
Changes since revision 1.84: +45 -44 lines
Pull in the initial set of changes for the vmlocking branch.

Revision 1.82.2.1: download - view: text, markup, annotated - select for diffs
Tue Feb 27 16:55:28 2007 UTC (17 years, 9 months ago) by yamt
Branches: yamt-idlelwp
Diff to: previous 1.82: preferred, colored; next MAIN 1.83: preferred, colored
Changes since revision 1.82: +25 -25 lines
- sync with head.
- move sched_changepri back to kern_synch.c as it doesn't know PPQ anymore.

Revision 1.65.2.3: download - view: text, markup, annotated - select for diffs
Mon Feb 26 09:12:32 2007 UTC (17 years, 9 months ago) by yamt
Branches: yamt-lazymbuf
Diff to: previous 1.65.2.2: preferred, colored
Changes since revision 1.65.2.2: +25 -25 lines
sync with head.

Revision 1.84: download - view: text, markup, annotated - select for diffs
Thu Feb 22 06:05:01 2007 UTC (17 years, 9 months ago) by thorpej
Branches: MAIN
CVS tags: yamt-idlelwp-base8, thorpej-atomic-base, thorpej-atomic, reinoud-bufcleanup, ad-audiomp-base, ad-audiomp
Branch point for: vmlocking, mjf-ufs-trans
Diff to: previous 1.83: preferred, colored
Changes since revision 1.83: +20 -20 lines
TRUE -> true, FALSE -> false

Revision 1.83: download - view: text, markup, annotated - select for diffs
Wed Feb 21 23:00:14 2007 UTC (17 years, 9 months ago) by thorpej
Branches: MAIN
Diff to: previous 1.82: preferred, colored
Changes since revision 1.82: +8 -8 lines
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.76.14.2: download - view: text, markup, annotated - select for diffs
Fri Jan 12 01:04:25 2007 UTC (17 years, 10 months ago) by ad
Branches: newlock2
Diff to: previous 1.76.14.1: preferred, colored; branchpoint 1.76: preferred, colored; next MAIN 1.77: preferred, colored
Changes since revision 1.76.14.1: +20 -55 lines
Sync with head.

Revision 1.65.2.2: download - view: text, markup, annotated - select for diffs
Sat Dec 30 20:51:05 2006 UTC (17 years, 11 months ago) by yamt
Branches: yamt-lazymbuf
Diff to: previous 1.65.2.1: preferred, colored
Changes since revision 1.65.2.1: +156 -248 lines
sync with head.

Revision 1.82: download - view: text, markup, annotated - select for diffs
Wed Dec 27 17:59:08 2006 UTC (17 years, 11 months ago) by alc
Branches: MAIN
CVS tags: post-newlock2-merge, newlock2-nbase, newlock2-base
Branch point for: yamt-idlelwp
Diff to: previous 1.81: preferred, colored
Changes since revision 1.81: +3 -2 lines
CID-4192: ensure we have 'uobj != NULL` here

ok christos@ and yamt@

Revision 1.81: download - view: text, markup, annotated - select for diffs
Thu Dec 21 15:55:26 2006 UTC (17 years, 11 months ago) by yamt
Branches: MAIN
Diff to: previous 1.80: preferred, colored
Changes since revision 1.80: +19 -55 lines
merge yamt-splraiseipl branch.

	- finish implementing splraiseipl (and makeiplcookie).
	  http://mail-index.NetBSD.org/tech-kern/2006/07/01/0000.html
	- complete workqueue(9) and fix its ipl problem, which is reported
	  to cause audio skipping.
	- fix netbt (at least compilation problems) for some ports.
	- fix PR/33218.

Revision 1.77.2.3: download - view: text, markup, annotated - select for diffs
Sun Dec 10 07:19:34 2006 UTC (17 years, 11 months ago) by yamt
Branches: yamt-splraiseipl
Diff to: previous 1.77.2.2: preferred, colored; branchpoint 1.77: preferred, colored; next MAIN 1.78: preferred, colored
Changes since revision 1.77.2.2: +3 -3 lines
sync with head.

Revision 1.76.14.1: download - view: text, markup, annotated - select for diffs
Sat Nov 18 21:39:50 2006 UTC (18 years ago) by ad
Branches: newlock2
Diff to: previous 1.76: preferred, colored
Changes since revision 1.76: +138 -195 lines
Sync with head.

Revision 1.80: download - view: text, markup, annotated - select for diffs
Wed Nov 1 10:18:27 2006 UTC (18 years, 1 month ago) by yamt
Branches: MAIN
CVS tags: yamt-splraiseipl-base5, yamt-splraiseipl-base4, yamt-splraiseipl-base3, wrstuden-fixsa-newbase, wrstuden-fixsa-base-1, wrstuden-fixsa-base, wrstuden-fixsa, 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
Diff to: previous 1.79: preferred, colored
Changes since revision 1.79: +2 -2 lines
remove some __unused from function parameters.

Revision 1.77.2.2: download - view: text, markup, annotated - select for diffs
Sun Oct 22 08:07:53 2006 UTC (18 years, 1 month ago) by yamt
Branches: yamt-splraiseipl
Diff to: previous 1.77.2.1: preferred, colored; branchpoint 1.77: preferred, colored
Changes since revision 1.77.2.1: +19 -55 lines
use workqueue for aiodoned.

Revision 1.77.2.1: download - view: text, markup, annotated - select for diffs
Sun Oct 22 06:07:53 2006 UTC (18 years, 1 month ago) by yamt
Branches: yamt-splraiseipl
Diff to: previous 1.77: preferred, colored
Changes since revision 1.77: +4 -5 lines
sync with head

Revision 1.79: download - view: text, markup, annotated - select for diffs
Thu Oct 12 10:14:43 2006 UTC (18 years, 1 month ago) by yamt
Branches: MAIN
CVS tags: yamt-splraiseipl-base2
Diff to: previous 1.78: preferred, colored
Changes since revision 1.78: +2 -3 lines
remove unnecessary #include of vnode.h.

Revision 1.78: download - view: text, markup, annotated - select for diffs
Thu Oct 12 01:32:53 2006 UTC (18 years, 1 month ago) by christos
Branches: MAIN
Diff to: previous 1.77: preferred, colored
Changes since revision 1.77: +4 -4 lines
- sprinkle __unused on function decls.
- fix a couple of unused bugs
- no more -Wno-unused for i386

Revision 1.77: download - view: text, markup, annotated - select for diffs
Fri Sep 15 15:51:13 2006 UTC (18 years, 2 months ago) by yamt
Branches: MAIN
CVS tags: yamt-splraiseipl-base
Branch point for: yamt-splraiseipl
Diff to: previous 1.76: preferred, colored
Changes since revision 1.76: +138 -194 lines
merge yamt-pdpolicy branch.
	- separate page replacement policy from the rest of kernel
	- implement an alternative replacement policy

Revision 1.76.2.3: download - view: text, markup, annotated - select for diffs
Fri Sep 15 11:54:56 2006 UTC (18 years, 2 months ago) by yamt
Branches: yamt-pdpolicy
Diff to: previous 1.76.2.2: preferred, colored; branchpoint 1.76: preferred, colored; next MAIN 1.77: preferred, colored
Changes since revision 1.76.2.2: +16 -0 lines
make UVM_KICK_PDAEMON() a real function and stop including
uvm_pdpolicy.h from uvm.h.  this also fixes build of pmap(1).

Revision 1.72.2.1: download - view: text, markup, annotated - select for diffs
Sat Sep 9 03:00:13 2006 UTC (18 years, 3 months ago) by rpaulo
Branches: rpaulo-netinet-merge-pcb
Diff to: previous 1.72: preferred, colored; next MAIN 1.73: preferred, colored
Changes since revision 1.72: +378 -318 lines
sync with head

Revision 1.65.2.1: download - view: text, markup, annotated - select for diffs
Wed Jun 21 15:12:40 2006 UTC (18 years, 5 months ago) by yamt
Branches: yamt-lazymbuf
Diff to: previous 1.65: preferred, colored
Changes since revision 1.65: +399 -306 lines
sync with head.

Revision 1.72.4.1: download - view: text, markup, annotated - select for diffs
Sat Apr 22 11:40:30 2006 UTC (18 years, 7 months ago) by simonb
Branches: simonb-timecounters
CVS tags: simonb-timcounters-final
Diff to: previous 1.72: preferred, colored; next MAIN 1.73: preferred, colored
Changes since revision 1.72: +378 -318 lines
Sync with head.

Revision 1.76.2.2: download - view: text, markup, annotated - select for diffs
Sun Mar 12 09:38:56 2006 UTC (18 years, 8 months ago) by yamt
Branches: yamt-pdpolicy
Diff to: previous 1.76.2.1: preferred, colored; branchpoint 1.76: preferred, colored
Changes since revision 1.76.2.1: +2 -2 lines
- change the way to account read-ahead stats.
- fix UVM_PQFLAGBITS.

Revision 1.76.2.1: download - view: text, markup, annotated - select for diffs
Sun Mar 5 12:51:09 2006 UTC (18 years, 9 months ago) by yamt
Branches: yamt-pdpolicy
Diff to: previous 1.76: preferred, colored
Changes since revision 1.76: +118 -190 lines
separate page replacement policy from the rest of kernel.

Revision 1.71.2.2: download - view: text, markup, annotated - select for diffs
Sat Feb 18 15:39:31 2006 UTC (18 years, 9 months ago) by yamt
Branches: yamt-uio_vmspace
Diff to: previous 1.71.2.1: preferred, colored; next MAIN 1.72: preferred, colored
Changes since revision 1.71.2.1: +378 -318 lines
sync with head.

Revision 1.76: download - view: text, markup, annotated - select for diffs
Tue Feb 14 15:06:27 2006 UTC (18 years, 9 months ago) by yamt
Branches: MAIN
CVS tags: yamt-uio_vmspace-base5, yamt-pdpolicy-base9, yamt-pdpolicy-base8, yamt-pdpolicy-base7, yamt-pdpolicy-base6, yamt-pdpolicy-base5, yamt-pdpolicy-base4, yamt-pdpolicy-base3, yamt-pdpolicy-base2, yamt-pdpolicy-base, simonb-timecounters-base, rpaulo-netinet-merge-pcb-base, peter-altq-base, peter-altq, gdamore-uart-base, gdamore-uart, elad-kernelauth-base, elad-kernelauth, chap-midi-nbase, chap-midi-base, chap-midi, abandoned-netbsd-4-base, abandoned-netbsd-4
Branch point for: yamt-pdpolicy, newlock2
Diff to: previous 1.75: preferred, colored
Changes since revision 1.75: +61 -54 lines
share some code between uvmpd_scan_inactive and uvmpd_scan.

Revision 1.75: download - view: text, markup, annotated - select for diffs
Tue Feb 14 02:28:21 2006 UTC (18 years, 9 months ago) by yamt
Branches: MAIN
Diff to: previous 1.74: preferred, colored
Changes since revision 1.74: +1 -1 lines
fix a compilation problem where PAGE_SHIFT is not a constant.
pointed by Chuck Silvers.

Revision 1.74: download - view: text, markup, annotated - select for diffs
Mon Feb 13 14:41:22 2006 UTC (18 years, 9 months ago) by yamt
Branches: MAIN
Diff to: previous 1.73: preferred, colored
Changes since revision 1.73: +0 -1 lines
remove an outdated comment.

Revision 1.73: download - view: text, markup, annotated - select for diffs
Sun Feb 12 09:19:59 2006 UTC (18 years, 9 months ago) by yamt
Branches: MAIN
Diff to: previous 1.72: preferred, colored
Changes since revision 1.72: +337 -283 lines
factor out swap clustering code.

Revision 1.71.2.1: download - view: text, markup, annotated - select for diffs
Sun Jan 15 10:03:05 2006 UTC (18 years, 10 months ago) by yamt
Branches: yamt-uio_vmspace
Diff to: previous 1.71: preferred, colored
Changes since revision 1.71: +3 -3 lines
sync with head.

Revision 1.72: download - view: text, markup, annotated - select for diffs
Thu Jan 5 10:47:33 2006 UTC (18 years, 11 months ago) by yamt
Branches: MAIN
Branch point for: simonb-timecounters, rpaulo-netinet-merge-pcb
Diff to: previous 1.71: preferred, colored
Changes since revision 1.71: +3 -3 lines
uvmpd_scan_inactive: when reactivating a page,
use pmap_is_referenced rather than pmap_clear_reference.
we don't need to clear the bit here as we'll do so when
moving pages back to inactive queue again.  pointed by Chuck Silvers.

Revision 1.71: download - view: text, markup, annotated - select for diffs
Wed Dec 21 12:24:47 2005 UTC (18 years, 11 months ago) by yamt
Branches: MAIN
Branch point for: yamt-uio_vmspace
Diff to: previous 1.70: preferred, colored
Changes since revision 1.70: +3 -2 lines
uvmpd_scan: when deactivating a page, clear its reference bit.
discussed on tech-kern@.

Revision 1.70: download - view: text, markup, annotated - select for diffs
Wed Dec 21 12:19:04 2005 UTC (18 years, 11 months ago) by yamt
Branches: MAIN
Diff to: previous 1.69: preferred, colored
Changes since revision 1.69: +4 -3 lines
make length of inactive queue tunable by sysctl.  (vm.inactivepct)

Revision 1.51.2.7: download - view: text, markup, annotated - select for diffs
Sun Dec 11 10:29:42 2005 UTC (18 years, 11 months ago) by christos
Branches: ktrace-lwp
Diff to: previous 1.51.2.6: preferred, colored; next MAIN 1.52: preferred, colored
Changes since revision 1.51.2.6: +10 -2 lines
Sync with head.

Revision 1.68.6.1: download - view: text, markup, annotated - select for diffs
Tue Nov 29 21:23:34 2005 UTC (19 years ago) by yamt
Branches: yamt-readahead
Diff to: previous 1.68: preferred, colored; next MAIN 1.69: preferred, colored
Changes since revision 1.68: +10 -2 lines
sync with head.

Revision 1.69: download - view: text, markup, annotated - select for diffs
Tue Nov 29 15:45:28 2005 UTC (19 years ago) by yamt
Branches: MAIN
CVS tags: yamt-readahead-base3, ktrace-lwp-base
Diff to: previous 1.68: preferred, colored
Changes since revision 1.68: +10 -2 lines
read-ahead statistics.

Revision 1.51.2.6: download - view: text, markup, annotated - select for diffs
Thu Nov 10 14:12:40 2005 UTC (19 years ago) by skrll
Branches: ktrace-lwp
Diff to: previous 1.51.2.5: preferred, colored
Changes since revision 1.51.2.5: +84 -15 lines
Sync with HEAD. Here we go again...

Revision 1.68: download - view: text, markup, annotated - select for diffs
Tue Sep 13 22:00:05 2005 UTC (19 years, 2 months ago) by yamt
Branches: 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
Diff to: previous 1.67: preferred, colored
Changes since revision 1.67: +27 -4 lines
wrap swap related code by #ifdef VMSWAP.  always #define VMSWAP for now.

Revision 1.67: download - view: text, markup, annotated - select for diffs
Sun Jul 31 04:04:47 2005 UTC (19 years, 4 months ago) by yamt
Branches: MAIN
Diff to: previous 1.66: preferred, colored
Changes since revision 1.66: +4 -27 lines
revert "defflag VMSWAP" changes for now.
there seems to be far more people who don't want to edit
their kernel config files than i thought.

Revision 1.66: download - view: text, markup, annotated - select for diffs
Sat Jul 30 06:33:36 2005 UTC (19 years, 4 months ago) by yamt
Branches: MAIN
Diff to: previous 1.65: preferred, colored
Changes since revision 1.65: +27 -4 lines
defflag VMSWAP.

Revision 1.65: download - view: text, markup, annotated - select for diffs
Mon Jun 27 02:19:48 2005 UTC (19 years, 5 months ago) by thorpej
Branches: MAIN
Branch point for: yamt-lazymbuf
Diff to: previous 1.64: preferred, colored
Changes since revision 1.64: +10 -12 lines
Use ANSI function decls.

Revision 1.64: download - view: text, markup, annotated - select for diffs
Wed May 11 13:02:26 2005 UTC (19 years, 6 months ago) by yamt
Branches: MAIN
Diff to: previous 1.63: preferred, colored
Changes since revision 1.63: +3 -3 lines
allocate anons on-demand, rather than reserving static amount of
them on boot/swapon.

Revision 1.63: download - view: text, markup, annotated - select for diffs
Wed May 4 23:23:28 2005 UTC (19 years, 7 months ago) by yamt
Branches: MAIN
Diff to: previous 1.62: preferred, colored
Changes since revision 1.62: +5 -2 lines
uvm_reclaimable: add an XXX comment.

Revision 1.60.4.1: download - view: text, markup, annotated - select for diffs
Fri Apr 29 11:29:45 2005 UTC (19 years, 7 months ago) by kent
Branches: kent-audio2
Diff to: previous 1.60: preferred, colored; next MAIN 1.61: preferred, colored
Changes since revision 1.60: +58 -3 lines
sync with -current

Revision 1.62: download - view: text, markup, annotated - select for diffs
Tue Apr 12 13:11:45 2005 UTC (19 years, 7 months ago) by yamt
Branches: MAIN
CVS tags: kent-audio2-base
Diff to: previous 1.61: preferred, colored
Changes since revision 1.61: +47 -2 lines
fix unreasonably frequent "killed: out of swap" on systems which have
little or no swap.
- even on a severe swap shortage, if we have some amount of file-backed pages,
  don't bother to kill processes.
- if all pages in queue will be likely reactivated, just give up
  page type balancing rather than spinning unnecessarily.

Revision 1.59.2.1.2.1: download - view: text, markup, annotated - select for diffs
Wed Mar 16 12:11:04 2005 UTC (19 years, 8 months ago) by tron
Branches: netbsd-2
CVS tags: 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
Diff to: previous 1.59.2.1: preferred, colored; next MAIN 1.59.2.2: preferred, colored
Changes since revision 1.59.2.1: +13 -3 lines
Pull up revision 1.61 (requested by chs in ticket #1137):
hack around a UVM problem that causes hangs when large processes fork.
see PR 26908 for details.

Revision 1.59.2.2: download - view: text, markup, annotated - select for diffs
Wed Mar 16 12:11:02 2005 UTC (19 years, 8 months ago) by tron
Branches: netbsd-2-0
CVS tags: netbsd-2-0-3-RELEASE, netbsd-2-0-2-RELEASE
Diff to: previous 1.59.2.1: preferred, colored; branchpoint 1.59: preferred, colored; next MAIN 1.60: preferred, colored
Changes since revision 1.59.2.1: +13 -3 lines
Pull up revision 1.61 (requested by chs in ticket #1137):
hack around a UVM problem that causes hangs when large processes fork.
see PR 26908 for details.

Revision 1.60.6.1: download - view: text, markup, annotated - select for diffs
Sat Feb 12 18:17:57 2005 UTC (19 years, 9 months ago) by yamt
Branches: yamt-km
Diff to: previous 1.60: preferred, colored; next MAIN 1.61: preferred, colored
Changes since revision 1.60: +13 -3 lines
sync with head.

Revision 1.51.2.5: download - view: text, markup, annotated - select for diffs
Fri Feb 4 11:48:28 2005 UTC (19 years, 10 months ago) by skrll
Branches: ktrace-lwp
Diff to: previous 1.51.2.4: preferred, colored
Changes since revision 1.51.2.4: +13 -3 lines
Sync with HEAD.

Revision 1.61: download - view: text, markup, annotated - select for diffs
Sun Jan 30 17:23:05 2005 UTC (19 years, 10 months ago) by chs
Branches: MAIN
CVS tags: yamt-km-base4, yamt-km-base3, yamt-km-base2, 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
Diff to: previous 1.60: preferred, colored
Changes since revision 1.60: +13 -3 lines
hack around a UVM problem that causes hangs when large processes fork.
see PR 26908 for details.

Revision 1.51.2.4: download - view: text, markup, annotated - select for diffs
Tue Oct 19 15:58:31 2004 UTC (20 years, 1 month ago) by skrll
Branches: ktrace-lwp
Diff to: previous 1.51.2.3: preferred, colored
Changes since revision 1.51.2.3: +13 -10 lines
Sync with HEAD

Revision 1.59.2.1: download - view: text, markup, annotated - select for diffs
Fri Oct 8 03:25:21 2004 UTC (20 years, 2 months ago) by jmc
Branches: netbsd-2-0
CVS tags: netbsd-2-base, netbsd-2-0-RELEASE, netbsd-2-0-RC5, netbsd-2-0-RC4, netbsd-2-0-1-RELEASE
Branch point for: netbsd-2
Diff to: previous 1.59: preferred, colored
Changes since revision 1.59: +13 -10 lines
Pullup rev 1.60 (requested by simonb in ticket #908)

- Dont let pagedaemon sleep while draining buf.
- Estimate amount of memory to free at a time.
- Factor out code to set watermark and ensure high > low.
- Make the step of allocation possibility a bit seamless by moving the origin
  of curve from 0 to lowater mark.
Improves interactive performance when there is heavy disk activity.
PR#27057

Revision 1.60: download - view: text, markup, annotated - select for diffs
Sun Oct 3 08:47:48 2004 UTC (20 years, 2 months ago) by enami
Branches: MAIN
CVS tags: yamt-km-base, kent-audio1-beforemerge, kent-audio1-base, kent-audio1
Branch point for: yamt-km, kent-audio2
Diff to: previous 1.59: preferred, colored
Changes since revision 1.59: +13 -10 lines
- Don't let pagedaemon sleep while draining buf.
- Estimate amount of memory to free at a time.
Address PR#27057 (and similar hangs I saw several months ago).

Revision 1.51.2.3: download - view: text, markup, annotated - select for diffs
Tue Sep 21 13:39:29 2004 UTC (20 years, 2 months ago) by skrll
Branches: ktrace-lwp
Diff to: previous 1.51.2.2: preferred, colored
Changes since revision 1.51.2.2: +2 -2 lines
Fix the sync with head I botched.

Revision 1.51.2.2: download - view: text, markup, annotated - select for diffs
Sat Sep 18 14:57:12 2004 UTC (20 years, 2 months ago) by skrll
Branches: ktrace-lwp
Diff to: previous 1.51.2.1: preferred, colored
Changes since revision 1.51.2.1: +0 -0 lines
Sync with HEAD.

Revision 1.51.2.1: download - view: text, markup, annotated - select for diffs
Tue Aug 3 10:57:08 2004 UTC (20 years, 4 months ago) by skrll
Branches: ktrace-lwp
Diff to: previous 1.51: preferred, colored
Changes since revision 1.51: +36 -19 lines
Sync with HEAD

Revision 1.59: download - view: text, markup, annotated - select for diffs
Wed Mar 24 07:55:01 2004 UTC (20 years, 8 months ago) by junyoung
Branches: MAIN
CVS tags: netbsd-2-0-base, netbsd-2-0-RC3, netbsd-2-0-RC2, netbsd-2-0-RC1
Branch point for: netbsd-2-0
Diff to: previous 1.58: preferred, colored
Changes since revision 1.58: +5 -5 lines
Nuke __P().

Revision 1.58: download - view: text, markup, annotated - select for diffs
Fri Jan 30 11:32:16 2004 UTC (20 years, 10 months ago) by tls
Branches: MAIN
Diff to: previous 1.57: preferred, colored
Changes since revision 1.57: +9 -3 lines
Buffer cache fixes to avoid thrashing between high and low water marks
and uncontrolled growth.

The key fix is from Dan Carasone, who noticed that buf_canfree() was
counting in _bytes_ but freeing in _buffers_, which caused the instant
drop to lowater observed by some users.

We now control the rate of growth; the probability of getting a new
allocation is inversely proportional to the current size of the
cache.  This idea is from a long-ago conversation with Kirk McKusick
and, if memory serves, was used for the file-system cache in some
other BSD variant at some point in history.

With growth and shrinkage more or less dealt with, we return the
default maximum cache size to 15%.  The default _minimum_ cache size
is raised from 1/16 of the maximum cache size to 1/8, since 1/16 was
chosen when the maximum size was 30% of memory.

Finally, after observing the behaviour of the pagedaemon and the
buffer cache drainer under pathological workloads (e.g. a benchmark
that steps through 75% of available memory backwards) I have moved
the call to buf_drain() to the beginning of the pagedaemon from the
end; if the pagedaemon bogs down, it still won't get run as often
as it should, but at least this way it will see the state of the
free count and free target _before_ the scan step does its thing.

Revision 1.57: download - view: text, markup, annotated - select for diffs
Sun Jan 4 11:33:32 2004 UTC (20 years, 11 months ago) by jdolecek
Branches: MAIN
Diff to: previous 1.56: preferred, colored
Changes since revision 1.56: +8 -2 lines
Rearrange process exit path to avoid need to free resources from different
process context ('reaper').

From within the exiting process context:
* deactivate pmap and free vmspace while we can still block
* introduce MD cpu_lwp_free() - this cleans all MD-specific context (such
  as FPU state), and is the last potentially blocking operation;
  all of cpu_wait(), and most of cpu_exit(), is now folded into cpu_lwp_free()
* process is now immediatelly marked as zombie and made available for pickup
  by parent; the remaining last lwp continues the exit as fully detached
* MI (rather than MD) code bumps uvmexp.swtch, cpu_exit() is now same
  for both 'process' and 'lwp' exit

uvm_lwp_exit() is modified to never block; the u-area memory is now
always just linked to the list of available u-areas. Introduce (blocking)
uvm_uarea_drain(), which is called to release the excessive u-area memory;
this is called by parent within wait4(), or by pagedaemon on memory shortage.
uvm_uarea_free() is now private function within uvm_glue.c.

MD process/lwp exit code now always calls lwp_exit2() immediatelly after
switching away from the exiting lwp.

g/c now unneeded routines and variables, including the reaper kernel thread

Revision 1.56: download - view: text, markup, annotated - select for diffs
Tue Dec 30 12:33:24 2003 UTC (20 years, 11 months ago) by pk
Branches: MAIN
Diff to: previous 1.55: preferred, colored
Changes since revision 1.55: +3 -2 lines
Replace the traditional buffer memory management -- based on fixed per buffer
virtual memory reservation and a private pool of memory pages -- by a scheme
based on memory pools.

This allows better utilization of memory because buffers can now be allocated
with a granularity finer than the system's native page size (useful for
filesystems with e.g. 1k or 2k fragment sizes).  It also avoids fragmentation
of virtual to physical memory mappings (due to the former fixed virtual
address reservation) resulting in better utilization of MMU resources on some
platforms.  Finally, the scheme is more flexible by allowing run-time decisions
on the amount of memory to be used for buffers.

On the other hand, the effectiveness of the LRU queue for buffer recycling
may be somewhat reduced compared to the traditional method since, due to the
nature of the pool based memory allocation, the actual least recently used
buffer may release its memory to a pool different from the one needed by a
newly allocated buffer. However, this effect will kick in only if the
system is under memory pressure.

Revision 1.55: download - view: text, markup, annotated - select for diffs
Fri Sep 26 04:03:39 2003 UTC (21 years, 2 months ago) by chs
Branches: MAIN
Diff to: previous 1.54: preferred, colored
Changes since revision 1.54: +6 -4 lines
don't dereference a vm_page pointer after we free the page.

Revision 1.54: download - view: text, markup, annotated - select for diffs
Mon Sep 1 12:16:17 2003 UTC (21 years, 3 months ago) by yamt
Branches: MAIN
Diff to: previous 1.53: preferred, colored
Changes since revision 1.53: +2 -7 lines
remove an obsolete comment.
(we now have only one inactive list.)

Revision 1.53: download - view: text, markup, annotated - select for diffs
Thu Aug 28 13:12:19 2003 UTC (21 years, 3 months ago) by pk
Branches: MAIN
Diff to: previous 1.52: preferred, colored
Changes since revision 1.52: +15 -7 lines
When retiring a swap device with marked bad blocks on it we should update
the `# swap page in use' and `# swap page only' counters.  However, at the
time of swap device removal we can no longer figure out how many of the
bad swap pages are actually also `swap only' pages.

So, on swap I/O errors arrange things to not include the bad swap pages in
the `swpgonly' counter as follows: uvm_swap_markbad() decrements `swpgonly'
by the number of bad pages, and the various VM object deallocation routines
do not decrement `swpgonly' for swap slots marked as SWSLOT_BAD.

Revision 1.46.4.2: download - view: text, markup, annotated - select for diffs
Tue Aug 26 06:46:59 2003 UTC (21 years, 3 months ago) by tron
Branches: netbsd-1-6
CVS tags: 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
Diff to: previous 1.46.4.1: preferred, colored; branchpoint 1.46: preferred, colored; next MAIN 1.47: preferred, colored
Changes since revision 1.46.4.1: +4 -2 lines
Pull up revision 1.51 (requested by tls in ticket #1434):
Correct use of MAXBSIZE where MAXPHYS was intended.  This is a necessary
first step towards per-device MAXPHYS, and has the beneficial side effect
of allowing clustering to MAXPHYS even on systems that need to run with
a reduced MAXBSIZE to get more metadata buffers.

Revision 1.52: download - view: text, markup, annotated - select for diffs
Mon Aug 11 16:33:32 2003 UTC (21 years, 3 months ago) by pk
Branches: MAIN
Diff to: previous 1.51: preferred, colored
Changes since revision 1.51: +5 -6 lines
Introduce uvm_swapisfull(), which computes the available swap space by
taking into account swap devices that are in the process of being removed.

Revision 1.51: download - view: text, markup, annotated - select for diffs
Wed Apr 23 00:55:22 2003 UTC (21 years, 7 months ago) by tls
Branches: MAIN
Branch point for: ktrace-lwp
Diff to: previous 1.50: preferred, colored
Changes since revision 1.50: +6 -4 lines
Correct use of MAXBSIZE where MAXPHYS was intended.  This is a necessary
first step towards per-device MAXPHYS, and has the beneficial side effect
of allowing clustering to MAXPHYS even on systems that need to run with
a reduced MAXBSIZE to get more metadata buffers.

Revision 1.50: download - view: text, markup, annotated - select for diffs
Tue Feb 25 00:22:20 2003 UTC (21 years, 9 months ago) by simonb
Branches: MAIN
Diff to: previous 1.49: preferred, colored
Changes since revision 1.49: +3 -3 lines
Cast result of pgo_put() to (void) as is the style with other calls to
pgo_put() in UVM.

Pointed out by Andrew Brown.

Revision 1.49: download - view: text, markup, annotated - select for diffs
Sun Feb 23 04:54:27 2003 UTC (21 years, 9 months ago) by simonb
Branches: MAIN
Diff to: previous 1.48: preferred, colored
Changes since revision 1.48: +3 -3 lines
Remove assigned-to but not used variable.

Revision 1.29.2.14: download - view: text, markup, annotated - select for diffs
Wed Dec 11 06:51:57 2002 UTC (21 years, 11 months ago) by thorpej
Branches: nathanw_sa
CVS tags: nathanw_sa_end
Diff to: previous 1.29.2.13: preferred, colored; next MAIN 1.30: preferred, colored
Changes since revision 1.29.2.13: +1 -1 lines
Sync with HEAD.

Revision 1.48: download - view: text, markup, annotated - select for diffs
Sun Nov 24 11:50:32 2002 UTC (22 years ago) by scw
Branches: MAIN
CVS tags: nathanw_sa_before_merge, nathanw_sa_base, gmcgarry_ucred_base, gmcgarry_ucred, gmcgarry_ctxsw_base, gmcgarry_ctxsw, fvdl_fs64_base
Diff to: previous 1.47: preferred, colored
Changes since revision 1.47: +3 -3 lines
Quell uninitialised variable warnings.

Revision 1.36.2.4: download - view: text, markup, annotated - select for diffs
Fri Sep 6 08:50:26 2002 UTC (22 years, 3 months ago) by jdolecek
Branches: kqueue
Diff to: previous 1.36.2.3: preferred, colored; branchpoint 1.36: preferred, colored; next MAIN 1.37: preferred, colored
Changes since revision 1.36.2.3: +3 -3 lines
sync kqueue branch with HEAD

Revision 1.29.2.13: download - view: text, markup, annotated - select for diffs
Thu Aug 1 02:47:09 2002 UTC (22 years, 4 months ago) by nathanw
Branches: nathanw_sa
Diff to: previous 1.29.2.12: preferred, colored
Changes since revision 1.29.2.12: +3 -3 lines
Catch up to -current.

Revision 1.29.2.12: download - view: text, markup, annotated - select for diffs
Tue Jul 16 14:06:11 2002 UTC (22 years, 4 months ago) by nathanw
Branches: nathanw_sa
Diff to: previous 1.29.2.11: preferred, colored
Changes since revision 1.29.2.11: +4 -4 lines
pagedaemon_proc really should be a proc, not a LWP.

Revision 1.46.2.1: download - view: text, markup, annotated - select for diffs
Mon Jul 15 10:37:35 2002 UTC (22 years, 4 months ago) by gehenna
Branches: gehenna-devsw
Diff to: previous 1.46: preferred, colored; next MAIN 1.47: preferred, colored
Changes since revision 1.46: +3 -3 lines
catch up with -current.

Revision 1.29.2.11: download - view: text, markup, annotated - select for diffs
Mon Jun 24 22:12:59 2002 UTC (22 years, 5 months ago) by nathanw
Branches: nathanw_sa
Diff to: previous 1.29.2.10: preferred, colored
Changes since revision 1.29.2.10: +4 -4 lines
Curproc->curlwp renaming.

Change uses of "curproc->l_proc" back to "curproc", which is more like the
original use. Bare uses of "curproc" are now "curlwp".

"curproc" is now #defined in proc.h as ((curlwp) ? (curlwp)->l_proc) : NULL)
so that it is always safe to reference curproc (*de*referencing curproc
is another story, but that's always been true).

Revision 1.36.2.3: download - view: text, markup, annotated - select for diffs
Sun Jun 23 17:52:19 2002 UTC (22 years, 5 months ago) by jdolecek
Branches: kqueue
Diff to: previous 1.36.2.2: preferred, colored; branchpoint 1.36: preferred, colored
Changes since revision 1.36.2.2: +6 -7 lines
catch up with -current on kqueue branch

Revision 1.46.4.1: download - view: text, markup, annotated - select for diffs
Fri Jun 21 00:55:51 2002 UTC (22 years, 5 months ago) by lukem
Branches: netbsd-1-6
CVS tags: netbsd-1-6-RELEASE, netbsd-1-6-RC3, netbsd-1-6-RC2, netbsd-1-6-RC1, netbsd-1-6-PATCH001-RELEASE, netbsd-1-6-PATCH001-RC3, netbsd-1-6-PATCH001-RC2, netbsd-1-6-PATCH001-RC1, netbsd-1-6-PATCH001
Diff to: previous 1.46: preferred, colored
Changes since revision 1.46: +3 -3 lines
Pull up revision 1.47 (requested by chs in ticket #329):
count aobj pages (most notably kernel stack pages) as anon pages
for memory usage-balancing purposes.

Revision 1.47: download - view: text, markup, annotated - select for diffs
Thu Jun 20 15:05:29 2002 UTC (22 years, 5 months ago) by chs
Branches: MAIN
CVS tags: kqueue-beforemerge, kqueue-base, kqueue-aftermerge, gehenna-devsw-base
Diff to: previous 1.46: preferred, colored
Changes since revision 1.46: +3 -3 lines
count aobj pages (most notably kernel stack pages) as anon pages
for memory usage-balancing purposes.

Revision 1.29.2.10: download - view: text, markup, annotated - select for diffs
Thu Jun 20 03:50:44 2002 UTC (22 years, 5 months ago) by nathanw
Branches: nathanw_sa
Diff to: previous 1.29.2.9: preferred, colored
Changes since revision 1.29.2.9: +6 -7 lines
Catch up to -current.

Revision 1.46: download - view: text, markup, annotated - select for diffs
Sun May 5 16:26:17 2002 UTC (22 years, 7 months ago) by chs
Branches: MAIN
CVS tags: netbsd-1-6-base
Branch point for: netbsd-1-6, gehenna-devsw
Diff to: previous 1.45: preferred, colored
Changes since revision 1.45: +6 -7 lines
look in the right flags field for PQ_INACTIVE.
make uvmpd_scan_inactive() return void since its return value is ignored.

Revision 1.45.4.2: download - view: text, markup, annotated - select for diffs
Tue Mar 12 00:03:59 2002 UTC (22 years, 9 months ago) by thorpej
Branches: newlock
Diff to: previous 1.45.4.1: preferred, colored; branchpoint 1.45: preferred, colored; next MAIN 1.46: preferred, colored
Changes since revision 1.45.4.1: +4 -4 lines
Convert the fpageqlock to a spin mutex at IPL_VM and rename it
to fpageq_mutex.

Revision 1.45.4.1: download - view: text, markup, annotated - select for diffs
Mon Mar 11 21:28:55 2002 UTC (22 years, 9 months ago) by thorpej
Branches: newlock
Diff to: previous 1.45: preferred, colored
Changes since revision 1.45: +4 -4 lines
Convert swap_syscall_lock and uvm.swap_data_lock to adaptive mutexes,
and rename them apporpriately.

Revision 1.29.2.9: download - view: text, markup, annotated - select for diffs
Thu Feb 28 04:15:31 2002 UTC (22 years, 9 months ago) by nathanw
Branches: nathanw_sa
Diff to: previous 1.29.2.8: preferred, colored
Changes since revision 1.29.2.8: +3 -3 lines
Catch up to -current.

Revision 1.36.2.2: download - view: text, markup, annotated - select for diffs
Mon Feb 11 20:10:50 2002 UTC (22 years, 9 months ago) by jdolecek
Branches: kqueue
Diff to: previous 1.36.2.1: preferred, colored; branchpoint 1.36: preferred, colored
Changes since revision 1.36.2.1: +3 -3 lines
Sync w/ -current.

Revision 1.45: download - view: text, markup, annotated - select for diffs
Mon Jan 21 14:42:27 2002 UTC (22 years, 10 months ago) by wiz
Branches: MAIN
CVS tags: newlock-base, ifpoll-base, eeh-devprop-base, eeh-devprop
Branch point for: newlock
Diff to: previous 1.44: preferred, colored
Changes since revision 1.44: +3 -3 lines
deamon -> daemon

Revision 1.36.2.1: download - view: text, markup, annotated - select for diffs
Thu Jan 10 20:05:45 2002 UTC (22 years, 10 months ago) by thorpej
Branches: kqueue
Diff to: previous 1.36: preferred, colored
Changes since revision 1.36: +231 -330 lines
Sync kqueue branch with -current.

Revision 1.29.2.8: download - view: text, markup, annotated - select for diffs
Tue Jan 8 00:35:07 2002 UTC (22 years, 11 months ago) by nathanw
Branches: nathanw_sa
Diff to: previous 1.29.2.7: preferred, colored
Changes since revision 1.29.2.7: +55 -46 lines
Catch up to -current.

Revision 1.44: download - view: text, markup, annotated - select for diffs
Mon Dec 31 19:21:38 2001 UTC (22 years, 11 months ago) by chs
Branches: MAIN
Diff to: previous 1.43: preferred, colored
Changes since revision 1.43: +34 -40 lines
fix locking for loaning.  in general we should be looking at the page's
uobject and uanon pointers rather than at the PQ_ANON flag to determine
which lock to hold, since PQ_ANON can be clear even when the anon's lock
is the one which we should hold (if the page was loaned from an object
and then freed by the object).

Revision 1.43: download - view: text, markup, annotated - select for diffs
Sun Dec 9 03:07:19 2001 UTC (23 years ago) by chs
Branches: MAIN
Diff to: previous 1.42: preferred, colored
Changes since revision 1.42: +26 -11 lines
add {anon,file,exec}max as a upper bound on the amount of memory that
will be allocated for the respective usage types when there is contention
for memory.

replace "vnode" and "vtext" with "file" and "exec" in uvmexp field names
and sysctl names.

Revision 1.29.2.7: download - view: text, markup, annotated - select for diffs
Wed Nov 14 19:19:08 2001 UTC (23 years ago) by nathanw
Branches: nathanw_sa
Diff to: previous 1.29.2.6: preferred, colored
Changes since revision 1.29.2.6: +12 -7 lines
Catch up to -current.

Revision 1.39.2.1: download - view: text, markup, annotated - select for diffs
Mon Nov 12 21:19:57 2001 UTC (23 years ago) by thorpej
Branches: thorpej-mips-cache
Diff to: previous 1.39: preferred, colored; next MAIN 1.40: preferred, colored
Changes since revision 1.39: +12 -7 lines
Sync the thorpej-mips-cache branch with -current.

Revision 1.42: download - view: text, markup, annotated - select for diffs
Sat Nov 10 07:37:01 2001 UTC (23 years, 1 month ago) by lukem
Branches: MAIN
CVS tags: thorpej-mips-cache-base
Diff to: previous 1.41: preferred, colored
Changes since revision 1.41: +6 -3 lines
add RCSIDs, and in some cases, slightly cleanup #include order

Revision 1.41: download - view: text, markup, annotated - select for diffs
Tue Nov 6 08:07:52 2001 UTC (23 years, 1 month ago) by chs
Branches: MAIN
Diff to: previous 1.40: preferred, colored
Changes since revision 1.40: +7 -1 lines
several changes prompted by loaning problems:
 - fix the loaned case in uvm_pagefree().
 - redo uvmexp.swpgonly accounting to work with page loaning.
   add an assertion before each place we adjust uvmexp.swpgonly.
 - fix uvm_km_pgremove() to always free any swap space associated with
   the range being removed.
 - get rid of UVM_LOAN_WIRED flag.  instead, we just make sure that
   pages loaned to the kernel are never on the page queues.
   this allows us to assert that pages are not loaned and wired
   at the same time.
 - add yet more assertions.

Revision 1.40: download - view: text, markup, annotated - select for diffs
Tue Nov 6 06:28:22 2001 UTC (23 years, 1 month ago) by simonb
Branches: MAIN
Diff to: previous 1.39: preferred, colored
Changes since revision 1.39: +1 -5 lines
Remove some variables that are set but never used.

Revision 1.29.2.6: download - view: text, markup, annotated - select for diffs
Mon Oct 8 20:11:57 2001 UTC (23 years, 2 months ago) by nathanw
Branches: nathanw_sa
Diff to: previous 1.29.2.5: preferred, colored
Changes since revision 1.29.2.5: +4 -2 lines
Catch up to -current.

Revision 1.36.4.1: download - view: text, markup, annotated - select for diffs
Mon Oct 1 12:48:46 2001 UTC (23 years, 2 months ago) by fvdl
Branches: thorpej-devvp
Diff to: previous 1.36: preferred, colored; next MAIN 1.37: preferred, colored
Changes since revision 1.36: +184 -297 lines
Catch up with -current.

Revision 1.39: download - view: text, markup, annotated - select for diffs
Sun Sep 30 02:57:34 2001 UTC (23 years, 2 months ago) by chs
Branches: MAIN
CVS tags: thorpej-devvp-base3, thorpej-devvp-base2
Branch point for: thorpej-mips-cache
Diff to: previous 1.38: preferred, colored
Changes since revision 1.38: +4 -2 lines
skip the swap-out code if there's no swap space configured.
avoid some hangs in low-memory situations.

Revision 1.29.2.5: download - view: text, markup, annotated - select for diffs
Wed Sep 26 19:55:16 2001 UTC (23 years, 2 months ago) by nathanw
Branches: nathanw_sa
Diff to: previous 1.29.2.4: preferred, colored
Changes since revision 1.29.2.4: +7 -4 lines
Catch up to -current.
Again.

Revision 1.38: download - view: text, markup, annotated - select for diffs
Wed Sep 26 07:08:41 2001 UTC (23 years, 2 months ago) by chs
Branches: MAIN
Diff to: previous 1.37: preferred, colored
Changes since revision 1.37: +7 -4 lines
move call to pool_drain() outside the pageq lock.

Revision 1.29.2.4: download - view: text, markup, annotated - select for diffs
Fri Sep 21 22:37:17 2001 UTC (23 years, 2 months ago) by nathanw
Branches: nathanw_sa
Diff to: previous 1.29.2.3: preferred, colored
Changes since revision 1.29.2.3: +176 -294 lines
Catch up to -current.

Revision 1.37: download - view: text, markup, annotated - select for diffs
Sat Sep 15 20:36:47 2001 UTC (23 years, 2 months ago) by chs
Branches: MAIN
CVS tags: post-chs-ubcperf
Diff to: previous 1.36: preferred, colored
Changes since revision 1.36: +176 -294 lines
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.29.2.3: download - view: text, markup, annotated - select for diffs
Fri Aug 24 00:13:44 2001 UTC (23 years, 3 months ago) by nathanw
Branches: nathanw_sa
Diff to: previous 1.29.2.2: preferred, colored
Changes since revision 1.29.2.2: +12 -13 lines
Catch up with -current.

Revision 1.36: download - view: text, markup, annotated - select for diffs
Wed Jun 27 18:52:10 2001 UTC (23 years, 5 months ago) by thorpej
Branches: MAIN
CVS tags: thorpej-devvp-base, pre-chs-ubcperf
Branch point for: thorpej-devvp, kqueue
Diff to: previous 1.35: preferred, colored
Changes since revision 1.35: +1 -9 lines
G/c a comment that no longer applies.

Revision 1.35: download - view: text, markup, annotated - select for diffs
Sat Jun 23 20:52:03 2001 UTC (23 years, 5 months ago) by chs
Branches: MAIN
Diff to: previous 1.34: preferred, colored
Changes since revision 1.34: +12 -5 lines
don't for memory in uao_set_swlot() since we're holding spinlocks,
instead return -1.  adjust callers to handle this new error return.
fixes PR 13194.

Revision 1.29.2.2: download - view: text, markup, annotated - select for diffs
Thu Jun 21 20:10:44 2001 UTC (23 years, 5 months ago) by nathanw
Branches: nathanw_sa
Diff to: previous 1.29.2.1: preferred, colored
Changes since revision 1.29.2.1: +16 -20 lines
Catch up to -current.

Revision 1.34: download - view: text, markup, annotated - select for diffs
Fri May 25 04:06:16 2001 UTC (23 years, 6 months ago) by chs
Branches: MAIN
Diff to: previous 1.33: preferred, colored
Changes since revision 1.33: +9 -9 lines
remove trailing whitespace.

Revision 1.33: download - view: text, markup, annotated - select for diffs
Tue May 22 00:44:45 2001 UTC (23 years, 6 months ago) by ross
Branches: MAIN
Diff to: previous 1.32: preferred, colored
Changes since revision 1.32: +2 -7 lines
Merge the swap-backed and object-backed inactive lists.

Revision 1.32: download - view: text, markup, annotated - select for diffs
Mon May 7 22:01:28 2001 UTC (23 years, 7 months ago) by thorpej
Branches: MAIN
Diff to: previous 1.31: preferred, colored
Changes since revision 1.31: +7 -6 lines
Fix a silly mistake I made when reworking the uvm inactive list
some time ago.  The mistake was to check that the page was not
referenced since the last active scan before moving it to inactive.
Now we just clear reference and move it to inacive (which is where
the second clock hand sweep occurs).

Revision 1.29.2.1: download - view: text, markup, annotated - select for diffs
Mon Apr 9 01:59:22 2001 UTC (23 years, 8 months ago) by nathanw
Branches: nathanw_sa
Diff to: previous 1.29: preferred, colored
Changes since revision 1.29: +70 -206 lines
Catch up with -current.

Revision 1.18.2.5: download - view: text, markup, annotated - select for diffs
Mon Mar 12 13:32:14 2001 UTC (23 years, 8 months ago) by bouyer
Branches: thorpej_scsipi
Diff to: previous 1.18.2.4: preferred, colored; branchpoint 1.18: preferred, colored; next MAIN 1.19: preferred, colored
Changes since revision 1.18.2.4: +70 -206 lines
Sync with HEAD.

Revision 1.31: download - view: text, markup, annotated - select for diffs
Sat Mar 10 22:46:50 2001 UTC (23 years, 9 months ago) by chs
Branches: MAIN
CVS tags: thorpej_scsipi_nbase, thorpej_scsipi_beforemerge, thorpej_scsipi_base
Diff to: previous 1.30: preferred, colored
Changes since revision 1.30: +13 -156 lines
eliminate the VM_PAGER_* error codes in favor of the traditional E* codes.
the mapping is:

VM_PAGER_OK		        0
VM_PAGER_BAD		        <unused>
VM_PAGER_FAIL		        <unused>
VM_PAGER_PEND		        0 (see below)
VM_PAGER_ERROR		        EIO
VM_PAGER_AGAIN		        EAGAIN
VM_PAGER_UNLOCK		        EBUSY
VM_PAGER_REFAULT	        ERESTART

for async i/o requests, it used to be possible for the request to
be convert to sync, and the pager would return VM_PAGER_OK or VM_PAGER_PEND
to indicate whether the caller should perform post-i/o cleanup.
this is no longer allowed; pagers must now return 0 to indicate that
the async i/o was successfully started, and the caller never needs to
worry about doing the post-i/o cleanup.

Revision 1.30: download - view: text, markup, annotated - select for diffs
Fri Mar 9 01:02:12 2001 UTC (23 years, 9 months ago) by chs
Branches: MAIN
Diff to: previous 1.29: preferred, colored
Changes since revision 1.29: +59 -52 lines
add UBC memory-usage balancing.  we track the number of pages in use for
each of the basic types (anonymous data, executable image, cached files)
and prevent the pagedaemon from reusing a given page if that would reduce
the count of that type of page below a sysctl-setable minimum threshold.
the thresholds are controlled via three new sysctl tunables:
vm.anonmin, vm.vnodemin, and vm.vtextmin.  these tunables are the
percentages of pageable memory reserved for each usage, and we do not allow
the sum of the minimums to be more than 95% so that there's always some
memory that can be reused.

Revision 1.18.2.4: download - view: text, markup, annotated - select for diffs
Sun Feb 11 19:17:50 2001 UTC (23 years, 9 months ago) by bouyer
Branches: thorpej_scsipi
Diff to: previous 1.18.2.3: preferred, colored; branchpoint 1.18: preferred, colored
Changes since revision 1.18.2.3: +27 -12 lines
Sync with HEAD.

Revision 1.29: download - view: text, markup, annotated - select for diffs
Sun Jan 28 23:30:46 2001 UTC (23 years, 10 months ago) by thorpej
Branches: MAIN
Branch point for: nathanw_sa
Diff to: previous 1.28: preferred, colored
Changes since revision 1.28: +10 -7 lines
Page scanner improvements, behavior is actually a bit more like
Mach VM's now.  Specific changes:
- Pages now need not have all of their mappings removed before being
  put on the inactive list.  They only need to have the "referenced"
  attribute cleared.  This makes putting pages onto the inactive list
  much more efficient.  In order to eliminate redundant clearings of
  "refrenced", callers of uvm_pagedeactivate() must now do this
  themselves.
- When checking the "modified" attribute for a page (for clearing
  PG_CLEAN), make sure to only do it if PG_CLEAN is currently set on
  the page (saves a potentially expensive pmap operation).
- When scanning the inactive list, if a page is referenced, reactivate
  it (this part was actually added in uvm_pdaemon.c,v 1.27).  This
  now works properly now that pages on the inactive list are allowed to
  have mappings.
- When scanning the inactive list and considering a page for freeing,
  remove all mappings, and then check the "modified" attribute if the
  page is marked PG_CLEAN.
- When scanning the active list, if the page was referenced since its
  last sweep by the scanner, don't deactivate it.  (This part was
  actually added in uvm_pdaemon.c,v 1.28.)

These changes greatly improve interactive performance during
moderate to high memory and I/O load.

Revision 1.28: download - view: text, markup, annotated - select for diffs
Thu Jan 25 00:24:48 2001 UTC (23 years, 10 months ago) by thorpej
Branches: MAIN
Diff to: previous 1.27: preferred, colored
Changes since revision 1.27: +6 -4 lines
When considering a page for deactivation, check to see if the
page has been referenced since the last time it was considered.
If it was, don't deactivate the page.

Revision 1.27: download - view: text, markup, annotated - select for diffs
Thu Jan 25 00:10:03 2001 UTC (23 years, 10 months ago) by mycroft
Branches: MAIN
Diff to: previous 1.26: preferred, colored
Changes since revision 1.26: +13 -3 lines
Put back the pmap_is_referenced() check from the original UVM code in the
inactive list scans.  Without this, the referenced bit was essentially ignored.

Revision 1.18.2.3: download - view: text, markup, annotated - select for diffs
Fri Jan 5 17:37:03 2001 UTC (23 years, 11 months ago) by bouyer
Branches: thorpej_scsipi
Diff to: previous 1.18.2.2: preferred, colored; branchpoint 1.18: preferred, colored
Changes since revision 1.18.2.2: +3 -2 lines
Sync with HEAD

Revision 1.26: download - view: text, markup, annotated - select for diffs
Wed Dec 13 17:03:32 2000 UTC (23 years, 11 months ago) by chs
Branches: MAIN
Diff to: previous 1.25: preferred, colored
Changes since revision 1.25: +4 -3 lines
continue processing the inactive queue past the free target when
we're enforcing the limit on the number of vnode pages.

Revision 1.18.2.2: download - view: text, markup, annotated - select for diffs
Fri Dec 8 09:21:05 2000 UTC (24 years ago) by bouyer
Branches: thorpej_scsipi
Diff to: previous 1.18.2.1: preferred, colored; branchpoint 1.18: preferred, colored
Changes since revision 1.18.2.1: +224 -225 lines
Sync with HEAD.

Revision 1.25: download - view: text, markup, annotated - select for diffs
Thu Nov 30 11:04:44 2000 UTC (24 years ago) by simonb
Branches: MAIN
Diff to: previous 1.24: preferred, colored
Changes since revision 1.24: +3 -4 lines
Move uvm_pgcnt_vnode and uvm_pgcnt_anon into uvmexp (as vnodepages and
anonpages), and add vtextpages which is currently unused but will be
used to trace the number of pages used by vtext vnodes.

Revision 1.24: download - view: text, markup, annotated - select for diffs
Mon Nov 27 08:40:05 2000 UTC (24 years ago) by chs
Branches: MAIN
Diff to: previous 1.23: preferred, colored
Changes since revision 1.23: +225 -225 lines
Initial integration of the Unified Buffer Cache project.

Revision 1.18.2.1: download - view: text, markup, annotated - select for diffs
Mon Nov 20 18:12:05 2000 UTC (24 years ago) by bouyer
Branches: thorpej_scsipi
Diff to: previous 1.18: preferred, colored
Changes since revision 1.18: +9 -8 lines
Update thorpej_scsipi to -current as of a month ago

Revision 1.23: download - view: text, markup, annotated - select for diffs
Sun Aug 20 10:24:14 2000 UTC (24 years, 3 months ago) by bjh21
Branches: MAIN
Diff to: previous 1.22: preferred, colored
Changes since revision 1.22: +5 -1 lines
Ensure that uvmexp.freemin is above the kernel reserved-page count.

When it wasn't (which could happen on a 4Mb machine with 32kb pages),
uvm_pagealloc_strat could refuse to allocate user memory, while the pagedaemon
didn't think it was worth freeing any more, resulting in the system seizing up.

Revision 1.22: download - view: text, markup, annotated - select for diffs
Sat Aug 12 22:41:55 2000 UTC (24 years, 3 months ago) by thorpej
Branches: MAIN
Diff to: previous 1.21: preferred, colored
Changes since revision 1.21: +2 -2 lines
Don't bother with a trampoline to start the pagedaemon and
reaper threads.

Revision 1.21: download - view: text, markup, annotated - select for diffs
Tue Jun 27 17:29:33 2000 UTC (24 years, 5 months ago) by mrg
Branches: MAIN
Diff to: previous 1.20: preferred, colored
Changes since revision 1.20: +1 -3 lines
remove include of <vm/vm.h>

Revision 1.20: download - view: text, markup, annotated - select for diffs
Mon Jun 26 14:21:18 2000 UTC (24 years, 5 months ago) by mrg
Branches: MAIN
Diff to: previous 1.19: preferred, colored
Changes since revision 1.19: +1 -3 lines
remove/move more mach vm header files:

	<vm/pglist.h> -> <uvm/uvm_pglist.h>
	<vm/vm_inherit.h> -> <uvm/uvm_inherit.h>
	<vm/vm_kern.h> -> into <uvm/uvm_extern.h>
	<vm/vm_object.h> -> nothing
	<vm/vm_pager.h> -> into <uvm/uvm_pager.h>

also includes a bunch of <vm/vm_page.h> include removals (due to redudancy
with <vm/vm.h>), and a scattering of other similar headers.

Revision 1.18.8.1: download - view: text, markup, annotated - select for diffs
Mon Dec 27 18:36:44 1999 UTC (24 years, 11 months ago) by wrstuden
Branches: wrstuden-devbsize
Diff to: previous 1.18: preferred, colored; next MAIN 1.19: preferred, colored
Changes since revision 1.18: +4 -3 lines
Pull up to last week's -current.

Revision 1.18.4.1: download - view: text, markup, annotated - select for diffs
Mon Nov 15 00:42:30 1999 UTC (25 years ago) by fvdl
Branches: fvdl-softdep
Diff to: previous 1.18: preferred, colored; next MAIN 1.19: preferred, colored
Changes since revision 1.18: +4 -3 lines
Sync with -current

Revision 1.19: download - view: text, markup, annotated - select for diffs
Thu Nov 4 21:51:42 1999 UTC (25 years, 1 month ago) by thorpej
Branches: MAIN
CVS tags: wrstuden-devbsize-base, wrstuden-devbsize-19991221, 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, fvdl-softdep-base, chs-ubc2-newbase
Diff to: previous 1.18: preferred, colored
Changes since revision 1.18: +4 -3 lines
Const poison uvm_wait().

Revision 1.18: download - view: text, markup, annotated - select for diffs
Sun Sep 12 01:17:41 1999 UTC (25 years, 2 months ago) by chs
Branches: MAIN
CVS tags: comdex-fall-1999-base, comdex-fall-1999
Branch point for: wrstuden-devbsize, thorpej_scsipi, fvdl-softdep
Diff to: previous 1.17: preferred, colored
Changes since revision 1.17: +9 -10 lines
eliminate the PMAP_NEW option by making it required for all ports.
ports which previously had no support for PMAP_NEW now implement
the pmap_k* interfaces as wrappers around the non-k versions.

Revision 1.15.4.4: download - view: text, markup, annotated - select for diffs
Sat Jul 31 19:02:29 1999 UTC (25 years, 4 months ago) by chs
Branches: chs-ubc2
Diff to: previous 1.15.4.3: preferred, colored; branchpoint 1.15: preferred, colored; next MAIN 1.16: preferred, colored
Changes since revision 1.15.4.3: +8 -2 lines
have the aiodone daemon wakeup the pagedaemon if there are still not
enough free pages after processing everything.

Revision 1.17: download - view: text, markup, annotated - select for diffs
Thu Jul 22 22:58:39 1999 UTC (25 years, 4 months ago) by thorpej
Branches: MAIN
CVS tags: chs-ubc2-base
Diff to: previous 1.16: preferred, colored
Changes since revision 1.16: +4 -4 lines
Garbage collect thread_sleep()/thread_wakeup() left over from the old
Mach VM code.  Also nuke iprintf(), which was no longer used anywhere.

Add proclist locking where appropriate.

Revision 1.15.4.3: download - view: text, markup, annotated - select for diffs
Sun Jul 4 02:04:29 1999 UTC (25 years, 5 months ago) by chs
Branches: chs-ubc2
Diff to: previous 1.15.4.2: preferred, colored; branchpoint 1.15: preferred, colored
Changes since revision 1.15.4.2: +14 -10 lines
update for uvm.aio_done being struct buf instead of struct uvm_aiodesc.
pull in a fix from -current.

Revision 1.15.4.2: download - view: text, markup, annotated - select for diffs
Mon Jun 21 01:47:22 1999 UTC (25 years, 5 months ago) by thorpej
Branches: chs-ubc2
Diff to: previous 1.15.4.1: preferred, colored; branchpoint 1.15: preferred, colored
Changes since revision 1.15.4.1: +5 -9 lines
Sync w/ -current.

Revision 1.15.4.1: download - view: text, markup, annotated - select for diffs
Mon Jun 7 04:25:37 1999 UTC (25 years, 6 months ago) by chs
Branches: chs-ubc2
Diff to: previous 1.15: preferred, colored
Changes since revision 1.15: +110 -74 lines
merge everything from chs-ubc branch.

Revision 1.12.2.5: download - view: text, markup, annotated - select for diffs
Sun May 30 15:35:39 1999 UTC (25 years, 6 months ago) by chs
Branches: chs-ubc
Diff to: previous 1.12.2.4: preferred, colored; branchpoint 1.12: preferred, colored; next MAIN 1.13: preferred, colored
Changes since revision 1.12.2.4: +4 -2 lines
when processing aiodones, only adjust uvmexp.paging if the aio
was flagged as being started by the pagedaemon.

Revision 1.16: download - view: text, markup, annotated - select for diffs
Mon May 24 19:10:57 1999 UTC (25 years, 6 months ago) by thorpej
Branches: MAIN
Diff to: previous 1.15: preferred, colored
Changes since revision 1.15: +5 -9 lines
- 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.12.2.4: download - view: text, markup, annotated - select for diffs
Thu Apr 29 05:35:13 1999 UTC (25 years, 7 months ago) by chs
Branches: chs-ubc
Diff to: previous 1.12.2.3: preferred, colored; branchpoint 1.12: preferred, colored
Changes since revision 1.12.2.3: +1 -3 lines
remove a mistaken simple_unlock().

Revision 1.12.2.3: download - view: text, markup, annotated - select for diffs
Fri Apr 9 04:46:43 1999 UTC (25 years, 8 months ago) by chs
Branches: chs-ubc
Diff to: previous 1.12.2.2: preferred, colored; branchpoint 1.12: preferred, colored
Changes since revision 1.12.2.2: +74 -49 lines
split aiodone handling out from the pagedaemon into its own thread,
the "aiodone daemon".  the aiodone daemon never allocates memory,
so the pagedaemon will be able to safely block waiting for memory
as long as there are some pageouts in progress.  the paging queue
scheme needs to change before this is done tho.

Revision 1.15: download - view: text, markup, annotated - select for diffs
Tue Mar 30 10:12:01 1999 UTC (25 years, 8 months ago) by mycroft
Branches: 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
Diff to: previous 1.14: preferred, colored
Changes since revision 1.14: +2 -2 lines
Adjust a comparison so that the pagedaemon doesn't get stuck ping-ponging with
a process trying to allocate memory.

Revision 1.14: download - view: text, markup, annotated - select for diffs
Fri Mar 26 17:33:30 1999 UTC (25 years, 8 months ago) by chs
Branches: MAIN
Diff to: previous 1.13: preferred, colored
Changes since revision 1.13: +138 -37 lines
add uvmexp.swpgonly and use it to detect out-of-swap conditions.

numerous pagedaemon improvements were needed to make this useful:
 - don't bother waking up procs waiting for memory if there's none to be had.
 - start 4 times as many pageouts as we need free pages.
   this should reduce latency in low-memory situations.
 - in inactive scanning, if we find dirty swap-backed pages when swap space
   is full of non-resident pages, reactivate some number of these to flush
   less active pages to the inactive queue so we can consider paging them out.
   this replaces the previous scheme of inactivating pages beyond the
   inactive target when we failed to free anything during inactive scanning.
 - during both active and inactive scanning, free any swap resources from
   dirty swap-backed pages if swap space is full.  this allows other pages
   be paged out into that swap space.

Revision 1.13: download - view: text, markup, annotated - select for diffs
Thu Mar 25 18:48:55 1999 UTC (25 years, 8 months ago) by mrg
Branches: MAIN
Diff to: previous 1.12: preferred, colored
Changes since revision 1.12: +1 -5 lines
remove now >1 year old pre-release message.

Revision 1.12.2.2: download - view: text, markup, annotated - select for diffs
Thu Feb 25 04:33:55 1999 UTC (25 years, 9 months ago) by chs
Branches: chs-ubc
Diff to: previous 1.12.2.1: preferred, colored; branchpoint 1.12: preferred, colored
Changes since revision 1.12.2.1: +69 -57 lines
treat pages being paged out as "free" when determining whether to
scan the page queues.
in uvmpd_scan_inactive(), keep initating pageouts until we'll have
4 times the number of pages clean as we want free.
(this fudge factor may need adjustment).
move adjustment of uvmexp.paging to uvm_pager_put(), which is a mistake.
I think the issue was that uvm_pager_put() might fail the pageout
and retry internally with just one page, so the pagedaemon has no way
to tell how many pages are actually being cleaned.  this needs more thought.
in uvmpd_scan(), put back the business where we deactivate pages
beyond uvmexp.inactarg (there's a big comment explaining this).
rename some variables for clarity.
use TAILQ_* macros instead of poking the structs directly.

Revision 1.12.2.1: download - view: text, markup, annotated - select for diffs
Mon Nov 9 06:06:39 1998 UTC (26 years, 1 month ago) by chs
Branches: chs-ubc
Diff to: previous 1.12: preferred, colored
Changes since revision 1.12: +61 -8 lines
initial snapshot.  lots left to do.

Revision 1.12: download - view: text, markup, annotated - select for diffs
Wed Nov 4 07:06:05 1998 UTC (26 years, 1 month ago) by chs
Branches: MAIN
CVS tags: kenh-if-detach-base, kenh-if-detach, chs-ubc-base
Branch point for: chs-ubc
Diff to: previous 1.11: preferred, colored
Changes since revision 1.11: +1 -2 lines
remove outdated comment.

Revision 1.11: download - view: text, markup, annotated - select for diffs
Sun Oct 18 23:50:00 1998 UTC (26 years, 1 month ago) by chs
Branches: MAIN
Diff to: previous 1.10: preferred, colored
Changes since revision 1.10: +8 -8 lines
shift by PAGE_SHIFT instead of multiplying or dividing by PAGE_SIZE.

Revision 1.10: download - view: text, markup, annotated - select for diffs
Thu Aug 13 02:11:03 1998 UTC (26 years, 3 months ago) by eeh
Branches: MAIN
Diff to: previous 1.9: preferred, colored
Changes since revision 1.9: +3 -3 lines
Merge paddr_t changes into the main branch.

Revision 1.9.2.1: download - view: text, markup, annotated - select for diffs
Thu Jul 30 14:04:15 1998 UTC (26 years, 4 months ago) by eeh
Branches: eeh-paddr_t
Diff to: previous 1.9: preferred, colored; next MAIN 1.10: preferred, colored
Changes since revision 1.9: +3 -3 lines
Split vm_offset_t and vm_size_t into paddr_t, psize_t, vaddr_t, and vsize_t.

Revision 1.9: download - view: text, markup, annotated - select for diffs
Thu Jul 23 20:36:09 1998 UTC (26 years, 4 months ago) by pk
Branches: MAIN
CVS tags: eeh-paddr_t-base
Branch point for: eeh-paddr_t
Diff to: previous 1.8: preferred, colored
Changes since revision 1.8: +5 -1 lines
Include pool_drain() in page scans.

Revision 1.8: download - view: text, markup, annotated - select for diffs
Mon Mar 9 00:58:59 1998 UTC (26 years, 9 months ago) by mrg
Branches: MAIN
Diff to: previous 1.7: preferred, colored
Changes since revision 1.7: +810 -734 lines
KNF.

Revision 1.7: download - view: text, markup, annotated - select for diffs
Tue Feb 10 14:12:27 1998 UTC (26 years, 10 months ago) by mrg
Branches: MAIN
Diff to: previous 1.6: preferred, colored
Changes since revision 1.6: +3 -3 lines
- add defopt's for UVM, UVMHIST and PMAP_NEW.
- remove unnecessary UVMHIST_DECL's.

Revision 1.6: download - view: text, markup, annotated - select for diffs
Mon Feb 9 13:08:26 1998 UTC (26 years, 10 months ago) by mrg
Branches: MAIN
Diff to: previous 1.5: preferred, colored
Changes since revision 1.5: +4 -3 lines
keep statistics on pageout/pagein, total pages, and total operations.

Revision 1.5: download - view: text, markup, annotated - select for diffs
Sat Feb 7 17:00:44 1998 UTC (26 years, 10 months ago) by mrg
Branches: MAIN
Diff to: previous 1.4: preferred, colored
Changes since revision 1.4: +2 -1 lines
implement counters for pages paged in/out

Revision 1.4: download - view: text, markup, annotated - select for diffs
Sat Feb 7 11:09:33 1998 UTC (26 years, 10 months ago) by mrg
Branches: MAIN
Diff to: previous 1.3: preferred, colored
Changes since revision 1.3: +2 -1 lines
restore rcsids

Revision 1.3: download - view: text, markup, annotated - select for diffs
Sat Feb 7 02:35:11 1998 UTC (26 years, 10 months ago) by chs
Branches: MAIN
Diff to: previous 1.2: preferred, colored
Changes since revision 1.2: +29 -3 lines
keep track of how many pages are currently being paged out,
stop initiating new pageouts when "(free + paging) > freetarg".
fix pageq locking.

Revision 1.2: download - view: text, markup, annotated - select for diffs
Fri Feb 6 22:32:23 1998 UTC (26 years, 10 months ago) by thorpej
Branches: MAIN
Diff to: previous 1.1: preferred, colored
Changes since revision 1.1: +1 -1 lines
RCS ID police.

Revision 1.1.1.1 (vendor branch): download - view: text, markup, annotated - select for diffs
Thu Feb 5 06:25:09 1998 UTC (26 years, 10 months ago) by mrg
Branches: CDC
CVS tags: uvm980205
Diff to: previous 1.1: preferred, colored
Changes since revision 1.1: +0 -0 lines
initial import of the new virtual memory system, UVM, into -current.

UVM was written by chuck cranor <chuck@maria.wustl.edu>, with some
minor portions derived from the old Mach code.  i provided some help
getting swap and paging working, and other bug fixes/ideas.  chuck
silvers <chuq@chuq.com> also provided some other fixes.

this is the UVM kernel code portion.


this will be KNF'd shortly.  :-)

Revision 1.1: download - view: text, markup, annotated - select for diffs
Thu Feb 5 06:25:09 1998 UTC (26 years, 10 months ago) by mrg
Branches: MAIN
Initial revision

Diff request

This form allows you to request diffs between any two revisions of a file. You may select a symbolic revision name using the selection box or you may type in a numeric name using the type-in text box.

Log view options

CVSweb <webmaster@jp.NetBSD.org>