Page MenuHomeFreeBSD

dougm (Doug Moore)
User

Projects

User does not belong to any projects.

User Details

User Since
Jun 30 2017, 3:18 PM (430 w, 4 d)

Tauist. Bit twiddler. Advocate for continued logarithms.

Recent Activity

Jul 29 2025

dougm updated the diff for D51060: pctrie: move the root to the latest search node.

Abandon an attempt to use the synchronization that comes with writing a new root after modifying the pctrie to avoid synchronization when performing the last write that modified a node of the pctrie, as this attempt is based on my misunderstanding of the memory consistency model, as reported verbally by @alc.

Jul 29 2025, 4:01 AM

Jul 23 2025

dougm updated the test plan for D51237: vm: don't use iterators for page allocation.
Jul 23 2025, 4:20 AM

Jul 18 2025

dougm added a reviewer for D51237: vm: don't use iterators for page allocation: alc.
Jul 18 2025, 11:21 PM

Jul 12 2025

dougm updated the diff for D51237: vm: don't use iterators for page allocation.

Avoid extra lookup for fault. Use page_lookup().

Jul 12 2025, 9:22 PM

Jul 10 2025

dougm requested review of D51237: vm: don't use iterators for page allocation.
Jul 10 2025, 9:37 PM
dougm committed rG8adb3acb63ee: pctrie: leave iter at root after ge_lookup failure (authored by dougm).
pctrie: leave iter at root after ge_lookup failure
Jul 10 2025, 8:18 AM
dougm closed D51232: pctrie: leave pctrie top as current after [gl]e_lookup failure.
Jul 10 2025, 8:18 AM
dougm updated the diff for D51232: pctrie: leave pctrie top as current after [gl]e_lookup failure.

Handle the case where the pctrie is empty.

Jul 10 2025, 2:43 AM
dougm requested review of D51232: pctrie: leave pctrie top as current after [gl]e_lookup failure.
Jul 10 2025, 2:40 AM

Jul 9 2025

dougm updated the diff for D51058: pctrie: define lookup_readonly.

Update to account for call to vm_page_lookup that was dropped from vm_fault.c.

Jul 9 2025, 8:47 PM

Jul 8 2025

dougm updated the diff for D51162: vm_fault: lookup page ranges for copy_entry.

Avoid using range-storing arrays too large for the kernel stack.

Jul 8 2025, 6:53 AM

Jul 6 2025

dougm committed rG2d6185cf87e8: vm_fault: drop never-true busy_sleep test (authored by dougm).
vm_fault: drop never-true busy_sleep test
Jul 6 2025, 8:47 PM
dougm closed D51179: vm_fault: drop never-true busy_sleep test.
Jul 6 2025, 8:47 PM
dougm added a comment to D51179: vm_fault: drop never-true busy_sleep test.
In D51179#1168320, @kib wrote:

Then why not convert the check into the assertion in the final patch too? IMO it is good to have, since the path from lookup to this busy_sleep() line is somewhat long.

Jul 6 2025, 8:45 PM
dougm added a comment to D51179: vm_fault: drop never-true busy_sleep test.
In D51179#1168320, @kib wrote:

Then why not convert the check into the assertion in the final patch too? IMO it is good to have, since the path from lookup to this busy_sleep() line is somewhat long.

Jul 6 2025, 8:44 PM
dougm requested review of D51179: vm_fault: drop never-true busy_sleep test.
Jul 6 2025, 4:41 PM

Jul 5 2025

dougm added a comment to D51060: pctrie: move the root to the latest search node.

If a pointer to the top of the pctrie were preserved, when would a search begin from where the last search left off, and when would a search begin from the top of the pctrie?

Jul 5 2025, 7:02 PM
dougm updated the diff for D51058: pctrie: define lookup_readonly.

Avoid defining new pctrie methods; just copy the pctrie (root) before the search and search the copy so that only the root of the copy can be modified.

Jul 5 2025, 6:13 PM
dougm requested review of D51162: vm_fault: lookup page ranges for copy_entry.
Jul 5 2025, 12:14 AM

Jul 3 2025

dougm added a comment to D51060: pctrie: move the root to the latest search node.
In D51060#1167241, @kib wrote:

The name pt_root and the term root is confusing IMO. At least it is worth adding a comment explaining the pt_root is some node, not necessary root.

