Up to [local] / src / sys / uvm
Request diff between arbitrary revisions
Default branch: MAIN
Revision 1.89 / (download) - annotate - [select for diffs], Tue Apr 2 08:39:17 2024 UTC (2 months, 1 week ago) by deraadt
Branch: MAIN
CVS Tags: HEAD
Changes since 1.88: +1 -5 lines
Diff to previous 1.88 (colored)
Delete the msyscall mechanism entirely, since mimmutable+pinsyscalls has replaced it with a more strict mechanism, which happens to be lockless O(1) rather than micro-lock O(1)+O(log N). Also nop-out the sys_msyscall(2) guts, but leave the syscall around for a bit longer so that people can build through it, since ld.so(1) still wants to call it.
Revision 1.88 / (download) - annotate - [select for diffs], Tue Jan 16 19:05:01 2024 UTC (4 months, 3 weeks ago) by deraadt
Branch: MAIN
CVS Tags: OPENBSD_7_5_BASE,
OPENBSD_7_5
Changes since 1.87: +2 -1 lines
Diff to previous 1.87 (colored)
The kernel will now read pinsyscall tables out of PT_OPENBSD_SYSCALLS in the main program or ld.so, and accept a submission of that information for libc.so from ld.so via pinsyscalls(2). At system call invocation, the syscall number is matched to the specific address it must come from. ok kettenis, gnezdo, testing of variations by many people
Revision 1.87 / (download) - annotate - [select for diffs], Wed Aug 2 09:19:47 2023 UTC (10 months, 1 week ago) by mpi
Branch: MAIN
CVS Tags: OPENBSD_7_4_BASE,
OPENBSD_7_4
Changes since 1.86: +6 -21 lines
Diff to previous 1.86 (colored)
Remove unused vm_map_upgrade() & vm_map_downgrade(). Upgrade/downgrade operations on a `vmmaplk' are no longer necessary since vm_map_busy() completely unlocks it (r1.318 of uvm/uvm_map.c). ok kettenis@
Revision 1.86 / (download) - annotate - [select for diffs], Sat May 20 12:48:36 2023 UTC (12 months, 3 weeks ago) by mpi
Branch: MAIN
Changes since 1.85: +2 -1 lines
Diff to previous 1.85 (colored)
Do not grab the `vmmaplk' recursively, prevent a self-deadlock. Change the semantic of vm_map_busy() to be able to completely unlock the `vmmaplk' instead of downgrading it to a read lock in mlock(2). This is necessary because uvm_fault_wire() tries to re-grab the same lock. We now keep track of the thread currently holding the vmmap busy to ensure it can relock & unbusy the vmmap. The new pattern becomes: ....vm_map_lock(map); ....vm_map_busy(map); /* prevent other threads to grab an exclusive lock */ ....vm_map_unlock(map); .... ..../* .... * Do some stuff generally requiring a tsleep(9). .... */ .... ....vm_map_lock(map); ....vm_map_unbusy(map); /* allow other threads to make progress after unlock */ ....vm_map_unlock(map); Fix adapted from NetBSD's r1.249 of uvm/uvm_map.c. Issue reported by Jacqueline Jolicoeur exposed by a "wallet refresh" of the Monero App. Panic hand-copied below: sleep_finish() rw_enter() uvmfault_lookup() uvm_fault_check() uvm_fault() uvm_fault_wire() uvm_map_pageable_wire() sys_mlock() This version skips bumping the map's timestamp if the lock is acquired by the thread marked the VM map busy. This prevents a KASSERT() reported by bluhm@ triggered by regress/misc/posixtestsuite conformance/interfaces/mmap/18-1 ok kettenis@
Revision 1.85 / (download) - annotate - [select for diffs], Wed Apr 26 12:25:12 2023 UTC (13 months, 2 weeks ago) by bluhm
Branch: MAIN
Changes since 1.84: +1 -2 lines
Diff to previous 1.84 (colored)
Backout previous commit: Do not grab the `vmmaplk' recursively, prevent a self-deadlock. It causes panic: uvm_map_pageable_wire: stale map Found by regress/misc/posixtestsuite conformance/interfaces/mmap/18-1 requested by deraadt@
Revision 1.84 / (download) - annotate - [select for diffs], Tue Apr 25 12:36:30 2023 UTC (13 months, 2 weeks ago) by mpi
Branch: MAIN
Changes since 1.83: +2 -1 lines
Diff to previous 1.83 (colored)
Do not grab the `vmmaplk' recursively, prevent a self-deadlock. Change the semantic of vm_map_busy() to be able to completely unlock the `vmmaplk' instead of downgrading it to a read lock in mlock(2). This is necessary because uvm_fault_wire() tries to re-grab the same lock. We now keep track of the thread currently holding the vmmap busy to ensure it can relock & unbusy the vmmap. The new pattern becomes: ....vm_map_lock(map); ....vm_map_busy(map); /* prevent other threads to grab an exclusive lock */ ....vm_map_unlock(map); .... ..../* .... * Do some stuff generally requiring a tsleep(9). .... */ .... ....vm_map_lock(map); ....vm_map_unbusy(map); /* allow other threads to make progress after unlock */ ....vm_map_unlock(map); Fix adapted from NetBSD's r1.249 of uvm/uvm_map.c. Issue reported by Jacqueline Jolicoeur exposed by a "wallet refresh" of the Monero App. Panic hand-copied below: sleep_finish() rw_enter() uvmfault_lookup() uvm_fault_check() uvm_fault() uvm_fault_wire() uvm_map_pageable_wire() sys_mlock() ok kettenis@
Revision 1.83 / (download) - annotate - [select for diffs], Tue Jan 31 15:18:55 2023 UTC (16 months, 1 week ago) by deraadt
Branch: MAIN
CVS Tags: OPENBSD_7_3_BASE,
OPENBSD_7_3
Changes since 1.82: +8 -1 lines
Diff to previous 1.82 (colored)
On systems without xonly mmu hardware-enforcement, we can still mitigate against classic BROP with a range-checking wrapper in front of copyin() and copyinstr() which ensures the userland source doesn't overlap the main program text, ld.so text, signal tramp text (it's mapping is hard to distinguish so it comes along for the ride), or libc.so text. ld.so tells the kernel libc.so text range with msyscall(2). The range checking for 2-4 elements is done without locking (because all 4 ranges are immutable!) and is inexpensive. write(sock, &open, 400) now fails with EFAULT. No programs have been discovered which require reading their own text segments with a system call. On a machine without mmu enforcement, a test program reports the following: userland kernel ld.so readable unreadable mmap xz unreadable unreadable mmap x readable readable mmap nrx readable readable mmap nwx readable readable mmap xnwx readable readable main readable unreadable libc unmapped? readable unreadable libc mapped readable unreadable ok kettenis, additional help from miod
Revision 1.82 / (download) - annotate - [select for diffs], Thu Jan 26 07:44:31 2023 UTC (16 months, 2 weeks ago) by deraadt
Branch: MAIN
Changes since 1.81: +2 -2 lines
Diff to previous 1.81 (colored)
delete repeated word
Revision 1.81 / (download) - annotate - [select for diffs], Thu Nov 17 23:26:07 2022 UTC (18 months, 3 weeks ago) by deraadt
Branch: MAIN
Changes since 1.80: +9 -4 lines
Diff to previous 1.80 (colored)
With regret, place mutexes after struct vm_map fields which are inspected by libkvm and procmap(8). struct mutex can change based upon kernel compile options, and the fields were dancing around ok kettenis
Revision 1.80 / (download) - annotate - [select for diffs], Fri Nov 4 09:36:44 2022 UTC (19 months, 1 week ago) by mpi
Branch: MAIN
Changes since 1.79: +9 -1 lines
Diff to previous 1.79 (colored)
Assert the VM map lock is held in function used by mmap/mprotect/munmap. Also grab the lock in uvm_map_teardown() and uvm_map_deallocate() to satisfy the assertions. Grabbing the lock there shouldn't be strictly necessary, because no other reference to the map should exist when the reaper is holding it, but it doesn't hurt and makes our life easier. Inputs & tests from Ivo van der Sangen, tb@, gnezdo@, kn@ kettenis@ and tb@ agree with the direction, ok kn@
Revision 1.79 / (download) - annotate - [select for diffs], Fri Oct 21 19:13:33 2022 UTC (19 months, 2 weeks ago) by deraadt
Branch: MAIN
Changes since 1.78: +2 -2 lines
Diff to previous 1.78 (colored)
the debug "name" parameter to uvm_map_immutable() is no longer needed
Revision 1.78 / (download) - annotate - [select for diffs], Sun Oct 16 16:16:37 2022 UTC (19 months, 3 weeks ago) by deraadt
Branch: MAIN
Changes since 1.77: +2 -1 lines
Diff to previous 1.77 (colored)
Rather than marking MAP_STACK on entries for sigaltstack() [2 days ago], go back to the old approach: using a new anon mapping because it removes any potential gadgetry pre-placed in the region (by making it zero). But also bring in a few more validation checks beyond contigious mapping -- it must not be a syscall region, and the protection must be precisely RW. This does allow sigaltstack() to shoot zero'd MAP_STACK non-immutable regions into the main stack area (which will soon be immutable). I am not sure we can keep reinforce immutable on the region after we do stack (like maybe determine this while doing the validation entry walk?) Sadly, continued support for sigaltstack() does require selecting the guessed best compromise. ok kettenis
Revision 1.77 / (download) - annotate - [select for diffs], Sat Oct 15 03:23:50 2022 UTC (19 months, 3 weeks ago) by deraadt
Branch: MAIN
Changes since 1.76: +2 -3 lines
Diff to previous 1.76 (colored)
During the MAP_STACK introduction in 2018, sigaltstack() became a problem because haphazard use could shoot holes in the address space (changing permissions, providing opportunities for pivoting, etc). I tried to write a diff to convert the address space correctly but did not understand enough about map entries, so instead we mapped new memory over top of the existing object. Placing a new mapping becomes unfeasible with the upcoming mimmutable model, so here is code that adds MAP_STACK to the region. It will only do so for a contigiously mapped region that is non-syscall with permission RW, otherwise it returns an error. Food for thought: If we know the object isn't service by an object, we should consider zero'ing the region, to block pre-pivot placement? ok kettenis
Revision 1.76 / (download) - annotate - [select for diffs], Fri Oct 7 14:59:39 2022 UTC (20 months ago) by deraadt
Branch: MAIN
Changes since 1.75: +4 -3 lines
Diff to previous 1.75 (colored)
Add mimmutable(2) system call which locks the permissions (PROT_*) of memory mappings so they cannot be changed by a later mmap(), mprotect(), or munmap(), which will error with EPERM instead. ok kettenis
Revision 1.75 / (download) - annotate - [select for diffs], Sat Mar 12 08:11:07 2022 UTC (2 years, 3 months ago) by mpi
Branch: MAIN
CVS Tags: OPENBSD_7_2_BASE,
OPENBSD_7_2,
OPENBSD_7_1_BASE,
OPENBSD_7_1
Changes since 1.74: +1 -2 lines
Diff to previous 1.74 (colored)
Revert holding a read lock on the map while copying out data during sysctl(2). This introduced a lock ordering issue reported by naddy@, anton@ and syzkaller. Reported-by: syzbot+739bb901045d9b193bde@syzkaller.appspotmail.com
Revision 1.74 / (download) - annotate - [select for diffs], Fri Mar 11 19:24:19 2022 UTC (2 years, 3 months ago) by kettenis
Branch: MAIN
Changes since 1.73: +3 -2 lines
Diff to previous 1.73 (colored)
Hold a read lock on the map while copying out data during a sysctl(2) call to prevent another thread from unmapping the memory and triggering an assertion or even corrupting random physical memory pages. This fix is similar to the change in uvm_glue.c rev. 1.74. However in this case we need to be careful since some sysctl(2) calls look at the map of the current process. In those cases we must not attempt to lock the map again. ok mpi@ Should fix: Reported-by: syzbot+be89fe83d6c004fcb412@syzkaller.appspotmail.com
Revision 1.73 / (download) - annotate - [select for diffs], Fri Feb 11 09:25:04 2022 UTC (2 years, 3 months ago) by kn
Branch: MAIN
Changes since 1.72: +0 -12 lines
Diff to previous 1.72 (colored)
Backout previous "Assert vm map locks" (commitid: sRNBfzX2dJrxFDmb) WITNESS builds broke as reported by anton and bluhm: root on sd0a (5ec49b3ad23eb2d4.a) swap on sd0b dump on sd0b kernel: protection fault trap, code=0 Stopped at witness_checkorder+0x4ec: movl 0x10(%r12),%ecx https://syzkaller.appspot.com/bug?id=be02b290a93c648986c35370a271aad4135a5044 https://syzkaller.appspot.com/text?tag=CrashLog&x=136e9aa4700000
Revision 1.72 / (download) - annotate - [select for diffs], Thu Feb 10 10:15:35 2022 UTC (2 years, 4 months ago) by kn
Branch: MAIN
Changes since 1.71: +13 -1 lines
Diff to previous 1.71 (colored)
Assert vm map locks Introduce vm_map_assert_{wrlock,rdlock,anylock,unlocked}() in rwlock(9) fashion and back up function comments about locking assumptions with proper assertions. Also add new comments/assertions based on code analysis and sync with NetBSD as much as possible. vm_map_lock() and vm_map_lock_read() are used for exclusive and shared access respectively; currently no code path is purely protected by vm_map_lock_read() alone, i.e. functions called with a read lock held by the callee are also called with a write lock elsewhere. Thus only vm_map_assert_{wrlock,anylock}() are used as of now. This should help with unlocking UVM related syscalls Tested as part of a larger diff through - amd64 package bulk build by naddy - amd64, arm64, powerpc64 base builds and regress by bluhm - amd64 and sparc64 base builds and regress by me Input mpi Feedback OK kettenis
Revision 1.71 / (download) - annotate - [select for diffs], Wed Dec 15 12:53:53 2021 UTC (2 years, 5 months ago) by mpi
Branch: MAIN
Changes since 1.70: +4 -1 lines
Diff to previous 1.70 (colored)
Use a per-UVM object lock to serialize the lower part of the fault handler. Like the per-amap lock the `vmobjlock' is principally used to serialized access to objects in the fault handler to allow faults occurring on different CPUs and different objects to be processed in parallel. The fault handler now acquires the `vmobjlock' of a given UVM object as soon as it finds one. For now a write-lock is always acquired even if some operations could use a read-lock. Every pager, corresponding to a different kind of UVM object, now expect the UVM object to be locked and some operations, like *_get() return it unlocked. This is enforced by assertions checking for rw_write_held(). The KERNEL_LOCK() is now pushed to the VFS boundary in the vnode pager. To ensure the correct amap or object lock is held when modifying a page many uvm_page* operations are now asserting for the "owner" lock. However, fields of the "struct vm_page" are still being protected by the global `pageqlock'. To prevent lock ordering issues with the new `vmobjlock' and to reduce differences with NetBSD this lock is now taken and released for each page instead of around the whole loop. This commit does not remove the KERNEL_LOCK/UNLOCK() dance. Unlocking will follow if there is no fallout. Ported from NetBSD, tested by many, thanks! ok kettenis@, kn@
Revision 1.70 / (download) - annotate - [select for diffs], Sat May 22 08:38:29 2021 UTC (3 years ago) by mpi
Branch: MAIN
CVS Tags: OPENBSD_7_0_BASE,
OPENBSD_7_0
Changes since 1.69: +3 -2 lines
Diff to previous 1.69 (colored)
Use atomic operations for reference counting VM maps. This is necessary to do this accounting without the KERNEL_LOCK(). ok mvs@, kettenis@
Revision 1.69 / (download) - annotate - [select for diffs], Fri Mar 12 14:15:49 2021 UTC (3 years, 3 months ago) by jsg
Branch: MAIN
CVS Tags: OPENBSD_6_9_BASE,
OPENBSD_6_9
Changes since 1.68: +2 -2 lines
Diff to previous 1.68 (colored)
spelling ok mpi@
Revision 1.68 / (download) - annotate - [select for diffs], Fri Oct 9 08:16:28 2020 UTC (3 years, 8 months ago) by mpi
Branch: MAIN
Changes since 1.67: +1 -8 lines
Diff to previous 1.67 (colored)
Remove unecesary includes. ok deraadt@
Revision 1.67 / (download) - annotate - [select for diffs], Wed Dec 18 13:33:29 2019 UTC (4 years, 5 months ago) by visa
Branch: MAIN
CVS Tags: OPENBSD_6_8_BASE,
OPENBSD_6_8,
OPENBSD_6_7_BASE,
OPENBSD_6_7
Changes since 1.66: +2 -2 lines
Diff to previous 1.66 (colored)
Set vm_map's pmap in uvm_map_setup(). OK guenther@, kettenis@, mpi@
Revision 1.66 / (download) - annotate - [select for diffs], Thu Dec 12 11:12:37 2019 UTC (4 years, 6 months ago) by mpi
Branch: MAIN
Changes since 1.65: +37 -87 lines
Diff to previous 1.65 (colored)
Header cleanup. - reduces gratuitous differences with NetBSD, - merges multiple '#ifdef _KERNEL' blocks, - kills unused 'struct vm_map_intrsafe' - turns 'union vm_map_object' into a anonymous union (following to NetBSD) - move questionable vm_map_modflags() into uvm/uvm_map.c - remove guards around MAX_KMAPENT, it is defined&used only once - document lock differences - fix tab vs space ok mlarkin@, visa@
Revision 1.65 / (download) - annotate - [select for diffs], Fri Nov 29 06:34:46 2019 UTC (4 years, 6 months ago) by deraadt
Branch: MAIN
Changes since 1.64: +3 -1 lines
Diff to previous 1.64 (colored)
Repurpose the "syscalls must be on a writeable page" mechanism to enforce a new policy: system calls must be in pre-registered regions. We have discussed more strict checks than this, but none satisfy the cost/benefit based upon our understanding of attack methods, anyways let's see what the next iteration looks like. This is intended to harden (translation: attackers must put extra effort into attacking) against a mixture of W^X failures and JIT bugs which allow syscall misinterpretation, especially in environments with polymorphic-instruction/variable-sized instructions. It fits in a bit with libc/libcrypto/ld.so random relink on boot and no-restart-at-crash behaviour, particularily for remote problems. Less effective once on-host since someone the libraries can be read. For static-executables the kernel registers the main program's PIE-mapped exec section valid, as well as the randomly-placed sigtramp page. For dynamic executables ELF ld.so's exec segment is also labelled valid; ld.so then has enough information to register libc's exec section as valid via call-once msyscall(2) For dynamic binaries, we continue to to permit the main program exec segment because "go" (and potentially a few other applications) have embedded system calls in the main program. Hopefully at least go gets fixed soon. We declare the concept of embedded syscalls a bad idea for numerous reasons, as we notice the ecosystem has many of static-syscall-in-base-binary which are dynamically linked against libraries which in turn use libc, which contains another set of syscall stubs. We've been concerned about adding even one additional syscall entry point... but go's approach tends to double the entry-point attack surface. This was started at a nano-hackathon in Bob Beck's basement 2 weeks ago during a long discussion with mortimer trying to hide from the SSL scream-conversations, and finished in more comfortable circumstances next to a wood-stove at Elk Lakes cabin with UVM scream-conversations. ok guenther kettenis mortimer, lots of feedback from others conversations about go with jsing tb sthen
Revision 1.64 / (download) - annotate - [select for diffs], Sat Nov 2 09:36:08 2019 UTC (4 years, 7 months ago) by mpi
Branch: MAIN
Changes since 1.63: +15 -11 lines
Diff to previous 1.63 (colored)
Start documenting which locking primitives apply to uvm_map members. ok kettenis@
Revision 1.63 / (download) - annotate - [select for diffs], Fri Nov 1 19:18:29 2019 UTC (4 years, 7 months ago) by mpi
Branch: MAIN
Changes since 1.62: +1 -5 lines
Diff to previous 1.62 (colored)
Keep local function definitions in C files.
Revision 1.62 / (download) - annotate - [select for diffs], Fri Jun 14 05:52:43 2019 UTC (4 years, 11 months ago) by deraadt
Branch: MAIN
CVS Tags: OPENBSD_6_6_BASE,
OPENBSD_6_6
Changes since 1.61: +2 -2 lines
Diff to previous 1.61 (colored)
The addition of writeable-syscall checking near MAP_STACK checking damaged the error messages. Repair that, passing distinct format strings for the two cases. ok beck
Revision 1.61 / (download) - annotate - [select for diffs], Sat Jun 1 22:42:20 2019 UTC (5 years ago) by deraadt
Branch: MAIN
Changes since 1.60: +14 -3 lines
Diff to previous 1.60 (colored)
Refactor the MAP_STACK feature, and introduce another similar variation: Lookup the address that a syscall instruction is executed from, and kill the process if that page is writeable. This brings an aspect of W^X behaviour to W|X mappings (in JITs not yet adapted to W^X). The goal is to remove simple attack methods and force use of ret2libc or other more complicated means. ok kettenis stefan visa
Revision 1.60 / (download) - annotate - [select for diffs], Thu Apr 12 17:13:44 2018 UTC (6 years, 2 months ago) by deraadt
Branch: MAIN
CVS Tags: OPENBSD_6_5_BASE,
OPENBSD_6_5,
OPENBSD_6_4_BASE,
OPENBSD_6_4
Changes since 1.59: +5 -1 lines
Diff to previous 1.59 (colored)
Implement MAP_STACK option for mmap(). Synchronous faults (pagefault and syscall) confirm the stack register points at MAP_STACK memory, otherwise SIGSEGV is delivered. sigaltstack() and pthread_attr_setstack() are modified to create a MAP_STACK sub-region which satisfies alignment requirements. Observe that MAP_STACK can only be set/cleared by mmap(), which zeroes the contents of the region -- there is no mprotect() equivalent operation, so there is no MAP_STACK-adding gadget. This opportunistic software-emulation of a stack protection bit makes stack-pivot operations during ROPchain fragile (kind of like removing a tool from the toolbox). original discussion with tedu, uvm work by stefan, testing by mortimer ok kettenis
Revision 1.59 / (download) - annotate - [select for diffs], Fri Sep 16 03:39:25 2016 UTC (7 years, 8 months ago) by dlg
Branch: MAIN
CVS Tags: OPENBSD_6_3_BASE,
OPENBSD_6_3,
OPENBSD_6_2_BASE,
OPENBSD_6_2,
OPENBSD_6_1_BASE,
OPENBSD_6_1
Changes since 1.58: +3 -1 lines
Diff to previous 1.58 (colored)
put RBT_PROTOTYPE inside #ifdef _KERNEL
Revision 1.58 / (download) - annotate - [select for diffs], Fri Sep 16 01:51:40 2016 UTC (7 years, 8 months ago) by dlg
Branch: MAIN
Changes since 1.57: +2 -2 lines
Diff to previous 1.57 (colored)
move uaddr_free_rbtree from RB macros to RBT functions
Revision 1.57 / (download) - annotate - [select for diffs], Fri Sep 16 01:09:53 2016 UTC (7 years, 8 months ago) by dlg
Branch: MAIN
Changes since 1.56: +4 -4 lines
Diff to previous 1.56 (colored)
move the uvm_map_addr RB tree from RB macros to the RBT functions this tree is interesting because it uses all the red black tree features, specifically the augment callback thats called on tree topology changes, and it poisons and checks entries as theyre removed from and inserted back into the tree respectively. ok stefan@
Revision 1.56 / (download) - annotate - [select for diffs], Thu Aug 11 01:17:33 2016 UTC (7 years, 10 months ago) by dlg
Branch: MAIN
Changes since 1.55: +2 -1 lines
Diff to previous 1.55 (colored)
replace abuse of the static map entries RB_ENTRY pointers with an SLIST free static entries are kept in a simple linked list, so use SLIST to make this obvious. the RB_PARENT manipulations are ugly and confusing. ok kettenis@
Revision 1.55 / (download) - annotate - [select for diffs], Wed Sep 9 23:33:37 2015 UTC (8 years, 9 months ago) by kettenis
Branch: MAIN
CVS Tags: OPENBSD_6_0_BASE,
OPENBSD_6_0,
OPENBSD_5_9_BASE,
OPENBSD_5_9
Changes since 1.54: +2 -1 lines
Diff to previous 1.54 (colored)
Add locking for interrupt-safe maps (those that have the VM_MAP_INTRSAFE flag set). Since we cannot sleep in that case, use a mutex instead of an rwlock. This is ok as the more complex code paths in the uvm code are not entered for interrupt-safe maps as paging isn't allowed in those maps. ok tedu@
Revision 1.54 / (download) - annotate - [select for diffs], Mon Mar 30 21:08:40 2015 UTC (9 years, 2 months ago) by miod
Branch: MAIN
CVS Tags: OPENBSD_5_8_BASE,
OPENBSD_5_8
Changes since 1.53: +2 -2 lines
Diff to previous 1.53 (colored)
Extend uvm_map_hint() to get an address range as extra arguments, and make sure it will return an address within that range. Use this in uaddr_rnd_select() to make sure we will not attempt to pick an address beyond what we are allowed to map. In my trees for 9 months, blackmailed s2k15 attendees into agreeing now would be a good time to commit.
Revision 1.53 / (download) - annotate - [select for diffs], Fri Feb 6 09:04:34 2015 UTC (9 years, 4 months ago) by tedu
Branch: MAIN
CVS Tags: OPENBSD_5_7_BASE,
OPENBSD_5_7
Changes since 1.52: +5 -1 lines
Diff to previous 1.52 (colored)
make vm_map_lock lock when it's supposed to. add mutex to protect flags and then double check we didn't lose the unavoidable race. ok beck guenther kettenis miod
Revision 1.52 / (download) - annotate - [select for diffs], Fri Dec 5 04:12:48 2014 UTC (9 years, 6 months ago) by uebayasi
Branch: MAIN
Changes since 1.51: +6 -1 lines
Diff to previous 1.51 (colored)
Introduce a new sysctl to retrieve VM map entries This adds a new sysctl KERN_PROC_VMMAP, which returns an array of VM map entries of a specified process. This prevents debuggers from iterating vm_map_entry RB tree via kvm(3). The name KERN_PROC_VMMAP and struct kinfo_vmentry are chosen from the same function in FreeBSD. struct kinfo_vmentry is revised to reduce size, because OpenBSD does not keep track of filepaths. The semantic is also changed to return max buffer size as a hint, and start iteration at the specified base address. Much valuable input from deraadt@, guenther@, tedu@ OK tedu@ deraadt@
Revision 1.51 / (download) - annotate - [select for diffs], Fri Jul 11 16:35:40 2014 UTC (9 years, 11 months ago) by jsg
Branch: MAIN
CVS Tags: OPENBSD_5_6_BASE,
OPENBSD_5_6
Changes since 1.50: +2 -7 lines
Diff to previous 1.50 (colored)
Chuck Cranor rescinded clauses in his license on the 2nd of February 2011 in NetBSD. http://marc.info/?l=netbsd-source-changes&m=129658899212732&w=2 http://marc.info/?l=netbsd-source-changes&m=129659095515558&w=2 http://marc.info/?l=netbsd-source-changes&m=129659157916514&w=2 http://marc.info/?l=netbsd-source-changes&m=129665962324372&w=2 http://marc.info/?l=netbsd-source-changes&m=129666033625342&w=2 http://marc.info/?l=netbsd-source-changes&m=129666052825545&w=2 http://marc.info/?l=netbsd-source-changes&m=129666922906480&w=2 http://marc.info/?l=netbsd-source-changes&m=129667725518082&w=2
Revision 1.50 / (download) - annotate - [select for diffs], Thu May 30 16:29:46 2013 UTC (11 years ago) by tedu
Branch: MAIN
CVS Tags: OPENBSD_5_5_BASE,
OPENBSD_5_5,
OPENBSD_5_4_BASE,
OPENBSD_5_4
Changes since 1.49: +1 -3 lines
Diff to previous 1.49 (colored)
remove lots of comments about locking per beck's request
Revision 1.49 / (download) - annotate - [select for diffs], Thu May 30 15:17:59 2013 UTC (11 years ago) by tedu
Branch: MAIN
Changes since 1.48: +1 -2 lines
Diff to previous 1.48 (colored)
remove simple_locks from uvm code. ok beck deraadt
Revision 1.48 / (download) - annotate - [select for diffs], Wed Apr 11 11:23:22 2012 UTC (12 years, 2 months ago) by ariane
Branch: MAIN
CVS Tags: OPENBSD_5_3_BASE,
OPENBSD_5_3,
OPENBSD_5_2_BASE,
OPENBSD_5_2
Changes since 1.47: +3 -1 lines
Diff to previous 1.47 (colored)
vmmap: speed up allocations Reduces O(n log n) allocations to O(log n). ok deraadt, tedu
Revision 1.47 / (download) - annotate - [select for diffs], Fri Mar 9 13:01:29 2012 UTC (12 years, 3 months ago) by ariane
Branch: MAIN
Changes since 1.46: +183 -122 lines
Diff to previous 1.46 (colored)
New vmmap implementation. no oks (it is really a pain to review properly) extensively tested, I'm confident it'll be stable 'now is the time' from several icb inhabitants Diff provides: - ability to specify different allocators for different regions/maps - a simpler implementation of the current allocator - currently in compatibility mode: it will generate similar addresses as the old allocator
Revision 1.46 / (download) - annotate - [select for diffs], Mon Jun 6 17:10:23 2011 UTC (13 years ago) by ariane
Branch: MAIN
CVS Tags: OPENBSD_5_1_BASE,
OPENBSD_5_1,
OPENBSD_5_0_BASE,
OPENBSD_5_0
Changes since 1.45: +120 -171 lines
Diff to previous 1.45 (colored)
Backout vmmap in order to repair virtual address selection algorithms outside the tree.
Revision 1.45 / (download) - annotate - [select for diffs], Tue May 24 15:27:36 2011 UTC (13 years ago) by ariane
Branch: MAIN
Changes since 1.44: +171 -120 lines
Diff to previous 1.44 (colored)
Reimplement uvm/uvm_map. vmmap is designed to perform address space randomized allocations, without letting fragmentation of the address space go through the roof. Some highlights: - kernel address space randomization - proper implementation of guardpages - roughly 10% system time reduction during kernel build Tested by alot of people on tech@ and developers. Theo's machines are still happy.
Revision 1.44 / (download) - annotate - [select for diffs], Fri Dec 24 21:49:04 2010 UTC (13 years, 5 months ago) by tedu
Branch: MAIN
CVS Tags: OPENBSD_4_9_BASE,
OPENBSD_4_9
Changes since 1.43: +3 -2 lines
Diff to previous 1.43 (colored)
add a param to uvm_map_hint to not skip over the heap, and use it as a last resort if mmap fails otherwise to enable more complete address space utilization. tested for a while with no ill effects.
Revision 1.43 / (download) - annotate - [select for diffs], Tue Apr 20 22:05:44 2010 UTC (14 years, 1 month ago) by tedu
Branch: MAIN
CVS Tags: OPENBSD_4_8_BASE,
OPENBSD_4_8
Changes since 1.42: +1 -2 lines
Diff to previous 1.42 (colored)
remove proc.h include from uvm_map.h. This has far reaching effects, as sysctl.h was reliant on this particular include, and many drivers included sysctl.h unnecessarily. remove sysctl.h or add proc.h as needed. ok deraadt
Revision 1.42 / (download) - annotate - [select for diffs], Fri Aug 28 00:40:03 2009 UTC (14 years, 9 months ago) by ariane
Branch: MAIN
CVS Tags: OPENBSD_4_7_BASE,
OPENBSD_4_7
Changes since 1.41: +6 -2 lines
Diff to previous 1.41 (colored)
kva_guardpages: make guard pages separate map entries - fixes ps(1) - fixes kva deadbeef entries
Revision 1.41 / (download) - annotate - [select for diffs], Sat Jul 25 12:55:40 2009 UTC (14 years, 10 months ago) by miod
Branch: MAIN
Changes since 1.40: +2 -2 lines
Diff to previous 1.40 (colored)
Add an extra argument to uvm_unmap_remove(), for the caller to tell it whether removing holes or parts of them is allowed or not. Only allow hole removal in uvmspace_free(), when tearing the vmspace down. ok art@
Revision 1.40 / (download) - annotate - [select for diffs], Wed Mar 25 20:00:18 2009 UTC (15 years, 2 months ago) by oga
Branch: MAIN
CVS Tags: OPENBSD_4_6_BASE,
OPENBSD_4_6
Changes since 1.39: +7 -21 lines
Diff to previous 1.39 (colored)
Move all of the pseudo-inline functions in uvm into C files. By pseudo-inline, I mean that if a certain macro was defined, they would be inlined. However, no architecture defines that, and none has for a very very long time. Therefore mainly this just makes the code a damned sight easier to read. Some k&r -> ansi declarations while I'm in there. "just commit it" art@. ok weingart@.
Revision 1.39 / (download) - annotate - [select for diffs], Fri Jul 18 16:40:17 2008 UTC (15 years, 10 months ago) by kurt
Branch: MAIN
CVS Tags: OPENBSD_4_5_BASE,
OPENBSD_4_5,
OPENBSD_4_4_BASE,
OPENBSD_4_4
Changes since 1.38: +2 -1 lines
Diff to previous 1.38 (colored)
Add new uvm function called uvm_map_pie() which takes align as a parameter and returns an aligned random load address for position independent executables to use. This also adds three new vmparam.h defines to specify the maximum address, minimum address and minimum allowed alignment for uvm_map_pie() to use. The PIE address range for i386 was carefully selected to work well within the i386 W^X framework. With much help and feedback from weingart@. okay weingart@, miod@, kettenis@, drahn@
Revision 1.38 / (download) - annotate - [select for diffs], Wed Apr 11 12:10:42 2007 UTC (17 years, 2 months ago) by art
Branch: MAIN
CVS Tags: OPENBSD_4_3_BASE,
OPENBSD_4_3,
OPENBSD_4_2_BASE,
OPENBSD_4_2
Changes since 1.37: +1 -29 lines
Diff to previous 1.37 (colored)
Instead of managing pages for intrsafe maps in special objects (aka. kmem_object) just so that we can remove them, just use pmap_extract to get the pages to free and simplify a lot of code to not deal with the list of intrsafe maps, intrsafe objects, etc. miod@ ok
Revision 1.37 / (download) - annotate - [select for diffs], Wed Apr 4 18:02:59 2007 UTC (17 years, 2 months ago) by art
Branch: MAIN
Changes since 1.36: +24 -60 lines
Diff to previous 1.36 (colored)
Switch vm_map lock to rwlock. Use a simple "rw_exit_read(); rw_enter_write();" for lock upgrade, since that's what lockmgr did anyway. deraadt@ ok
Revision 1.36 / (download) - annotate - [select for diffs], Sun Mar 25 13:02:51 2007 UTC (17 years, 2 months ago) by thib
Branch: MAIN
Changes since 1.35: +4 -16 lines
Diff to previous 1.35 (colored)
Remove the flags_lock simplelock from struct vm_map; Cleanup the code accordingly. ok pedro@, art@
Revision 1.35 / (download) - annotate - [select for diffs], Fri Jan 12 21:11:38 2007 UTC (17 years, 5 months ago) by mickey
Branch: MAIN
CVS Tags: OPENBSD_4_1_BASE,
OPENBSD_4_1
Changes since 1.34: +2 -6 lines
Diff to previous 1.34 (colored)
proper define for MAX_KMAPENT; miod@ ok
Revision 1.34 / (download) - annotate - [select for diffs], Sat Nov 19 02:18:02 2005 UTC (18 years, 6 months ago) by pedro
Branch: MAIN
CVS Tags: OPENBSD_4_0_BASE,
OPENBSD_4_0,
OPENBSD_3_9_BASE,
OPENBSD_3_9
Changes since 1.33: +10 -10 lines
Diff to previous 1.33 (colored)
Remove unnecessary lockmgr() archaism that was costing too much in terms of panics and bugfixes. Access curproc directly, do not expect a process pointer as an argument. Should fix many "process context required" bugs. Incentive and okay millert@, okay marc@. Various testing, thanks.
Revision 1.33 / (download) - annotate - [select for diffs], Fri Sep 30 02:42:57 2005 UTC (18 years, 8 months ago) by brad
Branch: MAIN
Changes since 1.32: +3 -9 lines
Diff to previous 1.32 (colored)
revert MAX_KMAPENT hack added just before 3.7 now that a proper fix has been implemented in uvm_mapent_alloc(). ok pedro@
Revision 1.32 / (download) - annotate - [select for diffs], Tue May 24 21:11:47 2005 UTC (19 years ago) by tedu
Branch: MAIN
CVS Tags: OPENBSD_3_8_BASE,
OPENBSD_3_8
Changes since 1.31: +4 -3 lines
Diff to previous 1.31 (colored)
add a new field to vm_space and use it to track the number of anon pages a process uses. this is now the userland "data size" value. ok art deraadt tdeval. thanks testers.
Revision 1.31 / (download) - annotate - [select for diffs], Tue Mar 1 01:28:39 2005 UTC (19 years, 3 months ago) by henning
Branch: MAIN
CVS Tags: OPENBSD_3_7_BASE,
OPENBSD_3_7
Changes since 1.30: +9 -3 lines
Diff to previous 1.30 (colored)
only use MAX_KMAPENT 2000 on i386 amd64 sparc64 and revert to 1000 on all other archs for now, beck theo ok
Revision 1.30 / (download) - annotate - [select for diffs], Sat Feb 19 17:58:03 2005 UTC (19 years, 3 months ago) by henning
Branch: MAIN
Changes since 1.29: +3 -3 lines
Diff to previous 1.29 (colored)
double default MAX_KMAPENT to 2000, theo ok everybody please update your trees and test this, we need to find out wether there is bad side-effects from the doubling. If this does not get enough testing by our user community we will play safe and revert this for the 3.7 release, so please test.
Revision 1.19.2.5 / (download) - annotate - [select for diffs], Mon May 19 22:41:29 2003 UTC (21 years ago) by tedu
Branch: UBC
Changes since 1.19.2.4: +2 -1 lines
Diff to previous 1.19.2.4 (colored) to branchpoint 1.19 (colored) next main 1.20 (colored)
sync
Revision 1.3.4.9 / (download) - annotate - [select for diffs], Tue May 13 19:36:58 2003 UTC (21 years, 1 month ago) by ho
Branch: SMP
Changes since 1.3.4.8: +2 -1 lines
Diff to previous 1.3.4.8 (colored) to branchpoint 1.3 (colored) next main 1.4 (colored)
Sync the SMP branch to -current. This includes moving to ELF.
Revision 1.29 / (download) - annotate - [select for diffs], Mon Apr 14 04:53:51 2003 UTC (21 years, 2 months ago) by art
Branch: MAIN
CVS Tags: UBC_SYNC_A,
SMP_SYNC_B,
SMP_SYNC_A,
OPENBSD_3_6_BASE,
OPENBSD_3_6,
OPENBSD_3_5_BASE,
OPENBSD_3_5,
OPENBSD_3_4_BASE,
OPENBSD_3_4
Changes since 1.28: +2 -1 lines
Diff to previous 1.28 (colored)
There are two related changes. The first one is an mquery(2) syscall. It's for asking the VM system about where to map things. It will be used by ld.so, read the man page for details. The second change is related and is a centralization of uvm_map hint that all callers of uvm_map calculated. This will allow us to adjust this hint on architectures that have segments for non-exec mappings. deraadt@ drahn@ ok.
Revision 1.3.4.8 / (download) - annotate - [select for diffs], Fri Mar 28 00:08:48 2003 UTC (21 years, 2 months ago) by niklas
Branch: SMP
Changes since 1.3.4.7: +2 -3 lines
Diff to previous 1.3.4.7 (colored) to branchpoint 1.3 (colored)
Sync the SMP branch with 3.3
Revision 1.19.2.4 / (download) - annotate - [select for diffs], Mon Nov 4 18:02:33 2002 UTC (21 years, 7 months ago) by art
Branch: UBC
Changes since 1.19.2.3: +9 -8 lines
Diff to previous 1.19.2.3 (colored) to branchpoint 1.19 (colored)
Huge sync to NetBSD plus lots of bugfixes. - uvm is as in netbsd-current minus uvm_map forward merge. - various locking bugfixes in nfs. - make sure that all specops and fifoops are correct in all vnodeop vectors. - make the filesystem code more like filsystem code and less like vm code.
Revision 1.28 / (download) - annotate - [select for diffs], Tue Oct 29 18:30:21 2002 UTC (21 years, 7 months ago) by art
Branch: MAIN
CVS Tags: OPENBSD_3_3_BASE,
OPENBSD_3_3
Changes since 1.27: +3 -3 lines
Diff to previous 1.27 (colored)
Since memory deallocation can't fail, remove the error return from uvm_unmap, uvm_deallocate and a few other functions. Simplifies some code and reduces diff to the UBC branch.
Revision 1.19.2.3 / (download) - annotate - [select for diffs], Tue Oct 29 00:36:50 2002 UTC (21 years, 7 months ago) by art
Branch: UBC
Changes since 1.19.2.2: +1 -2 lines
Diff to previous 1.19.2.2 (colored) to branchpoint 1.19 (colored)
sync to -current
Revision 1.27 / (download) - annotate - [select for diffs], Tue Jun 11 06:38:01 2002 UTC (22 years ago) by art
Branch: MAIN
CVS Tags: UBC_SYNC_B,
OPENBSD_3_2_BASE,
OPENBSD_3_2
Changes since 1.26: +1 -2 lines
Diff to previous 1.26 (colored)
Remove a stupid assert that grows the kernel by 40kB.
Revision 1.19.2.2 / (download) - annotate - [select for diffs], Tue Jun 11 03:33:03 2002 UTC (22 years ago) by art
Branch: UBC
Changes since 1.19.2.1: +36 -32 lines
Diff to previous 1.19.2.1 (colored) to branchpoint 1.19 (colored)
Sync UBC branch to -current
Revision 1.3.4.7 / (download) - annotate - [select for diffs], Thu Mar 28 14:54:26 2002 UTC (22 years, 2 months ago) by niklas
Branch: SMP
Changes since 1.3.4.6: +30 -28 lines
Diff to previous 1.3.4.6 (colored) to branchpoint 1.3 (colored)
Merge in -current from roughly a week ago
Revision 1.26 / (download) - annotate - [select for diffs], Thu Mar 14 01:27:18 2002 UTC (22 years, 3 months ago) by millert
Branch: MAIN
CVS Tags: OPENBSD_3_1_BASE,
OPENBSD_3_1
Changes since 1.25: +29 -29 lines
Diff to previous 1.25 (colored)
First round of __P removal in sys
Revision 1.25 / (download) - annotate - [select for diffs], Thu Mar 7 01:08:57 2002 UTC (22 years, 3 months ago) by provos
Branch: MAIN
Changes since 1.24: +3 -1 lines
Diff to previous 1.24 (colored)
use an augmented red-black tree to keep track of free space in the vm_map. uvm_tree_sanity is left as debugging help but needs to be enabled manually. okay art@
Revision 1.3.4.6 / (download) - annotate - [select for diffs], Wed Mar 6 02:17:14 2002 UTC (22 years, 3 months ago) by niklas
Branch: SMP
Changes since 1.3.4.5: +106 -54 lines
Diff to previous 1.3.4.5 (colored) to branchpoint 1.3 (colored)
Merge in trunk
Revision 1.24 / (download) - annotate - [select for diffs], Thu Feb 28 18:50:26 2002 UTC (22 years, 3 months ago) by provos
Branch: MAIN
Changes since 1.23: +3 -1 lines
Diff to previous 1.23 (colored)
use red-black tree for lookup_entry. the red-black tree case for map_findspace is still broken on alpha. this will make debugging easier. okay millert@
Revision 1.23 / (download) - annotate - [select for diffs], Mon Feb 25 05:38:50 2002 UTC (22 years, 3 months ago) by provos
Branch: MAIN
Changes since 1.22: +0 -4 lines
Diff to previous 1.22 (colored)
back out red-black tree. they are very fast but alpha UVM is broken and the tree triggers the bug, PMAP_PREFER case was broken also.
Revision 1.22 / (download) - annotate - [select for diffs], Mon Feb 25 00:20:45 2002 UTC (22 years, 3 months ago) by provos
Branch: MAIN
Changes since 1.21: +5 -1 lines
Diff to previous 1.21 (colored)
use a red-black tree to find entries in the vm_map. augment the red-black tree to find free space between entries. speeds up memory allocation, etc...
Revision 1.21 / (download) - annotate - [select for diffs], Mon Feb 18 10:02:20 2002 UTC (22 years, 3 months ago) by art
Branch: MAIN
Changes since 1.20: +2 -1 lines
Diff to previous 1.20 (colored)
From the UBC branch and NetBSD. We allocate map entries for the non-intrsafe kernel map (most notably kernel_map and exec_map) from a pool that's backed by kmem_map (to avoid deadlocking). This should get rid of MAX_KMAPENT panics.
Revision 1.19.2.1 / (download) - annotate - [select for diffs], Sat Feb 2 03:28:27 2002 UTC (22 years, 4 months ago) by art
Branch: UBC
Changes since 1.19: +3 -3 lines
Diff to previous 1.19 (colored)
Merge in UBC performance changes from NetBSD. Fix a bunch of merge errors from yesterday.
Revision 1.20 / (download) - annotate - [select for diffs], Wed Dec 19 08:58:07 2001 UTC (22 years, 5 months ago) by art
Branch: MAIN
Changes since 1.19: +104 -56 lines
Diff to previous 1.19 (colored)
UBC was a disaster. It worked very good when it worked, but on some machines or some configurations or in some phase of the moon (we actually don't know when or why) files disappeared. Since we've not been able to track down the problem in two weeks intense debugging and we need -current to be stable, back out everything to a state it had before UBC. We apologise for the inconvenience.
Revision 1.3.4.5 / (download) - annotate - [select for diffs], Wed Dec 5 01:23:58 2001 UTC (22 years, 6 months ago) by niklas
Branch: SMP
Changes since 1.3.4.4: +54 -103 lines
Diff to previous 1.3.4.4 (colored) to branchpoint 1.3 (colored)
Merge in -current
Revision 1.19 / (download) - annotate - [select for diffs], Tue Dec 4 23:22:42 2001 UTC (22 years, 6 months ago) by art
Branch: MAIN
CVS Tags: UBC_BASE
Branch point for: UBC
Changes since 1.18: +3 -2 lines
Diff to previous 1.18 (colored)
Yet another sync to NetBSD uvm. Today we add a pmap argument to pmap_update() and allocate map entries for kernel_map from kmem_map instead of using the static entries. This should get rid of MAX_KMAPENT panics. Also some uvm_loan problems are fixed.
Revision 1.18 / (download) - annotate - [select for diffs], Wed Nov 28 19:28:15 2001 UTC (22 years, 6 months ago) by art
Branch: MAIN
Changes since 1.17: +54 -103 lines
Diff to previous 1.17 (colored)
Sync in more uvm from NetBSD. Mostly just cosmetic stuff. Contains also support for page coloring.
Revision 1.17 / (download) - annotate - [select for diffs], Wed Nov 28 13:47:40 2001 UTC (22 years, 6 months ago) by art
Branch: MAIN
Changes since 1.16: +4 -4 lines
Diff to previous 1.16 (colored)
Sync in more uvm changes from NetBSD. This time we're getting rid of KERN_* and VM_PAGER_* error codes and use errnos instead.
Revision 1.16 / (download) - annotate - [select for diffs], Tue Nov 27 05:27:12 2001 UTC (22 years, 6 months ago) by art
Branch: MAIN
Changes since 1.15: +2 -2 lines
Diff to previous 1.15 (colored)
Merge in the unified buffer cache code as found in NetBSD 2001/03/10. The code is written mostly by Chuck Silvers <chuq@chuq.com>/<chs@netbsd.org>. Tested for the past few weeks by many developers, should be in a pretty stable state, but will require optimizations and additional cleanups.
Revision 1.3.4.4 / (download) - annotate - [select for diffs], Tue Nov 13 23:02:31 2001 UTC (22 years, 7 months ago) by niklas
Branch: SMP
Changes since 1.3.4.3: +87 -94 lines
Diff to previous 1.3.4.3 (colored) to branchpoint 1.3 (colored)
merge in -current
Revision 1.15 / (download) - annotate - [select for diffs], Mon Nov 12 01:26:09 2001 UTC (22 years, 7 months ago) by art
Branch: MAIN
Changes since 1.14: +5 -7 lines
Diff to previous 1.14 (colored)
Bring in more changes from NetBSD. Mostly pagedaemon improvements.
Revision 1.14 / (download) - annotate - [select for diffs], Wed Nov 7 02:55:50 2001 UTC (22 years, 7 months ago) by art
Branch: MAIN
Changes since 1.13: +8 -9 lines
Diff to previous 1.13 (colored)
Another sync of uvm to NetBSD. Just minor fiddling, no major changes.
Revision 1.13 / (download) - annotate - [select for diffs], Wed Nov 7 01:18:01 2001 UTC (22 years, 7 months ago) by art
Branch: MAIN
Changes since 1.12: +5 -4 lines
Diff to previous 1.12 (colored)
Add an alignment argument to uvm_map that specifies an alignment hint for the virtual address.
Revision 1.12 / (download) - annotate - [select for diffs], Tue Nov 6 13:36:52 2001 UTC (22 years, 7 months ago) by art
Branch: MAIN
Changes since 1.11: +4 -7 lines
Diff to previous 1.11 (colored)
More sync to NetBSD. - Use malloc/free instead of MALLOC/FREE for variable sized allocations. - Move the memory inheritance code to sys/mman.h and rename from VM_* to MAP_* - various cleanups and simplifications.
Revision 1.11 / (download) - annotate - [select for diffs], Tue Nov 6 00:27:01 2001 UTC (22 years, 7 months ago) by art
Branch: MAIN
Changes since 1.10: +77 -79 lines
Diff to previous 1.10 (colored)
Sync to NetBSD.
Revision 1.3.4.3 / (download) - annotate - [select for diffs], Wed Oct 31 03:32:14 2001 UTC (22 years, 7 months ago) by nate
Branch: SMP
Changes since 1.3.4.2: +353 -5 lines
Diff to previous 1.3.4.2 (colored) to branchpoint 1.3 (colored)
Sync the SMP branch to something just after 3.0
Revision 1.10 / (download) - annotate - [select for diffs], Sun Aug 12 22:41:15 2001 UTC (22 years, 10 months ago) by mickey
Branch: MAIN
CVS Tags: OPENBSD_3_0_BASE,
OPENBSD_3_0
Changes since 1.9: +351 -1 lines
Diff to previous 1.9 (colored)
merge vm_map.h into uvm_map.h, kinda matches netbsd's approach
Revision 1.9 / (download) - annotate - [select for diffs], Sat Aug 11 10:57:22 2001 UTC (22 years, 10 months ago) by art
Branch: MAIN
Changes since 1.8: +2 -4 lines
Diff to previous 1.8 (colored)
Various random fixes from NetBSD. Including support for zeroing pages in the idle loop (not enabled yet).
Revision 1.8 / (download) - annotate - [select for diffs], Mon Aug 6 14:03:05 2001 UTC (22 years, 10 months ago) by art
Branch: MAIN
Changes since 1.7: +3 -3 lines
Diff to previous 1.7 (colored)
Add a new type voff_t (right now it's typedefed as off_t) used for offsets into objects. Gives the possibilty to mmap beyond the size of vaddr_t. From NetBSD.
Revision 1.3.4.2 / (download) - annotate - [select for diffs], Mon May 14 22:47:46 2001 UTC (23 years, 1 month ago) by niklas
Branch: SMP
Changes since 1.3.4.1: +17 -21 lines
Diff to previous 1.3.4.1 (colored) to branchpoint 1.3 (colored)
merge in approximately 2.9 into SMP branch
Revision 1.7 / (download) - annotate - [select for diffs], Thu Mar 22 03:05:55 2001 UTC (23 years, 2 months ago) by smart
Branch: MAIN
CVS Tags: OPENBSD_2_9_BASE,
OPENBSD_2_9
Changes since 1.6: +12 -21 lines
Diff to previous 1.6 (colored)
Sync style, typo, and comments a little closer to NetBSD. art@ ok
Revision 1.6 / (download) - annotate - [select for diffs], Fri Mar 9 05:34:38 2001 UTC (23 years, 3 months ago) by smart
Branch: MAIN
Changes since 1.5: +6 -2 lines
Diff to previous 1.5 (colored)
Protect protypes, certain macros, and inlines from userland. Checked userland with a 'make build'. From NetBSD. art@ ok
Revision 1.5 / (download) - annotate - [select for diffs], Mon Jan 29 02:07:46 2001 UTC (23 years, 4 months ago) by niklas
Branch: MAIN
Changes since 1.4: +1 -0 lines
Diff to previous 1.4 (colored)
$OpenBSD$
Revision 1.3.4.1 / (download) - annotate - [select for diffs], Fri Mar 24 09:09:50 2000 UTC (24 years, 2 months ago) by niklas
Branch: SMP
Changes since 1.3: +4 -3 lines
Diff to previous 1.3 (colored)
Sync with -current
Revision 1.4 / (download) - annotate - [select for diffs], Thu Mar 16 22:11:04 2000 UTC (24 years, 3 months ago) by art
Branch: MAIN
CVS Tags: OPENBSD_2_8_BASE,
OPENBSD_2_8,
OPENBSD_2_7_BASE,
OPENBSD_2_7
Changes since 1.3: +4 -3 lines
Diff to previous 1.3 (colored)
Bring in some new UVM code from NetBSD (not current). - Introduce a new type of map that are interrupt safe and never allow faults in them. mb_map and kmem_map are made intrsafe. - Add "access protection" to uvm_vslock (to be passed down to uvm_fault and later to pmap_enter). - madvise(2) now works. - various cleanups.
Revision 1.3 / (download) - annotate - [select for diffs], Mon Aug 23 08:13:24 1999 UTC (24 years, 9 months ago) by art
Branch: MAIN
CVS Tags: kame_19991208,
SMP_BASE,
OPENBSD_2_6_BASE,
OPENBSD_2_6
Branch point for: SMP
Changes since 1.2: +9 -6 lines
Diff to previous 1.2 (colored)
sync with NetBSD from 1999.05.24 (there is a reason for this date) Mostly cleanups, but also a few improvements to pagedaemon for better handling of low memory and/or low swap conditions.
Revision 1.2 / (download) - annotate - [select for diffs], Fri Feb 26 05:32:07 1999 UTC (25 years, 3 months ago) by art
Branch: MAIN
CVS Tags: OPENBSD_2_5_BASE,
OPENBSD_2_5
Changes since 1.1: +1 -0 lines
Diff to previous 1.1 (colored)
add OpenBSD tags
Revision 1.1 / (download) - annotate - [select for diffs], Fri Feb 26 01:30:15 1999 UTC (25 years, 3 months ago) by art
Branch: MAIN
Import of uvm from NetBSD. Some local changes, some code disabled