User Details
- User Since
- Dec 14 2014, 5:52 AM (538 w, 4 d)
Yesterday
The performance results in the TEST PLAN are much improved over what I was seeing last fall for a similar set of changes, in particular, the results for vm_page_alloc(). Clearly, the improvements to the implementation of iterators in the last few months, particularly I suspect the elimination of the rather large array on the stack, have made a difference. Modulo any low-level changes/fixes to this patch that are needed, I would be very happy to see it committed. This is really the most critical step in my mind to the elimination of the two linked list pointers from struct vm_page, which I hope will yield a small but measurable performance improvement, particularly for pages allocated from superpage reservations.
Sat, Apr 5
Mon, Mar 24
Mon, Mar 17
The vm_page.h comment incorrectly says vm_page_alloc accepts VM_ALLOC_WAITOK.
Fri, Mar 14
Wed, Mar 12
Mar 10 2025
Mar 8 2025
Feb 28 2025
Feb 27 2025
Feb 22 2025
Feb 16 2025
Feb 15 2025
Dec 9 2024
Dec 8 2024
Dec 7 2024
This change increased the cycles spent in both vm_object_split() and vm_object_collapse_scan() during a buildworld. It appears that we're not moving enough pages to overcome the startup costs of the iterator.
Shouldn't this be abandoned?
Dec 6 2024
Dec 5 2024
Nov 30 2024
Nov 29 2024
Update in response to reviewer comments.
Update in response to reviewer comments.
Nov 28 2024
Nov 27 2024
Nov 25 2024
Let's limit this change to vm_page_iter_free. It reduces the average cycles in _kmem_unback and vm_object_page_remove by 7% and 5.3%, respectively.
Nov 24 2024
By itself, this is going to be slower. This should be a part of a larger patch that removes the memq, so that we can evaluate whether the elimination of the memq makes up for the higher cost of the iterators.
Nov 23 2024
Nov 20 2024
Nov 17 2024
Nov 16 2024
Cycles to perform a 2MB aligned vm_page_alloc_contig() for shm_create_largepage() on a Ryzen 5900X:
x base + iter +------------------------------------------------------------------------------+ | + x | | ++ x | | ++ xx | | ++++ + xxx xx x| ||_MA___| |__MA____| | +------------------------------------------------------------------------------+ N Min Max Median Avg Stddev x 10 16813 17866 16989.5 17074.6 294.94715 + 10 12691 13496 12759 12833.1 239.58643 Difference at 95.0% confidence -4241.5 +/- 252.466 -24.841% +/- 1.2701% (Student's t, pooled s = 268.696)
Nov 13 2024
Nov 12 2024
Is this related to the KASSERT that was recently added to vm_object_terminate_single_page?
Oct 30 2024
Oct 27 2024
To be clear, there is no question that this function will get used, so adding it sooner, rather than later, would be okay with me.
I'm looking at patches from both you and @dougm that define this function. However, each of you adds it in a different location within the file. :-)
Oct 26 2024
Incorporating D47277 has increased the average number of cycles to perform vm_page_alloc() to 1325.
Incorporating D47277 yielded the lowest average cycles in vm_page_alloc_contig() that I've seen.
Switching from ..._lookup_le() to ..._lookup_lt() increased the average number of cycles in vm_page_alloc().
D47207 has reduced the average number of cycles to perform vm_page_alloc() from 1295 to 1265.
Oct 19 2024
Oct 18 2024
Oct 15 2024
Oct 11 2024
Oct 10 2024
Oct 9 2024
Oct 8 2024
The test plan should say what the units are.
Oct 7 2024
Can you separate out the function renames, and commit that first.
Oct 6 2024
There are too many things going on here at once. Can you generate a simple patch that fixes the correctness bug that Mark pointed out.