rmind
eb51bf5884
uvm_map_lock_entry: fix the order of locking. Spotted by yamt@.
...
Also, keep uvm_map_unlock_entry() symmetric.
2011-06-13 23:19:40 +00:00
mrg
a14dae9853
include uvm_object.c in the rump kernel for the new uvm_obj* functions.
...
don't build the uvm_object.c uvm_object_printit() for _RUMPKERNEL. (XXX)
add empty panic() stubs for uvm_loanbreak() and ubc_purge().
fixes some more 5.99.53 rump build issues.
2011-06-12 06:36:38 +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
matt
8704f281b7
Fix fencepost error.
2011-06-05 16:58:00 +00:00
tsutsui
2d7fb158b6
No need to pass UVM_FLAG_COLORMATCH to uvm_pagealloc()
...
if no valid vaddr is specified.
2011-05-21 11:49:34 +00:00
yamt
3b8a580f96
g/c unused function prototypes
2011-05-19 09:57:20 +00:00
rmind
4b0ec60601
ubc_release: use voff_t for offsets, rather than int. Constify.
...
Reviewed by matt@.
2011-05-19 03:44:19 +00:00
mrg
a852848eef
fix the ordering and make UVMHIST enable KERNHIST automatically.
2011-05-17 05:32:31 +00:00
mrg
8169e46991
move and rename the uvm history code out of uvm_stat to "kernhist".
...
rename "UVMHIST" option to enable the uvm histories.
TODO:
- make UVMHIST properly depend upon KERNHIST
- enable dynamic registration of histories. this is mostly just
allocating something in a bitmap, and is only for viewing multiple
histories in a merged form.
tested on amd64 and sparc64.
2011-05-17 04:18:05 +00:00
rmind
fe41737f5c
Remove public uvm_swap_stats() routine, keep it internal.
2011-04-27 00:35:52 +00:00
rmind
520d1ecfd3
Initialize UVM loaning subsystem a bit later, after kmem(9).
...
Makes UVMHIST work again.
2011-04-24 03:56:50 +00:00
rmind
c22a36981f
Replace "malloc" in comments, remove unnecessary header inclusions.
2011-04-23 18:14:12 +00:00
yamt
500e2272be
- ensure that the promoted page is on the queue even when later pmap_enter
...
failed.
- don't activate a page twice.
- remove an argument which is used only for an assertion.
- assertions and comments.
2011-04-08 10:42:51 +00:00
yamt
09f62f3554
comment
2011-04-08 10:36:58 +00:00
rmind
5940ea9676
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@.
2011-04-01 00:47:11 +00:00
drochner
f376d5576a
make this build w/o HAVE_CPU_UAREA_ROUTINES
2011-02-18 10:43:52 +00:00
matt
4f38307d62
Add support for cpu-specific uarea allocation routines. Allows different
...
allocation for user and system lwps. MIPS will use this to map uareas of
system lwp used direct-mapped addresses (to reduce the overhead of
switching to kernel threads). ibm4xx could use to map uareas via direct
mapped addresses and avoid the problem of having the kernel stack not in
the TLB.
2011-02-17 19:27:13 +00:00
jmcneill
50ba38fe0a
need uvm_pmap.h for pmap_mmap_flags definition
2011-02-12 14:45:31 +00:00
jmcneill
ee6551845f
add optional MD pmap_mmap_flags macro for passing flags between cdev_mmap
...
and pmap_enter, ok matt@
2011-02-11 23:05:55 +00:00
rmind
cdc76ff97e
Replace uvm_aobj_cache with kmem(9).
2011-02-11 00:21:18 +00:00
skrll
b5b02ca20c
Spell uvm_fault_lower_neighbor correctly in UVMHIST_FUNC by using
...
__func__
2011-02-10 21:05:52 +00:00
pooka
22c822c7f3
Make vmapbuf() return success/error and make physio deal with a
...
failure.
2011-02-10 14:46:44 +00:00
yamt
c6c7ed993c
pageobj: remove a wrong assertion.
2011-02-05 13:33:47 +00:00
chuck
afca0358a6
udpate license clauses on my code to match the new-style BSD licenses.
...
verified with Mike Hibler it is ok to remove clause 3 on utah copyright,
as per UCB.
based on diff that rmind@ sent me.
no functional change with this commit.
2011-02-02 20:07:25 +00:00
chuck
beb929a933
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 17:53:41 +00:00
chuck
f9d8cc1a37
udpate license clauses on chuck^2 code to match the new-style BSD licenses.
...
based on diff that rmind@ sent me (and confirmed with chs@ via email).
no functional change with this commit.
2011-02-02 15:28:38 +00:00
chuck
40ec801a13
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.
2011-02-02 15:25:27 +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
enami
40713a94c3
Introducing inner loop prevent us from exiting from the original loop.
2011-01-26 08:49:48 +00:00
matt
d32b258b78
When starting the second pass, don't continue the for loop but instead
...
just test try exceeding limit.
2011-01-25 17:22:43 +00:00
enami
7f4cb8b53c
Remove nop code; the code is moved to uao_dropswap_range1() when it is
...
introduced in rev. 1.75.
2011-01-25 03:34:29 +00:00
matt
cb4ebd8be4
Use the (new) KDASSERTMSG
2011-01-24 22:54:01 +00:00
matt
12708a66ee
Fix start_hint in "simple" alloc (fencepost error).
...
When restarting the loop, make sure end is not above current limit.
Do a quick test to see if the physseg is within the range of desired addresses.
2011-01-24 19:13:55 +00:00
he
e9075e068f
DEBUG does not imply DIAGNOSTIC; make sure we have a non-null
...
KASSERTMSG implementation (DIAGNOSTIC) so that the variable inside
the DEBUG section gets used.
2011-01-23 21:29:52 +00:00
matt
5f98725eda
Fix the corruption of ps->start_hint.
2011-01-22 01:36:27 +00:00
matt
651bde3939
Cleanup/add some asserts. no functional change.
2011-01-21 19:27:09 +00:00
cegger
c6a6ce3477
buildfix: use PRIxPADDR for type paddr_t
2011-01-21 16:56:38 +00:00
matt
37726e8583
Improve the efficiency of searching for a contiguous set of free pages.
2011-01-18 21:43:29 +00:00
rmind
7146b2f61d
Retire struct user, remove sys/user.h inclusions. Note sys/user.h header
...
as obsolete. Remove USER_TO_UAREA/UAREA_TO_USER macros.
Various #include fixes and review by matt@.
2011-01-14 02:06:22 +00:00
enami
eaefa873fe
Fix bugs introduced by previous commit; allocated page needs to be bound
...
with the anon, and uvmfault_anonget may be called with ufi NULL.
2011-01-06 05:51:57 +00:00
enami
7b2a66bec9
Fix format string; use PRIu64 for uint64_t.
2011-01-05 21:20:44 +00:00
matt
4d8e8a7e36
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.
2011-01-04 08:26:33 +00:00
matt
5d3db402fb
Add a MD hook to indicate a change of vmspace due to exec. (This is useful
...
to update any cpu flag due to a change to/from a 64bit and a 32bit address
space). This can set the state needed for copyout/copyin before setregs
is invoked.
2011-01-04 08:21:18 +00:00
matt
b3322481fa
Print the number of page colors in use with db> show uvm
2011-01-04 08:17:01 +00:00
matt
6a66466f0c
Move counting of faults, traps, intrs, soft[intr]s, syscalls, and nswtch
...
from uvmexp to per-cpu cpu_data and move them to 64bits. Remove unneeded
includes of <uvm/uvm_extern.h> and/or <uvm/uvm.h>.
2010-12-20 00:25:23 +00:00
yamt
473b1715a5
cosmetics. no functional changes.
...
- constify
- wrap long lines
- assertions
- comments
2010-12-17 22:00:43 +00:00
pooka
fe0a6aa142
Remove duplicate asserts from when uvm_fault_lower1() was merged
...
into uvm_fault_lower() (the duplicates were there already before,
just in different functions).
reported by Alexander Nasonov on tech-kern
2010-12-15 13:44:17 +00:00
matt
9898b7c4fd
When panicing due a non-power of 2 pagesize, include the pagesize in the
...
panic message.
2010-12-11 22:34:03 +00:00
uebayasi
565a3d3094
Make UVM_PAGE_TRKOWN a real flag.
2010-12-09 01:48:05 +00:00
hannken
bd8f6f0b8f
Always take the object lock before changing vmpage flags. Fixes a deadlock
...
where a thread is waiting on "genput" but the page in question is neither
BUSY nor WANTED.
No objections from tech-kern@.
2010-11-30 10:55:25 +00:00