#
1.21 |
|
20-Oct-2022 |
mpi |
Access to `u_flags' should be serialized by the `vmobjlock'.
This complete previous fix from gnezdo@. The uvm_vnp_sync() still requires some love and isn't addressed by this diff.
Document which lock is protecting vnode variables.
ok gnezdo@
|
Revision tags: OPENBSD_7_2_BASE
|
#
1.20 |
|
21-Sep-2022 |
mpi |
Revert UVM_VNODE_CANPERSIST removal, it exposes an issue on arm64.
Found the hardway by miod@ and deraadt@.
|
#
1.19 |
|
10-Sep-2022 |
mpi |
Get rid of the extra vnode reference known as UVM_VNODE_CANPERSIST.
Back in the 4.4BSD days the VM subystem had a OBJ_CANPERSIST flag to enter objects in a global cached list. Some of this logic seem to have been copied to UVM but without the global list.
Unfortunately keeping UVM vnode objects alive after munmap(2)ing the corresponding region without incrementing the reference count of the related vnode led to many bugs when the vnode was recycled and/or when it data where written back to disk (via the page daemon).
The problem is that VM pages might have a non-accounted reference to a vnode via `pg->uobject'.
Fix "vref used where vget required" panic reported by bluhm@, gkoehler@ and Andrew Krasavinseen on bugs@.
Thanks a lot to semarie@ for co-debugging this issue!
Tested by bluhm@, tb@, miod@.
ok kettenis@, semarie@
|
Revision tags: OPENBSD_7_1_BASE
|
#
1.18 |
|
12-Oct-2021 |
mpi |
Revert the fix for the deadlock between uvn_io() and uvn_flush().
This fix (ab)use the vnode lock to serialize access to some fields of the corresponding pages associated with UVM vnode object and this will create new deadlocks with the introduction of a per-uobj lock.
ok anton@
|
Revision tags: OPENBSD_6_9_BASE OPENBSD_7_0_BASE
|
#
1.17 |
|
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.16 |
|
02-Mar-2021 |
mpi |
Revert the fix for the deadlock between uvn_io() and uvn_flush().
This fix (ab)use the vnode lock to serialize access to some fields of the corresponding pages associated with UVM vnode object and this will create new deadlocks with the introduction of a per-uobj lock.
ok anton@
|
#
1.15 |
|
26-Oct-2020 |
anton |
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
|
Revision tags: 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.14 |
|
16-Dec-2014 |
tedu |
primary change: move uvm_vnode out of vnode, keeping only a pointer. objective: vnode.h doesn't include uvm_extern.h anymore. followup changes: include uvm_extern.h or lock.h where necessary. ok and help from deraadt
|
Revision tags: OPENBSD_5_6_BASE
|
#
1.13 |
|
29-Jun-2014 |
deraadt |
delete a #ifdef _KERNEL chunk protecting userland from an #if 0 chunk
|
Revision tags: OPENBSD_3_1_BASE OPENBSD_3_2_BASE OPENBSD_3_3_BASE 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 OPENBSD_4_5_BASE OPENBSD_4_6_BASE 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 SMP_SYNC_A SMP_SYNC_B UBC_SYNC_A UBC_SYNC_B
|
#
1.12 |
|
14-Mar-2002 |
millert |
First round of __P removal in sys
|
#
1.11 |
|
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.10 |
|
10-Dec-2001 |
art |
Merge in struct uvm_vnode into struct vnode.
|
#
1.9 |
|
27-Nov-2001 |
art |
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 tags: OPENBSD_3_0_BASE
|
#
1.8 |
|
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.
|
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.20 |
|
21-Sep-2022 |
mpi |
Revert UVM_VNODE_CANPERSIST removal, it exposes an issue on arm64.
Found the hardway by miod@ and deraadt@.
|
#
1.19 |
|
10-Sep-2022 |
mpi |
Get rid of the extra vnode reference known as UVM_VNODE_CANPERSIST.
Back in the 4.4BSD days the VM subystem had a OBJ_CANPERSIST flag to enter objects in a global cached list. Some of this logic seem to have been copied to UVM but without the global list.
Unfortunately keeping UVM vnode objects alive after munmap(2)ing the corresponding region without incrementing the reference count of the related vnode led to many bugs when the vnode was recycled and/or when it data where written back to disk (via the page daemon).
The problem is that VM pages might have a non-accounted reference to a vnode via `pg->uobject'.
Fix "vref used where vget required" panic reported by bluhm@, gkoehler@ and Andrew Krasavinseen on bugs@.
Thanks a lot to semarie@ for co-debugging this issue!
Tested by bluhm@, tb@, miod@.
ok kettenis@, semarie@
|
Revision tags: OPENBSD_7_1_BASE
|
#
1.18 |
|
12-Oct-2021 |
mpi |
Revert the fix for the deadlock between uvn_io() and uvn_flush().
This fix (ab)use the vnode lock to serialize access to some fields of the corresponding pages associated with UVM vnode object and this will create new deadlocks with the introduction of a per-uobj lock.
ok anton@
|
Revision tags: OPENBSD_6_9_BASE OPENBSD_7_0_BASE
|
#
1.17 |
|
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.16 |
|
02-Mar-2021 |
mpi |
Revert the fix for the deadlock between uvn_io() and uvn_flush().
This fix (ab)use the vnode lock to serialize access to some fields of the corresponding pages associated with UVM vnode object and this will create new deadlocks with the introduction of a per-uobj lock.
ok anton@
|
#
1.15 |
|
26-Oct-2020 |
anton |
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
|
Revision tags: 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.14 |
|
16-Dec-2014 |
tedu |
primary change: move uvm_vnode out of vnode, keeping only a pointer. objective: vnode.h doesn't include uvm_extern.h anymore. followup changes: include uvm_extern.h or lock.h where necessary. ok and help from deraadt
|
Revision tags: OPENBSD_5_6_BASE
|
#
1.13 |
|
29-Jun-2014 |
deraadt |
delete a #ifdef _KERNEL chunk protecting userland from an #if 0 chunk
|
Revision tags: OPENBSD_3_1_BASE OPENBSD_3_2_BASE OPENBSD_3_3_BASE 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 OPENBSD_4_5_BASE OPENBSD_4_6_BASE 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 SMP_SYNC_A SMP_SYNC_B UBC_SYNC_A UBC_SYNC_B
|
#
1.12 |
|
14-Mar-2002 |
millert |
First round of __P removal in sys
|
#
1.11 |
|
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.10 |
|
10-Dec-2001 |
art |
Merge in struct uvm_vnode into struct vnode.
|
#
1.9 |
|
27-Nov-2001 |
art |
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 tags: OPENBSD_3_0_BASE
|
#
1.8 |
|
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.
|
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.19 |
|
10-Sep-2022 |
mpi |
Get rid of the extra vnode reference known as UVM_VNODE_CANPERSIST.
Back in the 4.4BSD days the VM subystem had a OBJ_CANPERSIST flag to enter objects in a global cached list. Some of this logic seem to have been copied to UVM but without the global list.
Unfortunately keeping UVM vnode objects alive after munmap(2)ing the corresponding region without incrementing the reference count of the related vnode led to many bugs when the vnode was recycled and/or when it data where written back to disk (via the page daemon).
The problem is that VM pages might have a non-accounted reference to a vnode via `pg->uobject'.
Fix "vref used where vget required" panic reported by bluhm@, gkoehler@ and Andrew Krasavinseen on bugs@.
Thanks a lot to semarie@ for co-debugging this issue!
Tested by bluhm@, tb@, miod@.
ok kettenis@, semarie@
|
Revision tags: OPENBSD_7_1_BASE
|
#
1.18 |
|
12-Oct-2021 |
mpi |
Revert the fix for the deadlock between uvn_io() and uvn_flush().
This fix (ab)use the vnode lock to serialize access to some fields of the corresponding pages associated with UVM vnode object and this will create new deadlocks with the introduction of a per-uobj lock.
ok anton@
|
Revision tags: OPENBSD_6_9_BASE OPENBSD_7_0_BASE
|
#
1.17 |
|
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.16 |
|
02-Mar-2021 |
mpi |
Revert the fix for the deadlock between uvn_io() and uvn_flush().
This fix (ab)use the vnode lock to serialize access to some fields of the corresponding pages associated with UVM vnode object and this will create new deadlocks with the introduction of a per-uobj lock.
ok anton@
|
#
1.15 |
|
26-Oct-2020 |
anton |
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
|
Revision tags: 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.14 |
|
16-Dec-2014 |
tedu |
primary change: move uvm_vnode out of vnode, keeping only a pointer. objective: vnode.h doesn't include uvm_extern.h anymore. followup changes: include uvm_extern.h or lock.h where necessary. ok and help from deraadt
|
Revision tags: OPENBSD_5_6_BASE
|
#
1.13 |
|
29-Jun-2014 |
deraadt |
delete a #ifdef _KERNEL chunk protecting userland from an #if 0 chunk
|
Revision tags: OPENBSD_3_1_BASE OPENBSD_3_2_BASE OPENBSD_3_3_BASE 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 OPENBSD_4_5_BASE OPENBSD_4_6_BASE 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 SMP_SYNC_A SMP_SYNC_B UBC_SYNC_A UBC_SYNC_B
|
#
1.12 |
|
14-Mar-2002 |
millert |
First round of __P removal in sys
|
#
1.11 |
|
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.10 |
|
10-Dec-2001 |
art |
Merge in struct uvm_vnode into struct vnode.
|
#
1.9 |
|
27-Nov-2001 |
art |
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 tags: OPENBSD_3_0_BASE
|
#
1.8 |
|
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.
|
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.18 |
|
12-Oct-2021 |
mpi |
Revert the fix for the deadlock between uvn_io() and uvn_flush().
This fix (ab)use the vnode lock to serialize access to some fields of the corresponding pages associated with UVM vnode object and this will create new deadlocks with the introduction of a per-uobj lock.
ok anton@
|
Revision tags: OPENBSD_6_9_BASE OPENBSD_7_0_BASE
|
#
1.17 |
|
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.16 |
|
02-Mar-2021 |
mpi |
Revert the fix for the deadlock between uvn_io() and uvn_flush().
This fix (ab)use the vnode lock to serialize access to some fields of the corresponding pages associated with UVM vnode object and this will create new deadlocks with the introduction of a per-uobj lock.
ok anton@
|
#
1.15 |
|
26-Oct-2020 |
anton |
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
|
Revision tags: 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.14 |
|
16-Dec-2014 |
tedu |
primary change: move uvm_vnode out of vnode, keeping only a pointer. objective: vnode.h doesn't include uvm_extern.h anymore. followup changes: include uvm_extern.h or lock.h where necessary. ok and help from deraadt
|
Revision tags: OPENBSD_5_6_BASE
|
#
1.13 |
|
29-Jun-2014 |
deraadt |
delete a #ifdef _KERNEL chunk protecting userland from an #if 0 chunk
|
Revision tags: OPENBSD_3_1_BASE OPENBSD_3_2_BASE OPENBSD_3_3_BASE 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 OPENBSD_4_5_BASE OPENBSD_4_6_BASE 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 SMP_SYNC_A SMP_SYNC_B UBC_SYNC_A UBC_SYNC_B
|
#
1.12 |
|
14-Mar-2002 |
millert |
First round of __P removal in sys
|
#
1.11 |
|
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.10 |
|
10-Dec-2001 |
art |
Merge in struct uvm_vnode into struct vnode.
|
#
1.9 |
|
27-Nov-2001 |
art |
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 tags: OPENBSD_3_0_BASE
|
#
1.8 |
|
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.
|
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.17 |
|
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.16 |
|
02-Mar-2021 |
mpi |
Revert the fix for the deadlock between uvn_io() and uvn_flush().
This fix (ab)use the vnode lock to serialize access to some fields of the corresponding pages associated with UVM vnode object and this will create new deadlocks with the introduction of a per-uobj lock.
ok anton@
|
#
1.15 |
|
26-Oct-2020 |
anton |
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
|
Revision tags: 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.14 |
|
16-Dec-2014 |
tedu |
primary change: move uvm_vnode out of vnode, keeping only a pointer. objective: vnode.h doesn't include uvm_extern.h anymore. followup changes: include uvm_extern.h or lock.h where necessary. ok and help from deraadt
|
Revision tags: OPENBSD_5_6_BASE
|
#
1.13 |
|
29-Jun-2014 |
deraadt |
delete a #ifdef _KERNEL chunk protecting userland from an #if 0 chunk
|
Revision tags: OPENBSD_3_1_BASE OPENBSD_3_2_BASE OPENBSD_3_3_BASE 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 OPENBSD_4_5_BASE OPENBSD_4_6_BASE 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 SMP_SYNC_A SMP_SYNC_B UBC_SYNC_A UBC_SYNC_B
|
#
1.12 |
|
14-Mar-2002 |
millert |
First round of __P removal in sys
|
#
1.11 |
|
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.10 |
|
10-Dec-2001 |
art |
Merge in struct uvm_vnode into struct vnode.
|
#
1.9 |
|
27-Nov-2001 |
art |
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 tags: OPENBSD_3_0_BASE
|
#
1.8 |
|
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.
|
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.16 |
|
02-Mar-2021 |
mpi |
Revert the fix for the deadlock between uvn_io() and uvn_flush().
This fix (ab)use the vnode lock to serialize access to some fields of the corresponding pages associated with UVM vnode object and this will create new deadlocks with the introduction of a per-uobj lock.
ok anton@
|
#
1.15 |
|
26-Oct-2020 |
anton |
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
|
Revision tags: 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.14 |
|
16-Dec-2014 |
tedu |
primary change: move uvm_vnode out of vnode, keeping only a pointer. objective: vnode.h doesn't include uvm_extern.h anymore. followup changes: include uvm_extern.h or lock.h where necessary. ok and help from deraadt
|
Revision tags: OPENBSD_5_6_BASE
|
#
1.13 |
|
29-Jun-2014 |
deraadt |
delete a #ifdef _KERNEL chunk protecting userland from an #if 0 chunk
|
Revision tags: OPENBSD_3_1_BASE OPENBSD_3_2_BASE OPENBSD_3_3_BASE 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 OPENBSD_4_5_BASE OPENBSD_4_6_BASE 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 SMP_SYNC_A SMP_SYNC_B UBC_SYNC_A UBC_SYNC_B
|
#
1.12 |
|
14-Mar-2002 |
millert |
First round of __P removal in sys
|
#
1.11 |
|
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.10 |
|
10-Dec-2001 |
art |
Merge in struct uvm_vnode into struct vnode.
|
#
1.9 |
|
27-Nov-2001 |
art |
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 tags: OPENBSD_3_0_BASE
|
#
1.8 |
|
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.
|
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.15 |
|
26-Oct-2020 |
anton |
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
|
Revision tags: 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.14 |
|
16-Dec-2014 |
tedu |
primary change: move uvm_vnode out of vnode, keeping only a pointer. objective: vnode.h doesn't include uvm_extern.h anymore. followup changes: include uvm_extern.h or lock.h where necessary. ok and help from deraadt
|
Revision tags: OPENBSD_5_6_BASE
|
#
1.13 |
|
29-Jun-2014 |
deraadt |
delete a #ifdef _KERNEL chunk protecting userland from an #if 0 chunk
|
Revision tags: OPENBSD_3_1_BASE OPENBSD_3_2_BASE OPENBSD_3_3_BASE 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 OPENBSD_4_5_BASE OPENBSD_4_6_BASE 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 SMP_SYNC_A SMP_SYNC_B UBC_SYNC_A UBC_SYNC_B
|
#
1.12 |
|
14-Mar-2002 |
millert |
First round of __P removal in sys
|
#
1.11 |
|
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.10 |
|
10-Dec-2001 |
art |
Merge in struct uvm_vnode into struct vnode.
|
#
1.9 |
|
27-Nov-2001 |
art |
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 tags: OPENBSD_3_0_BASE
|
#
1.8 |
|
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.
|
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_7_BASE OPENBSD_5_8_BASE OPENBSD_5_9_BASE OPENBSD_6_0_BASE OPENBSD_6_1_BASE OPENBSD_6_2_BASE
|
#
1.14 |
|
16-Dec-2014 |
tedu |
primary change: move uvm_vnode out of vnode, keeping only a pointer. objective: vnode.h doesn't include uvm_extern.h anymore. followup changes: include uvm_extern.h or lock.h where necessary. ok and help from deraadt
|
Revision tags: OPENBSD_5_6_BASE
|
#
1.13 |
|
29-Jun-2014 |
deraadt |
delete a #ifdef _KERNEL chunk protecting userland from an #if 0 chunk
|
Revision tags: OPENBSD_3_1_BASE OPENBSD_3_2_BASE OPENBSD_3_3_BASE 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 OPENBSD_4_5_BASE OPENBSD_4_6_BASE 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 SMP_SYNC_A SMP_SYNC_B UBC_SYNC_A UBC_SYNC_B
|
#
1.12 |
|
14-Mar-2002 |
millert |
First round of __P removal in sys
|
#
1.11 |
|
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.10 |
|
10-Dec-2001 |
art |
Merge in struct uvm_vnode into struct vnode.
|
#
1.9 |
|
27-Nov-2001 |
art |
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 tags: OPENBSD_3_0_BASE
|
#
1.8 |
|
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.
|
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
|