History log of /freebsd/sys/vm/vnode_pager.c (Results 26 – 50 of 783)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# efec381d 04-Aug-2020 Mark Johnston <markj@FreeBSD.org>

Remove most lingering references to the page lock in comments.

Finish updating comments to reflect new locking protocols introduced
over the past year. In particular, vm_page_lock is now effectivel

Remove most lingering references to the page lock in comments.

Finish updating comments to reflect new locking protocols introduced
over the past year. In particular, vm_page_lock is now effectively
unused.

Reviewed by: kib
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D25868

show more ...


# c7aa572c 31-Jul-2020 Glen Barber <gjb@FreeBSD.org>

MFH

Sponsored by: Rubicon Communications, LLC (netgate.com)


# 1bd12a3b 18-Jul-2020 Chuck Silvers <chs@FreeBSD.org>

Fix vnode_pager handling of read ahead/behind pages when a disk read fails.
Rather than marking the read ahead/behind pages valid even though they were
not initialized, free them using the new functi

Fix vnode_pager handling of read ahead/behind pages when a disk read fails.
Rather than marking the read ahead/behind pages valid even though they were
not initialized, free them using the new function vm_page_free_invalid().

Reviewed by: markj, kib
Sponsored by: Netflix
Differential Revision: https://reviews.freebsd.org/D25430

show more ...


# c3dbadc1 18-Jul-2020 Chuck Silvers <chs@FreeBSD.org>

Revert my change from r361855 in favor of a better fix.

Reviewed by: markj, kib
Sponsored by: Netflix
Differential Revision: https://reviews.freebsd.org/D25430


Revision tags: release/11.4.0
# bd7d64f5 06-Jun-2020 Chuck Silvers <chs@FreeBSD.org>

Don't mark pages as valid if reading the contents from disk fails.
Instead, just skip marking pages valid if the read fails. Future
attempts to access such pages will notice that they are not marked

Don't mark pages as valid if reading the contents from disk fails.
Instead, just skip marking pages valid if the read fails. Future
attempts to access such pages will notice that they are not marked valid
and try to read them from disk again.

Reviewed by: kib, markj
Sponsored by: Netflix
Differential Revision: https://reviews.freebsd.org/D25138

show more ...


# abfdf767 30-Mar-2020 Konstantin Belousov <kib@FreeBSD.org>

VOP_GETPAGES_ASYNC(): consistently call iodone() callback in case of error.

Reviewed by: glebius, markj
Tested by: pho
Sponsored by: The FreeBSD Foundation
MFC after: 1 week
Differential revision: h

VOP_GETPAGES_ASYNC(): consistently call iodone() callback in case of error.

Reviewed by: glebius, markj
Tested by: pho
Sponsored by: The FreeBSD Foundation
MFC after: 1 week
Differential revision: https://reviews.freebsd.org/D24038

show more ...


# 6c140a72 20-Feb-2020 Dimitry Andric <dim@FreeBSD.org>

Merge ^/head r358131 through r358178.


# cafbf0c6 20-Feb-2020 Warner Losh <imp@FreeBSD.org>

Don't convert all lower-layer errors to EIO.

Don't convert all lower layer errors to EIO. Instead, pass the actual error up
the stack. This will allow the upper layers that look for ENXIO to react
p

Don't convert all lower-layer errors to EIO.

Don't convert all lower layer errors to EIO. Instead, pass the actual error up
the stack. This will allow the upper layers that look for ENXIO to react
properly to that signal from the lower layers and, for UFS, unmount the
filesystem.

Reviewed by: kib@
Differential Revision: https://reviews.freebsd.org/D23755

show more ...


# 65252dc9 20-Feb-2020 Warner Losh <imp@FreeBSD.org>

Don't spam the console with an additional, and useless, error message.

There's no need to spam the console with this error message. If there's an I/O
error, the disk/cam driver will report it at the

Don't spam the console with an additional, and useless, error message.

There's no need to spam the console with this error message. If there's an I/O
error, the disk/cam driver will report it at the lower levels. If that's an
actual problem, the upper layers will report that.