Jul 3 2025, 4:41 PM
dougm added inline comments to D51060: pctrie: move the root to the latest search node.
Jul 3 2025, 4:32 PM
dougm added a comment to D51060: pctrie: move the root to the latest search node.
In D51060#1167200, @kib wrote:

What this revision basically does is changing the semantic of the pt_root. Instead being a real root of the trie, it becomes the starting point for search. The argument for not needed the real root is that we can always climb up to it from any node, following pn_parent. Am I right?

Jul 3 2025, 6:30 AM

Jul 1 2025

dougm updated the diff for D51060: pctrie: move the root to the latest search node.

Enhance more comments.

Jul 1 2025, 9:46 PM
dougm updated the diff for D51060: pctrie: move the root to the latest search node.

Update some comments. Fix some formatting. Add a function for stepping from one leaf to the next in the trie.

Jul 1 2025, 9:08 PM

Jun 28 2025

dougm committed rG3a33e39edd48: pctrie: correct iter node after node allocation (authored by dougm).
pctrie: correct iter node after node allocation
Jun 28 2025, 6:51 AM
dougm closed D51059: pctrie: correct iter node after node allocation.
Jun 28 2025, 6:51 AM

Jun 26 2025

dougm committed rG725eb0f85ea9: pctrie: drop freenode param to pctrie_remove (authored by dougm).
pctrie: drop freenode param to pctrie_remove
Jun 26 2025, 10:55 PM
dougm closed D51057: pctrie: drop freenode param to pctrie_remove.
Jun 26 2025, 10:55 PM
dougm updated the diff for D51058: pctrie: define lookup_readonly.

Update comments, asserts, convert one more lookup to lookup_readonly.

Jun 26 2025, 8:21 PM
dougm added inline comments to D51058: pctrie: define lookup_readonly.
Jun 26 2025, 7:57 PM
dougm added reviewers for D51060: pctrie: move the root to the latest search node: alc, kib, markj.
Jun 26 2025, 7:04 AM
dougm added reviewers for D51059: pctrie: correct iter node after node allocation: alc, kib, markj.
Jun 26 2025, 7:04 AM
dougm added reviewers for D51058: pctrie: define lookup_readonly: alc, kib, markj.
Jun 26 2025, 7:03 AM
dougm added reviewers for D51057: pctrie: drop freenode param to pctrie_remove: alc, markj, kib.
Jun 26 2025, 7:03 AM
dougm requested review of D51060: pctrie: move the root to the latest search node.
Jun 26 2025, 7:02 AM
dougm requested review of D51059: pctrie: correct iter node after node allocation.
Jun 26 2025, 6:48 AM
dougm requested review of D51058: pctrie: define lookup_readonly.
Jun 26 2025, 6:44 AM
dougm requested review of D51057: pctrie: drop freenode param to pctrie_remove.
Jun 26 2025, 6:40 AM
dougm committed rG44d6f4b314ad: pctrie: use one lookup function (authored by dougm).
pctrie: use one lookup function
Jun 26 2025, 6:28 AM
dougm closed D50839: pctrie: use one lookup function.
Jun 26 2025, 6:28 AM

Jun 25 2025

dougm added reviewers for D50839: pctrie: use one lookup function: markj, kib.
Jun 25 2025, 6:32 AM

Jun 22 2025

dougm added inline comments to D50970: amd64 pmap: eliminate two explicit panics on low mem conditions.
Jun 22 2025, 6:24 PM
dougm added inline comments to D50970: amd64 pmap: eliminate two explicit panics on low mem conditions.
Jun 22 2025, 8:03 AM

Jun 16 2025

dougm closed D50861: vm_map: drop simplify_entry.9.
Jun 16 2025, 5:23 AM

Jun 15 2025

dougm committed rGc48077d54da6: vm_map: drop vm_map_simplify_entry.9 (authored by dougm).
vm_map: drop vm_map_simplify_entry.9
Jun 15 2025, 9:24 PM
dougm updated the diff for D50861: vm_map: drop simplify_entry.9.

Update ObsoleteFiles.inc.

Jun 15 2025, 9:09 PM
dougm requested review of D50861: vm_map: drop simplify_entry.9.
Jun 15 2025, 7:39 AM

Jun 14 2025

dougm committed rG7458fac87831: pctrie: simplify lookup_node (authored by dougm).
pctrie: simplify lookup_node
Jun 14 2025, 7:33 PM
dougm closed D50750: pctrie: simplify lookup_node .
Jun 14 2025, 7:33 PM

