#
1.33 |
|
12-Oct-2021 |
mpi |
Fix the deadlock between uvn_io() and uvn_flush() by restarting the fault.
Do not allow a faulting thread to sleep on a contended vnode lock to prevent lock ordering issues with upcoming per-uobj lock.
Also reduce the sleep value for VM_PAGER_AGAIN from 1sec to 5nsec to not add visible slowdown when starting a multi-threaded application with threads that fault on the same vnode (chromium, firefox, etc).
Tested by anton@, tb@, robert@ and gnezdo@
ok anton@, tb@
Reported-by: syzbot+e63407b35dff08dbee02@syzkaller.appspotmail.com
|
Revision tags: OPENBSD_6_9_BASE OPENBSD_7_0_BASE
|
#
1.32 |
|
12-Mar-2021 |
jsg |
spelling
ok mpi@
|
#
1.31 |
|
04-Mar-2021 |
mpi |
Bring back previous fix for UVM vnode deadlock.
tb@ reports that refaulting when there's contention on the vnode makes firefox start very slowly on his machine. To revisit when the fault handler will be unlocked.
ok anton@
Original commit message:
Fix a deadlock between uvn_io() and uvn_flush(). While faulting on a page backed by a vnode, uvn_io() will end up being called in order to populate newly allocated pages using I/O on the backing vnode. Before performing the I/O, newly allocated pages are flagged as busy by uvn_get(), that is before uvn_io() tries to lock the vnode. Such pages could then end up being flushed by uvn_flush() which already has acquired the vnode lock. Since such pages are flagged as busy, uvn_flush() will wait for them to be flagged as not busy. This will never happens as uvn_io() cannot make progress until the vnode lock is released.
Instead, grab the vnode lock before allocating and flagging pages as busy in uvn_get(). This does extend the scope in uvn_get() in which the vnode is locked but resolves the deadlock.
ok mpi@
Reported-by: syzbot+e63407b35dff08dbee02@syzkaller.appspotmail.com
|
#
1.30 |
|
02-Mar-2021 |
mpi |
Fix the deadlock between uvn_io() and uvn_flush() by restarting the fault.
Do not allow a faulting thread to sleep on a contended vnode lock to prevent lock ordering issues with upcoming per-uobj lock.
ok anton@
Reported-by: syzbot+e63407b35dff08dbee02@syzkaller.appspotmail.com
|
Revision tags: OPENBSD_5_6_BASE OPENBSD_5_7_BASE OPENBSD_5_8_BASE OPENBSD_5_9_BASE OPENBSD_6_0_BASE OPENBSD_6_1_BASE OPENBSD_6_2_BASE OPENBSD_6_3_BASE OPENBSD_6_4_BASE OPENBSD_6_5_BASE OPENBSD_6_6_BASE OPENBSD_6_7_BASE OPENBSD_6_8_BASE
|
#
1.29 |
|
11-Jul-2014 |
jsg |
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
|
#
1.28 |
|
08-Jul-2014 |
deraadt |
the #ifdef _KERNEL can wrap the entire file. uvm_extern.h only pulls this inside #ifdef _KERNEL in any case, so nothing really changes.
|
Revision tags: OPENBSD_4_7_BASE OPENBSD_4_8_BASE OPENBSD_4_9_BASE OPENBSD_5_0_BASE OPENBSD_5_1_BASE OPENBSD_5_2_BASE OPENBSD_5_3_BASE OPENBSD_5_4_BASE OPENBSD_5_5_BASE
|
#
1.27 |
|
22-Jul-2009 |
oga |
Put the PG_RELEASED changes diff back in.
This has has been tested very very thoroughly on all archs we have excepting 88k and 68k. Please see cvs log for the individual commit messages.
ok beck@, thib@
|
Revision tags: OPENBSD_4_6_BASE
|
#
1.26 |
|
17-Jun-2009 |
oga |
date based reversion of uvm to the 4th May.
More backouts in line with previous ones, this appears to bring us back to a stable condition.
A machine forced to 64mb of ram cycled 10GB through swap with this diff and is still running as I type this. Other tests by ariane@ and thib@ also seem to show that it's alright.
ok deraadt@, thib@, ariane@
|
#
1.25 |
|
16-Jun-2009 |
oga |
Backout all changes to uvm after pmemrange (which will be backed out separately).
a change at or just before the hackathon has either exposed or added a very very nasty memory corruption bug that is giving us hell right now. So in the interest of kernel stability these diffs are being backed out until such a time as that corruption bug has been found and squashed, then the ones that are proven good may slowly return.
a quick hitlist of the main commits this backs out:
mine: uvm_objwire the lock change in uvm_swap.c using trees for uvm objects instead of the hash removing the pgo_releasepg callback.
art@'s: putting pmap_page_protect(VM_PROT_NONE) in uvm_pagedeactivate() since all callers called that just prior anyway.
ok beck@, ariane@.
prompted by deraadt@.
|
#
1.24 |
|
01-Jun-2009 |
oga |
Since we've now cleared up a lot of the PG_RELEASED setting, remove the pgo_releasepg() hook and just free the page the "normal" way in the one place we'll ever see PG_RELEASED and should care (uvm_page_unbusy, called in aiodoned).
ok art@, beck@, thib@
|
#
1.23 |
|
27-Mar-2009 |
oga |
remove PGO_OVERWRITE, PGO_WEAK and PGO_PASTEOF from the pager. They're all unused.
ok art@.
|
#
1.22 |
|
25-Mar-2009 |
oga |
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 tags: OPENBSD_4_5_BASE
|
#
1.21 |
|
24-Nov-2008 |
thib |
garbage collect uvm_errno2vmerror();
ok miod@, art@
|
Revision tags: OPENBSD_3_4_BASE OPENBSD_3_5_BASE OPENBSD_3_6_BASE OPENBSD_3_7_BASE OPENBSD_3_8_BASE OPENBSD_3_9_BASE OPENBSD_4_0_BASE OPENBSD_4_1_BASE OPENBSD_4_2_BASE OPENBSD_4_3_BASE OPENBSD_4_4_BASE SMP_SYNC_A SMP_SYNC_B
|
#
1.20 |
|
02-Jun-2003 |
millert |
Remove the advertising clause in the UCB license which Berkeley rescinded 22 July 1999. Proofed by myself and Theo.
|
Revision tags: OPENBSD_3_1_BASE OPENBSD_3_2_BASE OPENBSD_3_3_BASE UBC_SYNC_A UBC_SYNC_B
|
#
1.19 |
|
15-Mar-2002 |
millert |
Cosmetic changes only, primarily making comments line up nicely after the __P removal.
|
#
1.18 |
|
14-Mar-2002 |
millert |
First round of __P removal in sys
|
#
1.17 |
|
19-Dec-2001 |
art |
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 tags: UBC_BASE
|
#
1.16 |
|
28-Nov-2001 |
art |
branches: 1.16.2; Sync in more uvm from NetBSD. Mostly just cosmetic stuff. Contains also support for page coloring.
|
#
1.15 |
|
28-Nov-2001 |
art |
Sync in more uvm changes from NetBSD. This time we're getting rid of KERN_* and VM_PAGER_* error codes and use errnos instead.
|
#
1.14 |
|
10-Nov-2001 |
art |
Merge in some parts of the ubc work that has been done in NetBSD that are not UBC, but prerequsites for it.
- Create a daemon that processes async I/O (swap and paging in the future) requests that need processing in process context and that were processed in the pagedaemon before. - Convert some ugly ifdef DIAGNOSTIC code to less intrusive KASSERTs. - misc other cleanups.
|
#
1.13 |
|
07-Nov-2001 |
art |
Another sync of uvm to NetBSD. Just minor fiddling, no major changes.
|
#
1.12 |
|
06-Nov-2001 |
art |
Minor sync to NetBSD.
|
Revision tags: OPENBSD_3_0_BASE
|
#
1.11 |
|
12-Aug-2001 |
mickey |
vm_pager.h no more
|
#
1.10 |
|
11-Aug-2001 |
art |
Various random fixes from NetBSD. Including support for zeroing pages in the idle loop (not enabled yet).
|
#
1.9 |
|
06-Aug-2001 |
art |
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.
|
#
1.8 |
|
26-Jul-2001 |
art |
Add support for disabling swap devices (swapctl -d). Improve error handling on I/O errors to swap. From NetBSD
|
Revision tags: OPENBSD_2_9_BASE
|
#
1.7 |
|
22-Mar-2001 |
smart |
Sync style, typo, and comments a little closer to NetBSD. art@ ok
|
#
1.6 |
|
09-Mar-2001 |
smart |
Protect protypes, certain macros, and inlines from userland. Checked userland with a 'make build'. From NetBSD. art@ ok
|
#
1.5 |
|
29-Jan-2001 |
niklas |
$OpenBSD$
|
Revision tags: OPENBSD_2_7_BASE OPENBSD_2_8_BASE
|
#
1.4 |
|
15-Mar-2000 |
art |
Fix the NetBSD id strings.
|
Revision tags: OPENBSD_2_6_BASE SMP_BASE kame_19991208
|
#
1.3 |
|
23-Aug-1999 |
art |
branches: 1.3.4; 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 tags: OPENBSD_2_5_BASE
|
#
1.2 |
|
26-Feb-1999 |
art |
add OpenBSD tags
|
#
1.1 |
|
26-Feb-1999 |
art |
Import of uvm from NetBSD. Some local changes, some code disabled
|
#
1.32 |
|
12-Mar-2021 |
jsg |
spelling
ok mpi@
|
#
1.31 |
|
04-Mar-2021 |
mpi |
Bring back previous fix for UVM vnode deadlock.
tb@ reports that refaulting when there's contention on the vnode makes firefox start very slowly on his machine. To revisit when the fault handler will be unlocked.
ok anton@
Original commit message:
Fix a deadlock between uvn_io() and uvn_flush(). While faulting on a page backed by a vnode, uvn_io() will end up being called in order to populate newly allocated pages using I/O on the backing vnode. Before performing the I/O, newly allocated pages are flagged as busy by uvn_get(), that is before uvn_io() tries to lock the vnode. Such pages could then end up being flushed by uvn_flush() which already has acquired the vnode lock. Since such pages are flagged as busy, uvn_flush() will wait for them to be flagged as not busy. This will never happens as uvn_io() cannot make progress until the vnode lock is released.
Instead, grab the vnode lock before allocating and flagging pages as busy in uvn_get(). This does extend the scope in uvn_get() in which the vnode is locked but resolves the deadlock.
ok mpi@
Reported-by: syzbot+e63407b35dff08dbee02@syzkaller.appspotmail.com
|
#
1.30 |
|
02-Mar-2021 |
mpi |
Fix the deadlock between uvn_io() and uvn_flush() by restarting the fault.
Do not allow a faulting thread to sleep on a contended vnode lock to prevent lock ordering issues with upcoming per-uobj lock.
ok anton@
Reported-by: syzbot+e63407b35dff08dbee02@syzkaller.appspotmail.com
|
Revision tags: OPENBSD_5_6_BASE OPENBSD_5_7_BASE OPENBSD_5_8_BASE OPENBSD_5_9_BASE OPENBSD_6_0_BASE OPENBSD_6_1_BASE OPENBSD_6_2_BASE OPENBSD_6_3_BASE OPENBSD_6_4_BASE OPENBSD_6_5_BASE OPENBSD_6_6_BASE OPENBSD_6_7_BASE OPENBSD_6_8_BASE
|
#
1.29 |
|
11-Jul-2014 |
jsg |
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
|
#
1.28 |
|
08-Jul-2014 |
deraadt |
the #ifdef _KERNEL can wrap the entire file. uvm_extern.h only pulls this inside #ifdef _KERNEL in any case, so nothing really changes.
|
Revision tags: OPENBSD_4_7_BASE OPENBSD_4_8_BASE OPENBSD_4_9_BASE OPENBSD_5_0_BASE OPENBSD_5_1_BASE OPENBSD_5_2_BASE OPENBSD_5_3_BASE OPENBSD_5_4_BASE OPENBSD_5_5_BASE
|
#
1.27 |
|
22-Jul-2009 |
oga |
Put the PG_RELEASED changes diff back in.
This has has been tested very very thoroughly on all archs we have excepting 88k and 68k. Please see cvs log for the individual commit messages.
ok beck@, thib@
|
Revision tags: OPENBSD_4_6_BASE
|
#
1.26 |
|
17-Jun-2009 |
oga |
date based reversion of uvm to the 4th May.
More backouts in line with previous ones, this appears to bring us back to a stable condition.
A machine forced to 64mb of ram cycled 10GB through swap with this diff and is still running as I type this. Other tests by ariane@ and thib@ also seem to show that it's alright.
ok deraadt@, thib@, ariane@
|
#
1.25 |
|
16-Jun-2009 |
oga |
Backout all changes to uvm after pmemrange (which will be backed out separately).
a change at or just before the hackathon has either exposed or added a very very nasty memory corruption bug that is giving us hell right now. So in the interest of kernel stability these diffs are being backed out until such a time as that corruption bug has been found and squashed, then the ones that are proven good may slowly return.
a quick hitlist of the main commits this backs out:
mine: uvm_objwire the lock change in uvm_swap.c using trees for uvm objects instead of the hash removing the pgo_releasepg callback.
art@'s: putting pmap_page_protect(VM_PROT_NONE) in uvm_pagedeactivate() since all callers called that just prior anyway.
ok beck@, ariane@.
prompted by deraadt@.
|
#
1.24 |
|
01-Jun-2009 |
oga |
Since we've now cleared up a lot of the PG_RELEASED setting, remove the pgo_releasepg() hook and just free the page the "normal" way in the one place we'll ever see PG_RELEASED and should care (uvm_page_unbusy, called in aiodoned).
ok art@, beck@, thib@
|
#
1.23 |
|
27-Mar-2009 |
oga |
remove PGO_OVERWRITE, PGO_WEAK and PGO_PASTEOF from the pager. They're all unused.
ok art@.
|
#
1.22 |
|
25-Mar-2009 |
oga |
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 tags: OPENBSD_4_5_BASE
|
#
1.21 |
|
24-Nov-2008 |
thib |
garbage collect uvm_errno2vmerror();
ok miod@, art@
|
Revision tags: OPENBSD_3_4_BASE OPENBSD_3_5_BASE OPENBSD_3_6_BASE OPENBSD_3_7_BASE OPENBSD_3_8_BASE OPENBSD_3_9_BASE OPENBSD_4_0_BASE OPENBSD_4_1_BASE OPENBSD_4_2_BASE OPENBSD_4_3_BASE OPENBSD_4_4_BASE SMP_SYNC_A SMP_SYNC_B
|
#
1.20 |
|
02-Jun-2003 |
millert |
Remove the advertising clause in the UCB license which Berkeley rescinded 22 July 1999. Proofed by myself and Theo.
|
Revision tags: OPENBSD_3_1_BASE OPENBSD_3_2_BASE OPENBSD_3_3_BASE UBC_SYNC_A UBC_SYNC_B
|
#
1.19 |
|
15-Mar-2002 |
millert |
Cosmetic changes only, primarily making comments line up nicely after the __P removal.
|
#
1.18 |
|
14-Mar-2002 |
millert |
First round of __P removal in sys
|
#
1.17 |
|
19-Dec-2001 |
art |
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 tags: UBC_BASE
|
#
1.16 |
|
28-Nov-2001 |
art |
branches: 1.16.2; Sync in more uvm from NetBSD. Mostly just cosmetic stuff. Contains also support for page coloring.
|
#
1.15 |
|
28-Nov-2001 |
art |
Sync in more uvm changes from NetBSD. This time we're getting rid of KERN_* and VM_PAGER_* error codes and use errnos instead.
|
#
1.14 |
|
10-Nov-2001 |
art |
Merge in some parts of the ubc work that has been done in NetBSD that are not UBC, but prerequsites for it.
- Create a daemon that processes async I/O (swap and paging in the future) requests that need processing in process context and that were processed in the pagedaemon before. - Convert some ugly ifdef DIAGNOSTIC code to less intrusive KASSERTs. - misc other cleanups.
|
#
1.13 |
|
07-Nov-2001 |
art |
Another sync of uvm to NetBSD. Just minor fiddling, no major changes.
|
#
1.12 |
|
06-Nov-2001 |
art |
Minor sync to NetBSD.
|
Revision tags: OPENBSD_3_0_BASE
|
#
1.11 |
|
12-Aug-2001 |
mickey |
vm_pager.h no more
|
#
1.10 |
|
11-Aug-2001 |
art |
Various random fixes from NetBSD. Including support for zeroing pages in the idle loop (not enabled yet).
|
#
1.9 |
|
06-Aug-2001 |
art |
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.
|
#
1.8 |
|
26-Jul-2001 |
art |
Add support for disabling swap devices (swapctl -d). Improve error handling on I/O errors to swap. From NetBSD
|
Revision tags: OPENBSD_2_9_BASE
|
#
1.7 |
|
22-Mar-2001 |
smart |
Sync style, typo, and comments a little closer to NetBSD. art@ ok
|
#
1.6 |
|
09-Mar-2001 |
smart |
Protect protypes, certain macros, and inlines from userland. Checked userland with a 'make build'. From NetBSD. art@ ok
|
#
1.5 |
|
29-Jan-2001 |
niklas |
$OpenBSD$
|
Revision tags: OPENBSD_2_7_BASE OPENBSD_2_8_BASE
|
#
1.4 |
|
15-Mar-2000 |
art |
Fix the NetBSD id strings.
|
Revision tags: OPENBSD_2_6_BASE SMP_BASE kame_19991208
|
#
1.3 |
|
23-Aug-1999 |
art |
branches: 1.3.4; 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 tags: OPENBSD_2_5_BASE
|
#
1.2 |
|
26-Feb-1999 |
art |
add OpenBSD tags
|
#
1.1 |
|
26-Feb-1999 |
art |
Import of uvm from NetBSD. Some local changes, some code disabled
|
#
1.31 |
|
04-Mar-2021 |
mpi |
Bring back previous fix for UVM vnode deadlock.
tb@ reports that refaulting when there's contention on the vnode makes firefox start very slowly on his machine. To revisit when the fault handler will be unlocked.
ok anton@
Original commit message:
Fix a deadlock between uvn_io() and uvn_flush(). While faulting on a page backed by a vnode, uvn_io() will end up being called in order to populate newly allocated pages using I/O on the backing vnode. Before performing the I/O, newly allocated pages are flagged as busy by uvn_get(), that is before uvn_io() tries to lock the vnode. Such pages could then end up being flushed by uvn_flush() which already has acquired the vnode lock. Since such pages are flagged as busy, uvn_flush() will wait for them to be flagged as not busy. This will never happens as uvn_io() cannot make progress until the vnode lock is released.
Instead, grab the vnode lock before allocating and flagging pages as busy in uvn_get(). This does extend the scope in uvn_get() in which the vnode is locked but resolves the deadlock.
ok mpi@
Reported-by: syzbot+e63407b35dff08dbee02@syzkaller.appspotmail.com
|
#
1.30 |
|
02-Mar-2021 |
mpi |
Fix the deadlock between uvn_io() and uvn_flush() by restarting the fault.
Do not allow a faulting thread to sleep on a contended vnode lock to prevent lock ordering issues with upcoming per-uobj lock.
ok anton@
Reported-by: syzbot+e63407b35dff08dbee02@syzkaller.appspotmail.com
|
Revision tags: OPENBSD_5_6_BASE OPENBSD_5_7_BASE OPENBSD_5_8_BASE OPENBSD_5_9_BASE OPENBSD_6_0_BASE OPENBSD_6_1_BASE OPENBSD_6_2_BASE OPENBSD_6_3_BASE OPENBSD_6_4_BASE OPENBSD_6_5_BASE OPENBSD_6_6_BASE OPENBSD_6_7_BASE OPENBSD_6_8_BASE
|
#
1.29 |
|
11-Jul-2014 |
jsg |
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
|
#
1.28 |
|
08-Jul-2014 |
deraadt |
the #ifdef _KERNEL can wrap the entire file. uvm_extern.h only pulls this inside #ifdef _KERNEL in any case, so nothing really changes.
|
Revision tags: OPENBSD_4_7_BASE OPENBSD_4_8_BASE OPENBSD_4_9_BASE OPENBSD_5_0_BASE OPENBSD_5_1_BASE OPENBSD_5_2_BASE OPENBSD_5_3_BASE OPENBSD_5_4_BASE OPENBSD_5_5_BASE
|
#
1.27 |
|
22-Jul-2009 |
oga |
Put the PG_RELEASED changes diff back in.
This has has been tested very very thoroughly on all archs we have excepting 88k and 68k. Please see cvs log for the individual commit messages.
ok beck@, thib@
|
Revision tags: OPENBSD_4_6_BASE
|
#
1.26 |
|
17-Jun-2009 |
oga |
date based reversion of uvm to the 4th May.
More backouts in line with previous ones, this appears to bring us back to a stable condition.
A machine forced to 64mb of ram cycled 10GB through swap with this diff and is still running as I type this. Other tests by ariane@ and thib@ also seem to show that it's alright.
ok deraadt@, thib@, ariane@
|
#
1.25 |
|
16-Jun-2009 |
oga |
Backout all changes to uvm after pmemrange (which will be backed out separately).
a change at or just before the hackathon has either exposed or added a very very nasty memory corruption bug that is giving us hell right now. So in the interest of kernel stability these diffs are being backed out until such a time as that corruption bug has been found and squashed, then the ones that are proven good may slowly return.
a quick hitlist of the main commits this backs out:
mine: uvm_objwire the lock change in uvm_swap.c using trees for uvm objects instead of the hash removing the pgo_releasepg callback.
art@'s: putting pmap_page_protect(VM_PROT_NONE) in uvm_pagedeactivate() since all callers called that just prior anyway.
ok beck@, ariane@.
prompted by deraadt@.
|
#
1.24 |
|
01-Jun-2009 |
oga |
Since we've now cleared up a lot of the PG_RELEASED setting, remove the pgo_releasepg() hook and just free the page the "normal" way in the one place we'll ever see PG_RELEASED and should care (uvm_page_unbusy, called in aiodoned).
ok art@, beck@, thib@
|
#
1.23 |
|
27-Mar-2009 |
oga |
remove PGO_OVERWRITE, PGO_WEAK and PGO_PASTEOF from the pager. They're all unused.
ok art@.
|
#
1.22 |
|
25-Mar-2009 |
oga |
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 tags: OPENBSD_4_5_BASE
|
#
1.21 |
|
24-Nov-2008 |
thib |
garbage collect uvm_errno2vmerror();
ok miod@, art@
|
Revision tags: OPENBSD_3_4_BASE OPENBSD_3_5_BASE OPENBSD_3_6_BASE OPENBSD_3_7_BASE OPENBSD_3_8_BASE OPENBSD_3_9_BASE OPENBSD_4_0_BASE OPENBSD_4_1_BASE OPENBSD_4_2_BASE OPENBSD_4_3_BASE OPENBSD_4_4_BASE SMP_SYNC_A SMP_SYNC_B
|
#
1.20 |
|
02-Jun-2003 |
millert |
Remove the advertising clause in the UCB license which Berkeley rescinded 22 July 1999. Proofed by myself and Theo.
|
Revision tags: OPENBSD_3_1_BASE OPENBSD_3_2_BASE OPENBSD_3_3_BASE UBC_SYNC_A UBC_SYNC_B
|
#
1.19 |
|
15-Mar-2002 |
millert |
Cosmetic changes only, primarily making comments line up nicely after the __P removal.
|
#
1.18 |
|
14-Mar-2002 |
millert |
First round of __P removal in sys
|
#
1.17 |
|
19-Dec-2001 |
art |
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 tags: UBC_BASE
|
#
1.16 |
|
28-Nov-2001 |
art |
branches: 1.16.2; Sync in more uvm from NetBSD. Mostly just cosmetic stuff. Contains also support for page coloring.
|
#
1.15 |
|
28-Nov-2001 |
art |
Sync in more uvm changes from NetBSD. This time we're getting rid of KERN_* and VM_PAGER_* error codes and use errnos instead.
|
#
1.14 |
|
10-Nov-2001 |
art |
Merge in some parts of the ubc work that has been done in NetBSD that are not UBC, but prerequsites for it.
- Create a daemon that processes async I/O (swap and paging in the future) requests that need processing in process context and that were processed in the pagedaemon before. - Convert some ugly ifdef DIAGNOSTIC code to less intrusive KASSERTs. - misc other cleanups.
|
#
1.13 |
|
07-Nov-2001 |
art |
Another sync of uvm to NetBSD. Just minor fiddling, no major changes.
|
#
1.12 |
|
06-Nov-2001 |
art |
Minor sync to NetBSD.
|
Revision tags: OPENBSD_3_0_BASE
|
#
1.11 |
|
12-Aug-2001 |
mickey |
vm_pager.h no more
|
#
1.10 |
|
11-Aug-2001 |
art |
Various random fixes from NetBSD. Including support for zeroing pages in the idle loop (not enabled yet).
|
#
1.9 |
|
06-Aug-2001 |
art |
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.
|
#
1.8 |
|
26-Jul-2001 |
art |
Add support for disabling swap devices (swapctl -d). Improve error handling on I/O errors to swap. From NetBSD
|
Revision tags: OPENBSD_2_9_BASE
|
#
1.7 |
|
22-Mar-2001 |
smart |
Sync style, typo, and comments a little closer to NetBSD. art@ ok
|
#
1.6 |
|
09-Mar-2001 |
smart |
Protect protypes, certain macros, and inlines from userland. Checked userland with a 'make build'. From NetBSD. art@ ok
|
#
1.5 |
|
29-Jan-2001 |
niklas |
$OpenBSD$
|
Revision tags: OPENBSD_2_7_BASE OPENBSD_2_8_BASE
|
#
1.4 |
|
15-Mar-2000 |
art |
Fix the NetBSD id strings.
|
Revision tags: OPENBSD_2_6_BASE SMP_BASE kame_19991208
|
#
1.3 |
|
23-Aug-1999 |
art |
branches: 1.3.4; 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 tags: OPENBSD_2_5_BASE
|
#
1.2 |
|
26-Feb-1999 |
art |
add OpenBSD tags
|
#
1.1 |
|
26-Feb-1999 |
art |
Import of uvm from NetBSD. Some local changes, some code disabled
|
#
1.30 |
|
02-Mar-2021 |
mpi |
Fix the deadlock between uvn_io() and uvn_flush() by restarting the fault.
Do not allow a faulting thread to sleep on a contended vnode lock to prevent lock ordering issues with upcoming per-uobj lock.
ok anton@
Reported-by: syzbot+e63407b35dff08dbee02@syzkaller.appspotmail.com
|
Revision tags: OPENBSD_5_6_BASE OPENBSD_5_7_BASE OPENBSD_5_8_BASE OPENBSD_5_9_BASE OPENBSD_6_0_BASE OPENBSD_6_1_BASE OPENBSD_6_2_BASE OPENBSD_6_3_BASE OPENBSD_6_4_BASE OPENBSD_6_5_BASE OPENBSD_6_6_BASE OPENBSD_6_7_BASE OPENBSD_6_8_BASE
|
#
1.29 |
|
11-Jul-2014 |
jsg |
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
|
#
1.28 |
|
08-Jul-2014 |
deraadt |
the #ifdef _KERNEL can wrap the entire file. uvm_extern.h only pulls this inside #ifdef _KERNEL in any case, so nothing really changes.
|
Revision tags: OPENBSD_4_7_BASE OPENBSD_4_8_BASE OPENBSD_4_9_BASE OPENBSD_5_0_BASE OPENBSD_5_1_BASE OPENBSD_5_2_BASE OPENBSD_5_3_BASE OPENBSD_5_4_BASE OPENBSD_5_5_BASE
|
#
1.27 |
|
22-Jul-2009 |
oga |
Put the PG_RELEASED changes diff back in.
This has has been tested very very thoroughly on all archs we have excepting 88k and 68k. Please see cvs log for the individual commit messages.
ok beck@, thib@
|
Revision tags: OPENBSD_4_6_BASE
|
#
1.26 |
|
17-Jun-2009 |
oga |
date based reversion of uvm to the 4th May.
More backouts in line with previous ones, this appears to bring us back to a stable condition.
A machine forced to 64mb of ram cycled 10GB through swap with this diff and is still running as I type this. Other tests by ariane@ and thib@ also seem to show that it's alright.
ok deraadt@, thib@, ariane@
|
#
1.25 |
|
16-Jun-2009 |
oga |
Backout all changes to uvm after pmemrange (which will be backed out separately).
a change at or just before the hackathon has either exposed or added a very very nasty memory corruption bug that is giving us hell right now. So in the interest of kernel stability these diffs are being backed out until such a time as that corruption bug has been found and squashed, then the ones that are proven good may slowly return.
a quick hitlist of the main commits this backs out:
mine: uvm_objwire the lock change in uvm_swap.c using trees for uvm objects instead of the hash removing the pgo_releasepg callback.
art@'s: putting pmap_page_protect(VM_PROT_NONE) in uvm_pagedeactivate() since all callers called that just prior anyway.
ok beck@, ariane@.
prompted by deraadt@.
|
#
1.24 |
|
01-Jun-2009 |
oga |
Since we've now cleared up a lot of the PG_RELEASED setting, remove the pgo_releasepg() hook and just free the page the "normal" way in the one place we'll ever see PG_RELEASED and should care (uvm_page_unbusy, called in aiodoned).
ok art@, beck@, thib@
|
#
1.23 |
|
27-Mar-2009 |
oga |
remove PGO_OVERWRITE, PGO_WEAK and PGO_PASTEOF from the pager. They're all unused.
ok art@.
|
#
1.22 |
|
25-Mar-2009 |
oga |
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 tags: OPENBSD_4_5_BASE
|
#
1.21 |
|
24-Nov-2008 |
thib |
garbage collect uvm_errno2vmerror();
ok miod@, art@
|
Revision tags: OPENBSD_3_4_BASE OPENBSD_3_5_BASE OPENBSD_3_6_BASE OPENBSD_3_7_BASE OPENBSD_3_8_BASE OPENBSD_3_9_BASE OPENBSD_4_0_BASE OPENBSD_4_1_BASE OPENBSD_4_2_BASE OPENBSD_4_3_BASE OPENBSD_4_4_BASE SMP_SYNC_A SMP_SYNC_B
|
#
1.20 |
|
02-Jun-2003 |
millert |
Remove the advertising clause in the UCB license which Berkeley rescinded 22 July 1999. Proofed by myself and Theo.
|
Revision tags: OPENBSD_3_1_BASE OPENBSD_3_2_BASE OPENBSD_3_3_BASE UBC_SYNC_A UBC_SYNC_B
|
#
1.19 |
|
15-Mar-2002 |
millert |
Cosmetic changes only, primarily making comments line up nicely after the __P removal.
|
#
1.18 |
|
14-Mar-2002 |
millert |
First round of __P removal in sys
|
#
1.17 |
|
19-Dec-2001 |
art |
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 tags: UBC_BASE
|
#
1.16 |
|
28-Nov-2001 |
art |
branches: 1.16.2; Sync in more uvm from NetBSD. Mostly just cosmetic stuff. Contains also support for page coloring.
|
#
1.15 |
|
28-Nov-2001 |
art |
Sync in more uvm changes from NetBSD. This time we're getting rid of KERN_* and VM_PAGER_* error codes and use errnos instead.
|
#
1.14 |
|
10-Nov-2001 |
art |
Merge in some parts of the ubc work that has been done in NetBSD that are not UBC, but prerequsites for it.
- Create a daemon that processes async I/O (swap and paging in the future) requests that need processing in process context and that were processed in the pagedaemon before. - Convert some ugly ifdef DIAGNOSTIC code to less intrusive KASSERTs. - misc other cleanups.
|
#
1.13 |
|
07-Nov-2001 |
art |
Another sync of uvm to NetBSD. Just minor fiddling, no major changes.
|
#
1.12 |
|
06-Nov-2001 |
art |
Minor sync to NetBSD.
|
Revision tags: OPENBSD_3_0_BASE
|
#
1.11 |
|
12-Aug-2001 |
mickey |
vm_pager.h no more
|
#
1.10 |
|
11-Aug-2001 |
art |
Various random fixes from NetBSD. Including support for zeroing pages in the idle loop (not enabled yet).
|
#
1.9 |
|
06-Aug-2001 |
art |
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.
|
#
1.8 |
|
26-Jul-2001 |
art |
Add support for disabling swap devices (swapctl -d). Improve error handling on I/O errors to swap. From NetBSD
|
Revision tags: OPENBSD_2_9_BASE
|
#
1.7 |
|
22-Mar-2001 |
smart |
Sync style, typo, and comments a little closer to NetBSD. art@ ok
|
#
1.6 |
|
09-Mar-2001 |
smart |
Protect protypes, certain macros, and inlines from userland. Checked userland with a 'make build'. From NetBSD. art@ ok
|
#
1.5 |
|
29-Jan-2001 |
niklas |
$OpenBSD$
|
Revision tags: OPENBSD_2_7_BASE OPENBSD_2_8_BASE
|
#
1.4 |
|
15-Mar-2000 |
art |
Fix the NetBSD id strings.
|
Revision tags: OPENBSD_2_6_BASE SMP_BASE kame_19991208
|
#
1.3 |
|
23-Aug-1999 |
art |
branches: 1.3.4; 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 tags: OPENBSD_2_5_BASE
|
#
1.2 |
|
26-Feb-1999 |
art |
add OpenBSD tags
|
#
1.1 |
|
26-Feb-1999 |
art |
Import of uvm from NetBSD. Some local changes, some code disabled
|
Revision tags: OPENBSD_5_6_BASE OPENBSD_5_7_BASE OPENBSD_5_8_BASE OPENBSD_5_9_BASE OPENBSD_6_0_BASE OPENBSD_6_1_BASE OPENBSD_6_2_BASE
|
#
1.29 |
|
11-Jul-2014 |
jsg |
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
|
#
1.28 |
|
08-Jul-2014 |
deraadt |
the #ifdef _KERNEL can wrap the entire file. uvm_extern.h only pulls this inside #ifdef _KERNEL in any case, so nothing really changes.
|
Revision tags: OPENBSD_4_7_BASE OPENBSD_4_8_BASE OPENBSD_4_9_BASE OPENBSD_5_0_BASE OPENBSD_5_1_BASE OPENBSD_5_2_BASE OPENBSD_5_3_BASE OPENBSD_5_4_BASE OPENBSD_5_5_BASE
|
#
1.27 |
|
22-Jul-2009 |
oga |
Put the PG_RELEASED changes diff back in.
This has has been tested very very thoroughly on all archs we have excepting 88k and 68k. Please see cvs log for the individual commit messages.
ok beck@, thib@
|
Revision tags: OPENBSD_4_6_BASE
|
#
1.26 |
|
17-Jun-2009 |
oga |
date based reversion of uvm to the 4th May.
More backouts in line with previous ones, this appears to bring us back to a stable condition.
A machine forced to 64mb of ram cycled 10GB through swap with this diff and is still running as I type this. Other tests by ariane@ and thib@ also seem to show that it's alright.
ok deraadt@, thib@, ariane@
|
#
1.25 |
|
16-Jun-2009 |
oga |
Backout all changes to uvm after pmemrange (which will be backed out separately).
a change at or just before the hackathon has either exposed or added a very very nasty memory corruption bug that is giving us hell right now. So in the interest of kernel stability these diffs are being backed out until such a time as that corruption bug has been found and squashed, then the ones that are proven good may slowly return.
a quick hitlist of the main commits this backs out:
mine: uvm_objwire the lock change in uvm_swap.c using trees for uvm objects instead of the hash removing the pgo_releasepg callback.
art@'s: putting pmap_page_protect(VM_PROT_NONE) in uvm_pagedeactivate() since all callers called that just prior anyway.
ok beck@, ariane@.
prompted by deraadt@.
|
#
1.24 |
|
01-Jun-2009 |
oga |
Since we've now cleared up a lot of the PG_RELEASED setting, remove the pgo_releasepg() hook and just free the page the "normal" way in the one place we'll ever see PG_RELEASED and should care (uvm_page_unbusy, called in aiodoned).
ok art@, beck@, thib@
|
#
1.23 |
|
27-Mar-2009 |
oga |
remove PGO_OVERWRITE, PGO_WEAK and PGO_PASTEOF from the pager. They're all unused.
ok art@.
|
#
1.22 |
|
25-Mar-2009 |
oga |
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 tags: OPENBSD_4_5_BASE
|
#
1.21 |
|
24-Nov-2008 |
thib |
garbage collect uvm_errno2vmerror();
ok miod@, art@
|
Revision tags: OPENBSD_3_4_BASE OPENBSD_3_5_BASE OPENBSD_3_6_BASE OPENBSD_3_7_BASE OPENBSD_3_8_BASE OPENBSD_3_9_BASE OPENBSD_4_0_BASE OPENBSD_4_1_BASE OPENBSD_4_2_BASE OPENBSD_4_3_BASE OPENBSD_4_4_BASE SMP_SYNC_A SMP_SYNC_B
|
#
1.20 |
|
02-Jun-2003 |
millert |
Remove the advertising clause in the UCB license which Berkeley rescinded 22 July 1999. Proofed by myself and Theo.
|
Revision tags: OPENBSD_3_1_BASE OPENBSD_3_2_BASE OPENBSD_3_3_BASE UBC_SYNC_A UBC_SYNC_B
|
#
1.19 |
|
15-Mar-2002 |
millert |
Cosmetic changes only, primarily making comments line up nicely after the __P removal.
|
#
1.18 |
|
14-Mar-2002 |
millert |
First round of __P removal in sys
|
#
1.17 |
|
19-Dec-2001 |
art |
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 tags: UBC_BASE
|
#
1.16 |
|
28-Nov-2001 |
art |
branches: 1.16.2; Sync in more uvm from NetBSD. Mostly just cosmetic stuff. Contains also support for page coloring.
|
#
1.15 |
|
28-Nov-2001 |
art |
Sync in more uvm changes from NetBSD. This time we're getting rid of KERN_* and VM_PAGER_* error codes and use errnos instead.
|
#
1.14 |
|
10-Nov-2001 |
art |
Merge in some parts of the ubc work that has been done in NetBSD that are not UBC, but prerequsites for it.
- Create a daemon that processes async I/O (swap and paging in the future) requests that need processing in process context and that were processed in the pagedaemon before. - Convert some ugly ifdef DIAGNOSTIC code to less intrusive KASSERTs. - misc other cleanups.
|
#
1.13 |
|
07-Nov-2001 |
art |
Another sync of uvm to NetBSD. Just minor fiddling, no major changes.
|
#
1.12 |
|
06-Nov-2001 |
art |
Minor sync to NetBSD.
|
Revision tags: OPENBSD_3_0_BASE
|
#
1.11 |
|
12-Aug-2001 |
mickey |
vm_pager.h no more
|
#
1.10 |
|
11-Aug-2001 |
art |
Various random fixes from NetBSD. Including support for zeroing pages in the idle loop (not enabled yet).
|
#
1.9 |
|
06-Aug-2001 |
art |
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.
|
#
1.8 |
|
26-Jul-2001 |
art |
Add support for disabling swap devices (swapctl -d). Improve error handling on I/O errors to swap. From NetBSD
|
Revision tags: OPENBSD_2_9_BASE
|
#
1.7 |
|
22-Mar-2001 |
smart |
Sync style, typo, and comments a little closer to NetBSD. art@ ok
|
#
1.6 |
|
09-Mar-2001 |
smart |
Protect protypes, certain macros, and inlines from userland. Checked userland with a 'make build'. From NetBSD. art@ ok
|
#
1.5 |
|
29-Jan-2001 |
niklas |
$OpenBSD$
|
Revision tags: OPENBSD_2_7_BASE OPENBSD_2_8_BASE
|
#
1.4 |
|
15-Mar-2000 |
art |
Fix the NetBSD id strings.
|
Revision tags: OPENBSD_2_6_BASE SMP_BASE kame_19991208
|
#
1.3 |
|
23-Aug-1999 |
art |
branches: 1.3.4; 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 tags: OPENBSD_2_5_BASE
|
#
1.2 |
|
26-Feb-1999 |
art |
add OpenBSD tags
|
#
1.1 |
|
26-Feb-1999 |
art |
Import of uvm from NetBSD. Some local changes, some code disabled
|