The NetBSD Project

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

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

Request diff between arbitrary revisions


Keyword substitution: kv
Default branch: MAIN


Revision 1.256: download - view: text, markup, annotated - select for diffs
Tue Mar 5 14:33:50 2024 UTC (11 months, 1 week ago) by thorpej
Branches: MAIN
CVS tags: perseant-exfatfs-base-20240630, perseant-exfatfs-base, perseant-exfatfs, HEAD
Diff to: previous 1.255: preferred, colored
Changes since revision 1.255: +4 -4 lines
Rename the local "boot_cpu" variable to "uvm_boot_cpu".

Revision 1.255: download - view: text, markup, annotated - select for diffs
Sat Feb 10 09:24:18 2024 UTC (12 months ago) by andvar
Branches: MAIN
Diff to: previous 1.254: preferred, colored
Changes since revision 1.254: +3 -3 lines
s/musn't/mustn't/ in comments.

Revision 1.254: download - view: text, markup, annotated - select for diffs
Sat Sep 23 18:20:20 2023 UTC (16 months, 2 weeks ago) by ad
Branches: MAIN
CVS tags: thorpej-ifq-base, thorpej-ifq, thorpej-altq-separation-base, thorpej-altq-separation
Diff to: previous 1.253: preferred, colored
Changes since revision 1.253: +2 -19 lines
uvm_phys_to_vm_page() turns out to be a fairly central routine due to the
way that some of the pmaps work, so try to optimise it a little.

Revision 1.253: download - view: text, markup, annotated - select for diffs
Mon Jul 17 12:55:37 2023 UTC (18 months, 4 weeks ago) by riastradh
Branches: MAIN
Diff to: previous 1.252: preferred, colored
Changes since revision 1.252: +2 -9 lines
uvm(9): One rndsource for faults -- not one per CPU.

All relevant state is per-CPU anyway; the only substantive difference
this makes is how many entries appear in `rndctl -l' output and what
they are called -- formerly the somewhat confusing `cpuN', meaning
`page faults on cpuN', and now just `uvmfault'.  I don't think
there's any real value in being able to enable or disable measurement
or counting of page faults on one CPU vs others, so although this
could be a minor compatibility change, it's hard to imagine it
matters much.

XXX kernel ABI change in struct cpu_info

Revision 1.252: download - view: text, markup, annotated - select for diffs
Sun Apr 9 09:00:56 2023 UTC (22 months ago) by riastradh
Branches: MAIN
Diff to: previous 1.251: preferred, colored
Changes since revision 1.251: +8 -5 lines
uvm(9): KASSERT(A && B) -> KASSERT(A); KASSERT(B)

Revision 1.251: download - view: text, markup, annotated - select for diffs
Wed Oct 26 23:38:09 2022 UTC (2 years, 3 months ago) by riastradh
Branches: MAIN
CVS tags: netbsd-10-base, netbsd-10-1-RELEASE, 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, netbsd-10
Diff to: previous 1.250: preferred, colored
Changes since revision 1.250: +5 -8 lines
ddb/db_active.h: New home for extern db_active.

This can be included unconditionally, and db_active can then be
queried unconditionally; if DDB is not in the kernel, then db_active
is a constant zero.  Reduces need for #include opt_ddb.h, #ifdef DDB.

Revision 1.199.4.1: download - view: text, markup, annotated - select for diffs
Tue Jul 6 04:22:34 2021 UTC (3 years, 7 months ago) by martin
Branches: netbsd-9
CVS tags: netbsd-9-4-RELEASE, netbsd-9-3-RELEASE
Diff to: previous 1.199: preferred, colored; next MAIN 1.200: preferred, colored
Changes since revision 1.199: +14 -4 lines
Pull up following revision(s) - all via patch -
(requested by riastradh in ticket #1317):

	sys/uvm/uvm_page.c: revision 1.248
	sys/uvm/uvm_anon.c: revision 1.80
	sys/rump/librump/rumpvfs/vm_vfs.c: revision 1.40
	sys/rump/librump/rumpvfs/vm_vfs.c: revision 1.41
	sys/rump/librump/rumpkern/vm.c: revision 1.191
	sys/uvm/uvm_pager.c: revision 1.130
	external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c: revision 1.71
	tests/rump/rumpkern/t_vm.c: revision 1.5
	tests/rump/rumpkern/t_vm.c: revision 1.6
	sys/rump/librump/rumpvfs/vm_vfs.c: revision 1.39

Move the handling of PG_PAGEOUT from uvm_aio_aiodone_pages() to
uvm_page_unbusy() so that all callers of uvm_page_unbusy() don't need to
handle this flag separately.  Split out the pages part of uvm_aio_aiodone()
into uvm_aio_aiodone_pages() in rump just like in the real kernel.

In ZFS functions that can fail to copy data between the ARC and VM pages,
use uvm_aio_aiodone_pages() rather than uvm_page_unbusy() so that we can
handle these "I/O" errors.  Fixes PR 55702.

fix an incorrect assertion in the previous commit.

Handle PG_PAGEOUT in uvm_anon_release() too.

Commit the ZFS file that I forgot in this previous commit:

Move the handling of PG_PAGEOUT from uvm_aio_aiodone_pages() to
uvm_page_unbusy() so that all callers of uvm_page_unbusy() don't need to
handle this flag separately.  Split out the pages part of uvm_aio_aiodone()
into uvm_aio_aiodone_pages() in rump just like in the real kernel.

In ZFS functions that can fail to copy data between the ARC and VM pages,
use uvm_aio_aiodone_pages() rather than uvm_page_unbusy() so that we can
handle these "I/O" errors.  Fixes PR 55702.
update the rump copy of uvm_page_unbusy() to match the real version,
in particular handle PG_PAGEOUT.  fixes a few atf tests.
the busypage test is buggy, expect it to fail.

make rump's uvm_aio_aiodone_pages() look more like the kernel version.
fixes some more rumpy assertions.

for the busypage test, replace atf_tc_expect_fail() with atf_tc_skip()
because atf apparently has no way to expect a test program to crash.
fixes PR 55945.

Revision 1.249.2.1: download - view: text, markup, annotated - select for diffs
Sun Jan 3 16:35:05 2021 UTC (4 years, 1 month ago) by thorpej
Branches: thorpej-futex
Diff to: previous 1.249: preferred, colored; next MAIN 1.250: preferred, colored
Changes since revision 1.249: +4 -4 lines
Sync w/ HEAD.

Revision 1.250: download - view: text, markup, annotated - select for diffs
Sun Dec 20 11:11:34 2020 UTC (4 years, 1 month ago) by skrll
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-futex-base, thorpej-cfargs2-base, thorpej-cfargs2, thorpej-cfargs-base, thorpej-cfargs, 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
Diff to: previous 1.249: preferred, colored
Changes since revision 1.249: +4 -4 lines
Some KNF.  NFC.

Revision 1.249: download - view: text, markup, annotated - select for diffs
Sun Oct 18 18:31:31 2020 UTC (4 years, 3 months ago) by chs
Branches: MAIN
Branch point for: thorpej-futex
Diff to: previous 1.248: preferred, colored
Changes since revision 1.248: +4 -4 lines
In the current code, CPU_COUNT_FREEPAGES counts pages in the global
freelists AND the per-CPU pgflcache free pages caches, and that is the
number of pages that the pagedaemon considers to be available.
However, most pages in the pgflcache per-CPU free page caches are NOT
actually available for any particular allocation, and thus allocating
a page can fail even though the pagedaemon thinks enough pages are
available.  This change makes CPU_COUNT_FREEPAGES only count pages in
the global freelists and not pages in the pgflcache per-CPU free page
caches, thus better aligning the pagedaemon's view of how many pages
are available with the number of pages that can actually be allocated
by any particular request.  This fixes a hang that Christos was hitting.

Revision 1.248: download - view: text, markup, annotated - select for diffs
Sun Oct 18 18:22:29 2020 UTC (4 years, 3 months ago) by chs
Branches: MAIN
Diff to: previous 1.247: preferred, colored
Changes since revision 1.247: +14 -4 lines
Move the handling of PG_PAGEOUT from uvm_aio_aiodone_pages() to
uvm_page_unbusy() so that all callers of uvm_page_unbusy() don't need to
handle this flag separately.  Split out the pages part of uvm_aio_aiodone()
into uvm_aio_aiodone_pages() in rump just like in the real kernel.
In ZFS functions that can fail to copy data between the ARC and VM pages,
use uvm_aio_aiodone_pages() rather than uvm_page_unbusy() so that we can
handle these "I/O" errors.  Fixes PR 55702.

Revision 1.247: download - view: text, markup, annotated - select for diffs
Sun Sep 20 10:30:05 2020 UTC (4 years, 4 months ago) by skrll
Branches: MAIN
Diff to: previous 1.246: preferred, colored
Changes since revision 1.246: +2 -46 lines
G/C uvm_pagezerocheck

Revision 1.246: download - view: text, markup, annotated - select for diffs
Sat Aug 15 01:27:22 2020 UTC (4 years, 5 months ago) by tnn
Branches: MAIN
Diff to: previous 1.245: preferred, colored
Changes since revision 1.245: +3 -3 lines
add a __diagused to fix non-DIAGNOSTIC kernel

Revision 1.245: download - view: text, markup, annotated - select for diffs
Fri Aug 14 09:06:15 2020 UTC (4 years, 6 months ago) by chs
Branches: MAIN
Diff to: previous 1.244: preferred, colored
Changes since revision 1.244: +16 -9 lines
centralize calls from UVM to radixtree into a few functions.
in those functions, assert that the object lock is held in
the correct mode.

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

Convert UVMHIST_{CALLED,LOG} into UVMHIST_CALLARGS

Revision 1.243: download - view: text, markup, annotated - select for diffs
Wed Jun 17 06:24:15 2020 UTC (4 years, 7 months ago) by thorpej
Branches: MAIN
Diff to: previous 1.242: preferred, colored
Changes since revision 1.242: +2 -3 lines
<sys/extent.h> not needed here.

Revision 1.242: download - view: text, markup, annotated - select for diffs
Sun Jun 14 21:41:42 2020 UTC (4 years, 8 months ago) by ad
Branches: MAIN
Diff to: previous 1.241: preferred, colored
Changes since revision 1.241: +13 -59 lines
Remove PG_ZERO.  It worked brilliantly on x86 machines from the mid-90s but
having spent an age experimenting with it over the last 6 months on various
machines and with different use cases it's always either break-even or a
slight net loss for me.

Revision 1.241: download - view: text, markup, annotated - select for diffs
Sat Jun 13 19:55:39 2020 UTC (4 years, 8 months ago) by ad
Branches: MAIN
Diff to: previous 1.240: preferred, colored
Changes since revision 1.240: +23 -8 lines
uvm_pagerealloc(): resurrect the insertion case.

Revision 1.240: download - view: text, markup, annotated - select for diffs
Thu Jun 11 22:21:05 2020 UTC (4 years, 8 months ago) by ad
Branches: MAIN
Diff to: previous 1.239: preferred, colored
Changes since revision 1.239: +28 -35 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.239: download - view: text, markup, annotated - select for diffs
Thu Jun 11 19:20:47 2020 UTC (4 years, 8 months ago) by ad
Branches: MAIN
Diff to: previous 1.238: preferred, colored
Changes since revision 1.238: +3 -3 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.238: download - view: text, markup, annotated - select for diffs
Sun May 24 19:46:59 2020 UTC (4 years, 8 months ago) by ad
Branches: MAIN
Diff to: previous 1.237: preferred, colored
Changes since revision 1.237: +18 -3 lines
Add uvm_pagewanted_p(): return true if someone is waiting on the page and
assert caller has correct lock to observe that.

Revision 1.237: download - view: text, markup, annotated - select for diffs
Tue May 19 20:46:39 2020 UTC (4 years, 8 months ago) by ad
Branches: MAIN
Diff to: previous 1.236: preferred, colored
Changes since revision 1.236: +6 -6 lines
UVM_PAGE_TRKOWN: print the LID too

Revision 1.236: download - view: text, markup, annotated - select for diffs
Sun May 17 17:12:28 2020 UTC (4 years, 8 months ago) by ad
Branches: MAIN
Diff to: previous 1.235: preferred, colored
Changes since revision 1.235: +3 -7 lines
Don't set PG_AOBJ on a page unless UVM_OBJ_IS_AOBJ(), otherwise it can
catch pages from e.g. uvm_loanzero_object.

Revision 1.235: download - view: text, markup, annotated - select for diffs
Sun May 17 15:11:57 2020 UTC (4 years, 8 months ago) by ad
Branches: MAIN
Diff to: previous 1.234: preferred, colored
Changes since revision 1.234: +12 -27 lines
- If the hardware provided NUMA info, then use it to decide how to set up
  the allocator's buckets, instead of doing round robin distribution.  There
  are open questions here but this is better than doing nothing.

- Kernel reserve pages are for the kernel not realtime threads.

Revision 1.198.2.3: download - view: text, markup, annotated - select for diffs
Mon Apr 13 08:05:21 2020 UTC (4 years, 10 months ago) by martin
Branches: phil-wifi
Diff to: previous 1.198.2.2: preferred, colored; branchpoint 1.198: preferred, colored; next MAIN 1.199: preferred, colored
Changes since revision 1.198.2.2: +2 -8 lines
Mostly merge changes from HEAD upto 20200411

Revision 1.198.2.2: download - view: text, markup, annotated - select for diffs
Wed Apr 8 14:09:04 2020 UTC (4 years, 10 months ago) by martin
Branches: phil-wifi
Diff to: previous 1.198.2.1: preferred, colored; branchpoint 1.198: preferred, colored
Changes since revision 1.198.2.1: +1036 -606 lines
Merge changes from current as of 20200406

Revision 1.234: download - view: text, markup, annotated - select for diffs
Tue Mar 17 18:31:39 2020 UTC (4 years, 10 months ago) by ad
Branches: MAIN
CVS tags: phil-wifi-20200421, phil-wifi-20200411, phil-wifi-20200406, bouyer-xenpvh-base2, bouyer-xenpvh-base1, bouyer-xenpvh-base, bouyer-xenpvh
Diff to: previous 1.233: preferred, colored
Changes since revision 1.233: +12 -14 lines
Tweak the March 14th change to make page waits interlocked by pg->interlock.
Remove unneeded changes and only deal with the PQ_WANTED flag, to exclude
possible bugs.

Revision 1.233: download - view: text, markup, annotated - select for diffs
Sun Mar 15 11:17:22 2020 UTC (4 years, 11 months ago) by rin
Branches: MAIN
Diff to: previous 1.232: preferred, colored
Changes since revision 1.232: +3 -2 lines
Fix build with UVMHIST.

Revision 1.232: download - view: text, markup, annotated - select for diffs
Sat Mar 14 21:06:35 2020 UTC (4 years, 11 months ago) by ad
Branches: MAIN
Diff to: previous 1.231: preferred, colored
Changes since revision 1.231: +5 -5 lines
Don't require a write lock for page enqueue/activate/deactivate.

Revision 1.231: download - view: text, markup, annotated - select for diffs
Sat Mar 14 20:23:51 2020 UTC (4 years, 11 months ago) by ad
Branches: MAIN
Diff to: previous 1.230: preferred, colored
Changes since revision 1.230: +64 -13 lines
Make page waits (WANTED vs BUSY) interlocked by pg->interlock.  Gets RW
locks out of the equation for sleep/wakeup, and allows observing+waiting
for busy pages when holding only a read lock.  Proposed on tech-kern.

Revision 1.230: download - view: text, markup, annotated - select for diffs
Tue Mar 3 08:13:44 2020 UTC (4 years, 11 months ago) by skrll
Branches: MAIN
Diff to: previous 1.229: preferred, colored
Changes since revision 1.229: +10 -10 lines
Trailing whitespace

Revision 1.229: download - view: text, markup, annotated - select for diffs
Tue Mar 3 07:51:26 2020 UTC (4 years, 11 months ago) by skrll
Branches: MAIN
Diff to: previous 1.228: preferred, colored
Changes since revision 1.228: +3 -3 lines
Typo in comment

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

Revision 1.228: download - view: text, markup, annotated - select for diffs
Thu Feb 27 22:12:54 2020 UTC (4 years, 11 months ago) by ad
Branches: MAIN
CVS tags: is-mlppp-base, is-mlppp, ad-namecache-base3
Diff to: previous 1.227: preferred, colored
Changes since revision 1.227: +14 -4 lines
Tighten up the locking around vp->v_iflag a little more after the recent
split of vmobjlock & v_interlock.

Revision 1.227: download - view: text, markup, annotated - select for diffs
Sun Feb 23 23:54:52 2020 UTC (4 years, 11 months ago) by ad
Branches: MAIN
Diff to: previous 1.226: preferred, colored
Changes since revision 1.226: +3 -3 lines
Fix a comment.

Revision 1.226: download - view: text, markup, annotated - select for diffs
Sun Feb 23 15:46:43 2020 UTC (4 years, 11 months ago) by ad
Branches: MAIN
Diff to: previous 1.225: preferred, colored
Changes since revision 1.225: +30 -30 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.221.2.2: download - view: text, markup, annotated - select for diffs
Sat Jan 25 22:38:53 2020 UTC (5 years ago) by ad
Branches: ad-namecache
Diff to: previous 1.221.2.1: preferred, colored; branchpoint 1.221: preferred, colored
Changes since revision 1.221.2.1: +12 -8 lines
Sync with head.

Revision 1.225: download - view: text, markup, annotated - select for diffs
Tue Jan 21 20:37:06 2020 UTC (5 years ago) by ad
Branches: MAIN
CVS tags: ad-namecache-base2
Diff to: previous 1.224: preferred, colored
Changes since revision 1.224: +12 -8 lines
uvmpdpol_pageactive(): the change to not re-activate recently activated
pages worked great with uvm_pageqlock, but it doesn't buy anything any more,
because now the busy pages are likely in a per-CPU queue somewhere waiting
to be processed, and changing the intent on those queued pages costs next
to nothing.  Remove this and get back all the bits in pg->pqflags.

Revision 1.221.2.1: download - view: text, markup, annotated - select for diffs
Fri Jan 17 21:47:38 2020 UTC (5 years ago) by ad
Branches: ad-namecache
Diff to: previous 1.221: preferred, colored
Changes since revision 1.221: +129 -46 lines
Sync with head.

Revision 1.224: download - view: text, markup, annotated - select for diffs
Wed Jan 15 17:55:45 2020 UTC (5 years ago) by ad
Branches: MAIN
CVS tags: ad-namecache-base1
Diff to: previous 1.223: preferred, colored
Changes since revision 1.223: +118 -36 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.223: download - view: text, markup, annotated - select for diffs
Sat Jan 11 19:51:01 2020 UTC (5 years, 1 month ago) by ad
Branches: MAIN
Diff to: previous 1.222: preferred, colored
Changes since revision 1.222: +9 -2 lines
- uvm_pagezerocheck(): put a global lock around it to protect the single
  page mapping (DEBUG only).

- uvm_pagefree(): increment zeropages as needed.

Revision 1.222: download - view: text, markup, annotated - select for diffs
Thu Jan 9 16:35:03 2020 UTC (5 years, 1 month ago) by ad
Branches: MAIN
Diff to: previous 1.221: preferred, colored
Changes since revision 1.221: +6 -12 lines
- Many small tweaks to the SMT awareness in the scheduler.  It does a much
  better job now at keeping all physical CPUs busy, while using the extra
  threads to help out.  In particular, during preempt() if we're using SMT,
  try to find a better CPU to run on and teleport curlwp there.

- Change the CPU topology stuff so it can work on asymmetric systems.  This
  mainly entails rearranging one of the CPU lists so it makes sense in all
  configurations.

- Add a parameter to cpu_topology_set() to note that a CPU is "slow", for
  where there are fast CPUs and slow CPUs, like with the Rockwell RK3399.
  Extend the SMT awareness to try and handle that situation too (keep fast
  CPUs busy, use slow CPUs as helpers).

Revision 1.221: download - view: text, markup, annotated - select for diffs
Sun Jan 5 22:01:09 2020 UTC (5 years, 1 month ago) by ad
Branches: MAIN
CVS tags: ad-namecache-base
Branch point for: ad-namecache
Diff to: previous 1.220: preferred, colored
Changes since revision 1.220: +13 -22 lines
Page allocator:

The method for assigning pages to buckets in the non-NUMA case sucks.  It
can defeat memory interleaving in the hardware, and not distribute pages
fairly by colour.  To fix this and make things more deterministic, take the
physical PFN and colour into account.

Then when freeing pages, in the non-NUMA case don't change the page's bucket
either.  Keeping the bucket number stable will also permit partitioning page
replacement state by CPU package / NUMA node.

Revision 1.220: download - view: text, markup, annotated - select for diffs
Tue Dec 31 22:42:51 2019 UTC (5 years, 1 month ago) by ad
Branches: MAIN
Diff to: previous 1.219: preferred, colored
Changes since revision 1.219: +112 -25 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.219: download - view: text, markup, annotated - select for diffs
Tue Dec 31 13:07:14 2019 UTC (5 years, 1 month ago) by ad
Branches: MAIN
Diff to: previous 1.218: preferred, colored
Changes since revision 1.218: +6 -6 lines
Rename uvm_free() -> uvm_availmem().

Revision 1.218: download - view: text, markup, annotated - select for diffs
Tue Dec 31 12:40:27 2019 UTC (5 years, 1 month ago) by ad
Branches: MAIN
Diff to: previous 1.217: preferred, colored
Changes since revision 1.217: +13 -13 lines
Rename uvm_page_locked_p() -> uvm_page_owner_locked_p()

Revision 1.217: download - view: text, markup, annotated - select for diffs
Mon Dec 30 17:45:53 2019 UTC (5 years, 1 month ago) by ad
Branches: MAIN
Diff to: previous 1.216: preferred, colored
Changes since revision 1.216: +11 -5 lines
uvm_pagealloc_pgb(): don't fill cache if we're into the reserves.

uvm_pagereplace(): use radix_tree_replace_node() to avoid alloc/free.

Revision 1.216: download - view: text, markup, annotated - select for diffs
Sat Dec 28 16:07:41 2019 UTC (5 years, 1 month ago) by ad
Branches: MAIN
Diff to: previous 1.215: preferred, colored
Changes since revision 1.215: +5 -4 lines
Add missing call to uvm_pgflcache_resume().

Revision 1.215: download - view: text, markup, annotated - select for diffs
Sat Dec 28 08:49:41 2019 UTC (5 years, 1 month ago) by martin
Branches: MAIN
Diff to: previous 1.214: preferred, colored
Changes since revision 1.214: +4 -4 lines
Use PRIxPADDR to print a physical address (instead of casting to void*
and printing a pointer - which does not work well if sizeof(paddr_t) !=
sizeof(void*)).

Revision 1.214: download - view: text, markup, annotated - select for diffs
Fri Dec 27 13:19:24 2019 UTC (5 years, 1 month ago) by ad
Branches: MAIN
Diff to: previous 1.213: preferred, colored
Changes since revision 1.213: +7 -8 lines
Nothing uses uvm.cpus any more, and we can do the same with cpu_lookup(),
so get rid of it.

Revision 1.213: download - view: text, markup, annotated - select for diffs
Fri Dec 27 12:51:57 2019 UTC (5 years, 1 month ago) by ad
Branches: MAIN
Diff to: previous 1.212: preferred, colored
Changes since revision 1.212: +591 -374 lines
Redo the page allocator to perform better, especially on multi-core and
multi-socket systems.  Proposed on tech-kern.  While here:

- add rudimentary NUMA support - needs more work.
- remove now unused "listq" from vm_page.

Revision 1.212: download - view: text, markup, annotated - select for diffs
Sun Dec 22 16:37:36 2019 UTC (5 years, 1 month ago) by ad
Branches: MAIN
Diff to: previous 1.211: preferred, colored
Changes since revision 1.211: +21 -16 lines
uvm_pagealloc_strat(): Tweak the locking to allow for lazy dequeue of pages
in the pdpolicy code.  This means taking pg->interlock if assigning to
an object.  The remaining barrier to lazy dequeue is having a dedicated
TAILQ_ENTRY in the page (it's currently shared with the page allocator).

Revision 1.211: download - view: text, markup, annotated - select for diffs
Sat Dec 21 15:16:14 2019 UTC (5 years, 1 month ago) by ad
Branches: MAIN
Diff to: previous 1.210: preferred, colored
Changes since revision 1.210: +3 -3 lines
uvm_page_to_phys: mask off the lower bits.

Revision 1.210: download - view: text, markup, annotated - select for diffs
Sat Dec 21 14:50:34 2019 UTC (5 years, 1 month ago) by ad
Branches: MAIN
Diff to: previous 1.209: preferred, colored
Changes since revision 1.209: +3 -4 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.209: download - view: text, markup, annotated - select for diffs
Sat Dec 21 14:41:44 2019 UTC (5 years, 1 month ago) by ad
Branches: MAIN
Diff to: previous 1.208: preferred, colored
Changes since revision 1.208: +10 -8 lines
- Rename VM_PGCOLOR_BUCKET() to VM_PGCOLOR().  I want to reuse "bucket" for
  something else soon and TBH it matches what this macro does better.

- Add inlines to set/get locator values in the unused lower bits of
  pg->phys_addr.  Begin by using it to cache the freelist index, because
  computing it is expensive and that shows up during profiling.  Discussed
  on tech-kern.

Revision 1.208: download - view: text, markup, annotated - select for diffs
Sat Dec 21 14:33:18 2019 UTC (5 years, 1 month ago) by ad
Branches: MAIN
Diff to: previous 1.207: preferred, colored
Changes since revision 1.207: +3 -3 lines
Counter tweaks:

"zeroaborts" + "free" don't need to be per-CPU counters, and "bucketmiss"
wasn't used.  Remove those and cluster by usage.

Revision 1.207: download - view: text, markup, annotated - select for diffs
Sat Dec 21 12:58:26 2019 UTC (5 years, 1 month ago) by ad
Branches: MAIN
Diff to: previous 1.206: preferred, colored
Changes since revision 1.206: +13 -2 lines
Add uvm_free(): returns number of free pages in system.

Revision 1.206: download - view: text, markup, annotated - select for diffs
Wed Dec 18 20:38:14 2019 UTC (5 years, 1 month ago) by ad
Branches: MAIN
Diff to: previous 1.205: preferred, colored
Changes since revision 1.205: +29 -43 lines
PR kern/54783: t_mmap crahes the kernel

- Fix various locking & sequencing errors with breaking loans.

- Don't call uvm_pageremove_tree() while holding pg->interlock as radixtree
  can take further locks when freeing nodes.

Revision 1.205: download - view: text, markup, annotated - select for diffs
Mon Dec 16 22:47:55 2019 UTC (5 years, 1 month ago) by ad
Branches: MAIN
Diff to: previous 1.204: preferred, colored
Changes since revision 1.204: +23 -23 lines
- Extend the per-CPU counters matt@ did to include all of the hot counters
  in UVM, excluding uvmexp.free, which needs special treatment and will be
  done with a separate commit.  Cuts system time for a build by 20-25% on
  a 48 CPU machine w/DIAGNOSTIC.

- Avoid 64-bit integer divide on every fault (for rnd_add_uint32).

Revision 1.204: download - view: text, markup, annotated - select for diffs
Mon Dec 16 18:30:18 2019 UTC (5 years, 1 month ago) by ad
Branches: MAIN
Diff to: previous 1.203: preferred, colored
Changes since revision 1.203: +6 -5 lines
Merge from yamt-pagecache:

uvm_pagerealloc(): Don't bother with insert to new.  Nobody uses it and it
can return an error now due to radixtree.

Revision 1.203: download - view: text, markup, annotated - select for diffs
Sun Dec 15 21:11:35 2019 UTC (5 years, 1 month ago) by ad
Branches: MAIN
Diff to: previous 1.202: preferred, colored
Changes since revision 1.202: +10 -23 lines
Merge from yamt-pagecache:

- do gang lookup of pages using radixtree.
- remove now unused uvm_object::uo_memq and vm_page::listq.queue.

Revision 1.202: download - view: text, markup, annotated - select for diffs
Sat Dec 14 17:28:58 2019 UTC (5 years, 2 months ago) by ad
Branches: MAIN
Diff to: previous 1.201: preferred, colored
Changes since revision 1.201: +35 -58 lines
Merge from yamt-pagecache: use radixtree for page lookup.

rbtree page lookup was introduced during the NetBSD 5.0 development cycle to
bypass lock contention problems with the (then) global page hash, and was a
temporary solution to allow us to make progress.  radixtree is the intended
replacement.

Ok yamt@.

Revision 1.201: download - view: text, markup, annotated - select for diffs
Fri Dec 13 20:10:22 2019 UTC (5 years, 2 months ago) by ad
Branches: MAIN
Diff to: previous 1.200: preferred, colored
Changes since revision 1.200: +97 -83 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.200: download - view: text, markup, annotated - select for diffs
Fri Sep 20 11:09:43 2019 UTC (5 years, 4 months ago) by maxv
Branches: MAIN
CVS tags: phil-wifi-20191119
Diff to: previous 1.199: preferred, colored
Changes since revision 1.199: +4 -10 lines
Fix programming mistake: 'paddrp' is a pointer given as argument, setting
it to NULL in the called function does not set it to NULL in the caller.

Actually, the callers of these functions do not do anything with the
special error handling, so drop the unused checks and the NULL assignments
altogether.

Found by the lgtm bot.

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

Revision 1.199: download - view: text, markup, annotated - select for diffs
Thu Mar 14 19:10:04 2019 UTC (5 years, 11 months ago) by kre
Branches: MAIN
CVS tags: phil-wifi-20190609, netbsd-9-base, netbsd-9-2-RELEASE, netbsd-9-1-RELEASE, netbsd-9-0-RELEASE, netbsd-9-0-RC2, netbsd-9-0-RC1, isaki-audio2-base, isaki-audio2
Branch point for: netbsd-9
Diff to: previous 1.198: preferred, colored
Changes since revision 1.198: +4 -2 lines
Avoid a panic from the sequence

	mlock(buf, 0);
	munlock(buf, 0);
	mlock(buf, page);
	munlock(buf, page);

where buf is page aligned, and page is actually anything > 0
(but not too big) which will get rounded up to the next multiple
of the page size.

In that sequence, it is possible that the 1st munlock() is optional.

Add a KASSERT() (or two) to detect the first effects of the problem
(without that, or in !DIAGNOSTIC kernels) the problem eventually
causes some kind of problem or other (most often still a panic.)

After this, mlock(anything, 0) (or munlock) validates "anything"
but is otherwise a no-op (regardless of the alignment of anything).

Also, don't treat mlock(buf, verybig) as equivalent to mlock(buf, 0)
which is (more or less) what we had been doing.

XXX pullup -8 (maybe -7 as well, need to check).

Revision 1.195.2.2: download - view: text, markup, annotated - select for diffs
Mon May 21 04:36:17 2018 UTC (6 years, 8 months ago) by pgoyette
Branches: pgoyette-compat
CVS tags: pgoyette-compat-merge-20190127
Diff to: previous 1.195.2.1: preferred, colored; branchpoint 1.195: preferred, colored; next MAIN 1.196: preferred, colored
Changes since revision 1.195.2.1: +48 -2 lines
Sync with HEAD

Revision 1.198: download - view: text, markup, annotated - select for diffs
Sat May 19 15:03:26 2018 UTC (6 years, 8 months ago) by jdolecek
Branches: MAIN
CVS tags: phil-wifi-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
Branch point for: phil-wifi
Diff to: previous 1.197: preferred, colored
Changes since revision 1.197: +47 -2 lines
add experimental new function uvm_direct_process(), to allow of read/writes
of contents of uvm pages without mapping them into kernel, using
direct map or moral equivalent; pmaps supporting the interface need
to provide pmap_direct_process() and define PMAP_DIRECT

implement the new interface for amd64; I hear alpha and mips might be relatively
easy to add too, but I lack the knowledge

part of resolution for PR kern/53124

Revision 1.197: download - view: text, markup, annotated - select for diffs
Sat May 19 11:02:33 2018 UTC (6 years, 8 months ago) by jdolecek
Branches: MAIN
Diff to: previous 1.196: preferred, colored
Changes since revision 1.196: +3 -2 lines
detect wraparound when bumping page wire_count and loan_count

Revision 1.195.2.1: download - view: text, markup, annotated - select for diffs
Wed May 2 07:20:24 2018 UTC (6 years, 9 months ago) by pgoyette
Branches: pgoyette-compat
Diff to: previous 1.195: preferred, colored
Changes since revision 1.195: +3 -3 lines
Synch with HEAD

Revision 1.196: download - view: text, markup, annotated - select for diffs
Tue Apr 24 16:35:53 2018 UTC (6 years, 9 months ago) by jakllsch
Branches: MAIN
CVS tags: pgoyette-compat-0502
Diff to: previous 1.195: preferred, colored
Changes since revision 1.195: +3 -3 lines
In uvm_page_recolor(), kmem_free() old size rather than new size.

From Yaniv Abraham-Rabinovitch in PR kern/53208.

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

Revision 1.195: download - view: text, markup, annotated - select for diffs
Sat Dec 2 08:15:43 2017 UTC (7 years, 2 months ago) by mrg
Branches: MAIN
CVS tags: tls-maxphys-base-20171202, pgoyette-compat-base, pgoyette-compat-0422, pgoyette-compat-0415, pgoyette-compat-0407, pgoyette-compat-0330, pgoyette-compat-0322, pgoyette-compat-0315
Branch point for: pgoyette-compat
Diff to: previous 1.194: preferred, colored
Changes since revision 1.194: +3 -2 lines
add two new members to uvmexp_sysctl{}:  bootpages and poolpages.
bootpages is set to the pages allocated via uvm_pageboot_alloc().
poolpages is calculated from the list of pools nr_pages members.

this brings us closer to having a valid total of pages known by
the system, vs actual pages originally managed.

XXX: poolpages needs some handling for PR_RECURSIVE pools still.

Revision 1.193.2.1: download - view: text, markup, annotated - select for diffs
Thu Nov 2 21:29:53 2017 UTC (7 years, 3 months ago) by snj
Branches: netbsd-8
CVS tags: netbsd-8-3-RELEASE, netbsd-8-2-RELEASE, netbsd-8-1-RELEASE, netbsd-8-1-RC1, netbsd-8-0-RELEASE, netbsd-8-0-RC2, netbsd-8-0-RC1, matt-nb8-mediatek-base, matt-nb8-mediatek
Diff to: previous 1.193: preferred, colored; next MAIN 1.194: preferred, colored
Changes since revision 1.193: +6 -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.194: download - view: text, markup, annotated - select for diffs
Sat Oct 28 00:37:13 2017 UTC (7 years, 3 months ago) by pgoyette
Branches: MAIN
Diff to: previous 1.193: preferred, colored
Changes since revision 1.193: +6 -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.186.2.3: download - view: text, markup, annotated - select for diffs
Mon Aug 28 17:53:17 2017 UTC (7 years, 5 months ago) by skrll
Branches: nick-nhusb
Diff to: previous 1.186.2.2: preferred, colored; branchpoint 1.186: preferred, colored; next MAIN 1.187: preferred, colored
Changes since revision 1.186.2.2: +3 -8 lines
Sync with HEAD

Revision 1.193: download - view: text, markup, annotated - select for diffs
Thu Jun 1 02:45:15 2017 UTC (7 years, 8 months ago) by chs
Branches: MAIN
CVS tags: perseant-stdc-iso10646-base, perseant-stdc-iso10646, nick-nhusb-base-20170825, netbsd-8-base
Branch point for: netbsd-8
Diff to: previous 1.192: preferred, colored
Changes since revision 1.192: +2 -7 lines
remove checks for failure after memory allocation calls that cannot fail:

  kmem_alloc() with KM_SLEEP
  kmem_zalloc() with KM_SLEEP
  percpu_alloc()
  pserialize_create()
  psref_class_create()

all of these paths include an assertion that the allocation has not failed,
so callers should not assert that again.

Revision 1.191.2.1: download - view: text, markup, annotated - select for diffs
Fri Apr 21 16:54:09 2017 UTC (7 years, 9 months ago) by bouyer
Branches: bouyer-socketcan
Diff to: previous 1.191: preferred, colored; next MAIN 1.192: preferred, colored
Changes since revision 1.191: +3 -3 lines
Sync with HEAD

Revision 1.187.2.2: download - view: text, markup, annotated - select for diffs
Mon Mar 20 06:57:54 2017 UTC (7 years, 10 months ago) by pgoyette
Branches: pgoyette-localcount
Diff to: previous 1.187.2.1: preferred, colored; branchpoint 1.187: preferred, colored; next MAIN 1.188: preferred, colored
Changes since revision 1.187.2.1: +3 -3 lines
Sync with HEAD

Revision 1.186.2.2: download - view: text, markup, annotated - select for diffs
Sun Feb 5 13:41:01 2017 UTC (8 years ago) by skrll
Branches: nick-nhusb
Diff to: previous 1.186.2.1: preferred, colored; branchpoint 1.186: preferred, colored
Changes since revision 1.186.2.1: +74 -348 lines
Sync with HEAD

Revision 1.192: download - view: text, markup, annotated - select for diffs
Sun Feb 5 07:25:49 2017 UTC (8 years ago) by maya
Branches: MAIN
CVS tags: prg-localcount2-base3, prg-localcount2-base2, prg-localcount2-base1, prg-localcount2-base, prg-localcount2, pgoyette-localcount-20170426, pgoyette-localcount-20170320, jdolecek-ncq-base, jdolecek-ncq, bouyer-socketcan-base1
Diff to: previous 1.191: preferred, colored
Changes since revision 1.191: +3 -3 lines
Fix off by one.
ok cherry

Revision 1.187.2.1: download - view: text, markup, annotated - select for diffs
Sat Jan 7 08:56:53 2017 UTC (8 years, 1 month ago) by pgoyette
Branches: pgoyette-localcount
Diff to: previous 1.187: preferred, colored
Changes since revision 1.187: +74 -348 lines
Sync with HEAD.  (Note that most of these changes are simply $NetBSD$
tag issues.)

Revision 1.191: download - view: text, markup, annotated - select for diffs
Fri Dec 23 09:36:55 2016 UTC (8 years, 1 month ago) by skrll
Branches: MAIN
CVS tags: pgoyette-localcount-20170107, nick-nhusb-base-20170204, bouyer-socketcan-base
Branch point for: bouyer-socketcan
Diff to: previous 1.190: preferred, colored
Changes since revision 1.190: +7 -8 lines
Fix uvm_page_physget_freelist so that it actually performs the two passes
it mentions.

Revision 1.190: download - view: text, markup, annotated - select for diffs
Fri Dec 23 07:15:28 2016 UTC (8 years, 1 month ago) by cherry
Branches: MAIN
Diff to: previous 1.189: preferred, colored
Changes since revision 1.189: +74 -349 lines
"Make NetBSD great again!"

Introduce uvm_hotplug(9) to the kernel.

Many thanks, in no particular order to:

TNF, for funding the project.

Chuck Silvers - for multiple API reviews and feedback.
Nick Hudson - for testing on multiple architectures and bugfix patches.
Everyone who helped with boot testing.

KeK (http://www.kek.org.in) for hosting the primary developers.

Revision 1.189: download - view: text, markup, annotated - select for diffs
Thu Dec 22 16:05:15 2016 UTC (8 years, 1 month ago) by cherry
Branches: MAIN
Diff to: previous 1.188: preferred, colored
Changes since revision 1.188: +3 -3 lines
physmem should be of type psize_t

Also, use PRIxPSIZE when printf(9)ing physmem.

Revision 1.188: download - view: text, markup, annotated - select for diffs
Thu Dec 22 13:26:25 2016 UTC (8 years, 1 month ago) by cherry
Branches: MAIN
Diff to: previous 1.187: preferred, colored
Changes since revision 1.187: +6 -4 lines
Use uvm_physseg.h:uvm_page_physload() instead of uvm_extern.h

For this, include uvm_physseg.h in the build and include tree, make a
cosmetic modification to the prototype for uvm_page_physload().

Revision 1.186.2.1: download - view: text, markup, annotated - select for diffs
Sat Jun 6 14:40:31 2015 UTC (9 years, 8 months ago) by skrll
Branches: nick-nhusb
Diff to: previous 1.186: preferred, colored
Changes since revision 1.186: +7 -3 lines
Sync with HEAD

Revision 1.187: download - view: text, markup, annotated - select for diffs
Sat Apr 11 19:24:13 2015 UTC (9 years, 10 months ago) by joerg
Branches: MAIN
CVS tags: pgoyette-localcount-base, pgoyette-localcount-20161104, pgoyette-localcount-20160806, pgoyette-localcount-20160726, 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, localcount-20160914
Branch point for: pgoyette-localcount
Diff to: previous 1.186: preferred, colored
Changes since revision 1.186: +7 -3 lines
Allow changing the per-cpu emergency page reservation via kernel config.

Revision 1.186: download - view: text, markup, annotated - select for diffs
Fri Sep 5 05:36:21 2014 UTC (10 years, 5 months ago) by matt
Branches: MAIN
CVS tags: nick-nhusb-base-20150406, nick-nhusb-base
Branch point for: nick-nhusb
Diff to: previous 1.185: preferred, colored
Changes since revision 1.185: +9 -9 lines
Don't use C++ try keyword as a variable name.

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

Revision 1.185: download - view: text, markup, annotated - select for diffs
Sun Aug 10 16:44:37 2014 UTC (10 years, 6 months ago) by tls
Branches: MAIN
CVS tags: tls-maxphys-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
Diff to: previous 1.184: preferred, colored
Changes since revision 1.184: +5 -3 lines
Merge tls-earlyentropy branch into HEAD.

Revision 1.183.2.2: download - view: text, markup, annotated - select for diffs
Sun Aug 10 06:57:00 2014 UTC (10 years, 6 months ago) by tls
Branches: tls-earlyentropy
Diff to: previous 1.183.2.1: preferred, colored; branchpoint 1.183: preferred, colored; next MAIN 1.184: preferred, colored
Changes since revision 1.183.2.1: +5 -10 lines
Rebase.

Revision 1.178.2.16: download - view: text, markup, annotated - select for diffs
Thu May 22 11:41:19 2014 UTC (10 years, 8 months ago) by yamt
Branches: yamt-pagecache
Diff to: previous 1.178.2.15: preferred, colored; branchpoint 1.178: preferred, colored; next MAIN 1.179: preferred, colored
Changes since revision 1.178.2.15: +5 -10 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.182.4.1: download - view: text, markup, annotated - select for diffs
Sun May 18 17:46:22 2014 UTC (10 years, 8 months ago) by rmind
Branches: rmind-smpnet
Diff to: previous 1.182: preferred, colored; next MAIN 1.183: preferred, colored
Changes since revision 1.182: +6 -11 lines
sync with head

Revision 1.184: download - view: text, markup, annotated - select for diffs
Mon Apr 21 16:33:48 2014 UTC (10 years, 9 months ago) by chs
Branches: MAIN
CVS tags: yamt-pagecache-base9, tls-earlyentropy-base, rmind-smpnet-nbase, rmind-smpnet-base
Diff to: previous 1.183: preferred, colored
Changes since revision 1.183: +5 -10 lines
remove unused variables for UVM_PAGE_TRKOWN.

Revision 1.183.2.1: download - view: text, markup, annotated - select for diffs
Mon Apr 7 03:37:33 2014 UTC (10 years, 10 months ago) by tls
Branches: tls-earlyentropy
Diff to: previous 1.183: preferred, colored
Changes since revision 1.183: +5 -3 lines
Be a little more clear and consistent about harvesting entropy from devices:

1) deprecate RND_FLAG_NO_ESTIMATE

2) define RND_FLAG_COLLECT_TIME, RND_FLAG_COLLECT_VALUE

3) define RND_FLAG_ESTIMATE_TIME, RND_FLAG_ESTIMATE_VALUE

