Page MenuHomeFreeBSD

alc (Alan Cox)
User

Projects

User Details

User Since
Dec 14 2014, 5:52 AM (610 w, 1 d)

Recent Activity

Tue, Aug 18

alc updated the diff for D58917: arm64 pmap: optimize TLB management by pmap_update_entry().

Revise a comment.

Tue, Aug 18, 7:48 PM
alc added a comment to D58917: arm64 pmap: optimize TLB management by pmap_update_entry().
In D58917#1352088, @kib wrote:

Does arm64 use recursive mapping? If yes, could the function be used on recursive mapping?

Tue, Aug 18, 7:28 PM
alc updated the summary of D58917: arm64 pmap: optimize TLB management by pmap_update_entry().
Tue, Aug 18, 7:12 PM
alc added inline comments to D58917: arm64 pmap: optimize TLB management by pmap_update_entry().
Tue, Aug 18, 6:47 PM
alc added inline comments to D58917: arm64 pmap: optimize TLB management by pmap_update_entry().
Tue, Aug 18, 6:39 PM
alc updated the summary of D58917: arm64 pmap: optimize TLB management by pmap_update_entry().
Tue, Aug 18, 5:30 PM
alc requested review of D58917: arm64 pmap: optimize TLB management by pmap_update_entry().
Tue, Aug 18, 5:29 PM
alc committed rG189ee41b6cc3: arm64 vfp: eliminate nested critical sections (authored by alc).
arm64 vfp: eliminate nested critical sections
Tue, Aug 18, 6:57 AM
alc closed D58859: arm64 vfp: eliminate nested critical sections.
Tue, Aug 18, 6:57 AM

Sat, Aug 15

alc updated the diff for D58859: arm64 vfp: eliminate nested critical sections.

Move td = curthread; out of the critical section.

Sat, Aug 15, 10:54 PM
alc added inline comments to D58859: arm64 vfp: eliminate nested critical sections.
Sat, Aug 15, 10:27 PM
alc requested review of D58859: arm64 vfp: eliminate nested critical sections.
Sat, Aug 15, 4:49 PM

Fri, Aug 14

alc committed rG6fa9c2b1d282: arm64: close a race in SVE register management (authored by alc).
arm64: close a race in SVE register management
Fri, Aug 14, 9:01 PM
alc closed D58723: arm64: close a race in SVE register management.
Fri, Aug 14, 9:00 PM
alc committed rG554978566508: arm64 pmap: use range-based TLBI instructions (authored by alc).
arm64 pmap: use range-based TLBI instructions
Fri, Aug 14, 8:18 PM
alc closed D58708: arm64 pmap: use range-based TLBI instructions.
Fri, Aug 14, 8:18 PM
alc added a member for Src Committers: alc.
Fri, Aug 14, 5:45 PM

Tue, Aug 11

alc accepted D58766: vm_object: Augment an assertion in vm_object_split().
Tue, Aug 11, 8:43 AM

Mon, Aug 10

alc added a comment to D58708: arm64 pmap: use range-based TLBI instructions.
In D58708#1347933, @alc wrote:

I ran a dozen -j8 buildworlds, each starting from an empty /usr/obj, with MALLOC_PRODUCTION enabled and LLVM assertions disabled on a GENERIC-NODEBUG kernel. Here is Claude's analysis of the data:

I wonder where these (ranged) invalidations are coming from, as I don't see very many when building on amd64. I guess they are mostly caused by break-before-make sequences triggered by L3C and L2 superpage promotion and demotion. I noticed that on amd64, munmap() will not trigger a ranged invalidation when unmapping a run of PTEs, we just call pmap_invalidate_all(). On arm64 this doesn't appear to be the case, it will use ranged invalidations. I wonder what fraction of ranged invalidations come from munmap() vs. promotion/demotion.

Mon, Aug 10, 5:12 PM

Sun, Aug 9

alc added inline comments to D58708: arm64 pmap: use range-based TLBI instructions.
Sun, Aug 9, 7:36 PM
alc added a comment to D58723: arm64: close a race in SVE register management.

I'm waiting to hear if @andrew has any comments or questions.

Sun, Aug 9, 7:11 PM
alc added a comment to D58708: arm64 pmap: use range-based TLBI instructions.

