summaryrefslogtreecommitdiff
path: root/usr.bin/top/machine.c
diff options
context:
space:
mode:
authorMartin Pieuchot <mpi@cvs.openbsd.org>2022-09-10 16:14:37 +0000
committerMartin Pieuchot <mpi@cvs.openbsd.org>2022-09-10 16:14:37 +0000
commit8400d526312a440c4b546fba065902f79c339ecd (patch)
tree2c194e552101b7a94e9abda6ddba461a02dc9336 /usr.bin/top/machine.c
parentb246add6b2604af1d166f35a0b21551b773cf049 (diff)
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@
Diffstat (limited to 'usr.bin/top/machine.c')
0 files changed, 0 insertions, 0 deletions