4) define RND_FLAG_DEFAULT: RND_FLAG_COLLECT_TIME|
   RND_FLAG_COLLECT_VALUE|RND_FLAG_ESTIMATE_TIME

5) Make entropy harvesting from environmental sensors a little more generic
   and remove it from individual sensor drivers.

6) Remove individual open-coded delta-estimators for values from a few
   places in the tree (uvm, environmental drivers).

7) 0 -> RND_FLAG_DEFAULT, actually gather entropy from various drivers
   that had stubbed out code, other minor cleanups.

Revision 1.140.6.3.4.12: download - view: text, markup, annotated - select for diffs
Mon Mar 24 07:37:14 2014 UTC (10 years, 10 months ago) by matt
Branches: matt-nb5-mips64
Diff to: previous 1.140.6.3.4.11: preferred, colored; branchpoint 1.140.6.3: preferred, colored; next MAIN 1.141: preferred, colored
Changes since revision 1.140.6.3.4.11: +3 -2 lines
Make sure the hint is initialized to NULL.

Revision 1.140.6.3.4.11: download - view: text, markup, annotated - select for diffs
Sat Feb 15 10:19:14 2014 UTC (10 years, 11 months ago) by matt
Branches: matt-nb5-mips64
Diff to: previous 1.140.6.3.4.10: preferred, colored; branchpoint 1.140.6.3: preferred, colored
Changes since revision 1.140.6.3.4.10: +8 -9 lines
Adapt to K{,D}ASSERTMSG changes

Revision 1.183: download - view: text, markup, annotated - select for diffs
Fri Oct 25 20:26:22 2013 UTC (11 years, 3 months ago) by martin
Branches: MAIN
CVS tags: riastradh-xf86-video-intel-2-7-1-pre-2-21-15, riastradh-drm2-base3
Branch point for: tls-earlyentropy
Diff to: previous 1.182: preferred, colored
Changes since revision 1.182: +3 -3 lines
Mark a diagnostic-only variable

Revision 1.178.2.15: download - view: text, markup, annotated - select for diffs
Mon Apr 22 13:09:02 2013 UTC (11 years, 9 months ago) by yamt
Branches: yamt-pagecache
CVS tags: yamt-pagecache-tag8
Diff to: previous 1.178.2.14: preferred, colored; branchpoint 1.178: preferred, colored
Changes since revision 1.178.2.14: +2 -1 lines
fix an assertion

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

Revision 1.140.6.3.4.10: download - view: text, markup, annotated - select for diffs
Wed Feb 29 18:03:39 2012 UTC (12 years, 11 months ago) by matt
Branches: matt-nb5-mips64
Diff to: previous 1.140.6.3.4.9: preferred, colored; branchpoint 1.140.6.3: preferred, colored
Changes since revision 1.140.6.3.4.9: +136 -43 lines
Improve UVM_PAGE_TRKOWN.
Add more asserts to uvm_page.

Revision 1.178.6.1: download - view: text, markup, annotated - select for diffs
Sat Feb 18 07:36:01 2012 UTC (12 years, 11 months ago) by mrg
Branches: jmcneill-usbmp
Diff to: previous 1.178: preferred, colored; next MAIN 1.179: preferred, colored
Changes since revision 1.178: +49 -34 lines
merge to -current.

Revision 1.178.2.13: download - view: text, markup, annotated - select for diffs
Fri Feb 17 08:18:57 2012 UTC (12 years, 11 months ago) by yamt
Branches: yamt-pagecache
Diff to: previous 1.178.2.12: preferred, colored; branchpoint 1.178: preferred, colored
Changes since revision 1.178.2.12: +3 -3 lines
byebye PG_HOLE as it turned out to be unnecessary.

Revision 1.182: download - view: text, markup, annotated - select for diffs
Thu Feb 16 11:46:14 2012 UTC (12 years, 11 months ago) by matt
Branches: MAIN
CVS tags: yamt-pagecache-base8, yamt-pagecache-base7, yamt-pagecache-base6, yamt-pagecache-base5, yamt-pagecache-base4, riastradh-drm2-base2, riastradh-drm2-base1, riastradh-drm2-base, riastradh-drm2, khorben-n900, 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, agc-symver-base, agc-symver
Branch point for: tls-maxphys, rmind-smpnet
Diff to: previous 1.181: preferred, colored
Changes since revision 1.181: +24 -5 lines
Add KASSERTs to uvm_pagealloc_pgfl to verify the page is actually free and has
the contents that it should.
Redo the KASSERTs for the pageq in uvm_pagefree.

Revision 1.140.6.3.4.9: download - view: text, markup, annotated - select for diffs
Thu Feb 16 04:20:45 2012 UTC (13 years ago) by matt
Branches: matt-nb5-mips64
Diff to: previous 1.140.6.3.4.8: preferred, colored; branchpoint 1.140.6.3: preferred, colored
Changes since revision 1.140.6.3.4.8: +65 -22 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.140.6.3.4.8: download - view: text, markup, annotated - select for diffs
Tue Feb 14 01:12:42 2012 UTC (13 years ago) by matt
Branches: matt-nb5-mips64
Diff to: previous 1.140.6.3.4.7: preferred, colored; branchpoint 1.140.6.3: preferred, colored
Changes since revision 1.140.6.3.4.7: +13 -2 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.140.6.3.4.7: download - view: text, markup, annotated - select for diffs
Thu Feb 9 03:05:00 2012 UTC (13 years ago) by matt
Branches: matt-nb5-mips64
Diff to: previous 1.140.6.3.4.6: preferred, colored; branchpoint 1.140.6.3: preferred, colored
Changes since revision 1.140.6.3.4.6: +172 -40 lines
Major changes to uvm.
Support multiple collections (groups) of free pages and run the page
reclaimation algorithm on each group independently.

Revision 1.181: download - view: text, markup, annotated - select for diffs
Thu Feb 2 19:43:08 2012 UTC (13 years ago) by tls
Branches: MAIN
CVS tags: 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
Diff to: previous 1.180: preferred, colored
Changes since revision 1.180: +11 -3 lines
Entropy-pool implementation move and cleanup.

1) Move core entropy-pool code and source/sink/sample management code
   to sys/kern from sys/dev.

2) Remove use of NRND as test for presence of entropy-pool code throughout
   source tree.

3) Remove use of RND_ENABLED in device drivers as microoptimization to
   avoid expensive operations on disabled entropy sources; make the
   rnd_add calls do this directly so all callers benefit.

4) Fix bug in recent rnd_add_data()/rnd_add_uint32() changes that might
   have lead to slight entropy overestimation for some sources.

5) Add new source types for environmental sensors, power sensors, VM
   system events, and skew between clocks, with a sample implementation
   for each.