As an aside, as the appearance of the word "harness" in the previous comment suggests, when I had Claude reviewing the changes, it actually built a user-space test harness containing the loop to check that every page in the range would be the target of an invalidation. And, it temporarily introduced a few bugs in the loop to check that those bugs were detected. Just thought this was interesting.

Sun, Aug 9, 5:59 PM
alc added a comment to D58708: arm64 pmap: use range-based TLBI instructions.

I ran a dozen -j8 buildworlds, each starting from an empty /usr/obj, with MALLOC_PRODUCTION enabled and LLVM assertions disabled on a GENERIC-NODEBUG kernel. Here is Claude's analysis of the data:

The change is a win.
		before		after		delta
sys		1,070.67	1,012.58	−58.1 s (−5.43%)
user		23,801.46	23,816.08	+14.6 s (+0.06%)
user+sys	24,872.13	24,828.66	−43.5 s (−0.17%)
wall		3,221.63 (53:41.63)	3,214.40 (53:34.40)	−7.2 s (−0.22%)
Sun, Aug 9, 5:32 PM
alc added a comment to D58723: arm64: close a race in SVE register management.

Possibly vfp_restore_state_common() should rely on its caller to enter a critical section (with an assert).

Sun, Aug 9, 12:58 AM
alc updated the summary of D58723: arm64: close a race in SVE register management.
Sun, Aug 9, 12:39 AM

Sat, Aug 8

alc added a comment to D58708: arm64 pmap: use range-based TLBI instructions.

While the conversion from a macro to an inline pmap_s1_invalidate_loop() had no real effect, just a couple instructions changed, pmap_s1_invalidate_strided() is not being inlined in some places due to its size. In that case, we are not benefiting from final_only always being a constant, but I think that is something for a different patch to deal with.

Sat, Aug 8, 8:37 PM
alc added inline comments to D58708: arm64 pmap: use range-based TLBI instructions.
Sat, Aug 8, 8:02 AM
alc updated the diff for D58708: arm64 pmap: use range-based TLBI instructions.

Convert macro to __always_inline function.

Sat, Aug 8, 7:53 AM
alc requested review of D58723: arm64: close a race in SVE register management.
Sat, Aug 8, 6:42 AM

Fri, Aug 7

alc added inline comments to D58708: arm64 pmap: use range-based TLBI instructions.
Fri, Aug 7, 9:40 PM
alc updated the summary of D58708: arm64 pmap: use range-based TLBI instructions.
Fri, Aug 7, 8:59 PM
alc requested review of D58708: arm64 pmap: use range-based TLBI instructions.
Fri, Aug 7, 8:57 PM

Sat, Aug 1

alc accepted D58580: atomic: Implement atomic_{set,clear}_8 in _atomic_subword.h.
Sat, Aug 1, 9:57 PM

Jul 17 2026

alc accepted D58312: uma: Enqueue full buckets in FIFO order when KASAN is configured.
Jul 17 2026, 7:05 PM
alc accepted D58261: vm_page: Fix dequeue on arches with weak ordering.

I'm surprised that we didn't see this on arm64.

Jul 17 2026, 12:15 AM

Jun 22 2026

alc accepted D57743: device_pager: Avoid double-insertion of pages into the pager list.
Jun 22 2026, 5:46 PM

May 7 2026

alc added inline comments to D56863: vm_map_growstack(): give a hint to user that stack was blown out.
May 7 2026, 5:07 PM

Apr 23 2026

alc added a comment to D56518: vm: Add flags for unprotected allocations.

Just out of curiosity, where are the pmap changes?

Apr 23 2026, 5:07 AM

Apr 21 2026

alc added a comment to D56432: vm_page: Fix PG_ZERO handling in vm_page_grab_*().
In D56432#1294556, @kib wrote:

Effectively, you agree that we can drop the support and disable passing VM_ALLOC_ZERO to vm_page_grab_unlocked?

After kern_kexec is fixed, yes. But now I am trying to understand what that code is doing, and failing.

In D56432#1292906, @kib wrote:

I thought what could be a use for such call, and I really do not see how it can be useful. Both vnode and swap objects might have the page content on the volume, so the invalid page we found on the queue cannot be safely zeroed without consulting pager first. In the end, the decision to zero such page belongs to the caller.

For other object types, like OBJT_PHYS in kern_kexec.c, it is still somewhat useful since we do not have a vm_page_alloc_pages(), so pages have to be allocated one-by-one. But yes, also note that vm_page_grab_valid() does not handle VM_ALLOC_ZERO.

