Tauist. Bit twiddler. Advocate for continued logarithms.
User Details
- User Since
- Jun 30 2017, 3:18 PM (394 w, 3 d)
Wed, Jan 15
Tue, Jan 14
Undo the parts of the last change about moving the iterator initialization.
Mon, Jan 13
In vm_map.c, have page index jump ahead with a superpage jump-ahead. Initialize the cursor before acquiring a read lock.
Sun, Jan 12
Fix unused variable problem.
Rebase. Resolve a conflict.
Thu, Jan 9
Abandon VM_ALLOC_NOCREAT_LT.
Wed, Jan 8
Use VM_RADIX_FORALL in kcov_free.
Use VM_RADIX_FORALL_FROM one more place.
Tue, Jan 7
Mon, Jan 6
Fri, Jan 3
Define and use VM_RADIX_FOREACH macros. Initialize a couple of iterators before acquiring read locks.
Dec 18 2024
This is a challenging patch to review, and every time I start to review it, I want to rewrite it to make it clearer. I'll hold off one more time. But I really don't think that enums or switches with fallthroughs really help much.
Dec 10 2024
Dec 9 2024
A code reformat to (slightly) reduce the diff size.
Dec 8 2024
Dec 7 2024
Dec 5 2024
Dec 4 2024
Dec 2 2024
Dec 1 2024
The timing results for 8-10 buildworlds, with and without this patch. Without:
Nov 29 2024
Drop the vm_page_iter_free() parts committed elsewhere.
Nov 28 2024
Add a panic when a page duplication is found. Match param names between definition and declaration.
Comments in vm_reserv.c need to be updated to reflect this change.
Nov 27 2024
Define inline pctrie_setpop() to flip popmap bits from 0 to 1 and assert that they have become set. Use it in 3 places.
Nov 26 2024
Nov 25 2024
Remove changes to vm_page_iter_remove.
Nov 24 2024
Pass the removed page to vm_page_iter_remove, and functions that use it. Update comments. Reorder declarations.
Apply suggestions from feedback on D46724 to improve performance.
Nov 23 2024
Drop the fix that @kib has committed separately.
Nov 21 2024
Drop length argument to cdev_mgtdev_pager_free_pages().
Fix typo in tegra_bo.c.
Nov 20 2024
Nov 18 2024
Use vm_radix_iter_found in swap_pager.c. Tweak the pctrie.h implement to avoid a pointless null check.
Nov 17 2024
Avoid the object != NULL check in vm_page_iter_free.
Nov 16 2024
alc update 11/16.
Nov 15 2024
Drop the bool argument from vm_page_free_toq. Turn vm_page_free_toq into a wrapper for the real implementation function, to which it passes 'true' as the bool argument.
Update some comments.
Nov 14 2024
Remove changes to subr_pctrie.c. Pass the iterator to vm_page_rename() to allow the page to be removed with the iterator and the appropriate page number.
Nov 13 2024
Rename vm_page_object_remove.
Rearrange into vm_page_iter_remove and vm_page_iter_free iter-based substitutes for the iter-less equivalents.
Nov 9 2024
Performance test:
Ran 12 buildworlds, without and with this change, on an amd64 machine to verify it did not harm performance there.
Without:
Nov 5 2024
Nov 4 2024
Rebase. Undo some function reordering that makes this reviewer easier, even if it preserves some odd ordering.
Nov 3 2024
Nov 1 2024
Oct 30 2024
Refresh.
If you're inserting batch [a,b,...,y.z], and if you began by inserting a and z with normal iter-insert, then your BATCH_SPLIT case would never happen and some of the complexity of batch_insert could be reduced. True or false?
Oct 28 2024
In D47036, I put it after vm_radix_iter_step, mostly because PCTRIE_ITER_LOOKUP_LE comes shortly after PCTRIE_ITER_STEP_GE in pctrie.h. 'step' and 'jump' are built on top of lookup_ge, so I kept them grouped with lookup_ge.