ok releng to go in before the branch due to the difficulty of later
pullup (widespread #ifdef removal and moved files).  Tested with release
builds on amd64 and evbarm and live testing on amd64.

Revision 1.180: download - view: text, markup, annotated - select for diffs
Sat Jan 28 15:43:34 2012 UTC (13 years ago) by matt
Branches: MAIN
Diff to: previous 1.179: preferred, colored
Changes since revision 1.179: +4 -13 lines
Replace locking checks with uvm_page_locked_p.

Revision 1.179: download - view: text, markup, annotated - select for diffs
Fri Jan 27 19:48:41 2012 UTC (13 years ago) by para
Branches: MAIN
Diff to: previous 1.178: preferred, colored
Changes since revision 1.178: +16 -19 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.178.2.12: download - view: text, markup, annotated - select for diffs
Wed Jan 4 16:31:17 2012 UTC (13 years, 1 month ago) by yamt
Branches: yamt-pagecache
Diff to: previous 1.178.2.11: preferred, colored; branchpoint 1.178: preferred, colored
Changes since revision 1.178.2.11: +3 -5 lines
O->A loan related statistics fixes.

Revision 1.178.2.11: download - view: text, markup, annotated - select for diffs
Wed Jan 4 16:30:06 2012 UTC (13 years, 1 month ago) by yamt
Branches: yamt-pagecache
Diff to: previous 1.178.2.10: preferred, colored; branchpoint 1.178: preferred, colored
Changes since revision 1.178.2.10: +3 -5 lines
make assertions simpler

Revision 1.178.2.10: download - view: text, markup, annotated - select for diffs
Wed Jan 4 16:29:29 2012 UTC (13 years, 1 month ago) by yamt
Branches: yamt-pagecache
Diff to: previous 1.178.2.9: preferred, colored; branchpoint 1.178: preferred, colored
Changes since revision 1.178.2.9: +2 -5 lines
remove a debug printf

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

Revision 1.178.2.8: download - view: text, markup, annotated - select for diffs
Wed Nov 30 14:33:46 2011 UTC (13 years, 2 months ago) by yamt
Branches: yamt-pagecache
Diff to: previous 1.178.2.7: preferred, colored; branchpoint 1.178: preferred, colored
Changes since revision 1.178.2.7: +2 -1 lines
make lfs another pager specific flag so that it won't be affected by
an nfs hack in genfs.

Revision 1.140.6.3.4.6: download - view: text, markup, annotated - select for diffs
Tue Nov 29 07:45:57 2011 UTC (13 years, 2 months ago) by matt
Branches: matt-nb5-mips64
Diff to: previous 1.140.6.3.4.5: preferred, colored; branchpoint 1.140.6.3: preferred, colored
Changes since revision 1.140.6.3.4.5: +10 -2 lines
Add a macro to allow a port to control from which freelists "normal" pages
can be allocated.

Revision 1.178.2.7: download - view: text, markup, annotated - select for diffs
Sun Nov 20 10:52:34 2011 UTC (13 years, 2 months ago) by yamt
Branches: yamt-pagecache
Diff to: previous 1.178.2.6: preferred, colored; branchpoint 1.178: preferred, colored
Changes since revision 1.178.2.6: +29 -23 lines
- fix page loaning  XXX make O->A loaning further
- add some statistics

Revision 1.178.2.6: download - view: text, markup, annotated - select for diffs
Fri Nov 18 00:57:33 2011 UTC (13 years, 2 months ago) by yamt
Branches: yamt-pagecache
Diff to: previous 1.178.2.5: preferred, colored; branchpoint 1.178: preferred, colored
Changes since revision 1.178.2.5: +3 -8 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.178.2.5: download - view: text, markup, annotated - select for diffs
Sun Nov 13 01:18:02 2011 UTC (13 years, 3 months ago) by yamt
Branches: yamt-pagecache
Diff to: previous 1.178.2.4: preferred, colored; branchpoint 1.178: preferred, colored
Changes since revision 1.178.2.4: +20 -11 lines
cache UVM_OBJ_IS_VNODE in pqflags

Revision 1.178.2.4: download - view: text, markup, annotated - select for diffs
Sat Nov 12 02:54:04 2011 UTC (13 years, 3 months ago) by yamt
Branches: yamt-pagecache
Diff to: previous 1.178.2.3: preferred, colored; branchpoint 1.178: preferred, colored
Changes since revision 1.178.2.3: +62 -42 lines
redo the page clean/dirty/unknown accounting separately for file and
anonymous pages

Revision 1.178.2.3: download - view: text, markup, annotated - select for diffs
Fri Nov 11 10:34:24 2011 UTC (13 years, 3 months ago) by yamt
Branches: yamt-pagecache
Diff to: previous 1.178.2.2: preferred, colored; branchpoint 1.178: preferred, colored
Changes since revision 1.178.2.2: +13 -1 lines
- track the number of clean/dirty/unknown pages in the system.
- g/c PG_MARKER

Revision 1.178.2.2: download - view: text, markup, annotated - select for diffs
Sun Nov 6 22:05:00 2011 UTC (13 years, 3 months ago) by yamt
Branches: yamt-pagecache
Diff to: previous 1.178.2.1: preferred, colored; branchpoint 1.178: preferred, colored
Changes since revision 1.178.2.1: +8 -18 lines
remove pg->listq and uobj->memq

Revision 1.178.2.1: download - view: text, markup, annotated - select for diffs
Wed Nov 2 21:54:01 2011 UTC (13 years, 3 months ago) by yamt
Branches: yamt-pagecache
Diff to: previous 1.178: preferred, colored
Changes since revision 1.178: +124 -64 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.178: download - view: text, markup, annotated - select for diffs
Thu Oct 6 12:26:03 2011 UTC (13 years, 4 months ago) by uebayasi
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.177: preferred, colored
Changes since revision 1.177: +5 -2 lines
Correct pagermap emergva allocation.  From yamt@.

Tested by building i386 kernel with DTRACE defined which died 100%.

Revision 1.177: download - view: text, markup, annotated - select for diffs
Fri Sep 30 05:29:12 2011 UTC (13 years, 4 months ago) by mrg
Branches: MAIN
Diff to: previous 1.176: preferred, colored
Changes since revision 1.176: +13 -9 lines
re-arrange the end of uvm_page_recolor() to avoid the multiple exit
points.  move the call to uvm_pager_realloc_emerg() to after we
drop the uvm_fpageqlock, since it may be taken again in uvm_km_alloc().

fixes LOCKDEBUG crashes with the previous change.

Revision 1.176: download - view: text, markup, annotated - select for diffs
Wed Sep 28 22:52:15 2011 UTC (13 years, 4 months ago) by matt
Branches: MAIN
Diff to: previous 1.175: preferred, colored
Changes since revision 1.175: +4 -2 lines
Reallocate emergency pager va when ncolors is increased. (modication of
patch from mrg).

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

Revision 1.175: download - view: text, markup, annotated - select for diffs
Wed Jun 15 19:46:11 2011 UTC (13 years, 8 months ago) by rmind
Branches: MAIN
Diff to: previous 1.174: preferred, colored
Changes since revision 1.174: +4 -3 lines
uvm_pagealloc_strat: fix diagnostic assert.  Reported by drochner@.

Revision 1.174: download - view: text, markup, annotated - select for diffs
Sun Jun 12 03:36:03 2011 UTC (13 years, 8 months ago) by rmind
Branches: MAIN
Diff to: previous 1.173: preferred, colored
Changes since revision 1.173: +34 -14 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.154.2.6: download - view: text, markup, annotated - select for diffs
Sun Jun 12 00:24:32 2011 UTC (13 years, 8 months ago) by rmind
Branches: rmind-uvmplock
Diff to: previous 1.154.2.5: preferred, colored; branchpoint 1.154: preferred, colored; next MAIN 1.155: preferred, colored
Changes since revision 1.154.2.5: +1 -1 lines
sync with head

Revision 1.169.2.1: download - view: text, markup, annotated - select for diffs
Mon Jun 6 09:10:23 2011 UTC (13 years, 8 months ago) by jruoho
Branches: jruoho-x86intr
Diff to: previous 1.169: preferred, colored; next MAIN 1.170: preferred, colored
Changes since revision 1.169: +16 -38 lines
Sync with HEAD.

Revision 1.173: download - view: text, markup, annotated - select for diffs
Sun Jun 5 16:58:00 2011 UTC (13 years, 8 months ago) by matt
Branches: MAIN
CVS tags: rmind-uvmplock-nbase, rmind-uvmplock-base
Diff to: previous 1.172: preferred, colored
Changes since revision 1.172: +3 -3 lines
Fix fencepost error.

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

Revision 1.140.6.3.4.4: download - view: text, markup, annotated - select for diffs
Fri Jun 3 02:43:41 2011 UTC (13 years, 8 months ago) by matt
Branches: matt-nb5-mips64
Diff to: previous 1.140.6.3.4.3: preferred, colored; branchpoint 1.140.6.3: preferred, colored
Changes since revision 1.140.6.3.4.3: +173 -136 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.154.2.5: download - view: text, markup, annotated - select for diffs
Thu Apr 21 01:42:22 2011 UTC (13 years, 9 months ago) by rmind
Branches: rmind-uvmplock
Diff to: previous 1.154.2.4: preferred, colored; branchpoint 1.154: preferred, colored
Changes since revision 1.154.2.4: +12 -3 lines
sync with head

Revision 1.172: download - view: text, markup, annotated - select for diffs
Fri Apr 1 00:47:11 2011 UTC (13 years, 10 months ago) by rmind
Branches: MAIN
CVS tags: cherry-xenmp-base
Branch point for: cherry-xenmp
Diff to: previous 1.171: preferred, colored
Changes since revision 1.171: +14 -5 lines
uvm_pageidlezero: use try-lock to not occupy uvm_fpageqlock, which may
be on demand by other CPUs.  Reduces lock contention in some workloads
on many CPU (8+) systems.

Tested by tls@.

Revision 1.154.2.4: download - view: text, markup, annotated - select for diffs
Sat Mar 5 20:56:37 2011 UTC (13 years, 11 months ago) by rmind
Branches: rmind-uvmplock
Diff to: previous 1.154.2.3: preferred, colored; branchpoint 1.154: preferred, colored
Changes since revision 1.154.2.3: +235 -151 lines
sync with head

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

Revision 1.171: download - view: text, markup, annotated - select for diffs
Wed Feb 2 17:53:42 2011 UTC (14 years ago) by chuck
Branches: MAIN
CVS tags: uebayasi-xip-base7, bouyer-quota2-nbase, bouyer-quota2-base
Diff to: previous 1.170: preferred, colored
Changes since revision 1.170: +2 -28 lines
udpate license clauses on my code to match the new-style BSD licenses.
based on diff that rmind@ sent me.

no functional change with this commit.

Revision 1.170: download - view: text, markup, annotated - select for diffs
Wed Feb 2 15:25:27 2011 UTC (14 years ago) by chuck
Branches: MAIN
Diff to: previous 1.169: preferred, colored
Changes since revision 1.169: +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.140.6.3.8.1: download - view: text, markup, annotated - select for diffs
Fri Jan 7 01:16:44 2011 UTC (14 years, 1 month ago) by matt
Branches: matt-nb5-pq3
Diff to: previous 1.140.6.3: preferred, colored; next MAIN 1.141: preferred, colored
Changes since revision 1.140.6.3: +4 -3 lines
Improve panic message for non-power of 2 page size.

Revision 1.169: download - view: text, markup, annotated - select for diffs
Tue Jan 4 08:26:33 2011 UTC (14 years, 1 month ago) by matt
Branches: MAIN
CVS tags: jruoho-x86intr-base
Branch point for: jruoho-x86intr, bouyer-quota2
Diff to: previous 1.168: preferred, colored
Changes since revision 1.168: +8 -6 lines
Add better color matching selecting free pages.  KM pages will now allocated
so that VA and PA have the same color.  On a page fault, choose a physical
page that has the same color as the virtual address.

When allocating kernel memory pages, allow the MD to specify a preferred
VM_FREELIST from which to choose pages.  For machines with large amounts
of memory (> 4GB), all kernel memory to come from <4GB to reduce the amount
of bounce buffering needed with 32bit DMA devices.

Revision 1.168: download - view: text, markup, annotated - select for diffs
Sat Dec 11 22:34:03 2010 UTC (14 years, 2 months ago) by matt
Branches: MAIN
CVS tags: matt-mips64-premerge-20101231
Diff to: previous 1.167: preferred, colored
Changes since revision 1.167: +4 -3 lines
When panicing due a non-power of 2 pagesize, include the pagesize in the
panic message.

Revision 1.167: download - view: text, markup, annotated - select for diffs
Thu Nov 25 04:45:30 2010 UTC (14 years, 2 months ago) by uebayasi
Branches: MAIN
Diff to: previous 1.166: preferred, colored
Changes since revision 1.166: +94 -211 lines
Revert vm_physseg allocation changes.  A report says that it causes
panics when used with mplayer in heavy load.

Revision 1.153.2.69: download - view: text, markup, annotated - select for diffs
Mon Nov 22 03:20:56 2010 UTC (14 years, 2 months ago) by uebayasi
Branches: uebayasi-xip
Diff to: previous 1.153.2.68: preferred, colored; branchpoint 1.153: preferred, colored; next MAIN 1.154: preferred, colored
Changes since revision 1.153.2.68: +64 -17 lines
Start merging uvm_page_physload() and uvm_page_physload_device().

Revision 1.153.2.68: download - view: text, markup, annotated - select for diffs
Sun Nov 21 15:27:36 2010 UTC (14 years, 2 months ago) by uebayasi
Branches: uebayasi-xip
Diff to: previous 1.153.2.67: preferred, colored; branchpoint 1.153: preferred, colored
Changes since revision 1.153.2.67: +8 -8 lines
Rename PGO_ZERO as PGO_HOLE, and s/uvm_page_zeropage/uvm_page_holepage/.

Revision 1.153.2.67: download - view: text, markup, annotated - select for diffs
Sun Nov 21 11:57:15 2010 UTC (14 years, 2 months ago) by uebayasi
Branches: uebayasi-xip
Diff to: previous 1.153.2.66: preferred, colored; branchpoint 1.153: preferred, colored
Changes since revision 1.153.2.66: +3 -3 lines
uvm_pglistalloc(9) returns 0 on success, not # of pages.

Revision 1.153.2.66: download - view: text, markup, annotated - select for diffs
Sat Nov 20 07:52:30 2010 UTC (14 years, 2 months ago) by uebayasi
Branches: uebayasi-xip
Diff to: previous 1.153.2.65: preferred, colored; branchpoint 1.153: preferred, colored
Changes since revision 1.153.2.65: +1 -1 lines
Don't set PG_FAKE for device pages.

XXX PG_FAKE should be renamed as PG_UNINITED!

Revision 1.153.2.65: download - view: text, markup, annotated - select for diffs
Mon Nov 15 17:32:01 2010 UTC (14 years, 3 months ago) by uebayasi
Branches: uebayasi-xip
Diff to: previous 1.153.2.64: preferred, colored; branchpoint 1.153: preferred, colored
Changes since revision 1.153.2.64: +41 -0 lines
Move zero-page into a common place, in the hope that it's shared
for other purposes.

According to Chuck Silvers, zero-page mappings don't need to be
explicitly unmapped in putpages().  Follow that advice.

Revision 1.166: download - view: text, markup, annotated - select for diffs
Sun Nov 14 15:18:07 2010 UTC (14 years, 3 months ago) by uebayasi
Branches: MAIN
CVS tags: uebayasi-xip-base6
Diff to: previous 1.165: preferred, colored
Changes since revision 1.165: +4 -0 lines
... and another.

Revision 1.165: download - view: text, markup, annotated - select for diffs
Sun Nov 14 15:16:53 2010 UTC (14 years, 3 months ago) by uebayasi
Branches: MAIN
Diff to: previous 1.164: preferred, colored
Changes since revision 1.164: +4 -0 lines
Fix build caused by a last minute change.

Revision 1.164: download - view: text, markup, annotated - select for diffs
Sun Nov 14 15:06:34 2010 UTC (14 years, 3 months ago) by uebayasi
Branches: MAIN
Diff to: previous 1.163: preferred, colored
Changes since revision 1.163: +203 -94 lines
Be a little more friendly to dynamic physical segment registration.

Maintain an array of pointer to struct vm_physseg, instead of struct
array.  So that VM subsystem can take its pointer safely.  Pointer
to this struct will replace raw paddr_t usage in the future.

Dynamic removal is not supported yet.

Only MD data structure changes, no kernel bump needed.

Tested on i386, amd64, powerpc/ibm40x, arm11.

Revision 1.153.2.64: download - view: text, markup, annotated - select for diffs
Fri Nov 12 19:02:44 2010 UTC (14 years, 3 months ago) by uebayasi
Branches: uebayasi-xip
Diff to: previous 1.153.2.63: preferred, colored; branchpoint 1.153: preferred, colored
Changes since revision 1.153.2.63: +1 -1 lines
Oops - don't expose unnecessary data.

Revision 1.153.2.63: download - view: text, markup, annotated - select for diffs
Fri Nov 12 19:00:00 2010 UTC (14 years, 3 months ago) by uebayasi
Branches: uebayasi-xip
Diff to: previous 1.153.2.62: preferred, colored; branchpoint 1.153: preferred, colored
Changes since revision 1.153.2.62: +1 -2 lines
Fix debug code.

Revision 1.163: download - view: text, markup, annotated - select for diffs
Fri Nov 12 05:23:41 2010 UTC (14 years, 3 months ago) by uebayasi
Branches: MAIN
Diff to: previous 1.162: preferred, colored
Changes since revision 1.162: +24 -0 lines
Abstraction fix; move physical address -> per-page metadata (struct
vm_page *) "reverse" lookup code from uvm_page.h to uvm_page.c, to
help migration to not do that.

Likewise move per-page metadata (struct vm_page *) -> physical
address "forward" conversion code into *.c too.  This is called
only low-layer VM and MD code.

Revision 1.162: download - view: text, markup, annotated - select for diffs
Fri Nov 12 03:21:04 2010 UTC (14 years, 3 months ago) by uebayasi
Branches: MAIN
Diff to: previous 1.161: preferred, colored
Changes since revision 1.161: +106 -0 lines
Abstraction fix; move physical address -> physical segment "reverse"
lookup code from uvm_page.h to uvm_page.c.

This code is used by some pmaps to lookup per-page state (PV) from
per-segment metadata (struct vm_physseg).  This is not needed if
UVM looks up physical segment once in fault handler, then directly
passes it to pmap.  This change helps transition to that model.

The only users of vm_physseg_find() are pmap_motorola.c and
powerpc/ibm4xx/pmap.c.

Tested By:	Compiling and running powerpc/ibm4xx/pmap.c
		(evbppc/conf/OPENBLOCKS266)

Revision 1.153.2.62: download - view: text, markup, annotated - select for diffs
Thu Nov 11 16:22:25 2010 UTC (14 years, 3 months ago) by uebayasi
Branches: uebayasi-xip
Diff to: previous 1.153.2.61: preferred, colored; branchpoint 1.153: preferred, colored
Changes since revision 1.153.2.61: +1 -1 lines
s/managed device page/device page/

Revision 1.153.2.61: download - view: text, markup, annotated - select for diffs
Thu Nov 11 16:20:28 2010 UTC (14 years, 3 months ago) by uebayasi
Branches: uebayasi-xip
Diff to: previous 1.153.2.60: preferred, colored; branchpoint 1.153: preferred, colored
Changes since revision 1.153.2.60: +17 -19 lines
Use vm_physseg accessors.  Remove confusing comments.

Revision 1.161: download - view: text, markup, annotated - select for diffs
Thu Nov 11 15:59:27 2010 UTC (14 years, 3 months ago) by uebayasi
Branches: MAIN
Diff to: previous 1.160: preferred, colored
Changes since revision 1.160: +3 -3 lines
C style; make a sentinel pointer have an exclusive value; no
functional changes.

Revision 1.160: download - view: text, markup, annotated - select for diffs
Thu Nov 11 15:51:05 2010 UTC (14 years, 3 months ago) by uebayasi
Branches: MAIN
Diff to: previous 1.159: preferred, colored
Changes since revision 1.159: +1 -1 lines
Typo in a comment.

Revision 1.159: download - view: text, markup, annotated - select for diffs
Thu Nov 11 15:47:43 2010 UTC (14 years, 3 months ago) by uebayasi
Branches: MAIN
Diff to: previous 1.158: preferred, colored
Changes since revision 1.158: +30 -29 lines
Minor clean up.

Revision 1.158: download - view: text, markup, annotated - select for diffs
Thu Nov 11 14:50:54 2010 UTC (14 years, 3 months ago) by uebayasi
Branches: MAIN
Diff to: previous 1.157: preferred, colored
Changes since revision 1.157: +46 -41 lines
Minor clean up.

Revision 1.157: download - view: text, markup, annotated - select for diffs
Sat Nov 6 15:42:43 2010 UTC (14 years, 3 months ago) by uebayasi
Branches: MAIN
CVS tags: uebayasi-xip-base5
Diff to: previous 1.156: preferred, colored
Changes since revision 1.156: +2 -28 lines
Remove incomplete, never worked dynamic run-time memory registration
(uvm_page_physload(9)).  This functionality will be re-added later.

Revision 1.153.2.60: download - view: text, markup, annotated - select for diffs
Thu Nov 4 11:57:49 2010 UTC (14 years, 3 months ago) by uebayasi
Branches: uebayasi-xip
Diff to: previous 1.153.2.59: preferred, colored; branchpoint 1.153: preferred, colored
Changes since revision 1.153.2.59: +2 -4 lines
Style.

Revision 1.153.2.59: download - view: text, markup, annotated - select for diffs
Thu Nov 4 08:47:38 2010 UTC (14 years, 3 months ago) by uebayasi
Branches: uebayasi-xip
Diff to: previous 1.153.2.58: preferred, colored; branchpoint 1.153: preferred, colored
Changes since revision 1.153.2.58: +19 -8 lines
Split physical device segment pages from "managed" to "managed
device".  Cache that information as a flag PG_DEVICE so that callers
don't need to walk physsegs everytime.

Remove PQ_FIXED, which means that page daemon doesn't need to know
device segment pages at all.  But still fault handlers need to know
them.

I think this is what I can do best now.

Revision 1.153.2.58: download - view: text, markup, annotated - select for diffs
Tue Nov 2 14:05:28 2010 UTC (14 years, 3 months ago) by uebayasi
Branches: uebayasi-xip
Diff to: previous 1.153.2.57: preferred, colored; branchpoint 1.153: preferred, colored
Changes since revision 1.153.2.57: +1 -2 lines
Drop the 'paddr_t avail_start' and 'paddr_t avail_end' arguments
from uvm_page_physload_device(9).

Those two arguments are used by uvm_page_physload(9) to specify a
range of physical memory available for general purpose pages (pages
which are linked to freelists).  Totally irrelevant to device
segments.

Revision 1.153.2.57: download - view: text, markup, annotated - select for diffs
Wed Oct 27 14:51:29 2010 UTC (14 years, 3 months ago) by uebayasi
Branches: uebayasi-xip
Diff to: previous 1.153.2.56: preferred, colored; branchpoint 1.153: preferred, colored
Changes since revision 1.153.2.56: +0 -12 lines
Unconditionally provide device page segment data structures and
functions as suggested by Chuck Silvers.

(Memory and device segments are being merged soon.)

Revision 1.153.2.56: download - view: text, markup, annotated - select for diffs
Fri Oct 22 07:22:57 2010 UTC (14 years, 3 months ago) by uebayasi
Branches: uebayasi-xip
Diff to: previous 1.153.2.55: preferred, colored; branchpoint 1.153: preferred, colored
Changes since revision 1.153.2.55: +18 -16 lines
Sync with HEAD (-D20101022).

Revision 1.131.4.5: download - view: text, markup, annotated - select for diffs
Sat Oct 9 03:32:47 2010 UTC (14 years, 4 months ago) by yamt
Branches: yamt-nfs-mp
Diff to: previous 1.131.4.4: preferred, colored; branchpoint 1.131: preferred, colored; next MAIN 1.132: preferred, colored
Changes since revision 1.131.4.4: +20 -18 lines
sync with head

Revision 1.156: download - view: text, markup, annotated - select for diffs
Fri Sep 24 22:51:51 2010 UTC (14 years, 4 months ago) by rmind
Branches: MAIN
CVS tags: yamt-nfs-mp-base11, uebayasi-xip-base4, uebayasi-xip-base3
Diff to: previous 1.155: preferred, colored
Changes since revision 1.155: +20 -18 lines
Fixes/improvements to RB-tree implementation:
1. Fix inverted node order, so that negative value from comparison operator
   would represent lower (left) node, and positive - higher (right) node.
2. Add an argument (i.e. "context"), passed to comparison operators.
3. Change rb_tree_insert_node() to return a node - either inserted one or
   already existing one.
4. Amend the interface to manipulate the actual object, instead of the
   rb_node (in a similar way as Patricia-tree interface does).
5. Update all RB-tree users accordingly.

XXX: Perhaps rename rb.h to rbtree.h, since cleaning-up..

1-3 address the PR/43488 by Jeremy Huddleston.

Passes RB-tree regression tests.
Reviewed by: matt@, christos@

Revision 1.153.2.55: download - view: text, markup, annotated - select for diffs
Fri Aug 27 09:40:52 2010 UTC (14 years, 5 months ago) by uebayasi
Branches: uebayasi-xip
Diff to: previous 1.153.2.54: preferred, colored; branchpoint 1.153: preferred, colored
Changes since revision 1.153.2.54: +2 -0 lines
Make vm_physseg lookup work when VM_PHYSSEG_MAX == 1.

Revision 1.153.2.54: download - view: text, markup, annotated - select for diffs
Wed Aug 25 14:23:16 2010 UTC (14 years, 5 months ago) by uebayasi
Branches: uebayasi-xip
Diff to: previous 1.153.2.53: preferred, colored; branchpoint 1.153: preferred, colored
Changes since revision 1.153.2.53: +11 -1 lines
Fix DIAGNOSTIC build.  Sprinkle some assertions.

Revision 1.131.4.4: download - view: text, markup, annotated - select for diffs
Wed Aug 11 22:55:17 2010 UTC (14 years, 6 months ago) by yamt
Branches: yamt-nfs-mp
Diff to: previous 1.131.4.3: preferred, colored; branchpoint 1.131: preferred, colored
Changes since revision 1.131.4.3: +37 -12 lines
sync with head.

Revision 1.153.2.53: download - view: text, markup, annotated - select for diffs
Wed Aug 11 13:14:55 2010 UTC (14 years, 6 months ago) by uebayasi
Branches: uebayasi-xip
Diff to: previous 1.153.2.52: preferred, colored; branchpoint 1.153: preferred, colored
Changes since revision 1.153.2.52: +14 -0 lines
If both __HAVE_PMAP_PHYSSEG and __HAVE_PMAP_PHYSSEG_INIT is defined,
call per-vm_physseg initialization/finalization hooks.

Revision 1.153.2.52: download - view: text, markup, annotated - select for diffs
Wed Aug 11 09:50:01 2010 UTC (14 years, 6 months ago) by uebayasi
Branches: uebayasi-xip
Diff to: previous 1.153.2.51: preferred, colored; branchpoint 1.153: preferred, colored
Changes since revision 1.153.2.51: +3 -3 lines
s/vm_physseg_find_direct/vm_physseg_find_device/

Revision 1.153.2.51: download - view: text, markup, annotated - select for diffs
Tue Jul 27 01:47:43 2010 UTC (14 years, 6 months ago) by uebayasi
Branches: uebayasi-xip
Diff to: previous 1.153.2.50: preferred, colored; branchpoint 1.153: preferred, colored
Changes since revision 1.153.2.50: +1 -1 lines
Use VM_PROT_* instead of PROT_* in UVM.

Revision 1.153.2.50: download - view: text, markup, annotated - select for diffs
Mon Jul 26 10:11:39 2010 UTC (14 years, 6 months ago) by uebayasi
Branches: uebayasi-xip
Diff to: previous 1.153.2.49: preferred, colored; branchpoint 1.153: preferred, colored
Changes since revision 1.153.2.49: +10 -7 lines
After much consideration, rename bus_space_physload_direct(9) back to
bus_space_physload_device(9).

The latter registers a segment as "device pages".  "Device pages" are
managed, but not used for general purpose memory.  Most typically XIP
pages.

Revision 1.153.2.49: download - view: text, markup, annotated - select for diffs
Sat Jul 24 08:22:14 2010 UTC (14 years, 6 months ago) by uebayasi
Branches: uebayasi-xip
Diff to: previous 1.153.2.48: preferred, colored; branchpoint 1.153: preferred, colored
Changes since revision 1.153.2.48: +29 -34 lines
Give "physseg" related functions better names.

Revision 1.153.2.48: download - view: text, markup, annotated - select for diffs
Sat Jul 24 08:01:55 2010 UTC (14 years, 6 months ago) by uebayasi
Branches: uebayasi-xip
Diff to: previous 1.153.2.47: preferred, colored; branchpoint 1.153: preferred, colored
Changes since revision 1.153.2.47: +0 -1 lines
Remove a useless assertion.

Revision 1.153.2.47: download - view: text, markup, annotated - select for diffs
Thu Jul 22 07:55:22 2010 UTC (14 years, 6 months ago) by uebayasi
Branches: uebayasi-xip
Diff to: previous 1.153.2.46: preferred, colored; branchpoint 1.153: preferred, colored
Changes since revision 1.153.2.46: +10 -16 lines
Cosmetic.

Revision 1.153.2.46: download - view: text, markup, annotated - select for diffs
Thu Jul 22 07:49:45 2010 UTC (14 years, 6 months ago) by uebayasi
Branches: uebayasi-xip
Diff to: previous 1.153.2.45: preferred, colored; branchpoint 1.153: preferred, colored
Changes since revision 1.153.2.45: +3 -1 lines
s/PG_XIP/PQ_FIXED/, meaning that the fault handler sees XIP pages as
"fixed", and doesn't pass them to paging activity.

("XIP" is a vnode specific knowledge.  It was wrong that the fault
handler had to know such a special thing.)

Revision 1.153.2.45: download - view: text, markup, annotated - select for diffs
Thu Jul 15 08:33:46 2010 UTC (14 years, 7 months ago) by uebayasi
Branches: uebayasi-xip
Diff to: previous 1.153.2.44: preferred, colored; branchpoint 1.153: preferred, colored
Changes since revision 1.153.2.44: +1 -9 lines
Rename PG_DIRECT to PG_XIP.  PG_XIP is marked to XIP vnode pages.

Revision 1.153.2.44: download - view: text, markup, annotated - select for diffs
Mon Jul 12 06:25:14 2010 UTC (14 years, 7 months ago) by uebayasi
Branches: uebayasi-xip
Diff to: previous 1.153.2.43: preferred, colored; branchpoint 1.153: preferred, colored
Changes since revision 1.153.2.43: +1 -1 lines
Reduce more diff by backing out XIP page specific code.  Allow XIP pages
to be loaned.

Revision 1.153.2.43: download - view: text, markup, annotated - select for diffs
Fri Jul 9 12:49:21 2010 UTC (14 years, 7 months ago) by uebayasi
Branches: uebayasi-xip
Diff to: previous 1.153.2.42: preferred, colored; branchpoint 1.153: preferred, colored
Changes since revision 1.153.2.42: +1 -1 lines
Mark XIP pages as PG_CLEAN and/or PG_BUSY when appropriate.  Protect
vnode lock when vm_page::flags is manipulated.

Revision 1.153.2.42: download - view: text, markup, annotated - select for diffs
Thu Jul 8 06:55:13 2010 UTC (14 years, 7 months ago) by uebayasi
Branches: uebayasi-xip
Diff to: previous 1.153.2.41: preferred, colored; branchpoint 1.153: preferred, colored
Changes since revision 1.153.2.41: +3 -2 lines
Mark XIP pages as PG_RDONLY.

Revision 1.153.2.41: download - view: text, markup, annotated - select for diffs
Wed Jul 7 16:35:26 2010 UTC (14 years, 7 months ago) by uebayasi
Branches: uebayasi-xip
Diff to: previous 1.153.2.40: preferred, colored; branchpoint 1.153: preferred, colored
Changes since revision 1.153.2.40: +7 -8 lines
Clean up; merge options DIRECT_PAGE into options XIP.

Revision 1.153.2.40: download - view: text, markup, annotated - select for diffs
Wed Jul 7 14:29:38 2010 UTC (14 years, 7 months ago) by uebayasi
Branches: uebayasi-xip
Diff to: previous 1.153.2.39: preferred, colored; branchpoint 1.153: preferred, colored
Changes since revision 1.153.2.39: +33 -188 lines
To simplify things, revert global vm_page_md hash and allocate struct
vm_page [] for XIP physical segments.

Revision 1.153.2.39: download - view: text, markup, annotated - select for diffs
Mon May 31 13:26:38 2010 UTC (14 years, 8 months ago) by uebayasi
Branches: uebayasi-xip
Diff to: previous 1.153.2.38: preferred, colored; branchpoint 1.153: preferred, colored
Changes since revision 1.153.2.38: +61 -69 lines
Re-define the definition of "device page"; device pages are pages of
device memory.  Pages which don't have vm_page (== can't be used for
generic use), but whose PV are tracked, are called "direct pages" from
now.