Apr 21 2026, 5:18 PM

Apr 20 2026

alc accepted D56458: amd64: fix INVLPGB range invalidation.

I'm going to plan to commit this within the next day or so. I think linux's use of "stride" instead of size or shift for their naming of the bit is very telling, and their general range invalidation function seems to specifically just use PTE stride as well.

Apr 20 2026, 4:29 PM

Apr 17 2026

alc added inline comments to D56432: vm_page: Fix PG_ZERO handling in vm_page_grab_*().
Apr 17 2026, 7:11 PM

Apr 16 2026

alc accepted D56416: pkru.3: Note that the kernel may not respect PKRU protections.
Apr 16 2026, 4:41 PM
alc added inline comments to D56416: pkru.3: Note that the kernel may not respect PKRU protections.
Apr 16 2026, 3:46 PM
alc accepted D56415: pkru.3: Remove a qualifier.
Apr 16 2026, 2:57 AM

Mar 31 2026

alc accepted D56185: pmap: Do not use PMAP_LOCK_INIT with kernel_pmap.

"... pmap locks, than witness ..." -> "... pmap locks, then witness ..."

Mar 31 2026, 3:20 PM

Mar 23 2026

alc accepted D55536: vm_fault: Avoid creating clean, writeable superpage mappings.
Mar 23 2026, 4:27 PM

Mar 5 2026

alc accepted D55619: arm64: Use a canonical address when TBI is enabled.
Mar 5 2026, 8:23 AM

Feb 28 2026

alc added a comment to D55536: vm_fault: Avoid creating clean, writeable superpage mappings.

@markj Do we know if there is actually a mix of clean and dirty pages being mapped?

Feb 28 2026, 6:23 PM

Feb 27 2026

alc added inline comments to D55536: vm_fault: Avoid creating clean, writeable superpage mappings.
Feb 27 2026, 6:25 PM

Jan 7 2026

alc accepted D54570: vm_object.h: tweak OBJ_ONEMAPPING comment even more.
Jan 7 2026, 4:42 PM

Jan 6 2026

alc accepted D54438: linker: Reset DMAP protections in link_elf_unload_file().
Jan 6 2026, 4:19 PM

Jan 5 2026

alc added inline comments to D54438: linker: Reset DMAP protections in link_elf_unload_file().
Jan 5 2026, 11:36 PM

Jan 1 2026

alc added inline comments to D54438: linker: Reset DMAP protections in link_elf_unload_file().
Jan 1 2026, 6:07 PM

Dec 29 2025

alc accepted D54365: libc: add glibc-compatible tdestroy(3).
Dec 29 2025, 4:46 PM
alc added a comment to D54365: libc: add glibc-compatible tdestroy(3).

Specifically, for now, I would commit the version in Diff 168641.

Dec 29 2025, 4:43 PM
alc accepted D54365: libc: add glibc-compatible tdestroy(3).

At this point, I would go back to the simpler, O(n) version, and commit that.

Dec 29 2025, 4:37 PM

Dec 27 2025

alc added inline comments to D54365: libc: add glibc-compatible tdestroy(3).
Dec 27 2025, 9:23 PM
alc added inline comments to D54365: libc: add glibc-compatible tdestroy(3).
Dec 27 2025, 7:02 AM

Dec 26 2025

alc added inline comments to D54365: libc: add glibc-compatible tdestroy(3).
Dec 26 2025, 9:48 PM
alc accepted D54353: vnode_pager: clean up undirty_pages().
Dec 26 2025, 8:48 PM
alc added inline comments to D54365: libc: add glibc-compatible tdestroy(3).
Dec 26 2025, 8:47 PM
alc accepted D54353: vnode_pager: clean up undirty_pages().

The changes here have led the compiler to unroll the first and final loops, making the machine code larger.

Dec 26 2025, 8:27 PM
alc added inline comments to D54365: libc: add glibc-compatible tdestroy(3).
Dec 26 2025, 5:42 PM
alc added a comment to D54365: libc: add glibc-compatible tdestroy(3).
In D54365#1242517, @kib wrote:
In D54365#1242424, @alc wrote:

Curiously, the blogger's previous post contains a link to this page

https://codegolf.stackexchange.com/questions/478/free-a-binary-tree/489#489P

which contains almost the same code as the 3rd ranked solution.

