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
mrg
05061c6ad9
put the kernel-only externs back before <machine/pmap.h>. fixes ofppc build.
2010-11-29 09:49:33 +00:00
christos
a9bdee4f4d
don't leak kernel variables to userland!
2010-11-26 18:51:19 +00:00
uebayasi
f4ae5ecf6e
Put back VM_PAGE_TO_MD(); pointed out by skrll@, thanks.
2010-11-26 00:45:27 +00:00
uebayasi
e3b768e416
Revert vm_physseg allocation changes. A report says that it causes
...
panics when used with mplayer in heavy load.
2010-11-25 04:45:30 +00:00
dholland
8f6ed30d57
Introduce struct pathbuf. This is an abstraction to hold a pathname
...
and the metadata required to interpret it. Callers of namei must now
create a pathbuf and pass it to NDINIT (instead of a string and a
uio_seg), then destroy the pathbuf after the namei session is
complete.
Update all namei call sites accordingly. Add a pathbuf(9) man page and
update namei(9).
The pathbuf interface also now appears in a couple of related
additional places that were passing string/uio_seg pairs that were
later fed into NDINIT. Update other call sites accordingly.
2010-11-19 06:44:33 +00:00
cegger
7f56ec2e89
build fix: vm_physmem_index is only used with DEBUG.
...
Fix build when DIAGNOSTIC is enabled but not DEBUG
2010-11-18 11:49:41 +00:00
uebayasi
5cdd3cec1f
Optimize DIAGNOSTIC check code.
2010-11-18 08:41:11 +00:00
uebayasi
56df070b0c
Fix DIAGNOSTIC physseg find check.
2010-11-18 08:18:31 +00:00
enami
2c376812ef
Nowadays, comparing priority against PZERO doesn't make any sense.
...
Instead, see if a process waits uninterruptibly like ps does,
so that the second column (`b') of default vmstat output prints
some useful value (-t is still broken though).
2010-11-16 03:49:53 +00:00
uebayasi
2bc2c4def2
... and another.
2010-11-14 15:18:07 +00:00
uebayasi
12d4db54c0
Fix build caused by a last minute change.
2010-11-14 15:16:53 +00:00
uebayasi
26dd1e598f
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.
2010-11-14 15:06:34 +00:00
uebayasi
1674b65491
Oops. Fix thinko.
2010-11-14 04:31:02 +00:00
uebayasi
c9ff0b160b
Platforms that dynamically set PAGE_{SIZE,MASK,SHIFT}, those values are
...
saved in struct uvmexp. Expose only the relevant part for symbol users,
so that they don't need to include the whole uvm(9) API.
2010-11-14 04:25:16 +00:00
uebayasi
e048abfd86
UVM constants should not rely on sys/lock.h.
2010-11-13 12:50:09 +00:00
uebayasi
6d3191d5b6
Hide uvm/uvm_page.h again to ensure its internal structures are MD.
...
GENERIC or at least one kernel compile tested for:
acorn26, acorn32, algor, all, alpha, amd64, amiga, amigappc,
arc, bebox, bighill, cats, cobalt, dreamcast, ews4800mips,
hp300, hp700, hpcarm, hpcmips, hpcsh, i386, ibmnws,
integrator, ixm1200, iyonix, landisk, luna68k, mac68k,
macppc, mipsco, mmeye, mvme68k, mvmeppc, netwinder, news68k,
newsmips, next68k, obs266a, ofppc, pmax, pmppc, prep,
rs6000, sandpoint, sbmips, shark, sidebeach, sparc, sparc64,
sun2, sun3, usermode, vax, x68k, zaurus
2010-11-13 05:52:55 +00:00
uebayasi
3ebf409bf5
Put back uvm_page.h for now. Sorry for mess.
2010-11-12 12:02:35 +00:00
uebayasi
4f1dd4067f
Put VM_PAGE_TO_MD() definition in one place. No functional changes.
2010-11-12 07:59:24 +00:00
uebayasi
77d80f38cd
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.
2010-11-12 05:23:41 +00:00