Revision 1.153.2.38: download - view: text, markup, annotated - select for diffs
Mon May 31 06:38:34 2010 UTC (14 years, 8 months ago) by uebayasi
Branches: uebayasi-xip
Diff to: previous 1.153.2.37: preferred, colored; branchpoint 1.153: preferred, colored
Changes since revision 1.153.2.37: +0 -4 lines
Revert partial "phys_addr" removal code.  This change is independent of
XIP, and will be done later.

Revision 1.154.2.3: download - view: text, markup, annotated - select for diffs
Sun May 30 05:18:10 2010 UTC (14 years, 8 months ago) by rmind
Branches: rmind-uvmplock
Diff to: previous 1.154.2.2: preferred, colored; branchpoint 1.154: preferred, colored
Changes since revision 1.154.2.2: +37 -12 lines
sync with head

Revision 1.153.2.37: download - view: text, markup, annotated - select for diffs
Fri May 28 06:41:15 2010 UTC (14 years, 8 months ago) by uebayasi
Branches: uebayasi-xip
Diff to: previous 1.153.2.36: preferred, colored; branchpoint 1.153: preferred, colored
Changes since revision 1.153.2.36: +2 -2 lines
Remove an old XXX comment.  Fix a conditional build.

Revision 1.153.2.36: download - view: text, markup, annotated - select for diffs
Fri Apr 30 14:44:38 2010 UTC (14 years, 9 months ago) by uebayasi
Branches: uebayasi-xip
Diff to: previous 1.153.2.35: preferred, colored; branchpoint 1.153: preferred, colored
Changes since revision 1.153.2.35: +40 -15 lines
Sync with HEAD.

Revision 1.153.2.35: download - view: text, markup, annotated - select for diffs
Thu Apr 29 03:15:11 2010 UTC (14 years, 9 months ago) by uebayasi
Branches: uebayasi-xip
Diff to: previous 1.153.2.34: preferred, colored; branchpoint 1.153: preferred, colored
Changes since revision 1.153.2.34: +12 -8 lines
"int free_list" (VM_FREELIST_*) is specific to struct vm_page (memory
page).  Handle it only in memory physseg parts.

Record device page's properties in struct vm_physseg for future uses.
For example, framebuffers that is capable of some accelarated bus access
(e.g. write-combining) should register its capability through "int
flags".

Revision 1.153.2.34: download - view: text, markup, annotated - select for diffs
Thu Apr 29 03:10:13 2010 UTC (14 years, 9 months ago) by uebayasi
Branches: uebayasi-xip
Diff to: previous 1.153.2.33: preferred, colored; branchpoint 1.153: preferred, colored
Changes since revision 1.153.2.33: +1 -1 lines
Fix a thinko in Rev. 1.153.2.30.

Revision 1.153.2.33: download - view: text, markup, annotated - select for diffs
Thu Apr 29 03:07:53 2010 UTC (14 years, 9 months ago) by uebayasi
Branches: uebayasi-xip
Diff to: previous 1.153.2.32: preferred, colored; branchpoint 1.153: preferred, colored
Changes since revision 1.153.2.32: +9 -13 lines
Revert previous; unintended changes mixed.

Revision 1.153.2.32: download - view: text, markup, annotated - select for diffs
Thu Apr 29 03:00:47 2010 UTC (14 years, 9 months ago) by uebayasi
Branches: uebayasi-xip
Diff to: previous 1.153.2.31: preferred, colored; branchpoint 1.153: preferred, colored
Changes since revision 1.153.2.31: +13 -9 lines
Fix thinko in previous.

Revision 1.153.2.31: download - view: text, markup, annotated - select for diffs
Thu Apr 29 02:37:09 2010 UTC (14 years, 9 months ago) by uebayasi
Branches: uebayasi-xip
Diff to: previous 1.153.2.30: preferred, colored; branchpoint 1.153: preferred, colored
Changes since revision 1.153.2.30: +6 -3 lines
Fold long lines.

Revision 1.153.2.30: download - view: text, markup, annotated - select for diffs
Thu Apr 29 02:35:14 2010 UTC (14 years, 9 months ago) by uebayasi
Branches: uebayasi-xip
Diff to: previous 1.153.2.29: preferred, colored; branchpoint 1.153: preferred, colored
Changes since revision 1.153.2.29: +2 -1 lines
FIx an off-by-one in my new code.

Revision 1.153.2.29: download - view: text, markup, annotated - select for diffs
Wed Apr 28 13:28:43 2010 UTC (14 years, 9 months ago) by uebayasi
Branches: uebayasi-xip
Diff to: previous 1.153.2.28: preferred, colored; branchpoint 1.153: preferred, colored
Changes since revision 1.153.2.28: +55 -7 lines
Initial support of uvm_page_physunload(9) and uvm_page_physunload_device(9).
Note that callers of these functions are responsible to ensure that the
segment is not used.

Revision 1.153.2.28: download - view: text, markup, annotated - select for diffs
Wed Apr 28 09:27:47 2010 UTC (14 years, 9 months ago) by uebayasi
Branches: uebayasi-xip
Diff to: previous 1.153.2.27: preferred, colored; branchpoint 1.153: preferred, colored
Changes since revision 1.153.2.27: +30 -21 lines
Manage struct vm_physseg as a list, which means that struct vm_physseg
objects don't move when a segment is added / removed.

Revision 1.153.2.27: download - view: text, markup, annotated - select for diffs
Wed Apr 28 08:31:05 2010 UTC (14 years, 9 months ago) by uebayasi
Branches: uebayasi-xip
Diff to: previous 1.153.2.26: preferred, colored; branchpoint 1.153: preferred, colored
Changes since revision 1.153.2.26: +5 -5 lines
Always use struct vm_physseg *vm_physmem_ptrs[] in MD code.

Revision 1.153.2.26: download - view: text, markup, annotated - select for diffs
Wed Apr 28 05:12:30 2010 UTC (14 years, 9 months ago) by uebayasi
Branches: uebayasi-xip
Diff to: previous 1.153.2.25: preferred, colored; branchpoint 1.153: preferred, colored
Changes since revision 1.153.2.25: +11 -11 lines
Use struct vm_physseg *vm_physmem_ptrs[] in lookup code paths
(vm_physseg_find()).

Revision 1.153.2.25: download - view: text, markup, annotated - select for diffs
Wed Apr 28 05:05:16 2010 UTC (14 years, 9 months ago) by uebayasi
Branches: uebayasi-xip
Diff to: previous 1.153.2.24: preferred, colored; branchpoint 1.153: preferred, colored
Changes since revision 1.153.2.24: +44 -42 lines
Use struct vm_physseg *vm_physmem_ptrs[] in initialization code paths.

Revision 1.153.2.24: download - view: text, markup, annotated - select for diffs
Tue Apr 27 15:01:11 2010 UTC (14 years, 9 months ago) by uebayasi
Branches: uebayasi-xip
Diff to: previous 1.153.2.23: preferred, colored; branchpoint 1.153: preferred, colored
Changes since revision 1.153.2.23: +1 -1 lines
Whitespace.

Revision 1.153.2.23: download - view: text, markup, annotated - select for diffs
Tue Apr 27 08:32:47 2010 UTC (14 years, 9 months ago) by uebayasi
Branches: uebayasi-xip
Diff to: previous 1.153.2.22: preferred, colored; branchpoint 1.153: preferred, colored
Changes since revision 1.153.2.22: +26 -0 lines
Maintain not only arrays of struct vm_physseg, but also arrays of pointers
to struct vm_physseg.  This is need:

- to make the array change dynamically (unload), and

- to make the struct vm_physseg * object to be passed to device drivers as
  a cookie of a managed physical segment.

Revision 1.153.2.22: download - view: text, markup, annotated - select for diffs
Tue Apr 27 04:32:44 2010 UTC (14 years, 9 months ago) by uebayasi
Branches: uebayasi-xip
Diff to: previous 1.153.2.21: preferred, colored; branchpoint 1.153: preferred, colored
Changes since revision 1.153.2.21: +4 -4 lines
Clean up comments.

Revision 1.153.2.21: download - view: text, markup, annotated - select for diffs
Mon Apr 26 06:42:56 2010 UTC (14 years, 9 months ago) by uebayasi
Branches: uebayasi-xip
Diff to: previous 1.153.2.20: preferred, colored; branchpoint 1.153: preferred, colored
Changes since revision 1.153.2.20: +0 -4 lines
Collect a garbage.

Revision 1.153.2.20: download - view: text, markup, annotated - select for diffs
Mon Apr 26 06:37:38 2010 UTC (14 years, 9 months ago) by uebayasi
Branches: uebayasi-xip
Diff to: previous 1.153.2.19: preferred, colored; branchpoint 1.153: preferred, colored
Changes since revision 1.153.2.19: +34 -35 lines
Clean up: move memory segment specific code from uvm_page_physload_common()
to uvm_page_physload().

Revision 1.153.2.19: download - view: text, markup, annotated - select for diffs
Mon Apr 26 06:19:06 2010 UTC (14 years, 9 months ago) by uebayasi
Branches: uebayasi-xip
Diff to: previous 1.153.2.18: preferred, colored; branchpoint 1.153: preferred, colored
Changes since revision 1.153.2.18: +2 -53 lines
Remove the unfinished code to add a memory segment after uvm_page_init().
It doesn't even compile.