Allow me to reformulate, you mean that the algorithm presented is not unique and is relatively wide known, so I can put the proper FF copyright and license without causing the authorship issue. Am I right?

Dec 26 2025, 5:18 PM
alc added a comment to D54365: libc: add glibc-compatible tdestroy(3).

Curiously, the blogger's previous post contains a link to this page

Dec 26 2025, 7:34 AM

Dec 25 2025

alc added inline comments to D54353: vnode_pager: clean up undirty_pages().
Dec 25 2025, 5:47 PM

Dec 24 2025

alc added inline comments to D54353: vnode_pager: clean up undirty_pages().
Dec 24 2025, 8:30 PM

Dec 23 2025

alc accepted D49330: vnode_pager: use ptoa(), atop().
Dec 23 2025, 5:24 PM

Dec 22 2025

alc added inline comments to D49330: vnode_pager: use ptoa(), atop().
Dec 22 2025, 9:20 AM

Dec 21 2025

alc added a comment to D52567: vm/vm_fault.c: update and split comments for vm_fault() and vm_fault_trap().

I guess that this review didn't get automatically closed?

Dec 21 2025, 10:15 PM
alc accepted D52567: vm/vm_fault.c: update and split comments for vm_fault() and vm_fault_trap().
Dec 21 2025, 9:43 PM
alc accepted D54335: vm_fault_trap(): fix comments grammar.
Dec 21 2025, 9:43 PM
alc added inline comments to D52567: vm/vm_fault.c: update and split comments for vm_fault() and vm_fault_trap().
Dec 21 2025, 9:03 PM
alc accepted D49330: vnode_pager: use ptoa(), atop().
Dec 21 2025, 8:45 PM
alc added reviewers for D49330: vnode_pager: use ptoa(), atop(): kib, markj.
Dec 21 2025, 8:45 PM
alc added a comment to D53965: vm_object_coalesce(): do not account holes twice.
In D53965#1241686, @kib wrote:
In D53965#1241683, @alc wrote:

This change is now similar to D43263. Abandon this one?

I suspect that either the comment is mis-directed, or the referenced review has the wrong number.

Indeed, it should point to D54263

Dec 21 2025, 6:22 PM
alc added a comment to D53965: vm_object_coalesce(): do not account holes twice.

This change is now similar to D43263. Abandon this one?

Dec 21 2025, 6:00 PM

Dec 18 2025

alc accepted D54263: vm_object_coalesce(): do not account holes twice.
Dec 18 2025, 10:20 PM
alc accepted D54263: vm_object_coalesce(): do not account holes twice.

P.S. The semester is winding down, so I have more spare time for reviews now.

Dec 18 2025, 9:34 PM
alc added a comment to D54268: vmem: Fix the gcc build.
In D54268#1240216, @alc wrote:

Since we are starting to expand the usage of vmem, I want to point out something that I only noticed around the time we added support for nextfit allocation. What we call bestfit is really an implementation of firstfit allocation. (A comment pointing this out was actually deleted from the Netbsd original when vmem was imported.) And, what we call firstfit is what, I believe, Solaris calls instantfit. We have no actual implementation of bestfit allocation. That said, mav's long ago change to "create own free list for each of the first 32 possible allocation sizes" has the effect of bestfit allocation for small sizes.