Reviewed by: kib@
Differential Revision: https://reviews.freebsd.org/D23756

show more ...


# bc02c18c 07-Feb-2020 Dimitry Andric <dim@FreeBSD.org>

Merge ^/head r357408 through r357661.


# f1fa1ba3 03-Feb-2020 Mateusz Guzik <mjg@FreeBSD.org>

Fix up various vnode-related asserts which did not dump the used vnode


# 53d2936c 20-Jan-2020 Dimitry Andric <dim@FreeBSD.org>

Merge ^/head r356848 through r356919.


# d6e13f3b 20-Jan-2020 Jeff Roberson <jeff@FreeBSD.org>

Don't hold the object lock while calling getpages.

The vnode pager does not want the object lock held. Moving this out allows
further object lock scope reduction in callers. While here add some mi

Don't hold the object lock while calling getpages.

The vnode pager does not want the object lock held. Moving this out allows
further object lock scope reduction in callers. While here add some missing
paging in progress calls and an assert. The object handle is now protected
explicitly with pip.

Reviewed by: kib, markj
Differential Revision: https://reviews.freebsd.org/D23033

show more ...


# 9c83ff2d 19-Jan-2020 Jeff Roberson <jeff@FreeBSD.org>

It has not been possible to recursively terminate a vnode object for some time
now. Eliminate the dead code that supports it.

Approved by: kib, markj
Differential Revision: https://reviews.freebsd.

It has not been possible to recursively terminate a vnode object for some time
now. Eliminate the dead code that supports it.

Approved by: kib, markj
Differential Revision: https://reviews.freebsd.org/D22908

show more ...


# a314aba8 12-Jan-2020 Mateusz Guzik <mjg@FreeBSD.org>

vm: add missing CLTFLAG_MPSAFE annotations