(In the future, we should allocate struct vm_page [] on the added memory
segment for NUMA's sake.)

Revision 1.155: download - view: text, markup, annotated - select for diffs
Sun Apr 25 15:54:14 2010 UTC (14 years, 9 months ago) by ad
Branches: MAIN
CVS tags: yamt-nfs-mp-base10, uebayasi-xip-base2, uebayasi-xip-base1
Diff to: previous 1.154: preferred, colored
Changes since revision 1.154: +37 -12 lines
Reduce memory spent on bookkeeping for large values of MAXCPUS.

Revision 1.153.2.18: download - view: text, markup, annotated - select for diffs
Sun Apr 25 15:23:27 2010 UTC (14 years, 9 months ago) by uebayasi
Branches: uebayasi-xip
Diff to: previous 1.153.2.17: preferred, colored; branchpoint 1.153: preferred, colored
Changes since revision 1.153.2.17: +100 -94 lines
Refactor uvm_page_physload_common().  Memory allocation failure here is
critical; panic if it happens.

Revision 1.153.2.17: download - view: text, markup, annotated - select for diffs
Sun Apr 25 10:15:41 2010 UTC (14 years, 9 months ago) by uebayasi
Branches: uebayasi-xip
Diff to: previous 1.153.2.16: preferred, colored; branchpoint 1.153: preferred, colored
Changes since revision 1.153.2.16: +14 -9 lines
Make uvm_page_physload() return the registered struct vm_physseg *.

Revision 1.154.2.2: download - view: text, markup, annotated - select for diffs
Wed Mar 17 06:03:19 2010 UTC (14 years, 11 months ago) by rmind
Branches: rmind-uvmplock
Diff to: previous 1.154.2.1: preferred, colored; branchpoint 1.154: preferred, colored
Changes since revision 1.154.2.1: +26 -6 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.154.2.1: download - view: text, markup, annotated - select for diffs
Tue Mar 16 15:38:18 2010 UTC (14 years, 11 months ago) by rmind
Branches: rmind-uvmplock
Diff to: previous 1.154: preferred, colored
Changes since revision 1.154: +10 -10 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.131.4.3: download - view: text, markup, annotated - select for diffs
Thu Mar 11 15:04:47 2010 UTC (14 years, 11 months ago) by yamt
Branches: yamt-nfs-mp
Diff to: previous 1.131.4.2: preferred, colored; branchpoint 1.131: preferred, colored
Changes since revision 1.131.4.2: +21 -21 lines
sync with head

Revision 1.153.2.16: download - view: text, markup, annotated - select for diffs
Sun Feb 28 06:29:19 2010 UTC (14 years, 11 months ago) by uebayasi
Branches: uebayasi-xip
Diff to: previous 1.153.2.15: preferred, colored; branchpoint 1.153: preferred, colored
Changes since revision 1.153.2.15: +10 -0 lines
Don't always enable XIP on this branch to prepare the merge.  Fix build
without XIP in places.

Revision 1.154: download - view: text, markup, annotated - select for diffs
Wed Feb 24 00:01:12 2010 UTC (14 years, 11 months ago) by jym
Branches: MAIN
CVS tags: yamt-nfs-mp-base9
Branch point for: rmind-uvmplock
Diff to: previous 1.153: preferred, colored
Changes since revision 1.153: +8 -8 lines
- Use ctob() instead of ptoa() to obtain physical addresses from frame
numbers. Using ptoa() will cast to vaddr_t, which might no be adequate
for architectures where sizeof(paddr_t) > sizeof(vaddr_t) (like i386 PAE).

- small fix inside AGP heuristics to avoid masking high order bits for
systems with more than 4GB.

Reviewed by bouyer@.

See also http://mail-index.netbsd.org/tech-kern/2010/02/22/msg007373.html

Revision 1.153.2.15: download - view: text, markup, annotated - select for diffs
Tue Feb 23 15:38:30 2010 UTC (14 years, 11 months ago) by uebayasi
Branches: uebayasi-xip
Diff to: previous 1.153.2.14: preferred, colored; branchpoint 1.153: preferred, colored
Changes since revision 1.153.2.14: +14 -3 lines
Put back vm_page::phys_addr for now, because removing it involves some random
parts in the tree.  I'll revisit this after merging the branch.

Revision 1.153.2.14: download - view: text, markup, annotated - select for diffs
Tue Feb 23 08:46:17 2010 UTC (14 years, 11 months ago) by uebayasi
Branches: uebayasi-xip
Diff to: previous 1.153.2.13: preferred, colored; branchpoint 1.153: preferred, colored
Changes since revision 1.153.2.13: +10 -0 lines
Make struct vm_page_md * -> struct vm_page_md * lookup a real function and
hide its internal.  Won't cause much performance loss because results are
usually cached by callers.

Revision 1.153.2.13: download - view: text, markup, annotated - select for diffs
Tue Feb 23 07:44:25 2010 UTC (14 years, 11 months ago) by uebayasi
Branches: uebayasi-xip
Diff to: previous 1.153.2.12: preferred, colored; branchpoint 1.153: preferred, colored
Changes since revision 1.153.2.12: +77 -43 lines
Introduce uvm_page_physload_device().  This registers a physical address
range of a device, similar to uvm_page_physload() for memories.  For now,
this is supposed to be called by MD code.  We have to consider the design
when we'll manage mmap'able character devices.

Expose paddr_t -> struct vm_page * conversion function for device pages,
uvm_phys_to_vm_page_device().  This will be called by XIP vnode pager.
Because it knows if a given vnode is a device page (and its physical
address base) or not.  Don't look up device segments, but directly make a
cookie.

Revision 1.153.2.12: download - view: text, markup, annotated - select for diffs
Fri Feb 12 04:33:05 2010 UTC (15 years ago) by uebayasi
Branches: uebayasi-xip
Diff to: previous 1.153.2.11: preferred, colored; branchpoint 1.153: preferred, colored
Changes since revision 1.153.2.11: +5 -1 lines
Enable the newly added VM_PAGE_TO_MD() only #ifdef __HAVE_VM_PAGE_MD.
Pointed out by mrg@.

Revision 1.153.2.11: download - view: text, markup, annotated - select for diffs
Wed Feb 10 14:18:31 2010 UTC (15 years ago) by uebayasi
Branches: uebayasi-xip
Diff to: previous 1.153.2.10: preferred, colored; branchpoint 1.153: preferred, colored
Changes since revision 1.153.2.10: +1 -5 lines
Fix previous again & use VM_PAGE_TO_MD() where appropriate.

Revision 1.153.2.10: download - view: text, markup, annotated - select for diffs
Wed Feb 10 02:12:39 2010 UTC (15 years ago) by uebayasi
Branches: uebayasi-xip
Diff to: previous 1.153.2.9: preferred, colored; branchpoint 1.153: preferred, colored
Changes since revision 1.153.2.9: +151 -8 lines
Initial MD per-page data (struct vm_page_md) lookup code for XIP'able device
pages.  Compile tested only.

Always define uvm_pageisdevice_p().  Always false if kernel is !DEVICE_PAGE.

Revision 1.153.2.9: download - view: text, markup, annotated - select for diffs
Tue Feb 9 14:12:00 2010 UTC (15 years ago) by uebayasi
Branches: uebayasi-xip
Diff to: previous 1.153.2.8: preferred, colored; branchpoint 1.153: preferred, colored
Changes since revision 1.153.2.8: +5 -4 lines
Give new funcs better names.

Revision 1.153.2.8: download - view: text, markup, annotated - select for diffs
Tue Feb 9 13:06:16 2010 UTC (15 years ago) by uebayasi
Branches: uebayasi-xip
Diff to: previous 1.153.2.7: preferred, colored; branchpoint 1.153: preferred, colored
Changes since revision 1.153.2.7: +38 -15 lines
Implement device page struct vm_page * handling.

Revision 1.153.2.7: download - view: text, markup, annotated - select for diffs
Tue Feb 9 09:07:34 2010 UTC (15 years ago) by uebayasi
Branches: uebayasi-xip
Diff to: previous 1.153.2.6: preferred, colored; branchpoint 1.153: preferred, colored
Changes since revision 1.153.2.6: +38 -1 lines
Define vm_physdev / vm_nphysdev, physical address segment data for managed
device pages.

Revision 1.153.2.6: download - view: text, markup, annotated - select for diffs
Tue Feb 9 08:43:33 2010 UTC (15 years ago) by uebayasi
Branches: uebayasi-xip
Diff to: previous 1.153.2.5: preferred, colored; branchpoint 1.153: preferred, colored
Changes since revision 1.153.2.5: +29 -29 lines
vm_nphysseg -> vm_nphysmem

Revision 1.153.2.5: download - view: text, markup, annotated - select for diffs
Tue Feb 9 08:23:10 2010 UTC (15 years ago) by uebayasi
Branches: uebayasi-xip
Diff to: previous 1.153.2.4: preferred, colored; branchpoint 1.153: preferred, colored
Changes since revision 1.153.2.4: +24 -108 lines
Merge vm_physseg lookup routines.

Revision 1.153.2.4: download - view: text, markup, annotated - select for diffs
Tue Feb 9 07:42:26 2010 UTC (15 years ago) by uebayasi
Branches: uebayasi-xip
Diff to: previous 1.153.2.3: preferred, colored; branchpoint 1.153: preferred, colored
Changes since revision 1.153.2.3: +95 -3 lines
Kill vm_page::phys_addr.

Revision 1.153.2.3: download - view: text, markup, annotated - select for diffs
Mon Feb 8 06:14:57 2010 UTC (15 years ago) by uebayasi
Branches: uebayasi-xip
Diff to: previous 1.153.2.2: preferred, colored; branchpoint 1.153: preferred, colored
Changes since revision 1.153.2.2: +67 -18 lines
Abstract vm_physseg_find() to handle struct vm_page *.

Revision 1.153.2.2: download - view: text, markup, annotated - select for diffs
Mon Feb 8 05:53:05 2010 UTC (15 years ago) by uebayasi
Branches: uebayasi-xip
Diff to: previous 1.153.2.1: preferred, colored; branchpoint 1.153: preferred, colored
Changes since revision 1.153.2.1: +122 -2 lines
Make vm_physseg lookup into a real function.

Revision 1.153.2.1: download - view: text, markup, annotated - select for diffs
Mon Feb 8 05:41:43 2010 UTC (15 years ago) by uebayasi
Branches: uebayasi-xip
Diff to: previous 1.153: preferred, colored
Changes since revision 1.153: +3 -3 lines
Make vm_physseg::lastpg exclusive end.

Revision 1.140.6.3.4.3: download - view: text, markup, annotated - select for diffs
Wed Jan 27 07:45:19 2010 UTC (15 years ago) by nisimura
Branches: matt-nb5-mips64
CVS tags: matt-nb5-mips64-premerge-20101231, matt-nb5-mips64-k15
Diff to: previous 1.140.6.3.4.2: preferred, colored; branchpoint 1.140.6.3: preferred, colored
Changes since revision 1.140.6.3.4.2: +2 -4 lines
Remove JRT two line comment about cache interference since the
change specifically addresses general VIPT cache issue.  Need more
throughout comment cleanup about uvmexp.ncolor intent and significance.

Revision 1.153: download - view: text, markup, annotated - select for diffs
Wed Jan 27 03:56:33 2010 UTC (15 years ago) by uebayasi
Branches: MAIN
CVS tags: uebayasi-xip-base
Branch point for: uebayasi-xip
Diff to: previous 1.152: preferred, colored
Changes since revision 1.152: +13 -13 lines
uvm_pageinsert, uvm_pageremove: Pass the uboj, to/from which a pg is
inserted/removed, as an argument, because looking up a back-reference from
pg is redundant.  No functional changes.

Revision 1.140.6.3.4.2: download - view: text, markup, annotated - select for diffs
Tue Jan 26 21:26:28 2010 UTC (15 years ago) by matt
Branches: matt-nb5-mips64
Diff to: previous 1.140.6.3.4.1: preferred, colored; branchpoint 1.140.6.3: preferred, colored
Changes since revision 1.140.6.3.4.1: +8 -4 lines
Pass hints to uvm_pagealloc* to get it to use the right page color rather
than guess the right page color.

Revision 1.152: download - view: text, markup, annotated - select for diffs
Sat Nov 7 07:27:50 2009 UTC (15 years, 3 months ago) by cegger
Branches: MAIN
CVS tags: matt-premerge-20091211
Diff to: previous 1.151: preferred, colored
Changes since revision 1.151: +4 -4 lines
Add a flags argument to pmap_kenter_pa(9).
Patch showed on tech-kern@ http://mail-index.netbsd.org/tech-kern/2009/11/04/msg006434.html
No objections.

Revision 1.140.6.3.4.1: download - view: text, markup, annotated - select for diffs
Sat Sep 12 18:38:46 2009 UTC (15 years, 5 months ago) by matt
Branches: matt-nb5-mips64
CVS tags: matt-nb5-mips64-u2-k2-k4-k7-k8-k9, matt-nb5-mips64-premerge-20091211
Diff to: previous 1.140.6.3: preferred, colored
Changes since revision 1.140.6.3: +4 -2 lines
Add KASSERT(pg) to uvm_pagefree() so that invalid physical address passed
to VM_PHYS_TO_PAGE will be easily caught.

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

Revision 1.151: download - view: text, markup, annotated - select for diffs
Tue Aug 18 19:08:39 2009 UTC (15 years, 5 months ago) by thorpej
Branches: MAIN
CVS tags: yamt-nfs-mp-base8, yamt-nfs-mp-base7, jym-xensuspend-nbase
Diff to: previous 1.150: preferred, colored
Changes since revision 1.150: +123 -2 lines
Move uvm_page-related DDB hooks into uvm_page.c.

Revision 1.150: download - view: text, markup, annotated - select for diffs
Tue Aug 18 18:06:53 2009 UTC (15 years, 5 months ago) by thorpej
Branches: MAIN
Diff to: previous 1.149: preferred, colored
Changes since revision 1.149: +13 -2 lines
Add a real API for testing if a page is a managed page, and adjust callers
to stop relying on vm_physseg_find() for this purpose.

Revision 1.149: download - view: text, markup, annotated - select for diffs
Tue Aug 11 16:27:08 2009 UTC (15 years, 6 months ago) by matt
Branches: MAIN
Diff to: previous 1.148: preferred, colored
Changes since revision 1.148: +3 -3 lines
Fix brain fart.  physmem was int not long.

Revision 1.148: download - view: text, markup, annotated - select for diffs
Tue Aug 11 16:07:24 2009 UTC (15 years, 6 months ago) by matt
Branches: MAIN
Diff to: previous 1.147: preferred, colored
Changes since revision 1.147: +7 -2 lines
Add back declaration of physmem but use the existing type (long).

Revision 1.147: download - view: text, markup, annotated - select for diffs
Tue Aug 11 09:16:53 2009 UTC (15 years, 6 months ago) by haad
Branches: MAIN
Diff to: previous 1.146: preferred, colored
Changes since revision 1.146: +2 -5 lines
Remove physmem definition to uintptr_t from another patch.

Revision 1.146: download - view: text, markup, annotated - select for diffs
Mon Aug 10 23:17:29 2009 UTC (15 years, 6 months ago) by haad
Branches: MAIN
Diff to: previous 1.145: preferred, colored
Changes since revision 1.145: +6 -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.142.2.1: download - view: text, markup, annotated - select for diffs
Wed May 13 17:23:10 2009 UTC (15 years, 9 months ago) by jym
Branches: jym-xensuspend
Diff to: previous 1.142: preferred, colored; next MAIN 1.143: preferred, colored
Changes since revision 1.142: +12 -5 lines
Sync with HEAD.

Commit is split, to avoid a "too many arguments" protocol error.

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

Revision 1.140.4.3: download - view: text, markup, annotated - select for diffs
Tue Apr 28 07:37:58 2009 UTC (15 years, 9 months ago) by skrll
Branches: nick-hppapmap
Diff to: previous 1.140.4.2: preferred, colored; branchpoint 1.140: preferred, colored; next MAIN 1.141: preferred, colored
Changes since revision 1.140.4.2: +3 -3 lines
Sync with HEAD.

Revision 1.145: download - view: text, markup, annotated - select for diffs
Thu Mar 12 12:55:16 2009 UTC (15 years, 11 months ago) by abs
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-base, jymxensuspend-base, jym-xensuspend-base
Diff to: previous 1.144: preferred, colored
Changes since revision 1.144: +3 -3 lines
Clarify free_list usage in uvm_page_physload() regarding faster/slower RAM.
Slower RAM should be assigned a higher free_list id.
No functional change to code, just comments and manpage

Revision 1.140.4.2: download - view: text, markup, annotated - select for diffs
Tue Mar 3 18:34:40 2009 UTC (15 years, 11 months ago) by skrll
Branches: nick-hppapmap
Diff to: previous 1.140.4.1: preferred, colored; branchpoint 1.140: preferred, colored
Changes since revision 1.140.4.1: +11 -4 lines
Sync with HEAD.

Revision 1.140.6.3: download - view: text, markup, annotated - select for diffs
Mon Mar 2 20:51:35 2009 UTC (15 years, 11 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-2-RELEASE, netbsd-5-0-1-RELEASE, netbsd-5-0, matt-nb5-pq3-base, matt-nb5-mips64-u1-k1-k5, matt-nb4-mips64-k7-u2a-k9b
Branch point for: matt-nb5-pq3, matt-nb5-mips64
Diff to: previous 1.140.6.2: preferred, colored; branchpoint 1.140: preferred, colored; next MAIN 1.141: preferred, colored
Changes since revision 1.140.6.2: +3 -2 lines
Pull up following revision(s) (requested by drochner in ticket #541):
	sys/uvm/uvm_page.c: revision 1.144
oops - missed a case with PMAP_PAGEIDLEZERO if md code aborts the
zeroing process, from Nicolas Joly

Revision 1.140.6.2: download - view: text, markup, annotated - select for diffs
Mon Mar 2 20:50:26 2009 UTC (15 years, 11 months ago) by snj
Branches: netbsd-5
Diff to: previous 1.140.6.1: preferred, colored; branchpoint 1.140: preferred, colored
Changes since revision 1.140.6.1: +10 -4 lines
Pull up following revision(s) (requested by drochner in ticket #541):
	sys/uvm/uvm_page.c: revision 1.143
-fix two conditions where PQ_FREE was still/already set while the page
 was not anymore/yet on the freelist and uvm_fpageqlock was not held
-clear PQ_FREE while the page is in the works of pageidlezero
This avoids that the DMA memory allocator (pglistalloc) grabs a page
which is not on the freelist, leading to a diagnostic panic (with DEBUG)
or freelist corruption. (mostly on X server activation after a VT
switch or suspend/resume because this can allocate megabytes of AGP
memory)
This might fix PR port-i386/38989 by Alan Barrett (in case this was
a multiprocessor).

Revision 1.144: download - view: text, markup, annotated - select for diffs
Fri Feb 27 23:29:08 2009 UTC (15 years, 11 months ago) by drochner
Branches: MAIN
CVS tags: nick-hppapmap-base2
Diff to: previous 1.143: preferred, colored
Changes since revision 1.143: +3 -2 lines
oops - missed a case with PMAP_PAGEIDLEZERO if md code aborts the
zeroing process, from Nicolas Joly

Revision 1.143: download - view: text, markup, annotated - select for diffs
Thu Feb 26 18:18:14 2009 UTC (15 years, 11 months ago) by drochner
Branches: MAIN
Diff to: previous 1.142: preferred, colored
Changes since revision 1.142: +10 -4 lines
-fix two conditions where PQ_FREE was still/already set while the page
 was not anymore/yet on the freelist and uvm_fpageqlock was not held
-clear PQ_FREE while the page is in the works of pageidlezero
This avoids that the DMA memory allocator (pglistalloc) grabs a page
which is not on the freelist, leading to a diagnostic panic (with DEBUG)
or freelist corruption. (mostly on X server activation after a VT
switch or suspend/resume because this can allocate megabytes of AGP
memory)
This might fix PR port-i386/38989 by Alan Barrett (in case this was
a multiprocessor).

Revision 1.140.4.1: download - view: text, markup, annotated - select for diffs
Mon Jan 19 13:20:36 2009 UTC (16 years ago) by skrll
Branches: nick-hppapmap
Diff to: previous 1.140: preferred, colored
Changes since revision 1.140: +14 -9 lines
Sync with HEAD.

Revision 1.128.6.7: download - view: text, markup, annotated - select for diffs
Sat Jan 17 13:29:43 2009 UTC (16 years ago) by mjf
Branches: mjf-devfs2
Diff to: previous 1.128.6.6: preferred, colored; branchpoint 1.128: preferred, colored; next MAIN 1.129: preferred, colored
Changes since revision 1.128.6.6: +12 -7 lines
Sync with HEAD.

Revision 1.142: download - view: text, markup, annotated - select for diffs
Fri Jan 16 07:01:28 2009 UTC (16 years, 1 month ago) by yamt
Branches: MAIN
CVS tags: mjf-devfs2-base
Branch point for: jym-xensuspend
Diff to: previous 1.141: preferred, colored
Changes since revision 1.141: +3 -2 lines
uvm_page_unbusy: add an assertion

Revision 1.140.6.1: download - view: text, markup, annotated - select for diffs
Sat Dec 27 18:26:22 2008 UTC (16 years, 1 month ago) by snj
Branches: netbsd-5
CVS tags: netbsd-5-0-RC2, netbsd-5-0-RC1
Diff to: previous 1.140: preferred, colored
Changes since revision 1.140: +13 -9 lines
Pull up following revision(s) (requested by bouyer in ticket #211):
	sys/uvm/uvm_km.c: revision 1.103
	sys/uvm/uvm_map.c: revision 1.265
	sys/uvm/uvm_page.c: revision 1.141
It's easier for kernel reserve pages to be consumed because the pagedaemon
serves as less of a barrier these days. Restrict provision of kernel reserve
pages to kmem and one of these cases:
- doing a NOWAIT allocation
- caller is a realtime thread
- caller is a kernel thread
- explicitly requested, for example by the pmap

Revision 1.141: download - view: text, markup, annotated - select for diffs
Sat Dec 13 11:34:43 2008 UTC (16 years, 2 months ago) by ad
Branches: MAIN
Diff to: previous 1.140: preferred, colored
Changes since revision 1.140: +13 -9 lines
It's easier for kernel reserve pages to be consumed because the pagedaemon
serves as less of a barrier these days. Restrict provision of kernel reserve
pages to kmem and one of these cases:

- doing a NOWAIT allocation
- caller is a realtime thread
- caller is a kernel thread
- explicitly requested, for example by the pmap

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

Revision 1.131.6.2: download - view: text, markup, annotated - select for diffs
Thu Sep 18 04:37:06 2008 UTC (16 years, 4 months ago) by wrstuden
Branches: wrstuden-revivesa
Diff to: previous 1.131.6.1: preferred, colored; branchpoint 1.131: preferred, colored; next MAIN 1.132: preferred, colored
Changes since revision 1.131.6.1: +18 -9 lines
Sync with wrstuden-revivesa-base-2.

Revision 1.135.2.4: download - view: text, markup, annotated - select for diffs
Fri Jul 18 16:37:58 2008 UTC (16 years, 6 months ago) by simonb
Branches: simonb-wapbl
Diff to: previous 1.135.2.3: preferred, colored; next MAIN 1.136: preferred, colored
Changes since revision 1.135.2.3: +12 -3 lines
Sync with head.

Revision 1.140: download - view: text, markup, annotated - select for diffs
Fri Jul 4 10:56:59 2008 UTC (16 years, 7 months ago) by ad
Branches: MAIN
CVS tags: wrstuden-revivesa-base-4, wrstuden-revivesa-base-3, wrstuden-revivesa-base-2, simonb-wapbl-nbase, simonb-wapbl-base, netbsd-5-base, matt-mips64-base2, haad-nbase2, haad-dm-base2, haad-dm-base1, haad-dm-base, haad-dm, ad-audiomp2-base, ad-audiomp2
Branch point for: nick-hppapmap, netbsd-5
Diff to: previous 1.139: preferred, colored
Changes since revision 1.139: +12 -3 lines
Scale the number of kernel reserve pages by the number of CPUs.

Revision 1.135.2.3: download - view: text, markup, annotated - select for diffs
Thu Jul 3 18:38:25 2008 UTC (16 years, 7 months ago) by simonb
Branches: simonb-wapbl
Diff to: previous 1.135.2.2: preferred, colored
Changes since revision 1.135.2.2: +6 -6 lines
Sync with head.

Revision 1.128.6.5: download - view: text, markup, annotated - select for diffs
Wed Jul 2 19:08:21 2008 UTC (16 years, 7 months ago) by mjf
Branches: mjf-devfs2
Diff to: previous 1.128.6.4: preferred, colored; branchpoint 1.128: preferred, colored
Changes since revision 1.128.6.4: +6 -6 lines
Sync with HEAD.

Revision 1.139: download - view: text, markup, annotated - select for diffs
Wed Jul 2 17:47:53 2008 UTC (16 years, 7 months ago) by ad
Branches: MAIN
Diff to: previous 1.138: preferred, colored
Changes since revision 1.138: +5 -5 lines
uvm_pageidlezero: fix a broken test which made it give up too easily.

Revision 1.138: download - view: text, markup, annotated - select for diffs
Wed Jul 2 14:47:35 2008 UTC (16 years, 7 months ago) by matt
Branches: MAIN
Diff to: previous 1.137: preferred, colored
Changes since revision 1.137: +3 -3 lines
Switch from KASSERT to CTASSERT for those asserts testing sizes of types.

Revision 1.135.2.2: download - view: text, markup, annotated - select for diffs
Mon Jun 30 23:07:30 2008 UTC (16 years, 7 months ago) by matt
Branches: simonb-wapbl
Diff to: previous 1.135.2.1: preferred, colored
Changes since revision 1.135.2.1: +4 -4 lines
Update to HEAD.

Revision 1.137: download - view: text, markup, annotated - select for diffs
Mon Jun 30 20:14:09 2008 UTC (16 years, 7 months ago) by matt
Branches: MAIN
Diff to: previous 1.136: preferred, colored
Changes since revision 1.136: +4 -4 lines
Change tree op members/typedefs to rbto_compare_* from rb_compare_*

Revision 1.128.6.4: download - view: text, markup, annotated - select for diffs
Sun Jun 29 09:33:21 2008 UTC (16 years, 7 months ago) by mjf
Branches: mjf-devfs2
Diff to: previous 1.128.6.3: preferred, colored; branchpoint 1.128: preferred, colored
Changes since revision 1.128.6.3: +46 -18 lines
Sync with HEAD.

Revision 1.131.6.1: download - view: text, markup, annotated - select for diffs
Mon Jun 23 04:32:06 2008 UTC (16 years, 7 months ago) by wrstuden
Branches: wrstuden-revivesa
Diff to: previous 1.131: preferred, colored
Changes since revision 1.131: +261 -245 lines
Sync w/ -current. 34 merge conflicts to follow.

Revision 1.135.2.1: download - view: text, markup, annotated - select for diffs
Wed Jun 18 16:33:59 2008 UTC (16 years, 7 months ago) by simonb
Branches: simonb-wapbl
Diff to: previous 1.135: preferred, colored
Changes since revision 1.135: +48 -20 lines
Sync with head.

Revision 1.131.2.2: download - view: text, markup, annotated - select for diffs
Tue Jun 17 09:15:17 2008 UTC (16 years, 8 months ago) by yamt
Branches: yamt-pf42
Diff to: previous 1.131.2.1: preferred, colored; branchpoint 1.131: preferred, colored; next MAIN 1.132: preferred, colored
Changes since revision 1.131.2.1: +255 -250 lines
sync with head.

Revision 1.136: download - view: text, markup, annotated - select for diffs
Tue Jun 17 02:30:57 2008 UTC (16 years, 8 months ago) by yamt
Branches: MAIN
CVS tags: yamt-pf42-base4, wrstuden-revivesa-base-1, wrstuden-revivesa-base
Diff to: previous 1.135: preferred, colored
Changes since revision 1.135: +48 -20 lines
- uvm_pagereplace: don't try to insert multiple pages with the same offset
  into uvm_object rbtree.
- inline static -> static inline

Revision 1.128.6.3: download - view: text, markup, annotated - select for diffs
Thu Jun 5 19:14:38 2008 UTC (16 years, 8 months ago) by mjf
Branches: mjf-devfs2
Diff to: previous 1.128.6.2: preferred, colored; branchpoint 1.128: preferred, colored
Changes since revision 1.128.6.2: +210 -233 lines
Sync with HEAD.

Also fix build.

Revision 1.135: download - view: text, markup, annotated - select for diffs
Thu Jun 5 08:16:01 2008 UTC (16 years, 8 months ago) by he
Branches: MAIN
Branch point for: simonb-wapbl
Diff to: previous 1.134: preferred, colored
Changes since revision 1.134: +2 -3 lines
Delete what appears to be a spurious assignment to an undeclared
'cpu' variable added in revision 1.133.  Restores buildability for this file.

Revision 1.134: download - view: text, markup, annotated - select for diffs
Wed Jun 4 15:06:04 2008 UTC (16 years, 8 months ago) by ad
Branches: MAIN
Diff to: previous 1.133: preferred, colored
Changes since revision 1.133: +46 -164 lines
Replace the global vm_page hash with a per vm_object rbtree.
Proposed on tech-kern@.

Revision 1.133: download - view: text, markup, annotated - select for diffs
Wed Jun 4 12:45:28 2008 UTC (16 years, 8 months ago) by ad
Branches: MAIN
Diff to: previous 1.132: preferred, colored
Changes since revision 1.132: +169 -73 lines
- vm_page: put listq, pageq into a union alongside a LIST_ENTRY, so we can
  use both types of list.

- Make page coloring and idle zero state per-CPU.

- Maintain per-CPU page freelists. When freeing, put pages onto the local
  CPU's lists and the global lists. When allocating, prefer to take pages
  from the local CPU. If none are available take from the global list as
  done now. Proposed on tech-kern@.

Revision 1.131.2.1: download - view: text, markup, annotated - select for diffs
Wed Jun 4 02:05:54 2008 UTC (16 years, 8 months ago) by yamt
Branches: yamt-pf42
Diff to: previous 1.131: preferred, colored
Changes since revision 1.131: +19 -8 lines
sync with head

Revision 1.128.6.2: download - view: text, markup, annotated - select for diffs
Mon Jun 2 13:24:37 2008 UTC (16 years, 8 months ago) by mjf
Branches: mjf-devfs2
Diff to: previous 1.128.6.1: preferred, colored; branchpoint 1.128: preferred, colored
Changes since revision 1.128.6.1: +17 -6 lines
Sync with HEAD.

Revision 1.132: download - view: text, markup, annotated - select for diffs
Mon Jun 2 11:11:14 2008 UTC (16 years, 8 months ago) by ad
Branches: MAIN
CVS tags: yamt-pf42-base3
Diff to: previous 1.131: preferred, colored
Changes since revision 1.131: +19 -8 lines
uvm_pageidlezero:

- Use high and low water marks to try and reduce power consumption.
- Do trylock on uvm_fpageqlock, and bail if we can't get it.
- Only run on one CPU at a time.

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

Revision 1.106.2.10: download - view: text, markup, annotated - select for diffs
Mon Mar 24 09:39:14 2008 UTC (16 years, 10 months ago) by yamt
Branches: yamt-lazymbuf
Diff to: previous 1.106.2.9: preferred, colored; branchpoint 1.106: preferred, colored; next MAIN 1.107: preferred, colored
Changes since revision 1.106.2.9: +6 -3 lines
sync with head.

Revision 1.131: download - view: text, markup, annotated - select for diffs
Mon Mar 24 08:53:25 2008 UTC (16 years, 10 months ago) by yamt
Branches: MAIN
CVS tags: yamt-pf42-baseX, yamt-pf42-base2, yamt-pf42-base, yamt-nfs-mp-base2, yamt-nfs-mp-base, yamt-lazymbuf-base15, yamt-lazymbuf-base14, hpcarm-cleanup-nbase, ad-socklock-base1
Branch point for: yamt-pf42, yamt-nfs-mp, wrstuden-revivesa
Diff to: previous 1.130: preferred, colored
Changes since revision 1.130: +6 -3 lines
remove a redundant pmap_update and add a comment instead.

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

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

Revision 1.106.2.9: download - view: text, markup, annotated - select for diffs
Mon Mar 17 09:15:52 2008 UTC (16 years, 11 months ago) by yamt
Branches: yamt-lazymbuf
Diff to: previous 1.106.2.8: preferred, colored; branchpoint 1.106: preferred, colored
Changes since revision 1.106.2.8: +4 -2 lines
sync with head.

Revision 1.130: download - view: text, markup, annotated - select for diffs
Wed Feb 27 14:24:24 2008 UTC (16 years, 11 months ago) by ad
Branches: MAIN
CVS tags: matt-armv6-nbase, keiichi-mipv6-nbase, keiichi-mipv6-base, hpcarm-cleanup-base
Diff to: previous 1.129: preferred, colored
Changes since revision 1.129: +4 -2 lines
Assert uvm_fpageqlock is held in a few more places.

Revision 1.106.2.8: download - view: text, markup, annotated - select for diffs
Wed Feb 27 08:37:09 2008 UTC (16 years, 11 months ago) by yamt
Branches: yamt-lazymbuf
Diff to: previous 1.106.2.7: preferred, colored; branchpoint 1.106: preferred, colored
Changes since revision 1.106.2.7: +3 -2 lines
sync with head.

Revision 1.129: download - view: text, markup, annotated - select for diffs
Sat Feb 23 17:27:58 2008 UTC (16 years, 11 months ago) by chris
Branches: MAIN
Diff to: previous 1.128: preferred, colored
Changes since revision 1.128: +3 -2 lines
Add some more missing pmap_update()s following pmap_kremove()s.

Revision 1.125.4.2: download - view: text, markup, annotated - select for diffs
Mon Feb 18 21:07:33 2008 UTC (16 years, 11 months ago) by mjf
Branches: mjf-devfs
Diff to: previous 1.125.4.1: preferred, colored; branchpoint 1.125: preferred, colored; next MAIN 1.126: preferred, colored
Changes since revision 1.125.4.1: +25 -39 lines
Sync with HEAD.

Revision 1.106.2.7: download - view: text, markup, annotated - select for diffs
Mon Jan 21 09:48:23 2008 UTC (17 years ago) by yamt
Branches: yamt-lazymbuf
Diff to: previous 1.106.2.6: preferred, colored; branchpoint 1.106: preferred, colored
Changes since revision 1.106.2.6: +25 -39 lines
sync with head

Revision 1.126.6.2: download - view: text, markup, annotated - select for diffs
Sat Jan 19 12:15:49 2008 UTC (17 years ago) by bouyer
Branches: bouyer-xeni386
Diff to: previous 1.126.6.1: preferred, colored; branchpoint 1.126: preferred, colored; next MAIN 1.127: preferred, colored
Changes since revision 1.126.6.1: +3 -6 lines
Sync with HEAD

Revision 1.128: download - view: text, markup, annotated - select for diffs
Sun Jan 13 16:46:47 2008 UTC (17 years, 1 month ago) by yamt
Branches: MAIN
CVS tags: nick-net80211-sync-base, nick-net80211-sync, mjf-devfs-base, bouyer-xeni386-nbase, bouyer-xeni386-base
Branch point for: mjf-devfs2, keiichi-mipv6
Diff to: previous 1.127: preferred, colored
Changes since revision 1.127: +5 -8 lines
unwrap short lines.

Revision 1.123.6.2: download - view: text, markup, annotated - select for diffs
Wed Jan 9 01:58:42 2008 UTC (17 years, 1 month ago) by matt
Branches: matt-armv6
Diff to: previous 1.123.6.1: preferred, colored; branchpoint 1.123: preferred, colored
Changes since revision 1.123.6.1: +36 -46 lines
sync with HEAD

Revision 1.126.6.1: download - view: text, markup, annotated - select for diffs
Wed Jan 2 21:58:41 2008 UTC (17 years, 1 month ago) by bouyer
Branches: bouyer-xeni386
CVS tags: bouyer-xeni386-merge1
Diff to: previous 1.126: preferred, colored
Changes since revision 1.126: +26 -37 lines
Sync with HEAD

Revision 1.127: download - view: text, markup, annotated - select for diffs
Wed Jan 2 11:49:19 2008 UTC (17 years, 1 month ago) by ad
Branches: MAIN
CVS tags: matt-armv6-base
Diff to: previous 1.126: preferred, colored
Changes since revision 1.126: +26 -37 lines
Merge vmlocking2 to head.

Revision 1.125.4.1: download - view: text, markup, annotated - select for diffs
Sat Dec 8 18:21:46 2007 UTC (17 years, 2 months ago) by mjf
Branches: mjf-devfs
Diff to: previous 1.125: preferred, colored
Changes since revision 1.125: +12 -11 lines
Sync with HEAD.

Revision 1.106.2.6: download - view: text, markup, annotated - select for diffs
Fri Dec 7 17:35:28 2007 UTC (17 years, 2 months ago) by yamt
Branches: yamt-lazymbuf
Diff to: previous 1.106.2.5: preferred, colored; branchpoint 1.106: preferred, colored
Changes since revision 1.106.2.5: +12 -11 lines
sync with head

Revision 1.126.2.1: download - view: text, markup, annotated - select for diffs
Tue Dec 4 13:04:02 2007 UTC (17 years, 2 months ago) by ad
Branches: vmlocking2
Diff to: previous 1.126: preferred, colored; next MAIN 1.127: preferred, colored
Changes since revision 1.126: +26 -37 lines
Pull the vmlocking changes into a new branch.

Revision 1.123.4.2: download - view: text, markup, annotated - select for diffs
Mon Dec 3 16:15:26 2007 UTC (17 years, 2 months ago) by joerg
Branches: jmcneill-pm
Diff to: previous 1.123.4.1: preferred, colored; branchpoint 1.123: preferred, colored; next MAIN 1.124: preferred, colored
Changes since revision 1.123.4.1: +12 -11 lines
Sync with HEAD.

Revision 1.126: download - view: text, markup, annotated - select for diffs
Thu Nov 29 18:07:11 2007 UTC (17 years, 2 months 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
Branch point for: vmlocking2, bouyer-xeni386
Diff to: previous 1.125: preferred, colored
Changes since revision 1.125: +12 -11 lines
Use atomics to maintain uvmexp.{anon,exec,file}pages.

Revision 1.123.6.1: download - view: text, markup, annotated - select for diffs
Tue Nov 6 23:35:31 2007 UTC (17 years, 3 months ago) by matt
Branches: matt-armv6
CVS tags: matt-armv6-prevmlocking
Diff to: previous 1.123: preferred, colored
Changes since revision 1.123: +13 -8 lines
sync with HEAD

Revision 1.106.2.5: download - view: text, markup, annotated - select for diffs
Sat Oct 27 11:36:55 2007 UTC (17 years, 3 months ago) by yamt
Branches: yamt-lazymbuf
Diff to: previous 1.106.2.4: preferred, colored; branchpoint 1.106: preferred, colored
Changes since revision 1.106.2.4: +13 -8 lines
sync with head.

Revision 1.123.4.1: download - view: text, markup, annotated - select for diffs
Fri Oct 26 15:49:43 2007 UTC (17 years, 3 months ago) by joerg
Branches: jmcneill-pm
Diff to: previous 1.123: preferred, colored
Changes since revision 1.123: +13 -8 lines
Sync with HEAD.

Follow the merge of pmap.c on i386 and amd64 and move
pmap_init_tmp_pgtbl into arch/x86/x86/pmap.c. Modify the ACPI wakeup
code to restore CR4 before jumping back into kernel space as the large
page option might cover that.

Revision 1.123.8.1: download - view: text, markup, annotated - select for diffs
Sun Oct 14 11:49:26 2007 UTC (17 years, 4 months ago) by yamt
Branches: yamt-x86pmap
Diff to: previous 1.123: preferred, colored; next MAIN 1.124: preferred, colored
Changes since revision 1.123: +13 -8 lines
sync with head.

Revision 1.125: download - view: text, markup, annotated - select for diffs
Mon Oct 8 14:14:55 2007 UTC (17 years, 4 months ago) by ad
Branches: MAIN
CVS tags: yamt-x86pmap-base4, yamt-x86pmap-base3, vmlocking-base, jmcneill-base, bouyer-xenamd64-base2, bouyer-xenamd64-base, bouyer-xenamd64
Branch point for: mjf-devfs
Diff to: previous 1.124: preferred, colored
Changes since revision 1.124: +2 -11 lines
Fix merge error.

Revision 1.124: download - view: text, markup, annotated - select for diffs
Mon Oct 8 14:06:15 2007 UTC (17 years, 4 months ago) by ad
Branches: MAIN
Diff to: previous 1.123: preferred, colored
Changes since revision 1.123: +19 -5 lines
Pad the hashlocks to 32-byte boundaries.

Revision 1.106.2.4: download - view: text, markup, annotated - select for diffs
Mon Sep 3 14:47:09 2007 UTC (17 years, 5 months ago) by yamt
Branches: yamt-lazymbuf
Diff to: previous 1.106.2.3: preferred, colored; branchpoint 1.106: preferred, colored
Changes since revision 1.106.2.3: +90 -84 lines
sync with head.

Revision 1.119.4.12: download - view: text, markup, annotated - select for diffs
Tue Aug 21 22:32:26 2007 UTC (17 years, 5 months ago) by yamt
Branches: vmlocking
Diff to: previous 1.119.4.11: preferred, colored; branchpoint 1.119: preferred, colored; next MAIN 1.120: preferred, colored
Changes since revision 1.119.4.11: +2 -8 lines
fix some races around pagedaemon and uvm_wait.  ok'ed by Andrew Doran.

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

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

Revision 1.119.4.10: download - view: text, markup, annotated - select for diffs
Sun Jul 29 11:32:20 2007 UTC (17 years, 6 months ago) by ad
Branches: vmlocking
Diff to: previous 1.119.4.9: preferred, colored; branchpoint 1.119: preferred, colored
Changes since revision 1.119.4.9: +13 -8 lines
Pad out the hashlocks to reduce cache traffic.

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

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

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

Revision 1.119.6.1: download - view: text, markup, annotated - select for diffs
Wed Jul 11 20:12:56 2007 UTC (17 years, 7 months ago) by mjf
Branches: mjf-ufs-trans
Diff to: previous 1.119: preferred, colored; next MAIN 1.120: preferred, colored
Changes since revision 1.119: +8 -7 lines
Sync with head.

Revision 1.122: download - view: text, markup, annotated - select for diffs
Mon Jul 9 21:11:36 2007 UTC (17 years, 7 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.121: preferred, colored
Changes since revision 1.121: +3 -3 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.119.4.9: download - view: text, markup, annotated - select for diffs
Fri Jun 8 14:18:21 2007 UTC (17 years, 8 months ago) by ad
Branches: vmlocking
Diff to: previous 1.119.4.8: preferred, colored; branchpoint 1.119: preferred, colored
Changes since revision 1.119.4.8: +7 -6 lines
Sync with head.

Revision 1.121: download - view: text, markup, annotated - select for diffs
Thu May 17 14:51:43 2007 UTC (17 years, 9 months ago) by yamt
Branches: MAIN
Diff to: previous 1.120: preferred, colored
Changes since revision 1.120: +6 -6 lines
merge yamt-idlelwp branch.  asked by core@.  some ports still needs work.

from doc/BRANCHES:

	idle lwp, and some changes depending on it.

	1. separate context switching and thread scheduling.
	   (cf. gmcgarry_ctxsw)
	2. implement idle lwp.
	3. clean up related MD/MI interfaces.
	4. make scheduler(s) modular.

Revision 1.119.4.8: download - view: text, markup, annotated - select for diffs
Sun Apr 29 14:21:38 2007 UTC (17 years, 9 months ago) by ad
Branches: vmlocking
Diff to: previous 1.119.4.7: preferred, colored; branchpoint 1.119: preferred, colored
Changes since revision 1.119.4.7: +15 -12 lines
Note that the hashlocks must be spinlocks.

Revision 1.119.4.7: download - view: text, markup, annotated - select for diffs
Sat Apr 28 20:47:03 2007 UTC (17 years, 9 months ago) by ad
Branches: vmlocking
Diff to: previous 1.119.4.6: preferred, colored; branchpoint 1.119: preferred, colored
Changes since revision 1.119.4.6: +46 -15 lines
Split uvm_hashlock into an array of 32 locks.

Revision 1.117.2.3: download - view: text, markup, annotated - select for diffs
Sun Apr 15 16:04:09 2007 UTC (17 years, 10 months ago) by yamt
Branches: yamt-idlelwp
Diff to: previous 1.117.2.2: preferred, colored; branchpoint 1.117: preferred, colored; next MAIN 1.118: preferred, colored
Changes since revision 1.117.2.2: +3 -2 lines
sync with head.

Revision 1.120: download - view: text, markup, annotated - select for diffs
Sat Apr 14 07:01:33 2007 UTC (17 years, 10 months ago) by perseant
Branches: MAIN
CVS tags: yamt-idlelwp-base8
Diff to: previous 1.119: preferred, colored
Changes since revision 1.119: +3 -2 lines
Track lwp as well as proc owner with UVM_PAGE_TRKOWN

Revision 1.119.4.6: download - view: text, markup, annotated - select for diffs
Mon Apr 9 22:10:08 2007 UTC (17 years, 10 months ago) by ad
Branches: vmlocking
Diff to: previous 1.119.4.5: preferred, colored; branchpoint 1.119: preferred, colored
Changes since revision 1.119.4.5: +3 -3 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.119.4.5: download - view: text, markup, annotated - select for diffs
Thu Apr 5 21:32:53 2007 UTC (17 years, 10 months ago) by ad
Branches: vmlocking
Diff to: previous 1.119.4.4: preferred, colored; branchpoint 1.119: preferred, colored
Changes since revision 1.119.4.4: +3 -4 lines
- Put a per-LWP lock around swapin / swapout.
- Replace use of lockmgr().
- Minor locking fixes and assertions.
- uvm_map.h no longer pulls in proc.h, etc.
- Use kpause where appropriate.

Revision 1.119.4.4: download - view: text, markup, annotated - select for diffs
Thu Apr 5 21:28:11 2007 UTC (17 years, 10 months ago) by ad
Branches: vmlocking
Diff to: previous 1.119.4.3: preferred, colored; branchpoint 1.119: preferred, colored
Changes since revision 1.119.4.3: +9 -9 lines
uvm_pagefree: check for already freed pages before checking the locks.

Revision 1.119.4.3: download - view: text, markup, annotated - select for diffs
Thu Apr 5 18:15:50 2007 UTC (17 years, 10 months ago) by ad
Branches: vmlocking
Diff to: previous 1.119.4.2: preferred, colored; branchpoint 1.119: preferred, colored
Changes since revision 1.119.4.2: +8 -2 lines
Add some lock assertions.

Revision 1.119.4.2: download - view: text, markup, annotated - select for diffs
Wed Mar 21 20:07:58 2007 UTC (17 years, 10 months ago) by ad
Branches: vmlocking
Diff to: previous 1.119.4.1: preferred, colored; branchpoint 1.119: preferred, colored
Changes since revision 1.119.4.1: +2 -7 lines
idlezero: don't grab the kernel lock.

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

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

Revision 1.106.2.3: download - view: text, markup, annotated - select for diffs
Mon Feb 26 09:12:31 2007 UTC (17 years, 11 months ago) by yamt
Branches: yamt-lazymbuf
Diff to: previous 1.106.2.2: preferred, colored; branchpoint 1.106: preferred, colored
Changes since revision 1.106.2.2: +29 -30 lines
sync with head.

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

Revision 1.118: download - view: text, markup, annotated - select for diffs
Wed Feb 21 23:00:14 2007 UTC (17 years, 11 months ago) by thorpej
Branches: MAIN
Diff to: previous 1.117: preferred, colored
Changes since revision 1.117: +10 -10 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.117.2.1: download - view: text, markup, annotated - select for diffs
Sat Feb 17 10:31:06 2007 UTC (17 years, 11 months ago) by yamt
Branches: yamt-idlelwp
Diff to: previous 1.117: preferred, colored
Changes since revision 1.117: +6 -6 lines
- separate context switching and thread scheduling.
- introduce idle lwp.
- change some related MD/MI interfaces and implement i386 version.

Revision 1.117: download - view: text, markup, annotated - select for diffs
Fri Feb 9 21:55:43 2007 UTC (18 years ago) by ad
Branches: MAIN
CVS tags: post-newlock2-merge
Branch point for: yamt-idlelwp
Diff to: previous 1.116: preferred, colored
Changes since revision 1.116: +7 -8 lines
Merge newlock2 to head.

Revision 1.112.8.4: download - view: text, markup, annotated - select for diffs
Fri Jan 12 01:04:25 2007 UTC (18 years, 1 month ago) by ad
Branches: newlock2
Diff to: previous 1.112.8.3: preferred, colored; branchpoint 1.112: preferred, colored; next MAIN 1.113: preferred, colored
Changes since revision 1.112.8.3: +12 -10 lines
Sync with head.

Revision 1.112.8.3: download - view: text, markup, annotated - select for diffs
Thu Jan 11 22:23:02 2007 UTC (18 years, 1 month ago) by ad
Branches: newlock2
Diff to: previous 1.112.8.2: preferred, colored; branchpoint 1.112: preferred, colored
Changes since revision 1.112.8.2: +4 -4 lines
Checkpoint work in progress.

Revision 1.106.2.2: download - view: text, markup, annotated - select for diffs
Sat Dec 30 20:51:05 2006 UTC (18 years, 1 month ago) by yamt
Branches: yamt-lazymbuf
Diff to: previous 1.106.2.1: preferred, colored; branchpoint 1.106: preferred, colored
Changes since revision 1.106.2.1: +62 -54 lines
sync with head.

Revision 1.116: download - view: text, markup, annotated - select for diffs
Thu Dec 21 15:55:26 2006 UTC (18 years, 1 month ago) by yamt
Branches: MAIN
CVS tags: newlock2-nbase, newlock2-base
Diff to: previous 1.115: preferred, colored
Changes since revision 1.115: +2 -3 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.113.2.3: download - view: text, markup, annotated - select for diffs
Mon Dec 18 11:42:27 2006 UTC (18 years, 2 months ago) by yamt
Branches: yamt-splraiseipl
Diff to: previous 1.113.2.2: preferred, colored; branchpoint 1.113: preferred, colored; next MAIN 1.114: preferred, colored
Changes since revision 1.113.2.2: +12 -9 lines
sync with head.

Revision 1.115: download - view: text, markup, annotated - select for diffs
Fri Dec 15 13:51:30 2006 UTC (18 years, 2 months ago) by yamt
Branches: MAIN
CVS tags: yamt-splraiseipl-base5, yamt-splraiseipl-base4
Diff to: previous 1.114: preferred, colored
Changes since revision 1.114: +12 -9 lines
put ->K loaned pages on the page queue, so that page loaning doesn't
disturb pagedaemon/pdpolicy.

Revision 1.112.8.2: download - view: text, markup, annotated - select for diffs
Sat Nov 18 21:39:50 2006 UTC (18 years, 2 months ago) by ad
Branches: newlock2
Diff to: previous 1.112.8.1: preferred, colored; branchpoint 1.112: preferred, colored
Changes since revision 1.112.8.1: +53 -47 lines
Sync with head.

Revision 1.112.8.1: download - view: text, markup, annotated - select for diffs
Fri Nov 17 16:34:40 2006 UTC (18 years, 3 months ago) by ad
Branches: newlock2
Diff to: previous 1.112: preferred, colored
Changes since revision 1.112: +7 -8 lines
Checkpoint work in progress.

Revision 1.113.2.2: download - view: text, markup, annotated - select for diffs
Sun Oct 22 08:07:53 2006 UTC (18 years, 3 months ago) by yamt
Branches: yamt-splraiseipl
Diff to: previous 1.113.2.1: preferred, colored; branchpoint 1.113: preferred, colored
Changes since revision 1.113.2.1: +2 -3 lines
use workqueue for aiodoned.

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

Revision 1.114: download - view: text, markup, annotated - select for diffs
Wed Sep 27 17:18:50 2006 UTC (18 years, 4 months ago) by thorpej
Branches: MAIN
CVS tags: yamt-splraiseipl-base3, yamt-splraiseipl-base2, 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.113: preferred, colored
Changes since revision 1.113: +3 -3 lines
Don't inline uvm_pagealloc_pgfl().

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

Revision 1.111.2.4: download - view: text, markup, annotated - select for diffs
Fri Sep 15 11:54:56 2006 UTC (18 years, 5 months ago) by yamt
Branches: yamt-pdpolicy
Diff to: previous 1.111.2.3: preferred, colored; branchpoint 1.111: preferred, colored; next MAIN 1.112: preferred, colored
Changes since revision 1.111.2.3: +4 -3 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.109.4.1: download - view: text, markup, annotated - select for diffs
Sat Sep 9 03:00:13 2006 UTC (18 years, 5 months ago) by rpaulo
Branches: rpaulo-netinet-merge-pcb
Diff to: previous 1.109: preferred, colored; next MAIN 1.110: preferred, colored
Changes since revision 1.109: +219 -3 lines
sync with head

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

Revision 1.111.6.1: download - view: text, markup, annotated - select for diffs
Wed May 24 15:50:49 2006 UTC (18 years, 8 months ago) by tron
Branches: peter-altq
Diff to: previous 1.111: preferred, colored; next MAIN 1.112: preferred, colored
Changes since revision 1.111: +15 -0 lines
Merge 2006-05-24 NetBSD-current into the "peter-altq" branch.

Revision 1.111.2.3: download - view: text, markup, annotated - select for diffs
Wed May 24 10:59:30 2006 UTC (18 years, 8 months ago) by yamt
Branches: yamt-pdpolicy
Diff to: previous 1.111.2.2: preferred, colored; branchpoint 1.111: preferred, colored
Changes since revision 1.111.2.2: +17 -2 lines
sync with head.

Revision 1.109.6.1: download - view: text, markup, annotated - select for diffs
Sat Apr 22 11:40:29 2006 UTC (18 years, 9 months ago) by simonb
Branches: simonb-timecounters
CVS tags: simonb-timcounters-final
Diff to: previous 1.109: preferred, colored; next MAIN 1.110: preferred, colored
Changes since revision 1.109: +219 -3 lines
Sync with head.

Revision 1.111.4.1: download - view: text, markup, annotated - select for diffs
Wed Apr 19 03:58:21 2006 UTC (18 years, 10 months ago) by elad
Branches: elad-kernelauth
Diff to: previous 1.111: preferred, colored; next MAIN 1.112: preferred, colored
Changes since revision 1.111: +17 -2 lines
oops - *really* sync to head this time.

Revision 1.112: download - view: text, markup, annotated - select for diffs
Thu Apr 13 08:33:18 2006 UTC (18 years, 10 months ago) by yamt
Branches: MAIN
CVS tags: yamt-pdpolicy-base9, yamt-pdpolicy-base8, yamt-pdpolicy-base7, yamt-pdpolicy-base6, yamt-pdpolicy-base5, simonb-timecounters-base, rpaulo-netinet-merge-pcb-base, gdamore-uart-base, gdamore-uart, elad-kernelauth-base, chap-midi-nbase, chap-midi-base, chap-midi, abandoned-netbsd-4-base, abandoned-netbsd-4
Branch point for: newlock2
Diff to: previous 1.111: preferred, colored
Changes since revision 1.111: +17 -2 lines
uvm_page_own: more assertions.

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

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

Revision 1.109.2.1: download - view: text, markup, annotated - select for diffs
Sat Feb 18 15:39:31 2006 UTC (18 years, 11 months ago) by yamt
Branches: yamt-uio_vmspace
Diff to: previous 1.109: preferred, colored; next MAIN 1.110: preferred, colored
Changes since revision 1.109: +204 -3 lines
sync with head.

Revision 1.111: download - view: text, markup, annotated - select for diffs
Sun Feb 12 09:19:27 2006 UTC (19 years ago) by yamt
Branches: MAIN
CVS tags: yamt-uio_vmspace-base5, yamt-pdpolicy-base4, yamt-pdpolicy-base3, yamt-pdpolicy-base2, yamt-pdpolicy-base, peter-altq-base
Branch point for: yamt-pdpolicy, peter-altq, elad-kernelauth
Diff to: previous 1.110: preferred, colored
Changes since revision 1.110: +1 -3 lines
uvm_pageunwire: use uvm_pageactivate rather than a copy.

Revision 1.110: download - view: text, markup, annotated - select for diffs
Sat Feb 11 12:45:07 2006 UTC (19 years ago) by yamt
Branches: MAIN
Diff to: previous 1.109: preferred, colored
Changes since revision 1.109: +206 -3 lines
remove the following options.  no objections on tech-kern@.

	UVM_PAGER_INLINE
	UVM_AMAP_INLINE
	UVM_PAGE_INLINE
	UVM_MAP_INLINE

Revision 1.109: download - view: text, markup, annotated - select for diffs
Sat Dec 24 20:45:10 2005 UTC (19 years, 1 month ago) by perry
Branches: MAIN
Branch point for: yamt-uio_vmspace, simonb-timecounters, rpaulo-netinet-merge-pcb
Diff to: previous 1.108: preferred, colored
Changes since revision 1.108: +6 -6 lines
Remove leading __ from __(const|inline|signed|volatile) -- it is obsolete.

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

Revision 1.107: download - view: text, markup, annotated - select for diffs
Sun Dec 11 12:25:29 2005 UTC (19 years, 2 months ago) by christos
Branches: MAIN
Diff to: previous 1.106: preferred, colored
Changes since revision 1.106: +2 -2 lines
merge ktrace-lwp.

Revision 1.89.2.7: download - view: text, markup, annotated - select for diffs
Thu Nov 10 14:12:40 2005 UTC (19 years, 3 months ago) by skrll
Branches: ktrace-lwp
Diff to: previous 1.89.2.6: preferred, colored; next MAIN 1.90: preferred, colored
Changes since revision 1.89.2.6: +25 -49 lines
Sync with HEAD. Here we go again...

Revision 1.106: download - view: text, markup, annotated - select for diffs
Tue Jun 28 05:25:42 2005 UTC (19 years, 7 months ago) by thorpej
Branches: MAIN
CVS tags: yamt-vop-base3, yamt-vop-base2, yamt-vop-base, yamt-vop, yamt-readahead-pervnode, yamt-readahead-perfile, yamt-readahead-base3, yamt-readahead-base2, yamt-readahead-base, yamt-readahead, thorpej-vnode-attr-base, thorpej-vnode-attr, ktrace-lwp-base
Branch point for: yamt-lazymbuf
Diff to: previous 1.105: preferred, colored
Changes since revision 1.105: +3 -3 lines
Clean up the cpp macro used to say "we're compiling this specific C file".

Revision 1.105: download - view: text, markup, annotated - select for diffs
Mon Jun 27 02:19:48 2005 UTC (19 years, 7 months ago) by thorpej
Branches: MAIN
Diff to: previous 1.104: preferred, colored
Changes since revision 1.104: +21 -45 lines
Use ANSI function decls.

Revision 1.104: download - view: text, markup, annotated - select for diffs
Sat Jun 4 13:48:35 2005 UTC (19 years, 8 months ago) by chs
Branches: MAIN
Diff to: previous 1.103: preferred, colored
Changes since revision 1.103: +3 -3 lines
adapt to const changes.

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

Revision 1.101.4.1: download - view: text, markup, annotated - select for diffs
Fri Apr 29 11:29:45 2005 UTC (19 years, 9 months ago) by kent
Branches: kent-audio2
Diff to: previous 1.101: preferred, colored; next MAIN 1.102: preferred, colored
Changes since revision 1.101: +6 -4 lines
sync with -current

Revision 1.89.2.6: download - view: text, markup, annotated - select for diffs
Fri Apr 1 14:32:12 2005 UTC (19 years, 10 months ago) by skrll
Branches: ktrace-lwp
Diff to: previous 1.89.2.5: preferred, colored
Changes since revision 1.89.2.5: +6 -4 lines
Sync with HEAD.

Revision 1.102: download - view: text, markup, annotated - select for diffs
Fri Apr 1 11:59:39 2005 UTC (19 years, 10 months ago) by yamt
Branches: MAIN
CVS tags: kent-audio2-base
Diff to: previous 1.101: preferred, colored
Changes since revision 1.101: +6 -4 lines
merge yamt-km branch.
- don't use managed mappings/backing objects for wired memory allocations.
  save some resources like pv_entry.  also fix (most of) PR/27030.
- simplify kernel memory management API.
- simplify pmap bootstrap of some ports.
- some related cleanups.

Revision 1.101.6.1: download - view: text, markup, annotated - select for diffs
Tue Jan 25 12:58:29 2005 UTC (20 years ago) by yamt
Branches: yamt-km
Diff to: previous 1.101: preferred, colored; next MAIN 1.102: preferred, colored
Changes since revision 1.101: +6 -4 lines
- don't use uvm_object or managed mappings for wired allocations.
  (eg. malloc(9))
- simplify uvm_km_* apis.

Revision 1.89.2.5: download - view: text, markup, annotated - select for diffs
Tue Nov 2 07:53:37 2004 UTC (20 years, 3 months ago) by skrll
Branches: ktrace-lwp
Diff to: previous 1.89.2.4: preferred, colored
Changes since revision 1.89.2.4: +15 -14 lines
Sync with HEAD.

Revision 1.101: download - view: text, markup, annotated - select for diffs
Sat Oct 23 21:29:27 2004 UTC (20 years, 3 months ago) by yamt
Branches: MAIN
CVS tags: yamt-km-base4, yamt-km-base3, yamt-km-base2, yamt-km-base, 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, kent-audio1-beforemerge, kent-audio1-base, kent-audio1
Branch point for: yamt-km, kent-audio2
Diff to: previous 1.100: preferred, colored
Changes since revision 1.100: +15 -14 lines
uvm_pageidlezero: grab kernel_lock before uvm.fpageqlock.  PR/27259.

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

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

Revision 1.100: download - view: text, markup, annotated - select for diffs
Fri Sep 17 20:46:03 2004 UTC (20 years, 5 months ago) by yamt
Branches: MAIN
Diff to: previous 1.99: preferred, colored
Changes since revision 1.99: +3 -3 lines
make free page queue filo rather than fifo.
data in pages freed more recently are more likely on cpu cache.

Revision 1.97.2.2: download - view: text, markup, annotated - select for diffs
Sat Sep 11 11:00:34 2004 UTC (20 years, 5 months ago) by he
Branches: netbsd-2-0
CVS tags: netbsd-2-base, netbsd-2-1-RELEASE, netbsd-2-1-RC6, netbsd-2-1-RC5, netbsd-2-1-RC4, netbsd-2-1-RC3, netbsd-2-1-RC2, netbsd-2-1-RC1, netbsd-2-1, netbsd-2-0-RELEASE, netbsd-2-0-RC5, netbsd-2-0-RC4, netbsd-2-0-RC3, netbsd-2-0-RC2, netbsd-2-0-RC1, netbsd-2-0-3-RELEASE, netbsd-2-0-2-RELEASE, netbsd-2-0-1-RELEASE, netbsd-2
Diff to: previous 1.97.2.1: preferred, colored; branchpoint 1.97: preferred, colored; next MAIN 1.98: preferred, colored
Changes since revision 1.97.2.1: +4 -2 lines
Pull up revision 1.99 (requested by yamt in ticket #830:
  Correct page accounting for anon pages: decrement
  uvmexp.anonpages when orphaning an A->K loaned page, and
  null out anon.u.an_page as the anon no longer owns the page
  in that case.  Add a few related assertions.  Also correct
  a comment.

Revision 1.89.2.2: download - view: text, markup, annotated - select for diffs
Fri Sep 3 12:45:55 2004 UTC (20 years, 5 months ago) by skrll
Branches: ktrace-lwp
Diff to: previous 1.89.2.1: preferred, colored
Changes since revision 1.89.2.1: +4 -2 lines
Sync with HEAD

Revision 1.99: download - view: text, markup, annotated - select for diffs
Wed Sep 1 11:53:38 2004 UTC (20 years, 5 months ago) by yamt
Branches: MAIN
Diff to: previous 1.98: preferred, colored
Changes since revision 1.98: +4 -2 lines
uvm_pagefree: when orphaning an A->K loaned page,
	- decrement uvmexp.anonpages as it's no longer an anon page.
	- null out anon->u.an_page as the anon no longer own the page.
uvm_anfree: add related assertions.

Revision 1.89.2.1: download - view: text, markup, annotated - select for diffs
Tue Aug 3 10:57:07 2004 UTC (20 years, 6 months ago) by skrll
Branches: ktrace-lwp
Diff to: previous 1.89: preferred, colored
Changes since revision 1.89: +147 -25 lines
Sync with HEAD

Revision 1.97.2.1: download - view: text, markup, annotated - select for diffs
Mon May 10 14:30:22 2004 UTC (20 years, 9 months ago) by tron
Branches: netbsd-2-0
Diff to: previous 1.97: preferred, colored
Changes since revision 1.97: +14 -2 lines
Pull up revision 1.98 (requested by yamt in ticket #271):
uvm_page_unbusy: add assertions and comments about PG_RELEASED anon pages.

Revision 1.98: download - view: text, markup, annotated - select for diffs
Wed May 5 11:58:27 2004 UTC (20 years, 9 months ago) by yamt
Branches: MAIN
Diff to: previous 1.97: preferred, colored
Changes since revision 1.97: +14 -2 lines
uvm_page_unbusy: add assertions and comments about PG_RELEASED anon pages.

Revision 1.97: download - view: text, markup, annotated - select for diffs
Wed Mar 24 07:50:49 2004 UTC (20 years, 10 months ago) by junyoung
Branches: MAIN
CVS tags: netbsd-2-0-base
Branch point for: netbsd-2-0
Diff to: previous 1.96: preferred, colored
Changes since revision 1.96: +7 -7 lines
- Nuke __P().
- Drop trailing spaces.

Revision 1.96: download - view: text, markup, annotated - select for diffs
Fri Feb 13 13:47:16 2004 UTC (21 years ago) by yamt
Branches: MAIN
Diff to: previous 1.95: preferred, colored
Changes since revision 1.95: +45 -4 lines
when breaking a loan from uobj,
insert the replacement page into the same position
as the original page on the object memq so that
genfs_putpages (and lfs) won't be confused.

noted by Stephan Uphoff (PR/24328)

Revision 1.95: download - view: text, markup, annotated - select for diffs
Fri Feb 13 11:36:23 2004 UTC (21 years ago) by wiz
Branches: MAIN
Diff to: previous 1.94: preferred, colored
Changes since revision 1.94: +5 -5 lines
Uppercase CPU, plural is CPUs.

Revision 1.94: download - view: text, markup, annotated - select for diffs
Wed Jan 14 11:28:05 2004 UTC (21 years, 1 month ago) by yamt
Branches: MAIN
Diff to: previous 1.93: preferred, colored
Changes since revision 1.93: +24 -10 lines
bump vnode hold count for page cache as well
to resolve unfairness between page cache and traditional buffer cache.
pointed by enami tsugutomo on current-users@.

Revision 1.93: download - view: text, markup, annotated - select for diffs
Sun Dec 21 11:38:46 2003 UTC (21 years, 1 month ago) by simonb
Branches: MAIN
Diff to: previous 1.92: preferred, colored
Changes since revision 1.92: +3 -4 lines
No need to break a line - the full line is less than 80 chars long.

Revision 1.92: download - view: text, markup, annotated - select for diffs
Wed Nov 5 15:45:54 2003 UTC (21 years, 3 months ago) by yamt
Branches: MAIN
Diff to: previous 1.91: preferred, colored
Changes since revision 1.91: +3 -2 lines
add a missing pmap_update().

Revision 1.91: download - view: text, markup, annotated - select for diffs
Mon Nov 3 03:58:28 2003 UTC (21 years, 3 months ago) by yamt
Branches: MAIN
Diff to: previous 1.90: preferred, colored
Changes since revision 1.90: +52 -3 lines
add a DEBUG check if freed PG_ZERO pages are really zero-filled.

Revision 1.90: download - view: text, markup, annotated - select for diffs
Sat Nov 1 15:18:42 2003 UTC (21 years, 3 months ago) by yamt
Branches: MAIN
Diff to: previous 1.89: preferred, colored
Changes since revision 1.89: +13 -7 lines
in uvm_pagefree and friends, if freed pages have been marked by
PG_ZERO flag, put them to PGFL_ZEROS queue rather than default one
so that we can re-use zero-filled pages efficiently.

Revision 1.89: download - view: text, markup, annotated - select for diffs
Sun Jun 1 09:26:10 2003 UTC (21 years, 8 months ago) by wiz
Branches: MAIN
Branch point for: ktrace-lwp
Diff to: previous 1.88: preferred, colored
Changes since revision 1.88: +3 -3 lines
Fix typo in panic message. From miod@openbsd.

Revision 1.88: download - view: text, markup, annotated - select for diffs
Sat May 10 21:10:23 2003 UTC (21 years, 9 months ago) by thorpej
Branches: MAIN
Diff to: previous 1.87: preferred, colored
Changes since revision 1.87: +30 -16 lines
Back out the following chagne:
    http://mail-index.netbsd.org/source-changes/2003/05/08/0068.html

There were some side-effects that I didn't anticipate, and fixing them
is proving to be more difficult than I thought, do just eject for now.
Maybe one day we can look at this again.

Fixes PR kern/21517.

Revision 1.87: download - view: text, markup, annotated - select for diffs
Thu May 8 18:13:28 2003 UTC (21 years, 9 months ago) by thorpej
Branches: MAIN
Diff to: previous 1.86: preferred, colored
Changes since revision 1.86: +18 -32 lines
Simplify the way the bounds of the managed kernel virtual address
space is advertised to UVM by making virtual_avail and virtual_end
first-class exported variables by UVM.  Machine-dependent code is
responsible for initializing them before main() is called.  Anything
that steals KVA must adjust these variables accordingly.

This reduces the number of instances of this info from 3 to 1, and
simplifies the pmap(9) interface by removing the pmap_virtual_space()
function call, and removing two arguments from pmap_steal_memory().

This also eliminates some kludges such as having to burn kernel_map
entries on space used by the kernel and stolen KVA.

This also eliminates use of VM_{MIN,MAX}_KERNEL_ADDRESS from MI code,
this giving MD code greater flexibility over the bounds of the managed
kernel virtual address space if a given port's specific platforms can
vary in this regard (this is especially true of the evb* ports).

Revision 1.86: download - view: text, markup, annotated - select for diffs
Tue Apr 22 14:28:15 2003 UTC (21 years, 9 months ago) by yamt
Branches: MAIN
Diff to: previous 1.85: preferred, colored
Changes since revision 1.85: +7 -3 lines
correct accounting of {exec,file}pages.
they are not updated correctly when breaking loan.

Revision 1.85: download - view: text, markup, annotated - select for diffs
Wed Apr 9 16:34:10 2003 UTC (21 years, 10 months ago) by thorpej
Branches: MAIN
Diff to: previous 1.84: preferred, colored
Changes since revision 1.84: +12 -4 lines
Tweak the way the pagesize-related variables are set:
* Remove DEFAULT_PAGE_SIZE.  We don't use PAGE_SIZE the way Mach did.
* In uvm_setpagesize(), if we are called with uvmexp.pagesize == 0,
  then assert that PAGE_SIZE != 0 (i.e. a constant), and set uvmexp.pagesize
  accordingly.
* Provide defaults for MIN_PAGE_SIZE and MAX_PAGE_SIZE if not defined
  by <machine/vmparam.h>.  If PAGE_SIZE is not a constant, MIN_PAGE_SIZE
  and MAX_PAGE_SIZE must be provided.
* If MIN_PAGE_SIZE and MAX_PAGE_SIZE are not equal (i.e. PAGE_SIZE may
  not be a constant in all configurations), then ensure that PAGE_SIZE
  and friends expand to variable references for LKMs.

Revision 1.84: download - view: text, markup, annotated - select for diffs
Mon Feb 17 23:48:24 2003 UTC (22 years ago) by perseant
Branches: MAIN
Diff to: previous 1.83: preferred, colored
Changes since revision 1.83: +3 -3 lines
Add code to UBCify LFS.  This is still behind "#ifdef LFS_UBC" for now
(there are still some details to work out) but expect that to go
away soon.  To support these basic changes (creation of lfs_putpages,
lfs_gop_write, mods to lfs_balloc) several other changes were made, to
wit:

* Create a writer daemon kernel thread whose purpose is to handle page
  writes for the pagedaemon, but which also takes over some of the
  functions of lfs_check().  This thread is started the first time an
  LFS is mounted.

* Add a "flags" parameter to GOP_SIZE.  Current values are
  GOP_SIZE_READ, meaning that the call should return the size of the
  in-core version of the file, and GOP_SIZE_WRITE, meaning that it
  should return the on-disk size.  One of GOP_SIZE_READ or
  GOP_SIZE_WRITE must be specified.

* Instead of using malloc(...M_WAITOK) for everything, reserve enough
  resources to get by and use malloc(...M_NOWAIT), using the reserves if
  necessary.  Use the pool subsystem for structures small enough that
  this is feasible.  This also obsoletes LFS_THROTTLE.

And a few that are not strictly necessary:

* Moves the LFS inode extensions off onto a separately allocated
  structure; getting closer to LFS as an LKM.  "Welcome to 1.6O."

* Unified GOP_ALLOC between FFS and LFS.

* Update LFS copyright headers to correct values.

* Actually cast to unsigned in lfs_shellsort, like the comment says.

* Keep track of which segments were empty before the previous
  checkpoint; any segments that pass two checkpoints both dirty and
  empty can be summarily cleaned.  Do this.  Right now lfs_segclean
  still works, but this should be turned into an effectless
  compatibility syscall.

Revision 1.83: download - view: text, markup, annotated - select for diffs
Sat Feb 1 06:23:55 2003 UTC (22 years ago) by thorpej
Branches: MAIN
Diff to: previous 1.82: preferred, colored
Changes since revision 1.82: +4 -2 lines
Add extensible malloc types, adapted from FreeBSD.  This turns
malloc types into a structure, a pointer to which is passed around,
instead of an int constant.  Allow the limit to be adjusted when the
malloc type is defined, or with a function call, as suggested by
Jonathan Stone.

Revision 1.82: download - view: text, markup, annotated - select for diffs
Mon Jan 27 02:10:20 2003 UTC (22 years ago) by enami
Branches: MAIN
Diff to: previous 1.81: preferred, colored
Changes since revision 1.81: +3 -3 lines
uvm_page_unbusy should skip PGO_DONTCARE page; e.g., locked pgo_getpages
request may contain PGO_DONTCARE and nfs_getpages may unbusy them on error.

Fix is provided in PR#20028 by YAMAMOTO Takashi.  (and same one is approved
by chuq while ago in private mail).  It was my fault to forget to commit.

Revision 1.50.2.14: download - view: text, markup, annotated - select for diffs
Mon Nov 11 22:17:05 2002 UTC (22 years, 3 months ago) by nathanw
Branches: nathanw_sa
CVS tags: nathanw_sa_end
Diff to: previous 1.50.2.13: preferred, colored; next MAIN 1.51: preferred, colored
Changes since revision 1.50.2.13: +3 -2 lines
Catch up to -current

Revision 1.81: download - view: text, markup, annotated - select for diffs
Sat Nov 9 20:11:01 2002 UTC (22 years, 3 months ago) by thorpej
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.80: preferred, colored
Changes since revision 1.80: +4 -3 lines
Fix signed/unsigned comparison warnings.

Revision 1.80: download - view: text, markup, annotated - select for diffs
Wed Oct 30 02:48:28 2002 UTC (22 years, 3 months ago) by simonb
Branches: MAIN
Diff to: previous 1.79: preferred, colored
Changes since revision 1.79: +3 -3 lines
Fix whitespace bogon.

Revision 1.50.2.13: download - view: text, markup, annotated - select for diffs
Fri Oct 18 02:46:00 2002 UTC (22 years, 4 months ago) by nathanw
Branches: nathanw_sa
Diff to: previous 1.50.2.12: preferred, colored
Changes since revision 1.50.2.12: +2 -2 lines
Catch up to -current.

Revision 1.65.2.6: download - view: text, markup, annotated - select for diffs
Thu Oct 10 18:45:08 2002 UTC (22 years, 4 months ago) by jdolecek
Branches: kqueue
Diff to: previous 1.65.2.5: preferred, colored; branchpoint 1.65: preferred, colored; next MAIN 1.66: preferred, colored
Changes since revision 1.65.2.5: +4 -4 lines
sync kqueue with -current; this includes merge of gehenna-devsw branch,
merge of i386 MP branch, and part of autoconf rototil work

Revision 1.79: download - view: text, markup, annotated - select for diffs
Fri Sep 27 15:38:09 2002 UTC (22 years, 4 months ago) by provos
Branches: MAIN
CVS tags: kqueue-beforemerge, kqueue-base, kqueue-aftermerge
Diff to: previous 1.78: preferred, colored
Changes since revision 1.78: +4 -4 lines
remove trailing \n in panic().  approved perry.

Revision 1.65.2.5: download - view: text, markup, annotated - select for diffs
Fri Sep 6 08:50:25 2002 UTC (22 years, 5 months ago) by jdolecek
Branches: kqueue
Diff to: previous 1.65.2.4: preferred, colored; branchpoint 1.65: preferred, colored
Changes since revision 1.65.2.4: +13 -2 lines
sync kqueue branch with HEAD

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

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

Revision 1.75.2.2: download - view: text, markup, annotated - select for diffs
Mon Jul 15 10:37:34 2002 UTC (22 years, 7 months ago) by gehenna
Branches: gehenna-devsw
Diff to: previous 1.75.2.1: preferred, colored; branchpoint 1.75: preferred, colored; next MAIN 1.76: preferred, colored
Changes since revision 1.75.2.1: +13 -2 lines
catch up with -current.

Revision 1.50.2.10: download - view: text, markup, annotated - select for diffs
Mon Jun 24 22:12:55 2002 UTC (22 years, 7 months ago) by nathanw
Branches: nathanw_sa
Diff to: previous 1.50.2.9: preferred, colored
Changes since revision 1.50.2.9: +3 -3 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.65.2.4: download - view: text, markup, annotated - select for diffs
Sun Jun 23 17:52:18 2002 UTC (22 years, 7 months ago) by jdolecek
Branches: kqueue
Diff to: previous 1.65.2.3: preferred, colored; branchpoint 1.65: preferred, colored
Changes since revision 1.65.2.3: +4 -2 lines
catch up with -current on kqueue branch

Revision 1.75.4.3: download - view: text, markup, annotated - select for diffs
Fri Jun 21 00:55:41 2002 UTC (22 years, 7 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-PATCH002-RELEASE, netbsd-1-6-PATCH002-RC4, netbsd-1-6-PATCH002-RC3, netbsd-1-6-PATCH002-RC2, netbsd-1-6-PATCH002-RC1, netbsd-1-6-PATCH002, netbsd-1-6-PATCH001-RELEASE, netbsd-1-6-PATCH001-RC3, netbsd-1-6-PATCH001-RC2, netbsd-1-6-PATCH001-RC1, netbsd-1-6-PATCH001
Diff to: previous 1.75.4.2: preferred, colored; branchpoint 1.75: preferred, colored; next MAIN 1.76: preferred, colored
Changes since revision 1.75.4.2: +8 -2 lines
Pull up revision 1.78 (requested by chs in ticket #329):
count aobj pages (most notably kernel stack pages) as anon pages
for memory usage-balancing purposes.

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

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

Revision 1.75.4.2: download - view: text, markup, annotated - select for diffs
Thu Jun 20 02:49:12 2002 UTC (22 years, 7 months ago) by lukem
Branches: netbsd-1-6
Diff to: previous 1.75.4.1: preferred, colored; branchpoint 1.75: preferred, colored
Changes since revision 1.75.4.1: +5 -0 lines
Pull up revision 1.77 (requested by wrstuden in ticket #322):
Fix recent bugs seen on Performa 4400 macppc's by
Makoto Fujiwara <makoto@ki.nu> and Manuel Bouyer <bouyer@netbsd.org>.
Help from Allen Briggs, Jason Thorpe, and Matt Thomas.
We need to call cpu_cache_probe() early in boot (machdep.c).
Add 603 info for completeness, and use NBPG not PAGESIZE, as the
latter relies on uvm being setup (cpu_subr.c).
Let uvm_page_recolor() be called before uvm has been set up; just
note the page coloring value (uvm_page.c).

Revision 1.77: download - view: text, markup, annotated - select for diffs
Wed Jun 19 17:01:18 2002 UTC (22 years, 8 months ago) by wrstuden
Branches: MAIN
Diff to: previous 1.76: preferred, colored
Changes since revision 1.76: +7 -2 lines
Fix recent bugs seen on Performa 4400 macppc's by
Makoto Fujiwara <makoto@ki.nu> and Manuel Bouyer <bouyer@netbsd.org>.
Help from Allen Briggs, Jason Thorpe, and Matt Thomas.

We need to call cpu_cache_probe() early in boot (machdep.c).
Add 603 info for completeness, and use NBPG not PAGESIZE, as the
latter relies on uvm being setup (cpu_subr.c).
Let uvm_page_recolor() be called before uvm has been set up; just
note the page coloring value (uvm_page.c).

Revision 1.75.4.1: download - view: text, markup, annotated - select for diffs
Sat Jun 1 22:44:00 2002 UTC (22 years, 8 months ago) by tv
Branches: netbsd-1-6
Diff to: previous 1.75: preferred, colored
Changes since revision 1.75: +3 -2 lines
Pull up revision 1.76 (requested by enami in ticket #114):
Add missing pageq lock while uvm_pagefree() is called (either directly
or indirectly).  Reviewed by chuq.

Revision 1.75.2.1: download - view: text, markup, annotated - select for diffs
Thu May 30 13:52:44 2002 UTC (22 years, 8 months ago) by gehenna
Branches: gehenna-devsw
Diff to: previous 1.75: preferred, colored
Changes since revision 1.75: +3 -2 lines
Catch up with -current.

Revision 1.76: download - view: text, markup, annotated - select for diffs
Wed May 29 11:04:39 2002 UTC (22 years, 8 months ago) by enami
Branches: MAIN
Diff to: previous 1.75: preferred, colored
Changes since revision 1.75: +3 -2 lines
Add missing pageq lock while uvm_pagefree() is called (either directly
or indirectly).  Reviewed by chuq.

Revision 1.75: download - view: text, markup, annotated - select for diffs
Wed May 15 00:19:12 2002 UTC (22 years, 9 months ago) by enami
Branches: MAIN
CVS tags: netbsd-1-6-base
Branch point for: netbsd-1-6, gehenna-devsw
Diff to: previous 1.74: preferred, colored
Changes since revision 1.74: +3 -2 lines
When loaned page become ownerless as a result of freeing, it should be
dequeue'ed from pageq.  Fix provided by chuq.

Revision 1.65.2.3: download - view: text, markup, annotated - select for diffs
Sat Mar 16 16:02:30 2002 UTC (22 years, 11 months ago) by jdolecek
Branches: kqueue
Diff to: previous 1.65.2.2: preferred, colored; branchpoint 1.65: preferred, colored
Changes since revision 1.65.2.2: +9 -10 lines
Catch up with -current.

Revision 1.74.4.3: download - view: text, markup, annotated - select for diffs
Tue Mar 12 02:28:44 2002 UTC (22 years, 11 months ago) by thorpej
Branches: newlock
Diff to: previous 1.74.4.2: preferred, colored; branchpoint 1.74: preferred, colored; next MAIN 1.75: preferred, colored
Changes since revision 1.74.4.2: +9 -9 lines
Make hashlock an adaptive mutex, and rename it to hash_mutex.

Revision 1.74.4.2: download - view: text, markup, annotated - select for diffs
Tue Mar 12 00:14:25 2002 UTC (22 years, 11 months ago) by thorpej
Branches: newlock
Diff to: previous 1.74.4.1: preferred, colored; branchpoint 1.74: preferred, colored
Changes since revision 1.74.4.1: +4 -4 lines
Make pageqlock an adaptive mutex, and rename it to pageq_mutex.

Revision 1.74.4.1: download - view: text, markup, annotated - select for diffs
Tue Mar 12 00:03:58 2002 UTC (22 years, 11 months ago) by thorpej
Branches: newlock
Diff to: previous 1.74: preferred, colored
Changes since revision 1.74: +28 -25 lines
Convert the fpageqlock to a spin mutex at IPL_VM and rename it
to fpageq_mutex.

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

Revision 1.74: download - view: text, markup, annotated - select for diffs
Wed Feb 20 07:06:56 2002 UTC (22 years, 11 months ago) by enami
Branches: MAIN
CVS tags: newlock-base, ifpoll-base, eeh-devprop-base, eeh-devprop
Branch point for: newlock
Diff to: previous 1.73: preferred, colored
Changes since revision 1.73: +9 -10 lines
In the function uvm_page_own(), clear owner_tag after assertion so that
we can see the owner when assertion failed.  Some indentation fix while
I'm here.

Revision 1.65.2.2: download - view: text, markup, annotated - select for diffs
Thu Jan 10 20:05:42 2002 UTC (23 years, 1 month ago) by thorpej
Branches: kqueue
Diff to: previous 1.65.2.1: preferred, colored; branchpoint 1.65: preferred, colored
Changes since revision 1.65.2.1: +104 -165 lines
Sync kqueue branch with -current.

Revision 1.50.2.7: download - view: text, markup, annotated - select for diffs
Tue Jan 8 00:35:04 2002 UTC (23 years, 1 month ago) by nathanw
Branches: nathanw_sa
Diff to: previous 1.50.2.6: preferred, colored
Changes since revision 1.50.2.6: +29 -21 lines
Catch up to -current.

Revision 1.73: download - view: text, markup, annotated - select for diffs
Mon Dec 31 19:21:37 2001 UTC (23 years, 1 month ago) by chs
Branches: MAIN
Diff to: previous 1.72: preferred, colored
Changes since revision 1.72: +17 -14 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.72: download - view: text, markup, annotated - select for diffs
Sun Dec 9 03:07:19 2001 UTC (23 years, 2 months ago) by chs
Branches: MAIN
Diff to: previous 1.71: preferred, colored
Changes since revision 1.71: +14 -9 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.50.2.6: download - view: text, markup, annotated - select for diffs
Wed Nov 14 19:19:08 2001 UTC (23 years, 3 months ago) by nathanw
Branches: nathanw_sa
Diff to: previous 1.50.2.5: preferred, colored
Changes since revision 1.50.2.5: +31 -24 lines
Catch up to -current.

Revision 1.68.2.1: download - view: text, markup, annotated - select for diffs
Mon Nov 12 21:19:56 2001 UTC (23 years, 3 months ago) by thorpej
Branches: thorpej-mips-cache
Diff to: previous 1.68: preferred, colored; next MAIN 1.69: preferred, colored
Changes since revision 1.68: +31 -24 lines
Sync the thorpej-mips-cache branch with -current.

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

Revision 1.70: download - view: text, markup, annotated - select for diffs
Tue Nov 6 08:07:51 2001 UTC (23 years, 3 months ago) by chs
Branches: MAIN
Diff to: previous 1.69: preferred, colored
Changes since revision 1.69: +27 -23 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.69: download - view: text, markup, annotated - select for diffs
Tue Nov 6 06:31:06 2001 UTC (23 years, 3 months ago) by simonb
Branches: MAIN
Diff to: previous 1.68: preferred, colored
Changes since revision 1.68: +2 -2 lines
Change some unsigned int variables and parameters to plain ints so
that all usages of those agree on unsigned vs. signed.

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

Revision 1.65.4.1: download - view: text, markup, annotated - select for diffs
Mon Oct 1 12:48:44 2001 UTC (23 years, 4 months ago) by fvdl
Branches: thorpej-devvp
Diff to: previous 1.65: preferred, colored; next MAIN 1.66: preferred, colored
Changes since revision 1.65: +80 -156 lines
Catch up with -current.

Revision 1.68: download - view: text, markup, annotated - select for diffs
Fri Sep 28 11:59:55 2001 UTC (23 years, 4 months ago) by chs
Branches: MAIN
CVS tags: thorpej-devvp-base3, thorpej-devvp-base2
Branch point for: thorpej-mips-cache
Diff to: previous 1.67: preferred, colored
Changes since revision 1.67: +2 -1 lines
don't depend on other headers to include sys/proc.h for us.

Revision 1.50.2.4: download - view: text, markup, annotated - select for diffs
Fri Sep 21 22:37:16 2001 UTC (23 years, 4 months ago) by nathanw
Branches: nathanw_sa
Diff to: previous 1.50.2.3: preferred, colored
Changes since revision 1.50.2.3: +79 -156 lines
Catch up to -current.

Revision 1.67: download - view: text, markup, annotated - select for diffs
Sat Sep 15 20:36:46 2001 UTC (23 years, 5 months ago) by chs
Branches: MAIN
CVS tags: post-chs-ubcperf
Diff to: previous 1.66: preferred, colored
Changes since revision 1.66: +78 -155 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.65.2.1: download - view: text, markup, annotated - select for diffs
Thu Sep 13 01:16:33 2001 UTC (23 years, 5 months ago) by thorpej
Branches: kqueue
Diff to: previous 1.65: preferred, colored
Changes since revision 1.65: +2 -2 lines
Update the kqueue branch to HEAD.

Revision 1.66: download - view: text, markup, annotated - select for diffs
Mon Sep 10 21:19:43 2001 UTC (23 years, 5 months ago) by chris
Branches: MAIN
CVS tags: pre-chs-ubcperf
Diff to: previous 1.65: preferred, colored
Changes since revision 1.65: +2 -2 lines
Update pmap_update to now take the updated pmap as an argument.
This will allow improvements to the pmaps so that they can more easily defer expensive operations, eg tlb/cache flush, til the last possible moment.

Currently this is a no-op on most platforms, so they should see no difference.

Reviewed by Jason.

Revision 1.50.2.3: download - view: text, markup, annotated - select for diffs
Fri Aug 24 00:13:41 2001 UTC (23 years, 5 months ago) by nathanw
Branches: nathanw_sa
Diff to: previous 1.50.2.2: preferred, colored
Changes since revision 1.50.2.2: +3 -8 lines
Catch up with -current.

Revision 1.65: download - view: text, markup, annotated - select for diffs
Wed Jun 27 23:57:16 2001 UTC (23 years, 7 months ago) by thorpej
Branches: MAIN
CVS tags: thorpej-devvp-base
Branch point for: thorpej-devvp, kqueue
Diff to: previous 1.64: preferred, colored
Changes since revision 1.64: +2 -3 lines
Since a page can be on only one of ACTIVE or INACTIVE queues at
any given time, turn two consecutive if statements into an if-else-if
construct.

Revision 1.64: download - view: text, markup, annotated - select for diffs
Wed Jun 27 21:18:34 2001 UTC (23 years, 7 months ago) by thorpej
Branches: MAIN
Diff to: previous 1.63: preferred, colored
Changes since revision 1.63: +2 -6 lines
Macro'ize the code that checks the free and inactive thresholds and
wakes the pagedaemon.

Revision 1.50.2.2: download - view: text, markup, annotated - select for diffs
Thu Jun 21 20:10:39 2001 UTC (23 years, 7 months ago) by nathanw
Branches: nathanw_sa
Diff to: previous 1.50.2.1: preferred, colored
Changes since revision 1.50.2.1: +295 -130 lines
Catch up to -current.

Revision 1.63: download - view: text, markup, annotated - select for diffs
Sat May 26 21:27:21 2001 UTC (23 years, 8 months ago) by chs
Branches: MAIN
Diff to: previous 1.62: preferred, colored
Changes since revision 1.62: +3 -3 lines
replace vm_page_t with struct vm_page *.

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

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

Revision 1.60: download - view: text, markup, annotated - select for diffs
Wed May 2 01:22:20 2001 UTC (23 years, 9 months ago) by thorpej
Branches: MAIN
Diff to: previous 1.59: preferred, colored
Changes since revision 1.59: +124 -18 lines
Support dynamic sizing of the page color bins.  We also support
dynamically re-coloring pages; as machine-dependent code discovers
the size of the system's caches, it may call uvm_page_recolor() with
the new number of colors to use.  If the new mumber of colors is
smaller (or equal to) the current number of colors, then uvm_page_recolor()
is a no-op.

The system defaults to one bucket if machine-dependent code does not
initialize uvmexp.ncolors before uvm_page_init() is called.

Note that the number of color bins should be initialized to something
reasonable as early as possible -- for many early memory allocations,
we live with the consequences of the page choice for the lifetime of
the boot.

Revision 1.59: download - view: text, markup, annotated - select for diffs
Tue May 1 19:36:57 2001 UTC (23 years, 9 months ago) by thorpej
Branches: MAIN
Diff to: previous 1.58: preferred, colored
Changes since revision 1.58: +2 -1 lines
Add the number of page colors to uvmexp.

Revision 1.58: download - view: text, markup, annotated - select for diffs
Tue May 1 14:02:56 2001 UTC (23 years, 9 months ago) by enami
Branches: MAIN
Diff to: previous 1.57: preferred, colored
Changes since revision 1.57: +12 -13 lines
Use simple do {} while () loop instead of for {} loop + extra test/variable.

Revision 1.57: download - view: text, markup, annotated - select for diffs
Tue May 1 13:42:34 2001 UTC (23 years, 9 months ago) by enami
Branches: MAIN
Diff to: previous 1.56: preferred, colored
Changes since revision 1.56: +2 -2 lines
Fix second level indentation in recent commit.

Revision 1.56: download - view: text, markup, annotated - select for diffs
Tue May 1 02:19:20 2001 UTC (23 years, 9 months ago) by thorpej
Branches: MAIN
Diff to: previous 1.55: preferred, colored
Changes since revision 1.55: +3 -1 lines
Per discussion w/ chuck and chuck, restructure the md page stuff
to use a structure called "vm_page_md", and use __HAVE_VM_PAGE_MD
and __HAVE_PMAP_PHYSSEG.

Revision 1.55: download - view: text, markup, annotated - select for diffs
Sun Apr 29 22:44:39 2001 UTC (23 years, 9 months ago) by thorpej
Branches: MAIN
Diff to: previous 1.54: preferred, colored
Changes since revision 1.54: +2 -1 lines
Add a VM_MDPAGE_MEMBERS macro that defines pmap-specific data for
each vm_page structure.  Add a VM_MDPAGE_INIT() macro to init this
data when pages are initialized by UVM.  These macros are mandatory,
but ports may #define them to nothing if they are not needed/used.

This deprecates struct pmap_physseg.  As a transitional measure,
allow a port to #define PMAP_PHYSSEG so that it can continue to
use it until its pmap is converted to use VM_MDPAGE_MEMBERS.

Use all this stuff to eliminate a lot of extra work in the Alpha
pmap module (it's smaller and faster now).  Changes to other pmap
modules will follow.

Revision 1.54: download - view: text, markup, annotated - select for diffs
Sun Apr 29 04:23:21 2001 UTC (23 years, 9 months ago) by thorpej
Branches: MAIN
Diff to: previous 1.53: preferred, colored
Changes since revision 1.53: +131 -74 lines
Implement page coloring, using a round-robin bucket selection
algorithm (Solaris calls this "Bin Hopping").

This implementation currently relies on MD code to define a
constant defining the number of buckets.  This will change
reasonably soon (MD code will be able to dynamically size
the bucket array).

Revision 1.53: download - view: text, markup, annotated - select for diffs
Tue Apr 24 04:31:18 2001 UTC (23 years, 9 months ago) by thorpej
Branches: MAIN
CVS tags: thorpej_scsipi_beforemerge
Diff to: previous 1.52: preferred, colored
Changes since revision 1.52: +2 -1 lines
Sprinkle pmap_update() calls after calls to:
- pmap_enter()
- pmap_remove()
- pmap_protect()
- pmap_kenter_pa()
- pmap_kremove()
as described in pmap(9).

These calls are relatively conservative.  It may be possible to
optimize these a little more.

Revision 1.25.2.7: download - view: text, markup, annotated - select for diffs
Mon Apr 23 09:42:37 2001 UTC (23 years, 9 months ago) by bouyer
Branches: thorpej_scsipi
Diff to: previous 1.25.2.6: preferred, colored; branchpoint 1.25: preferred, colored; next MAIN 1.26: preferred, colored
Changes since revision 1.25.2.6: +23 -21 lines
Sync with HEAD.

Revision 1.52: download - view: text, markup, annotated - select for diffs
Sun Apr 22 17:22:58 2001 UTC (23 years, 9 months ago) by thorpej
Branches: MAIN
CVS tags: thorpej_scsipi_nbase, thorpej_scsipi_base
Diff to: previous 1.51: preferred, colored
Changes since revision 1.51: +23 -21 lines
Make pmap_virtual_space() a required pmap function, even on platforms
which have pmap_steal_memory().  This is to reduce the API differences
between pmaps that implement pmap_steal_memory() and pmaps which do
not.

Note that pmap_steal_memory() needs to adjust *vstartp and/or
*vendp only if it used addresses within the range provided to UVM
via the pmap_virtual_space() call.  I.e. it is not necessary to do
so in any current pmap_steal_memory() implementation.

Revision 1.50.2.1: download - view: text, markup, annotated - select for diffs
Mon Apr 9 01:59:20 2001 UTC (23 years, 10 months ago) by nathanw
Branches: nathanw_sa
Diff to: previous 1.50: preferred, colored
Changes since revision 1.50: +26 -18 lines
Catch up with -current.

Revision 1.25.2.6: download - view: text, markup, annotated - select for diffs
Mon Mar 12 13:32:12 2001 UTC (23 years, 11 months ago) by bouyer
Branches: thorpej_scsipi
Diff to: previous 1.25.2.5: preferred, colored; branchpoint 1.25: preferred, colored
Changes since revision 1.25.2.5: +26 -18 lines
Sync with HEAD.

Revision 1.51: download - view: text, markup, annotated - select for diffs
Fri Mar 9 01:02:12 2001 UTC (23 years, 11 months ago) by chs
Branches: MAIN
Diff to: previous 1.50: preferred, colored
Changes since revision 1.50: +26 -18 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.25.2.5: download - view: text, markup, annotated - select for diffs
Sun Feb 11 19:17:50 2001 UTC (24 years ago) by bouyer
Branches: thorpej_scsipi
Diff to: previous 1.25.2.4: preferred, colored; branchpoint 1.25: preferred, colored
Changes since revision 1.25.2.4: +6 -5 lines
Sync with HEAD.

Revision 1.50: download - view: text, markup, annotated - select for diffs
Sun Jan 28 22:23:04 2001 UTC (24 years ago) by thorpej
Branches: MAIN
Branch point for: nathanw_sa
Diff to: previous 1.49: preferred, colored
Changes since revision 1.49: +1 -3 lines
Put the extern decl of uvm_vnodeops in uvm_object.h

Revision 1.49: download - view: text, markup, annotated - select for diffs
Sun Jan 28 22:14:52 2001 UTC (24 years ago) by thorpej
Branches: MAIN
Diff to: previous 1.48: preferred, colored
Changes since revision 1.48: +2 -3 lines
Use UVM_OBJ_IS_VNODE().

Revision 1.48: download - view: text, markup, annotated - select for diffs
Tue Jan 23 01:56:17 2001 UTC (24 years ago) by thorpej
Branches: MAIN
Diff to: previous 1.47: preferred, colored
Changes since revision 1.47: +5 -1 lines
Sprinkle some assertions:
amap_free(): Assert that the amap is locked.
amap_share_protect(): Assert that the amap is locked.
amap_wipeout(): Assert that the amap is locked.
uvm_anfree(): Assert that the anon has a reference count of 0 and is
              not locked.
uvm_anon_lockloanpg(): Assert that the anon is locked.
anon_pagein(): Assert that the anon is locked.
uvmfault_anonget(): Assert that the anon is locked.
uvm_pagealloc_strat(): Assert that the uobj or the anon is locked

And fix the problems these have uncovered:
amap_cow_now(): Lock the new anon after allocating it, and unref and
                unlock it (rather than lock!) before freeing it in case
                of an error condition.  This should fix a problem reported
		by Dan Carosone using cdrecord on an i386 MP kernel.
uvm_fault(): Case1B -- Lock the new anon afer allocating it, and unlock
             it later when we unlock the old anon.
	     Case2 -- Lock the new anon after allocating it, and unlock
	     it later by passing it to uvmfault_unlockall() (we set anon
	     to NULL if we're not doing a promote fault).

Revision 1.25.2.4: download - view: text, markup, annotated - select for diffs
Thu Jan 18 09:24:06 2001 UTC (24 years, 1 month ago) by bouyer
Branches: thorpej_scsipi
Diff to: previous 1.25.2.3: preferred, colored; branchpoint 1.25: preferred, colored
Changes since revision 1.25.2.3: +3 -3 lines
Sync with head (for UBC+NFS fixes, mostly).

Revision 1.47: download - view: text, markup, annotated - select for diffs
Sun Jan 14 02:10:02 2001 UTC (24 years, 1 month ago) by thorpej
Branches: MAIN
Diff to: previous 1.46: preferred, colored
Changes since revision 1.46: +4 -4 lines
splimp() -> splvm()

Revision 1.25.2.3: download - view: text, markup, annotated - select for diffs
Fri Dec 8 09:20:57 2000 UTC (24 years, 2 months ago) by bouyer
Branches: thorpej_scsipi
Diff to: previous 1.25.2.2: preferred, colored; branchpoint 1.25: preferred, colored
Changes since revision 1.25.2.2: +95 -57 lines
Sync with HEAD.

Revision 1.46: download - view: text, markup, annotated - select for diffs
Fri Dec 1 09:54:42 2000 UTC (24 years, 2 months ago) by chs
Branches: MAIN
Diff to: previous 1.45: preferred, colored
Changes since revision 1.45: +3 -1 lines
make sure that pages are on an paging queue before unlocking them.

Revision 1.45: download - view: text, markup, annotated - select for diffs
Thu Nov 30 11:04:44 2000 UTC (24 years, 2 months ago) by simonb
Branches: MAIN
Diff to: previous 1.44: preferred, colored
Changes since revision 1.44: +4 -6 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.44: download - view: text, markup, annotated - select for diffs
Mon Nov 27 08:40:04 2000 UTC (24 years, 2 months ago) by chs
Branches: MAIN
Diff to: previous 1.43: preferred, colored
Changes since revision 1.43: +96 -58 lines
Initial integration of the Unified Buffer Cache project.

Revision 1.25.2.2: download - view: text, markup, annotated - select for diffs
Wed Nov 22 16:06:56 2000 UTC (24 years, 2 months ago) by bouyer
Branches: thorpej_scsipi
Diff to: previous 1.25.2.1: preferred, colored; branchpoint 1.25: preferred, colored
Changes since revision 1.25.2.1: +2 -1 lines
Sync with HEAD.

Revision 1.25.2.1: download - view: text, markup, annotated - select for diffs
Mon Nov 20 18:12:03 2000 UTC (24 years, 2 months ago) by bouyer
Branches: thorpej_scsipi
Diff to: previous 1.25: preferred, colored
Changes since revision 1.25: +243 -56 lines
Update thorpej_scsipi to -current as of a month ago

Revision 1.43: download - view: text, markup, annotated - select for diffs
Thu Nov 9 19:15:28 2000 UTC (24 years, 3 months ago) by christos
Branches: MAIN
Diff to: previous 1.42: preferred, colored
Changes since revision 1.42: +2 -1 lines
Give a hint to the user on why we failed.

Revision 1.42: download - view: text, markup, annotated - select for diffs
Thu Oct 5 00:37:50 2000 UTC (24 years, 4 months ago) by mrg
Branches: MAIN
Diff to: previous 1.41: preferred, colored
Changes since revision 1.41: +11 -11 lines
s/vm/uvm/ in a bunch of error messages.

Revision 1.41: download - view: text, markup, annotated - select for diffs
Thu Sep 21 17:46:04 2000 UTC (24 years, 4 months ago) by thorpej
Branches: MAIN
Diff to: previous 1.40: preferred, colored
Changes since revision 1.40: +16 -2 lines
Make PMAP_PAGEIDLEZERO() return a boolean value.  FALSE indidcates
that the page being zero'd was not completed and that page zeroing
should be aborted.  This may be used by machine-dependent code doing
slow page access to reduce the latency of running a process that has
become runnable while in the middle of doing a slow page zero.

Revision 1.40: download - view: text, markup, annotated - select for diffs
Wed Aug 2 20:25:11 2000 UTC (24 years, 6 months ago) by thorpej
Branches: MAIN
Diff to: previous 1.39: preferred, colored
Changes since revision 1.39: +3 -3 lines
MALLOC() is not to be used for variable-sized allocations.

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

Revision 1.38: download - view: text, markup, annotated - select for diffs
Mon Jun 26 14:21:18 2000 UTC (24 years, 7 months ago) by mrg
Branches: MAIN
Diff to: previous 1.37: preferred, colored
Changes since revision 1.37: +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.35.2.1: download - view: text, markup, annotated - select for diffs
Thu Jun 22 17:10:45 2000 UTC (24 years, 7 months ago) by minoura
Branches: minoura-xpg4dl
Diff to: previous 1.35: preferred, colored; next MAIN 1.36: preferred, colored
Changes since revision 1.35: +11 -7 lines
Sync w/ netbsd-1-5-base.

Revision 1.37: download - view: text, markup, annotated - select for diffs
Fri Jun 9 04:43:19 2000 UTC (24 years, 8 months ago) by soda
Branches: MAIN
CVS tags: netbsd-1-5-base, netbsd-1-5-RELEASE, netbsd-1-5-PATCH003, netbsd-1-5-PATCH002, netbsd-1-5-PATCH001, netbsd-1-5-BETA2, netbsd-1-5-BETA, netbsd-1-5-ALPHA2, netbsd-1-5
Diff to: previous 1.36: preferred, colored
Changes since revision 1.36: +8 -6 lines
fix printf format mismatch, when paddr_t becomes (long long) on arc port.

Revision 1.36: download - view: text, markup, annotated - select for diffs
Mon May 29 19:25:56 2000 UTC (24 years, 8 months ago) by thorpej
Branches: MAIN
Diff to: previous 1.35: preferred, colored
Changes since revision 1.35: +4 -2 lines
Change the comment before the vm_page_zero_enable global to indicate
what it will now be used for.

Revision 1.35: download - view: text, markup, annotated - select for diffs
Fri May 26 21:20:34 2000 UTC (24 years, 8 months ago) by thorpej
Branches: MAIN
CVS tags: minoura-xpg4dl-base
Branch point for: minoura-xpg4dl
Diff to: previous 1.34: preferred, colored
Changes since revision 1.34: +3 -3 lines
First sweep at scheduler state cleanup.  Collect MI scheduler
state into global and per-CPU scheduler state:

	- Global state: sched_qs (run queues), sched_whichqs (bitmap
	  of non-empty run queues), sched_slpque (sleep queues).
	  NOTE: These may collectively move into a struct schedstate
	  at some point in the future.

	- Per-CPU state, struct schedstate_percpu: spc_runtime
	  (time process on this CPU started running), spc_flags
	  (replaces struct proc's p_schedflags), and
	  spc_curpriority (usrpri of processes on this CPU).

	- Every platform must now supply a struct cpu_info and
	  a curcpu() macro.  Simplify existing cpu_info declarations
	  where appropriate.

	- All references to per-CPU scheduler state now made through
	  curcpu().  NOTE: this will likely be adjusted in the future
	  after further changes to struct proc are made.

Tested on i386 and Alpha.  Changes are mostly mechanical, but apologies
in advance if it doesn't compile on a particular platform.

Revision 1.17.2.5: download - view: text, markup, annotated - select for diffs
Wed Apr 26 22:12:52 2000 UTC (24 years, 9 months ago) by he
Branches: netbsd-1-4
CVS tags: netbsd-1-4-PATCH003
Diff to: previous 1.17.2.4: preferred, colored; branchpoint 1.17: preferred, colored; next MAIN 1.18: preferred, colored
Changes since revision 1.17.2.4: +3 -2 lines
Pull up revision 1.32 (requested by thorpej):
  Use a more reliable method to determine if uvm_page_init() has
  completed.  This fixes a problem observed on some i386 configs
  (typically with lots of memory) where the kernel page table needs
  to grow during initialization.

Revision 1.34: download - view: text, markup, annotated - select for diffs
Mon Apr 24 17:12:01 2000 UTC (24 years, 9 months ago) by thorpej
Branches: MAIN
Diff to: previous 1.33: preferred, colored
Changes since revision 1.33: +149 -15 lines
Changes necessary to implement pre-zero'ing of pages in the idle loop:
- Make page free lists have two actual queues: known-zero pages and
  pages with unknown contents.
- Implement uvm_pageidlezero().  This function attempts to zero up to
  the target number of pages until the target has been reached (currently
  target is `all free pages') or until whichqs becomes non-zero (indicating
  that a process is ready to run).
- Define a new hook for the pmap module for pre-zero'ing pages.  This is
  used to zero the pages using uncached access.  This allows us to zero
  as many pages as we want without polluting the cache.

In order to use this feature, each platform must add the appropropriate
glue in their idle loop.

Revision 1.33: download - view: text, markup, annotated - select for diffs
Mon Apr 10 00:28:05 2000 UTC (24 years, 10 months ago) by thorpej
Branches: MAIN
Diff to: previous 1.32: preferred, colored
Changes since revision 1.32: +10 -1 lines
Add UVM_PGA_ZERO which instructs uvm_pagealloc{,_strat}() to return a
zero'd, ! PG_CLEAN page, as if it were uvm_pagezero()'d.

Revision 1.32: download - view: text, markup, annotated - select for diffs
Sun Apr 2 20:39:18 2000 UTC (24 years, 10 months ago) by thorpej
Branches: MAIN
Diff to: previous 1.31: preferred, colored
Changes since revision 1.31: +3 -2 lines
Instead of checking vm_physmem[<physseg>].pgs to determine if
uvm_page_init() has completed, add a boolean uvm.page_init_done,
and test against that.  Use this same boolean (rather than
pmap_initialized) in pmap_growkernel() to determine if we are
being called via uvm_page_init() to grow the kernel address space.

This fixes a problem on some i386 configurations where pmap_init()
itself was needing to have the kernel page table grown, and since
pmap_initialized was not yet set to TRUE, pmap_growkernel() was
choosing the wrong code path.

Fix tested by Havard Eidnes.

Revision 1.31: download - view: text, markup, annotated - select for diffs
Sun Mar 26 20:54:47 2000 UTC (24 years, 10 months ago) by kleink
Branches: MAIN
Diff to: previous 1.30: preferred, colored
Changes since revision 1.30: +3 -3 lines
Merge parts of chs-ubc2 into the trunk:
Add a new type voff_t (defined as a synonym for off_t) to describe offsets
into uvm objects, and update the appropriate interfaces to use it, the
most visible effect being the ability to mmap() file offsets beyond
the range of a vaddr_t.

Originally by Chuck Silvers; blame me for problems caused by merging this
into non-UBC.

Revision 1.30: download - view: text, markup, annotated - select for diffs
Sun Feb 13 03:34:40 2000 UTC (25 years ago) by thorpej
Branches: MAIN
CVS tags: chs-ubc2-newbase
Diff to: previous 1.29: preferred, colored
Changes since revision 1.29: +19 -13 lines
Allocate the page buckets out of kernel_map, not kmem_map.  Saves 16
or so kmem_map pages on a 32MB SPARCstation 2.

Revision 1.29: download - view: text, markup, annotated - select for diffs
Thu Dec 30 16:09:47 1999 UTC (25 years, 1 month ago) by eeh
Branches: MAIN
Diff to: previous 1.28: preferred, colored
Changes since revision 1.28: +2 -2 lines
I should have made uvm_page_physload() take paddr_t's instead of vaddr_t's.
Also, add uvm_coredump32().

Revision 1.25.8.1: download - view: text, markup, annotated - select for diffs
Mon Dec 27 18:36:43 1999 UTC (25 years, 1 month ago) by wrstuden
Branches: wrstuden-devbsize
Diff to: previous 1.25: preferred, colored; next MAIN 1.26: preferred, colored
Changes since revision 1.25: +30 -7 lines
Pull up to last week's -current.

Revision 1.17.2.4: download - view: text, markup, annotated - select for diffs
Mon Dec 20 13:30:31 1999 UTC (25 years, 1 month ago) by he
Branches: netbsd-1-4
CVS tags: netbsd-1-4-PATCH002
Diff to: previous 1.17.2.3: preferred, colored; branchpoint 1.17: preferred, colored
Changes since revision 1.17.2.3: +23 -3 lines
Pull up revision 1.28 (requested by drochner):
  Allow booting of kernels which are larger than 16MB on i386.

Revision 1.28: download - view: text, markup, annotated - select for diffs
Wed Dec 1 16:08:32 1999 UTC (25 years, 2 months ago) by drochner
Branches: MAIN
CVS tags: wrstuden-devbsize-base, wrstuden-devbsize-19991221
Diff to: previous 1.27: preferred, colored
Changes since revision 1.27: +23 -3 lines
in uvm_page_physget(), try the vm_physmem[] chunks in the order of their
"free_list" attributes, to save DMA memory

Revision 1.27: download - view: text, markup, annotated - select for diffs
Tue Nov 30 18:34:23 1999 UTC (25 years, 2 months ago) by thorpej
Branches: MAIN
Diff to: previous 1.26: preferred, colored
Changes since revision 1.26: +5 -5 lines
Avoid an integer overflow on systems w/ more than 2G of RAM.

Revision 1.17.2.1.4.1: download - view: text, markup, annotated - select for diffs
Tue Nov 30 13:36:28 1999 UTC (25 years, 2 months ago) by itojun
Branches: kame
CVS tags: kame_141_19991130
Diff to: previous 1.17.2.1: preferred, colored; next MAIN 1.17.2.2: preferred, colored
Changes since revision 1.17.2.1: +22 -5 lines
bring in latest KAME (as of 19991130, KAME/NetBSD141) into kame branch
just for reference purposes.
This commit includes 1.4 -> 1.4.1 sync for kame branch.

The branch does not compile at all (due to the lack of ALTQ and some other
source code).  Please do not try to modify the branch, this is just for
referenre purposes.

synchronization to latest KAME will take place on HEAD branch soon.

Revision 1.26: download - view: text, markup, annotated - select for diffs
Wed Nov 24 18:28:49 1999 UTC (25 years, 2 months ago) by drochner
Branches: MAIN
Diff to: previous 1.25: preferred, colored
Changes since revision 1.25: +4 -1 lines
add a diagnostic panic to catch illegal memory ranges passed to
uvm_page_physload()

Revision 1.25: download - view: text, markup, annotated - select for diffs
Sun Sep 12 01:17:38 1999 UTC (25 years, 5 months ago) by chs
Branches: MAIN
CVS tags: fvdl-softdep-base, fvdl-softdep, comdex-fall-1999-base, comdex-fall-1999
Branch point for: wrstuden-devbsize, thorpej_scsipi
Diff to: previous 1.24: preferred, colored
Changes since revision 1.24: +1 -11 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.17.2.1.2.5: download - view: text, markup, annotated - select for diffs
Mon Aug 9 00:05:56 1999 UTC (25 years, 6 months ago) by chs
Branches: chs-ubc2
Diff to: previous 1.17.2.1.2.4: preferred, colored; branchpoint 1.17.2.1: preferred, colored; next MAIN 1.17.2.2: preferred, colored
Changes since revision 1.17.2.1.2.4: +3 -3 lines
create a new type "voff_t" for uvm_object offsets
and define it to be "off_t".  also, remove pgo_asyncget().

Revision 1.17.2.1.2.4: download - view: text, markup, annotated - select for diffs
Sat Jul 31 18:57:31 1999 UTC (25 years, 6 months ago) by chs
Branches: chs-ubc2
Diff to: previous 1.17.2.1.2.3: preferred, colored; branchpoint 1.17.2.1: preferred, colored
Changes since revision 1.17.2.1.2.3: +53 -3 lines
add uvm_page_unbusy() to simplify dropping PG_BUSY.

Revision 1.24: download - view: text, markup, annotated - select for diffs
Thu Jul 22 22:58:38 1999 UTC (25 years, 6 months ago) by thorpej
Branches: MAIN
CVS tags: chs-ubc2-base
Diff to: previous 1.23: preferred, colored
Changes since revision 1.23: +2 -2 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.17.2.1.2.3: download - view: text, markup, annotated - select for diffs
Sun Jul 11 05:49:07 1999 UTC (25 years, 7 months ago) by chs
Branches: chs-ubc2
Diff to: previous 1.17.2.1.2.2: preferred, colored; branchpoint 1.17.2.1: preferred, colored
Changes since revision 1.17.2.1.2.2: +5 -1 lines
make sure pages are allocated on page-aligned offsets.

Revision 1.17.2.1.2.2: download - view: text, markup, annotated - select for diffs
Mon Jun 21 01:47:21 1999 UTC (25 years, 7 months ago) by thorpej
Branches: chs-ubc2
Diff to: previous 1.17.2.1.2.1: preferred, colored; branchpoint 1.17.2.1: preferred, colored
Changes since revision 1.17.2.1.2.1: +32 -17 lines
Sync w/ -current.

Revision 1.17.2.3: download - view: text, markup, annotated - select for diffs
Fri Jun 18 17:04:56 1999 UTC (25 years, 8 months ago) by perry
Branches: netbsd-1-4
CVS tags: netbsd-1-4-PATCH001
Diff to: previous 1.17.2.2: preferred, colored; branchpoint 1.17: preferred, colored
Changes since revision 1.17.2.2: +15 -3 lines
pullup 1.19->1.20 (thorpej): fix the 1G RAM bug

Revision 1.17.2.2: download - view: text, markup, annotated - select for diffs
Fri Jun 18 16:51:43 1999 UTC (25 years, 8 months ago) by perry
Branches: netbsd-1-4
Diff to: previous 1.17.2.1: preferred, colored; branchpoint 1.17: preferred, colored
Changes since revision 1.17.2.1: +10 -5 lines
pullup 1.18->1.19 (thorpej)

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

Revision 1.15.2.4: download - view: text, markup, annotated - select for diffs
Sun May 30 15:56:30 1999 UTC (25 years, 8 months ago) by chs
Branches: chs-ubc
Diff to: previous 1.15.2.3: preferred, colored; branchpoint 1.15: preferred, colored; next MAIN 1.16: preferred, colored
Changes since revision 1.15.2.3: +1 -4 lines
vm_page's blkno field is gone.

Revision 1.23: download - view: text, markup, annotated - select for diffs
Tue May 25 01:34:13 1999 UTC (25 years, 8 months ago) by thorpej
Branches: MAIN
Diff to: previous 1.22: preferred, colored
Changes since revision 1.22: +5 -1 lines
Add a comment explaining why using pmap_kenter_pa() is safe here.

Revision 1.22: download - view: text, markup, annotated - select for diffs
Tue May 25 00:09:01 1999 UTC (25 years, 8 months ago) by thorpej
Branches: MAIN
Diff to: previous 1.21: preferred, colored
Changes since revision 1.21: +2 -2 lines
Macro'ize the test for "object is a kernel object".

Revision 1.21: download - view: text, markup, annotated - select for diffs
Mon May 24 19:10:57 1999 UTC (25 years, 8 months ago) by thorpej
Branches: MAIN
Diff to: previous 1.20: preferred, colored
Changes since revision 1.20: +6 -12 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.20: download - view: text, markup, annotated - select for diffs
Thu May 20 23:03:23 1999 UTC (25 years, 9 months ago) by thorpej
Branches: MAIN
Diff to: previous 1.19: preferred, colored
Changes since revision 1.19: +15 -3 lines
Make a slight modification of pmap_growkernel() -- it now returns the
end of the mappable kernel virtual address space.  Previously, it would
get called more often than necessary, because the caller only new what
was requested.

Also, export uvm_maxkaddr so that uvm_pageboot_alloc() can grow the
kernel pmap if necessary, as well.  Note that pmap_growkernel() must
now be able to handle being called before pmap_init().

Revision 1.19: download - view: text, markup, annotated - select for diffs
Thu May 20 20:07:55 1999 UTC (25 years, 9 months ago) by thorpej
Branches: MAIN
Diff to: previous 1.18: preferred, colored
Changes since revision 1.18: +10 -5 lines
If we run out of virtual space in uvm_pageboot_alloc(), fail gracefully
rather than unpredictably.

Revision 1.17.2.1: download - view: text, markup, annotated - select for diffs
Fri Apr 16 16:29:34 1999 UTC (25 years, 10 months ago) by chs
Branches: netbsd-1-4
CVS tags: netbsd-1-4-RELEASE, kame_14_19990705, kame_14_19990628
Branch point for: kame, chs-ubc2
Diff to: previous 1.17: preferred, colored
Changes since revision 1.17: +8 -5 lines
pull up 1.17 -> 1.18:
add a `flags' argument to uvm_pagealloc_strat().
define a flag UVM_PGA_USERESERVE to allow non-kernel object
allocations to use pages from the reserve.
use the new flag for allocations in pmap modules.

Revision 1.18: download - view: text, markup, annotated - select for diffs
Sun Apr 11 04:04:11 1999 UTC (25 years, 10 months ago) by chs
Branches: MAIN
Diff to: previous 1.17: preferred, colored
Changes since revision 1.17: +8 -5 lines
add a `flags' argument to uvm_pagealloc_strat().
define a flag UVM_PGA_USERESERVE to allow non-kernel object
allocations to use pages from the reserve.
use the new flag for allocations in pmap modules.

Revision 1.15.2.3: download - view: text, markup, annotated - select for diffs
Fri Apr 9 04:38:15 1999 UTC (25 years, 10 months ago) by chs
Branches: chs-ubc
Diff to: previous 1.15.2.2: preferred, colored; branchpoint 1.15: preferred, colored
Changes since revision 1.15.2.2: +7 -4 lines
init lock for aiodone daemon.
fix printfs for alpha.

Revision 1.17: download - view: text, markup, annotated - select for diffs
Fri Mar 26 21:58:39 1999 UTC (25 years, 10 months ago) by mycroft
Branches: MAIN
CVS tags: netbsd-1-4-base
Branch point for: netbsd-1-4
Diff to: previous 1.16: preferred, colored
Changes since revision 1.16: +3 -2 lines
Add a new `access type' argument to pmap_enter().  This indicates what type of
memory access a mapping was caused by.  This is passed through from uvm_fault()
and udv_fault(), and in most other cases is 0.
The pmap module may use this to preset R/M information.  On MMUs which require
R/M emulation, the implementation may preset the bits and avoid taking another
fault.  On MMUs which keep R/M information in hardware, the implementation may
preset its cached bits to speed up the next call to pmap_is_modified() or
pmap_is_referenced().

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

Revision 1.15.2.2: download - view: text, markup, annotated - select for diffs
Thu Feb 25 04:17:00 1999 UTC (25 years, 11 months ago) by chs
Branches: chs-ubc
Diff to: previous 1.15.2.1: preferred, colored; branchpoint 1.15: preferred, colored
Changes since revision 1.15.2.1: +12 -8 lines
in uvm_pagealloc_strat(), treat pages being paged out as "free"
when deciding whether we need to wakeup the pagedaemon.
also, clear a page's blkno when allocating it.

Revision 1.15.2.1: download - view: text, markup, annotated - select for diffs
Mon Nov 9 06:06:38 1998 UTC (26 years, 3 months ago) by chs
Branches: chs-ubc
Diff to: previous 1.15: preferred, colored
Changes since revision 1.15: +35 -2 lines
initial snapshot.  lots left to do.

Revision 1.15: download - view: text, markup, annotated - select for diffs
Sun Oct 18 23:50:00 1998 UTC (26 years, 4 months 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.14: preferred, colored
Changes since revision 1.14: +2 -2 lines
shift by PAGE_SHIFT instead of multiplying or dividing by PAGE_SIZE.

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

Revision 1.13: download - view: text, markup, annotated - select for diffs
Sun Aug 9 22:36:39 1998 UTC (26 years, 6 months ago) by perry
Branches: MAIN
Diff to: previous 1.12: preferred, colored
Changes since revision 1.12: +4 -4 lines
bzero->memset, bcopy->memcpy, bcmp->memcmp

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

Revision 1.12: download - view: text, markup, annotated - select for diffs
Wed Jul 8 04:28:28 1998 UTC (26 years, 7 months ago) by thorpej
Branches: MAIN
CVS tags: eeh-paddr_t-base
Branch point for: eeh-paddr_t
Diff to: previous 1.11: preferred, colored
Changes since revision 1.11: +67 -16 lines
Add support for multiple memory free lists.  There is at least one
default free list, and 0 - N additional free list, in order of descending
priority.

A new page allocation function, uvm_pagealloc_strat(), has been added,
providing three page allocation strategies:

	- normal: high -> low priority free list walk, taking the
	  page off the first free list that has one.

	- only: attempt to allocate a page only from the specified free
	  list, failing if that free list has none available.

	- fallback: if `only' fails, fall back on `normal'.

uvm_pagealloc(...) is provided for normal use (and is a synonym for
uvm_pagealloc_strat(..., UVM_PGA_STRAT_NORMAL, 0); the free list argument
is ignored for the `normal' case).

uvm_page_physload() now specified which free list the pages will be
loaded onto.  This means that some platforms which have multiple physical
memory segments may define additional vm_physsegs if they wish to break
individual physical segments into differing priorities.

Machine-dependent code must define _at least_ the following constants
in <machine/vmparam.h>:

	VM_NFREELIST: the number of free lists the system will have

	VM_FREELIST_DEFAULT: the default freelist (should always be 0,
	but is defined in machdep code so that it's with all of the
	other free list-related constants).

Additional free list names may be defined by machine-dependent code, but
they will only be used by machine-dependent code (e.g. for loading the
vm_physsegs).

Revision 1.11: download - view: text, markup, annotated - select for diffs
Thu May 28 15:31:31 1998 UTC (26 years, 8 months ago) by chuck
Branches: MAIN
Diff to: previous 1.10: preferred, colored
Changes since revision 1.10: +2 -5 lines
unstatic uvm_page_physload so pmap modules can use it too.
	as requested by Eduardo E. Horvath

Revision 1.10: download - view: text, markup, annotated - select for diffs
Tue May 5 20:51:06 1998 UTC (26 years, 9 months ago) by kleink
Branches: MAIN
Diff to: previous 1.9: preferred, colored
Changes since revision 1.9: +1 -4 lines
Remove inclusions of syscall (and syscall argument) related header files;
we don't need them here.

Revision 1.9: download - view: text, markup, annotated - select for diffs
Thu Apr 16 03:54:35 1998 UTC (26 years, 10 months ago) by thorpej
Branches: MAIN
Diff to: previous 1.8: preferred, colored
Changes since revision 1.8: +2 -2 lines
Fix small whitespace botch.

Revision 1.8: download - view: text, markup, annotated - select for diffs
Tue Mar 31 03:04:59 1998 UTC (26 years, 10 months ago) by chuck
Branches: MAIN
Diff to: previous 1.7: preferred, colored
Changes since revision 1.7: +2 -2 lines
free correct page in incomplete section of MNN, as pointed
out by Soren S. Jorvang.

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

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

Revision 1.5: download - view: text, markup, annotated - select for diffs
Sun Feb 8 18:27:30 1998 UTC (27 years ago) by thorpej
Branches: MAIN
Diff to: previous 1.4: preferred, colored
Changes since revision 1.4: +3 -3 lines
Round allocations to page size in uvm_pageboot_alloc().

Revision 1.4: download - view: text, markup, annotated - select for diffs
Sat Feb 7 11:09:19 1998 UTC (27 years 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:34:08 1998 UTC (27 years ago) by chs
Branches: MAIN
Diff to: previous 1.2: preferred, colored
Changes since revision 1.2: +49 -17 lines
reserve some pages for the kernel, and some more especially
for the pagedaemon allocating from kmem_object.  this should
prevent from the pagedaemon running out of memory and deadlocking.
fix counting of wired pages.
add some debugging code to detect attempts to reference free vm_pages.

Revision 1.2: download - view: text, markup, annotated - select for diffs
Fri Feb 6 22:32:13 1998 UTC (27 years 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 (27 years 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 (27 years 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>