Here is the comment that got deleted:

	} else { /* VM_BESTFIT */
		/*
		 * we assume that, for space efficiency, it's better to
		 * allocate from a smaller block.  thus we will start searching
		 * from the lower-order list than VM_INSTANTFIT.
		 * however, don't bother to find the smallest block in a free
		 * list because the list can be very long.  we can revisit it
		 * if/when it turns out to be a problem.

If I understand correctly, libuvmem was motivated by a need for an address space allocator for PCI BARs in bhyve. I think a proper M_BESTFIT probably isn't required there, but it might be good to implement one nonetheless. As a first step, perhaps we should restore the naming from Solaris.

Dec 18 2025, 6:20 PM

Dec 17 2025

alc accepted D54268: vmem: Fix the gcc build.

Since we are starting to expand the usage of vmem, I want to point out something that I only noticed around the time we added support for nextfit allocation. What we call bestfit is really an implementation of firstfit allocation. (A comment pointing this out was actually deleted from the Netbsd original when vmem was imported.) And, what we call firstfit is what, I believe, Solaris calls instantfit. We have no actual implementation of bestfit allocation. That said, mav's long ago change to "create own free list for each of the first 32 possible allocation sizes" has the effect of bestfit allocation for small sizes.

Dec 17 2025, 6:38 PM

Dec 16 2025

alc added inline comments to D53891: Fixes for dreaded assert in jemalloc page allocator AKA mmap(MAP_ANON) providing non-zeroed pages.
Dec 16 2025, 7:31 PM
alc accepted D54219: vm_object_coalesce(): check that coalescing does not revive stale pages.
Dec 16 2025, 6:21 PM
alc added inline comments to D54219: vm_object_coalesce(): check that coalescing does not revive stale pages.
Dec 16 2025, 8:18 AM
alc added inline comments to D54219: vm_object_coalesce(): check that coalescing does not revive stale pages.
Dec 16 2025, 8:01 AM

Dec 9 2025

alc accepted D54153: linuxkpi: clean up stray pctrie_iter_reset.
Dec 9 2025, 5:03 PM

Dec 8 2025

alc added inline comments to D53412: linuxkpi: gracefully handle page lookup failure in lkpi_vmf_insert_pfn_prot_locked.
Dec 8 2025, 9:32 PM

Dec 3 2025

alc accepted D54022: riscv/pmap: Handle superpages in pmap_extract_and_hold().
Dec 3 2025, 8:44 AM

Dec 2 2025

alc accepted D54022: riscv/pmap: Handle superpages in pmap_extract_and_hold().
Dec 2 2025, 5:36 PM
alc added inline comments to D54022: riscv/pmap: Handle superpages in pmap_extract_and_hold().
Dec 2 2025, 5:28 PM

Nov 28 2025

alc added inline comments to D53967: stddef.h: add unreachable() for C23 compliance.
Nov 28 2025, 4:48 PM

Nov 27 2025

alc added inline comments to D53891: Fixes for dreaded assert in jemalloc page allocator AKA mmap(MAP_ANON) providing non-zeroed pages.
Nov 27 2025, 9:02 PM
alc added inline comments to D53891: Fixes for dreaded assert in jemalloc page allocator AKA mmap(MAP_ANON) providing non-zeroed pages.
Nov 27 2025, 8:54 PM

Nov 26 2025

alc added inline comments to D53891: Fixes for dreaded assert in jemalloc page allocator AKA mmap(MAP_ANON) providing non-zeroed pages.
Nov 26 2025, 8:54 PM

Nov 25 2025

alc added a comment to D53891: Fixes for dreaded assert in jemalloc page allocator AKA mmap(MAP_ANON) providing non-zeroed pages.
In D53891#1231869, @kib wrote:
In D53891#1231400, @kib wrote:
In D53891#1231399, @alc wrote:

Can you elaborate on what you saw when debugging this problem? In particular, whether the map entries had OBJ_ONEMAPPING set? In principle, the ref_count and size shouldn't be a concern if the object has OBJ_ONEMAPPING set. For example, suppose there is an anonymous mapping (with OBJ_ONEMAPPING set) for the range [A, D). Further, suppose we punch a hole in the middle of that mapping, by calling munmap() on the range [B, C) where A < B < C < D. Now, we have two mappings, [A, B) and [C, D), that both reference the original object, and that object should still have OBJ_ONEMAPPING set. Because OBJ_ONEMAPPING is set, the munmap() should have freed any physical pages and swap space from the object that fell within the range [B, C). So, if a new anonymous mapping is created starting at either B or D, we should be able to safely coalesce it.

I did not have access to the object state there (all debugging was done remotely).

The situation you described is one of the cases that concerned me. I am not sure that we have a guarantee that doing the coalesce on the object with OBJ_ONEMAPPING flag but ref_count > 1 would not corrupt some other mapping. We need to do vm_object_page_remove(), and in principle that could remove pages which belong to other fragment.

I believe OBJ_ONEMAPPING means, "each page in the object is mapped at most once", so in the case you describe, OBJ_ONEMAPPING should not be set to begin with.

But this is exactly the part of my concern: even if OBJ_ONEMAPPING is not set, other conditions would allow the coalesce.

Nov 25 2025, 8:08 PM
alc added a comment to D53891: Fixes for dreaded assert in jemalloc page allocator AKA mmap(MAP_ANON) providing non-zeroed pages.
In D53891#1231400, @kib wrote:
In D53891#1231399, @alc wrote:

Can you elaborate on what you saw when debugging this problem? In particular, whether the map entries had OBJ_ONEMAPPING set? In principle, the ref_count and size shouldn't be a concern if the object has OBJ_ONEMAPPING set. For example, suppose there is an anonymous mapping (with OBJ_ONEMAPPING set) for the range [A, D). Further, suppose we punch a hole in the middle of that mapping, by calling munmap() on the range [B, C) where A < B < C < D. Now, we have two mappings, [A, B) and [C, D), that both reference the original object, and that object should still have OBJ_ONEMAPPING set. Because OBJ_ONEMAPPING is set, the munmap() should have freed any physical pages and swap space from the object that fell within the range [B, C). So, if a new anonymous mapping is created starting at either B or D, we should be able to safely coalesce it.

I did not have access to the object state there (all debugging was done remotely).

The situation you described is one of the cases that concerned me. I am not sure that we have a guarantee that doing the coalesce on the object with OBJ_ONEMAPPING flag but ref_count > 1 would not corrupt some other mapping. We need to do vm_object_page_remove(), and in principle that could remove pages which belong to other fragment.

I believe OBJ_ONEMAPPING means, "each page in the object is mapped at most once", so in the case you describe, OBJ_ONEMAPPING should not be set to begin with.

Nov 25 2025, 8:02 PM

Nov 24 2025

alc added a comment to D53891: Fixes for dreaded assert in jemalloc page allocator AKA mmap(MAP_ANON) providing non-zeroed pages.
In D53891#1231456, @kib wrote:

After another day of extensive testing, I can confirm that everything is working properly.

I'm happy to perform additional debugging to clarify the problematic condition, should you find it helpful.
Would you like a dump of the affected object for the newly added goto remove_pager case? Or anything else?

Try just this part of the series alone. Do not enable vm_check_pg_zero. Does it help?

diff --git a/sys/vm/vm_object.c b/sys/vm/vm_object.c
index 9d09224e7346..8850a1b8644e 100644
--- a/sys/vm/vm_object.c
+++ b/sys/vm/vm_object.c
@@ -1988,7 +1988,7 @@ vm_object_page_remove(vm_object_t object, vm_pindex_t start, vm_pindex_t end,
       (options & (OBJPR_CLEANONLY | OBJPR_NOTMAPPED)) == OBJPR_NOTMAPPED,
       ("vm_object_page_remove: illegal options for object %p", object));
   if (object->resident_page_count == 0)
-    return;
+     goto remove_pager;
   vm_object_pip_add(object, 1);
   vm_page_iter_limit_init(&pages, object, end);
 again:
@@ -2061,6 +2061,7 @@ vm_object_page_remove(vm_object_t object, vm_pindex_t start, vm_pindex_t end,
   }
   vm_object_pip_wakeup(object);
 
+remove_pager:
   vm_pager_freespace(object, start, (end == 0 ? object->size : end) -
       start);
 }
Nov 24 2025, 5:57 PM
alc added a comment to D53891: Fixes for dreaded assert in jemalloc page allocator AKA mmap(MAP_ANON) providing non-zeroed pages.

Confirmed, this part is enough.

Nov 24 2025, 5:55 PM

Nov 23 2025

alc added a comment to D53891: Fixes for dreaded assert in jemalloc page allocator AKA mmap(MAP_ANON) providing non-zeroed pages.

Can you elaborate on what you saw when debugging this problem? In particular, whether the map entries had OBJ_ONEMAPPING set? In principle, the ref_count and size shouldn't be a concern if the object has OBJ_ONEMAPPING set. For example, suppose there is an anonymous mapping (with OBJ_ONEMAPPING set) for the range [A, D). Further, suppose we punch a hole in the middle of that mapping, by calling munmap() on the range [B, C) where A < B < C < D. Now, we have two mappings, [A, B) and [C, D), that both reference the original object, and that object should still have OBJ_ONEMAPPING set. Because OBJ_ONEMAPPING is set, the munmap() should have freed any physical pages and swap space from the object that fell within the range [B, C). So, if a new anonymous mapping is created starting at either B or D, we should be able to safely coalesce it.

Nov 23 2025, 10:36 PM

Oct 10 2025

alc accepted D52982: kstack: Fix iterator usage in vm_thread_stack_create().
Oct 10 2025, 4:34 PM