This covers all vm/* files.


# b249ce48 03-Jan-2020 Mateusz Guzik <mjg@FreeBSD.org>

vfs: drop the mostly unused flags argument from VOP_UNLOCK

Filesystems which want to use it in limited capacity can employ the
VOP_UNLOCK_FLAGS macro.

Reviewed by: kib (previous version)
Differenti

vfs: drop the mostly unused flags argument from VOP_UNLOCK

Filesystems which want to use it in limited capacity can employ the
VOP_UNLOCK_FLAGS macro.

Reviewed by: kib (previous version)
Differential Revision: https://reviews.freebsd.org/D21427

show more ...


# abd80ddb 08-Dec-2019 Mateusz Guzik <mjg@FreeBSD.org>

vfs: introduce v_irflag and make v_type smaller

The current vnode layout is not smp-friendly by having frequently read data
avoidably sharing cachelines with very frequently modified fields. In
part

vfs: introduce v_irflag and make v_type smaller

The current vnode layout is not smp-friendly by having frequently read data
avoidably sharing cachelines with very frequently modified fields. In
particular v_iflag inspected for VI_DOOMED can be found in the same line with
v_usecount. Instead make it available in the same cacheline as the v_op, v_data
and v_type which all get read all the time.

v_type is avoidably 4 bytes while the necessary data will easily fit in 1.
Shrinking it frees up 3 bytes, 2 of which get used here to introduce a new
flag field with a new value: VIRF_DOOMED.

Reviewed by: kib, jeff
Differential Revision: https://reviews.freebsd.org/D22715

show more ...


# a67d5408 27-Nov-2019 Jeff Roberson <jeff@FreeBSD.org>

Use atomics in more cases for object references. We now can completely
omit the object lock if we are above a certain threshold. Hold only a
single vnode reference when the vnode object has any ref

Use atomics in more cases for object references. We now can completely
omit the object lock if we are above a certain threshold. Hold only a
single vnode reference when the vnode object has any ref > 0. This
allows us to only lock the object and vnode on 0-1 and 1-0 transitions.

Differential Revision: https://reviews.freebsd.org/D22452

show more ...


# 7f935055 20-Nov-2019 Jeff Roberson <jeff@FreeBSD.org>

Remove unnecessary object locking from the vnode pager. Recent changes to
busy/valid/dirty locking make these acquires redundant.

Reviewed by: kib, markj
Differential Revision: https://reviews.free

Remove unnecessary object locking from the vnode pager. Recent changes to
busy/valid/dirty locking make these acquires redundant.

Reviewed by: kib, markj
Differential Revision: https://reviews.freebsd.org/D22186

show more ...


Revision tags: release/12.1.0
# 51df5321 29-Oct-2019 Jeff Roberson <jeff@FreeBSD.org>

Use atomics and a shared object lock to protect the object reference count.

Certain consumers still need to guarantee a stable reference so we can not
switch entirely to atomics yet. Exclusive lock

Use atomics and a shared object lock to protect the object reference count.

Certain consumers still need to guarantee a stable reference so we can not
switch entirely to atomics yet. Exclusive lock holders can still modify
and examine the refcount without using the ref api.

Reviewed by: kib
Tested by: pho
Sponsored by: Netflix, Intel
Differential Revision: https://reviews.freebsd.org/D21598

show more ...


# 2f81c92e 23-Oct-2019 Mark Johnston <markj@FreeBSD.org>

Check for bogus_page in vnode_pager_generic_getpages_done().

We now assert that a page is busy when updating its validity-tracking
state, but bogus_page is not busied during a getpages operation.

R

Check for bogus_page in vnode_pager_generic_getpages_done().

We now assert that a page is busy when updating its validity-tracking
state, but bogus_page is not busied during a getpages operation.

Reported by: syzkaller
Reviewed by: alc, kib
Discussed with: jeff
MFC after: 1 week
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D22124

show more ...


# 5b87ecc6 22-Oct-2019 Konstantin Belousov <kib@FreeBSD.org>

Assert that vnode_pager_setsize() is called with the vnode exclusively locked

except for filesystems that set the MNTK_VMSETSIZE_BUG, Set the flag for ZFS.

Tested by: pho
Sponsored by: The FreeBSD

Assert that vnode_pager_setsize() is called with the vnode exclusively locked

except for filesystems that set the MNTK_VMSETSIZE_BUG, Set the flag for ZFS.

Tested by: pho
Sponsored by: The FreeBSD Foundation
MFC after: 2 weeks
Differential revision: https://reviews.freebsd.org/D21883

show more ...


# 208b81bb 22-Oct-2019 Konstantin Belousov <kib@FreeBSD.org>

Add VV_VMSIZEVNLOCK flag.

The flag specifies that vm_fault() handler should check the vnode'
vm_object size under the vnode lock. It is converted into the object'
OBJ_SIZEVNLOCK flag in vnode_pager

Add VV_VMSIZEVNLOCK flag.

The flag specifies that vm_fault() handler should check the vnode'
vm_object size under the vnode lock. It is converted into the object'
OBJ_SIZEVNLOCK flag in vnode_pager_alloc().

Tested by: pho
Reviewed by: markj
Sponsored by: The FreeBSD Foundation
MFC after: 2 weeks
Differential revision: https://reviews.freebsd.org/D21883

show more ...


# 0012f373 15-Oct-2019 Jeff Roberson <jeff@FreeBSD.org>

(4/6) Protect page valid with the busy lock.

Atomics are used for page busy and valid state when the shared busy is
held. The details of the locking protocol and valid and dirty
synchronization are

(4/6) Protect page valid with the busy lock.

Atomics are used for page busy and valid state when the shared busy is
held. The details of the locking protocol and valid and dirty
synchronization are in the updated vm_page.h comments.

Reviewed by: kib, markj
Tested by: pho
Sponsored by: Netflix, Intel
Differential Revision: https://reviews.freebsd.org/D21594

show more ...


# f993ed2f 09-Sep-2019 Dimitry Andric <dim@FreeBSD.org>

Merge ^/head r351732 through r352104.


12345678910>>...32