Jun 13 2025

dougm requested review of D50839: pctrie: use one lookup function.
Jun 13 2025, 8:02 PM

Jun 11 2025

dougm updated the diff for D50750: pctrie: simplify lookup_node .
Jun 11 2025, 10:00 PM

Jun 10 2025

dougm updated the diff for D50750: pctrie: simplify lookup_node .

Discard the "leaf parents of root" part.

Jun 10 2025, 8:10 PM

Jun 9 2025

dougm requested review of D50750: pctrie: simplify lookup_node .
Jun 9 2025, 7:58 AM

Jun 6 2025

dougm committed rG7908b5df1abd: pctrie_lookup_node: assume parent_out != NULL (authored by dougm).
pctrie_lookup_node: assume parent_out != NULL
Jun 6 2025, 8:25 PM
dougm closed D50729: pctrie_lookup_node: assume parent_out != NULL.
Jun 6 2025, 8:25 PM
dougm requested review of D50729: pctrie_lookup_node: assume parent_out != NULL.
Jun 6 2025, 6:16 PM

Jun 2 2025

dougm added a comment to D50640: uma: Use a hand-rolled bitset implementation.

Do you mean that slab->us_free should still have type int *? Then, is the idea that BIT_* would only access the low 32 bits of each bitset (us_free and slab_dbg_bits()), so it's okay to let them overlap from the perspective of BIT_*?

Jun 2 2025, 11:06 PM
dougm added a comment to D50640: uma: Use a hand-rolled bitset implementation.

Could you shrink uma_slab at still use BITSET?

Jun 2 2025, 7:38 PM

Jun 1 2025

dougm accepted D50515: vm_page: retire its listq field.
Jun 1 2025, 11:42 PM

May 31 2025

dougm committed rG6dd1c0643e9c: vm_page: use lookup_ge in grab_valid_iter() (authored by dougm).
vm_page: use lookup_ge in grab_valid_iter()
May 31 2025, 6:41 PM
dougm closed D50601: vm_page: use lookup_ge in grab_valid_iter().
May 31 2025, 6:41 PM
dougm committed rGe3bc87ab1b66: vm_pageout: fix pageout_flush (authored by dougm).
vm_pageout: fix pageout_flush
May 31 2025, 6:04 PM
dougm closed D50622: vm_pageout: fix pageout_flush.
May 31 2025, 6:04 PM
dougm requested review of D50622: vm_pageout: fix pageout_flush.
May 31 2025, 2:42 AM

May 30 2025

dougm added inline comments to D50601: vm_page: use lookup_ge in grab_valid_iter().
May 30 2025, 9:24 PM
dougm committed rGf2a193a967e3: vm_pageout: reduce number of flush() params (authored by dougm).
vm_pageout: reduce number of flush() params
May 30 2025, 9:10 PM
dougm closed D50568: vm_pageout: reduce number of flush() params.
May 30 2025, 9:09 PM
dougm updated the diff for D50568: vm_pageout: reduce number of flush() params.
May 30 2025, 6:20 PM
dougm updated the diff for D50568: vm_pageout: reduce number of flush() params.
May 30 2025, 4:45 PM
dougm updated the diff for D50601: vm_page: use lookup_ge in grab_valid_iter().
May 30 2025, 4:35 PM

May 29 2025

dougm updated the diff for D50601: vm_page: use lookup_ge in grab_valid_iter().

Don't let ahead exceed after.

May 29 2025, 11:09 PM
dougm updated the diff for D50601: vm_page: use lookup_ge in grab_valid_iter().

@alc advises that having lookup_range return a positive value in this case will be rare, and testing shows that. So, instead of using lookup_range to find a bunch of pages, try using lookup_ge to quickly identify a range of missing pages.

May 29 2025, 11:00 PM
dougm requested review of D50601: vm_page: use lookup_ge in grab_valid_iter().
May 29 2025, 6:54 PM

May 28 2025

dougm added inline comments to D50515: vm_page: retire its listq field.
May 28 2025, 7:00 AM
dougm requested review of D50568: vm_pageout: reduce number of flush() params.
May 28 2025, 6:02 AM
dougm committed rG18a62137df40: vm_object: use lookup_range in page_clean_flush (authored by dougm).
vm_object: use lookup_range in page_clean_flush
May 28 2025, 5:37 AM
dougm closed D50425: vm_object: use lookup_range in vm_object_page_clean_flush .
May 28 2025, 5:37 AM

