#
c1d12b92 |
| 08-Dec-2024 |
Doug Moore <dougm@FreeBSD.org> |
vm_page: pass page to iter_remove
Pass the to-be-freed page to vm_page_iter_remove as a parameter, rather than computing it from the iterator parameter, to improve performance.
Reviewed by: alc Dif
vm_page: pass page to iter_remove
Pass the to-be-freed page to vm_page_iter_remove as a parameter, rather than computing it from the iterator parameter, to improve performance.
Reviewed by: alc Differential Revision: https://reviews.freebsd.org/D47730
show more ...
|
Revision tags: release/14.2.0 |
|
#
c296ac7e |
| 27-Nov-2024 |
Alan Cox <alc@FreeBSD.org> |
vm: Optimize page rename
Rename vm_page_rename() to vm_page_iter_rename() to reflect its reimplementation using iterators, and pass the page to this function rather than spending clock cycles lookin
vm: Optimize page rename
Rename vm_page_rename() to vm_page_iter_rename() to reflect its reimplementation using iterators, and pass the page to this function rather than spending clock cycles looking it up. Change its return value from 0/1 to a bool.
Reviewed by: dougm, markj Differential Revision: https://reviews.freebsd.org/D47829
show more ...
|
#
ff4c19bb |
| 25-Nov-2024 |
Doug Moore <dougm@FreeBSD.org> |
vm_page: pass page to iter_free
Pass the to-be-freed page to vm_page_iter_free as a parameter, rather than computing it from the iterator parameter, to improve performance.
Sort declarations of pag
vm_page: pass page to iter_free
Pass the to-be-freed page to vm_page_iter_free as a parameter, rather than computing it from the iterator parameter, to improve performance.
Sort declarations of page_iter functions in vm_page.h.
Reviewed by: alc Differential Revision: https://reviews.freebsd.org/D47727
show more ...
|
#
5b78ff83 |
| 20-Nov-2024 |
Doug Moore <dougm@FreeBSD.org> |
vm_page: remove pages with iterators
Use pctrie iterators for removing some page sequences from radix trees, to avoid repeated searches from the tree root.
Rename vm_page_object_remove to vm_page_r
vm_page: remove pages with iterators
Use pctrie iterators for removing some page sequences from radix trees, to avoid repeated searches from the tree root.
Rename vm_page_object_remove to vm_page_remove_radixdone, and remove from it the responsibility for removing a page from its radix tree, and pass that responsibility on to its callers.
For one of those callers, vm_page_rename, pass a pages pctrie_iter, rather than a page, and use the iterator to remove the page from its radix tree.
Define functions vm_page_iter_remove() and vm_page_iter_free() that are like vm_page_remove() and vm_page_free(), respectively, except that they take an iterator as parameter rather than a page, and use the iterator to remove the page from the radix tree instead of searching the radix tree. Function vm_page_iter_free() assumes that the page is associated with an object, and calls vm_page_free_object_prep to do the part of vm_page_free_prep that is object-related.
In functions vm_object_split and vm_object_collapse_scan, use a pctrie_iter to walk over the pages of the object, and use vm_page_rename and vm_radix_iter_remove modify the radix tree without searching for pages. In vm_object_page_remove and _kmem_unback, use a pctrie_iter and vm_page_iter_free to remove the page from the radix tree.
Reviewed by: markj (prevoius version) Tested by: pho Differential Revision: https://reviews.freebsd.org/D46724
show more ...
|
#
580340db |
| 04-Nov-2024 |
Konstantin Belousov <kib@FreeBSD.org> |
vm_object: do not assume that un_pager.devp.dev is cdev
It is subtype-specific handle. Mark OBJT_DEVICE that do fill cdev into the handle, with a new object flag OBJ_CDEVH.
PR: 282533 Reviewed by:
vm_object: do not assume that un_pager.devp.dev is cdev
It is subtype-specific handle. Mark OBJT_DEVICE that do fill cdev into the handle, with a new object flag OBJ_CDEVH.
PR: 282533 Reviewed by: markj Sponsored by: The FreeBSD Foundation MFC after: 1 week Differential revision: https://reviews.freebsd.org/D47443
show more ...
|
#
f0c07fe3 |
| 04-Nov-2024 |
Konstantin Belousov <kib@FreeBSD.org> |
device_pager: rename the un_pager.devp.dev field to handle
because it is not neccessary struct cdev *.
Reviewed by: markj Sponsored by: The FreeBSD Foundation MFC after: 1 week Differential revisio
device_pager: rename the un_pager.devp.dev field to handle
because it is not neccessary struct cdev *.
Reviewed by: markj Sponsored by: The FreeBSD Foundation MFC after: 1 week Differential revision: https://reviews.freebsd.org/D47443
show more ...
|
#
34951b0b |
| 24-Oct-2024 |
Doug Moore <dougm@FreeBSD.org> |
swap_pager: move scan_all_shadowed, use iterators
Move vm_object_scan_all_shadowed from vm_object.c to swap_pager.c, and rename it. In the moved function, use vm_page and swblk iterators to advance
swap_pager: move scan_all_shadowed, use iterators
Move vm_object_scan_all_shadowed from vm_object.c to swap_pager.c, and rename it. In the moved function, use vm_page and swblk iterators to advance through the objects. Avoid checking a backing page for busyness or validity more than once, or when it is beyond the upper bound of the scan.
Reviewed by: kib, markj Tested by: pho Differential Revision: https://reviews.freebsd.org/D47150
show more ...
|
#
a86373bc |
| 22-Oct-2024 |
Mark Johnston <markj@FreeBSD.org> |
vm_object: Report laundry pages in kinfo_vmobject
Reviewed by: bnovkov, kib MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D47214
|
#
5fc34379 |
| 21-Oct-2024 |
Mark Johnston <markj@FreeBSD.org> |
vm_object: Assert that managed pages are on pagequeues when freeing
Reviewed by: dougm, kib MFC after: 2 weeks Differential Revision: https://reviews.freebsd.org/D46945
|
#
d9daa28c |
| 10-Oct-2024 |
Konstantin Belousov <kib@FreeBSD.org> |
sysctl vm.vm_objects: report cdev name for device-backed objects
Reviewed by: emaste. markj Sponsored by: The FreeBSD Foundation MFC after: 1 week Differential revision: https://reviews.freebsd.org/
sysctl vm.vm_objects: report cdev name for device-backed objects
Reviewed by: emaste. markj Sponsored by: The FreeBSD Foundation MFC after: 1 week Differential revision: https://reviews.freebsd.org/D47038
show more ...
|
#
b0b18b57 |
| 07-Oct-2024 |
Konstantin Belousov <kib@FreeBSD.org> |
sysctl vm.objects: report objects backing posix shm segments
Add the KVMO_FLAG_POSIXSHM flag. Fill the path.
Reviewed by: markj Sponsored by: The FreeBSD Foundation MFC after: 1 week Differential
sysctl vm.objects: report objects backing posix shm segments
Add the KVMO_FLAG_POSIXSHM flag. Fill the path.
Reviewed by: markj Sponsored by: The FreeBSD Foundation MFC after: 1 week Differential revision: https://reviews.freebsd.org/D46970
show more ...
|
#
71a66883 |
| 07-Oct-2024 |
Konstantin Belousov <kib@FreeBSD.org> |
kinfo_{vmobject,vmentry}: move copy of pathes into the vnode handling scope
Reviewed by: markj Sponsored by: The FreeBSD Foundation MFC after: 1 week Differential revision: https://reviews.freebsd.o
kinfo_{vmobject,vmentry}: move copy of pathes into the vnode handling scope
Reviewed by: markj Sponsored by: The FreeBSD Foundation MFC after: 1 week Differential revision: https://reviews.freebsd.org/D46970
show more ...
|
#
6a3fbdc7 |
| 05-Oct-2024 |
Konstantin Belousov <kib@FreeBSD.org> |
kinfo_vmobject: report backing object of the SysV shm segments
Use reserved work for kvo_flags. Mark such object with KVMO_FLAG_SYSVSHM. Provide segment key in kvo_vn_fileid, vnode never can back sh
kinfo_vmobject: report backing object of the SysV shm segments
Use reserved work for kvo_flags. Mark such object with KVMO_FLAG_SYSVSHM. Provide segment key in kvo_vn_fileid, vnode never can back shm mapping. Provide sequence number in kvo_vn_fsid_freebsd11.
Reviewed by: markj Sponsored by: The FreeBSD Foundation MFC after: 1 week Differential revision: https://reviews.freebsd.org/D46959
show more ...
|
#
c3d743a6 |
| 19-Sep-2024 |
Doug Moore <dougm@FreeBSD.org> |
vm_object: use reclaim callback to free pages
Instead of iterating over object->memq to free pages, use a callback in VM_RADIX_PCTRIE_RECLAIM_CALLBACK to do it.
Reviewed by: rlibby Differential Rev
vm_object: use reclaim callback to free pages
Instead of iterating over object->memq to free pages, use a callback in VM_RADIX_PCTRIE_RECLAIM_CALLBACK to do it.
Reviewed by: rlibby Differential Revision: https://reviews.freebsd.org/D45588
show more ...
|
Revision tags: release/13.4.0 |
|
#
6d86bdf1 |
| 02-Aug-2024 |
Doug Moore <dougm@FreeBSD.org> |
vm_pageout: shrink pageout array
The array passed to vm_pageout_flush, and constructed in a middle-out fashion, can never use array element zero. Shrink the array by one, and reduce indices by one,
vm_pageout: shrink pageout array
The array passed to vm_pageout_flush, and constructed in a middle-out fashion, can never use array element zero. Shrink the array by one, and reduce indices by one, to save that bit of stack space. In the vm_object version, make the accounting look more like the pageout version.
Reported by: alc Reviewed by: kib Differential Revision: https://reviews.freebsd.org/D46208
show more ...
|
#
4113ea34 |
| 29-Jul-2024 |
Doug Moore <dougm@FreeBSD.org> |
vm_object: speed up page collect flush
vm_pageout_cluster prepares an array for passing to vm_pageout_flush by starting in the middle of a double-sized array and working out from the middle. Using t
vm_object: speed up page collect flush
vm_pageout_cluster prepares an array for passing to vm_pageout_flush by starting in the middle of a double-sized array and working out from the middle. Using the same technique in vm_object_page_collect_flush saves one loop that traverses a piece of linked list, and 80 bytes of amd64 binary code.
Reviewed by: kib Differential Revision: https://reviews.freebsd.org/D46173
show more ...
|
#
60847070 |
| 05-Jun-2024 |
Alan Cox <alc@FreeBSD.org> |
vm: Eliminate a redundant call to vm_reserv_break_all()
When vm_object_collapse() was changed in commit 98087a0 to call vm_object_terminate(), rather than destroying the object directly, its call to
vm: Eliminate a redundant call to vm_reserv_break_all()
When vm_object_collapse() was changed in commit 98087a0 to call vm_object_terminate(), rather than destroying the object directly, its call to vm_reserv_break_all() should have been removed, as vm_object_terminate() calls vm_reserv_break_all().
Reviewed by: kib, markj MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D45495
show more ...
|
Revision tags: release/14.1.0, release/13.3.0 |
|
#
38f5f2a4 |
| 13-Jan-2024 |
Konstantin Belousov <kib@FreeBSD.org> |
sysctl vm.objects/vm.swap_objects: do not fill vnode info if jailed
Reported by: Shawn Webb via markj Reviewed by: jhb, markj Sponsored by: The FreeBSD Foundation MFC after: 1 week
|
#
69748e62 |
| 13-Jan-2024 |
Konstantin Belousov <kib@FreeBSD.org> |
vm/vm_object.c: minor cleanup
Remove sys/cdefs.h and sys/socket.h includes. Order sys/ includes alphabetically. Do not check for NULL before free().
Reviewed by: markj Sponsored by: The FreeBSD Fou
vm/vm_object.c: minor cleanup
Remove sys/cdefs.h and sys/socket.h includes. Order sys/ includes alphabetically. Do not check for NULL before free().
Reviewed by: markj Sponsored by: The FreeBSD Foundation MFC after: 1 week DIfferential revision: https://reviews.freebsd.org/D43444
show more ...
|
#
6f3e9bac |
| 16-Dec-2023 |
Pawel Jakub Dawidek <pjd@FreeBSD.org> |
vm: Plug umtx shm object leak.
Reviewed by: kib Approved by: oshogbo MFC after: 1 week Sponsored by: Fudo Security Differential Revision: https://reviews.freebsd.org/D43073
|
#
29363fb4 |
| 23-Nov-2023 |
Warner Losh <imp@FreeBSD.org> |
sys: Remove ancient SCCS tags.
Remove ancient SCCS tags from the tree, automated scripting, with two minor fixup to keep things compiling. All the common forms in the tree were removed with a perl s
sys: Remove ancient SCCS tags.
Remove ancient SCCS tags from the tree, automated scripting, with two minor fixup to keep things compiling. All the common forms in the tree were removed with a perl script.
Sponsored by: Netflix
show more ...
|
Revision tags: release/14.0.0 |
|
#
685dc743 |
| 16-Aug-2023 |
Warner Losh <imp@FreeBSD.org> |
sys: Remove $FreeBSD$: one-line .c pattern
Remove /^[\s*]*__FBSDID\("\$FreeBSD\$"\);?\s*\n/
|
#
3e04ae43 |
| 14-Jul-2023 |
Doug Moore <dougm@FreeBSD.org> |
vm_radix_init: use initializer
Several vm_radix tries are not initialized with vm_radix_init. That works, for now, since static initialization zeroes the root field anyway, but if initialization cha
vm_radix_init: use initializer
Several vm_radix tries are not initialized with vm_radix_init. That works, for now, since static initialization zeroes the root field anyway, but if initialization changes, these tries will fail. Add missing initializer calls.
Reviewed by: alc, kib, markj Differential Revision: https://reviews.freebsd.org/D40971
show more ...
|
Revision tags: release/13.2.0 |
|
#
c3821149 |
| 15-Feb-2023 |
Ed Maste <emaste@FreeBSD.org> |
Drop space in "vm object" lock name to improve wchan
Lock names are shown in top as a `*` followed by the first five characters of the name. `*vmobj` a little more obvious and easier to search for
Drop space in "vm object" lock name to improve wchan
Lock names are shown in top as a `*` followed by the first five characters of the name. `*vmobj` a little more obvious and easier to search for than `*vm ob`.
Differential Revision: https://reviews.freebsd.org/D36264
show more ...
|
#
6189672e |
| 18-Jan-2023 |
Konstantin Belousov <kib@FreeBSD.org> |
Handle ERELOOKUP from VOP_FSYNC() in several other places
We need to repeat the operation if the vnode was relocked.
Reported and reviewed by: markj Tested by: pho Sponsored by: The FreeBSD Foundat
Handle ERELOOKUP from VOP_FSYNC() in several other places
We need to repeat the operation if the vnode was relocked.
Reported and reviewed by: markj Tested by: pho Sponsored by: The FreeBSD Foundation MFC after: 1 week Differential revision: https://reviews.freebsd.org/D38114
show more ...
|