chs
26b2b74f75
initialize amap per-page reference counts before changing the amap's
...
overall reference count. this fixes the crashes seen for the last 9 months
with web browers and plugins, which was also the cause of PR 46193.
2012-04-08 20:47:10 +00:00
chs
6042004c72
adjust amap_cow_now() to make UVM_PAGE_TRKOWN happy.
2012-03-30 02:25:24 +00:00
para
e62ee4d475
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
2012-01-27 19:48:38 +00:00
yamt
8ddce5912c
assertion
2011-10-11 23:57:50 +00:00
rmind
e52f8e8779
amap_cow_now: just free the fresh anon on error, no need to dispose it.
2011-08-17 20:46:27 +00:00
rmind
39445b05bc
- Rework uvm_anfree() into uvm_anon_freelst(), which always drops the lock.
...
- Free anons in uvm_anon_freelst() without lock held.
- Mechanic sync to unused loaning code.
2011-08-06 17:25:03 +00:00
yamt
7eec89b991
reduce the number of atomic ops in common cases. it's exceptional for
...
anons to remain longer than amap.
2011-07-05 13:47:24 +00:00
hannken
79568783ba
amap_copy(): Keep the source amap locked until its lock has been copied.
...
Kernel assertion "anon->an_lock == amap->am_lock" no longer fails.
Ok: Mindaugas Rasiukevicius <rmind@netbsd.org>
2011-06-27 15:56:36 +00:00
rmind
c59e31527c
amap_copy: fix one more regression, thanks to enami@.
2011-06-24 01:48:43 +00:00
rmind
7be1d60258
Fix uvmplock regression - a lock against oneself case in amap_swap_off().
...
Happens since amap is NULL in uvmfault_anonget(), so uvmfault_unlockall()
keeps anon locked, when it should unlock it.
2011-06-24 01:39:22 +00:00
rmind
538c69f6e6
amap_pp_adjref: fix regression, spotted by nonaka@.
2011-06-24 01:03:08 +00:00
rmind
6398a253c4
Clean-up, add asserts, slightly simplify.
2011-06-23 18:15:30 +00:00
rmind
10583b12ce
Clean up, sprinkle asserts, consify, use unsigned, use kmem_zalloc instead
...
of memset, reduce the scope of some variables, improve some comments.
No functional change intended.
2011-06-18 21:13:29 +00:00
rmind
1885100a7e
amap_add/amap_unadd: clean up slightly, use unsigned, add asserts.
2011-06-18 20:51:22 +00:00
rmind
223aec6f50
Add amap_adjref_anons() helper and simplify amap_ref()/amap_unref().
2011-06-18 20:29:56 +00:00
rmind
71341c3c42
amap_lookup{s}: add assert, clean-up slightly.
2011-06-16 19:42:20 +00:00
rmind
e225b7bd09
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.
2011-06-12 03:35:36 +00:00
rmind
c22a36981f
Replace "malloc" in comments, remove unnecessary header inclusions.
2011-04-23 18:14:12 +00:00
chuck
3ba477b154
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.
2011-02-02 15:13:33 +00:00
rmind
40cf6f3659
Remove uarea swap-out functionality:
...
- Addresses the issue described in PR/38828.
- Some simplification in threading and sleepq subsystems.
- Eliminates pmap_collect() and, as a side note, allows pmap optimisations.
- Eliminates XS_CTL_DATA_ONSTACK in scsipi code.
- Avoids few scans on LWP list and thus potentially long holds of proc_lock.
- Cuts ~1.5k lines of code. Reduces amd64 kernel size by ~4k.
- Removes __SWAP_BROKEN cases.
Tested on x86, mips, acorn32 (thanks <mpumford>) and partly tested on
acorn26 (thanks to <bjh21>).
Discussed on <tech-kern>, reviewed by <ad>.
2009-10-21 21:11:57 +00:00
yamt
6f5397de19
assertions
2009-08-16 11:06:37 +00:00
rmind
9a2646038e
Convert some panic() checks to KASSERT()s.
...
This code is stable and there is no reason to enforce checks.
2009-03-28 21:45:55 +00:00
ad
7a2060a7f5
Make adjustment of uvm_extrapages atomic since it's done without a lock.
...
XXX This is still a hack.
2008-12-03 11:43:51 +00:00
ad
4a780c9ae2
Merge vmlocking2 to head.
2008-01-02 11:48:20 +00:00
ad
371ba00b4a
Allocate amaps from a pool_cache.
2007-12-08 15:46:31 +00:00
ad
4688843d2b
Merge unobtrusive locking changes from the vmlocking branch.
2007-07-21 19:21:53 +00:00
ad
88ab7da936
Merge some of the less invasive changes from the vmlocking branch:
...
- kthread, callout, devsw API changes
- select()/poll() improvements
- miscellaneous MT safety improvements
2007-07-09 20:51:58 +00:00
ad
59d979c5f1
Pass an ipl argument to pool_init/POOL_INIT to be used when initializing
...
the pool's lock.
2007-03-12 18:18:22 +00:00
thorpej
b3667ada6d
TRUE -> true, FALSE -> false
2007-02-22 06:05:00 +00:00
thorpej
712239e366
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.
2007-02-21 22:59:35 +00:00
ad
b07ec3fc38
Merge newlock2 to head.
2007-02-09 21:55:00 +00:00
yamt
1a7bc55dcc
remove some __unused from function parameters.
2006-11-01 10:17:58 +00:00
christos
4d595fd7b1
- sprinkle __unused on function decls.
...
- fix a couple of unused bugs
- no more -Wno-unused for i386
2006-10-12 01:30:41 +00:00
yamt
d447115889
make amap use kmem_alloc, rather than malloc.
...
(ie. make it use kernel_map, rather than kmem_map.)
kmem_map is more restricted than kernel_map,
and there's no point for amap to use it.
2006-06-25 08:03:46 +00:00
yamt
93127a7b4c
amap_splitref: assert that origref->ar_amap is initialized
...
by caller beforehand.
2006-04-21 14:04:45 +00:00
yamt
9040ed946b
- amap_copy: take a "flags" argument instead of booleans.
...
- add AMAP_COPY_NOMERGE flag, and use it for uvm_map_extract.
PR/32806 from Julio M. Merino Vidal.
2006-02-15 14:06:45 +00:00
yamt
a3af4c1530
remove the following options. no objections on tech-kern@.
...
UVM_PAGER_INLINE
UVM_AMAP_INLINE
UVM_PAGE_INLINE
UVM_MAP_INLINE
2006-02-11 12:45:07 +00:00
yamt
651bed2a01
- uvm_fault: move a common code of 1B and 2B to a new function.
...
don't attempt to allocate anons with kernel_map locked. PR/32543.
- amap_copy: add an assertion.
2006-01-21 13:13:07 +00:00
chs
5570661cd8
in amap_alloc(), only put the amap on the list of amaps if we succeeded
...
in allocating it.
2006-01-18 17:03:36 +00:00
perry
0f0296d88a
Remove leading __ from __(const|inline|signed|volatile) -- it is obsolete.
2005-12-24 20:45:08 +00:00
christos
95e1ffb156
merge ktrace-lwp.
2005-12-11 12:16:03 +00:00
chs
5332333501
in amap_cow_now(), handle the case where we have to sleep and some of the
...
already-copied pages are paged out. anons that have already been copied
will have refcount == 1, whereas anons that still need to be copied will
have refcount > 1. fixes PR 25392, PR 30257, PR 31924.
2005-11-06 15:57:32 +00:00
yamt
6fbf5bf6f1
wrap swap related code by #ifdef VMSWAP. always #define VMSWAP for now.
2005-09-13 22:00:05 +00:00
yamt
38ca5312d2
revert "defflag VMSWAP" changes for now.
...
there seems to be far more people who don't want to edit
their kernel config files than i thought.
2005-07-31 04:04:30 +00:00
yamt
1d0891101c
defflag VMSWAP.
2005-07-30 06:33:33 +00:00
thorpej
e569facced
Use ANSI function decls.
2005-06-27 02:19:48 +00:00
yamt
50a25acc50
(try to) merge map entries in fault handler.
2005-05-17 13:55:33 +00:00
yamt
662ada8f7a
allocate anons on-demand, rather than reserving static amount of
...
them on boot/swapon.
2005-05-11 13:02:25 +00:00
yamt
ae24d5d705
- amap_extend: don't extend amap beyond UVM_AMAP_LARGE.
...
- uvm_map_enter: if we fail to extend amap, just give up merging instead of
bailing out immediately.
2005-05-05 01:58:51 +00:00
yamt
a7cd6f7a0e
amap_wipeout: remove a comment which is no longer true.
...
despite of what comment said, i left preempt() call
because i don't think of any bad effects.
2005-04-06 13:58:40 +00:00