May 27 2025

dougm added a comment to D50515: vm_page: retire its listq field.

If that's your regular user id, then the result is presumably the same. The killpg4.sh test assumes that nothing else on the system is running as that user. So, the problem isn't limited to "root" as I claimed earlier.

May 27 2025, 4:14 PM
dougm added a comment to D50515: vm_page: retire its listq field.

Before running stress2 tests you have to run make in the test suite, and as part of that you are prompted to provide a value for the testuser variable. That gets saved in the file /tmp/stress2.d/$(hostname). If the saved value of testuser is "root", killpg4 will never terminate. You're supposed to ensure that testuser is a non-root user.

May 27 2025, 3:50 PM
dougm added a comment to D50515: vm_page: retire its listq field.

Did you figure out why killpg4.sh is hanging?

It always hangs for me. It has always hung for me. I haven't tried to diagnose it. I'm only ever running the tests as root. If I'm supposed to run the tests some other way, I'm not aware of it.

May 27 2025, 5:58 AM

May 26 2025

dougm updated the diff for D50425: vm_object: use lookup_range in vm_object_page_clean_flush .

Limit the changes to just vm_object_page_clean_flush. Provide more meaningful performance results.

May 26 2025, 9:58 PM
dougm added inline comments to D50515: vm_page: retire its listq field.
May 26 2025, 4:00 PM
dougm committed rG68e3875b623b: vm_object: drop reverse walk from collect_flush (authored by dougm).
vm_object: drop reverse walk from collect_flush
May 26 2025, 3:06 AM
dougm closed D50517: vm_object: drop reverse walk from collect_flush.
May 26 2025, 3:06 AM

May 25 2025

dougm committed rG142bcdad1f67: vm_page: drop mpred from grab_valid_iter() (authored by dougm).
vm_page: drop mpred from grab_valid_iter()
May 25 2025, 9:16 PM
dougm closed D50424: vm_page: drop mpred from grab_valid_iter().
May 25 2025, 9:15 PM

May 24 2025

dougm added a reviewer for D50424: vm_page: drop mpred from grab_valid_iter(): alc.
May 24 2025, 10:06 PM
dougm requested review of D50517: vm_object: drop reverse walk from collect_flush.
May 24 2025, 9:59 PM

May 21 2025

dougm updated the test plan for D50425: vm_object: use lookup_range in vm_object_page_clean_flush .
May 21 2025, 4:21 AM

May 20 2025

dougm added inline comments to D50425: vm_object: use lookup_range in vm_object_page_clean_flush .
May 20 2025, 9:45 PM
dougm reopened D50424: vm_page: drop mpred from grab_valid_iter().
May 20 2025, 8:18 AM
dougm updated the diff for D50424: vm_page: drop mpred from grab_valid_iter().

Fixed.

May 20 2025, 8:18 AM
dougm committed rGc8ffb90b1dd3: Revert "vm_page: drop mpred from grab_valid_iter()" (authored by dougm).
Revert "vm_page: drop mpred from grab_valid_iter()"
May 20 2025, 8:10 AM
dougm added a reverting change for rG0f941203ac51: vm_page: drop mpred from grab_valid_iter(): rGc8ffb90b1dd3: Revert "vm_page: drop mpred from grab_valid_iter()".
May 20 2025, 8:10 AM
dougm added a reverting change for D50424: vm_page: drop mpred from grab_valid_iter(): rGc8ffb90b1dd3: Revert "vm_page: drop mpred from grab_valid_iter()".
May 20 2025, 8:10 AM
dougm requested review of D50425: vm_object: use lookup_range in vm_object_page_clean_flush .
May 20 2025, 7:32 AM
dougm closed D50424: vm_page: drop mpred from grab_valid_iter().
May 20 2025, 7:16 AM
dougm committed rG0f941203ac51: vm_page: drop mpred from grab_valid_iter() (authored by dougm).
vm_page: drop mpred from grab_valid_iter()
May 20 2025, 7:16 AM
dougm requested review of D50424: vm_page: drop mpred from grab_valid_iter().
May 20 2025, 3:19 AM

May 19 2025

dougm committed rG26b3641f97d9: vm_page_grab_pages: avoid doomed range lookups (authored by dougm).
vm_page_grab_pages: avoid doomed range lookups
May 19 2025, 4:00 AM