On 2026-01-13 16:24, Konstantin Belousov wrote:
On Tue, Jan 13, 2026 at 04:08:34PM +0000, Andrew Turner wrote:
On 2026-01-13 14:03, Konstantin Belousov wrote:
> The branch main has been updated by kib:
>
> URL: 
https://cgit.FreeBSD.org/src/commit/?id=d160447129fe060b28bcd6ba429d17afdf494ff2
>
> commit d160447129fe060b28bcd6ba429d17afdf494ff2
> Author:     Konstantin Belousov <[email protected]>
> AuthorDate: 2026-01-03 09:34:23 +0000
> Commit:     Konstantin Belousov <[email protected]>
> CommitDate: 2026-01-13 14:03:14 +0000
>
>     vm_object: remove the charge member

I'm seeing the following panic with this change on boot. If I revert this
change the boot succeeds.

Andrew

panic: swap_reserved 0x218c5 < decr 0xffffffffed021
cpuid = 99
time = 7
KDB: stack backtrace:
db_trace_self() at db_trace_self
db_trace_self_wrapper() at db_trace_self_wrapper+0x38
vpanic() at vpanic+0x1a0
panic() at panic+0x48
swap_release_by_cred() at swap_release_by_cred+0xf0
vm_map_entry_delete() at vm_map_entry_delete+0x124
vm_map_delete() at vm_map_delete+0x16c
kern_munmap() at kern_munmap+0xb8
do_el0_sync() at do_el0_sync+0x618
handle_el0_sync() at handle_el0_sync+0x4c
--- exception, esr 0x56000000

Try this please.

commit 870deef431f00f959e838261587b044a2913f414
Author: Konstantin Belousov <[email protected]>
Date:   Tue Jan 13 18:22:48 2026 +0200

    vm_map_entry_delete(): fix the calculation of swap release

    Reported by:    andrew
    Fixes:  d160447129fe060b28bcd6ba429d17afdf494ff2

diff --git a/sys/vm/vm_map.c b/sys/vm/vm_map.c
index 04628f44a497..b8295bb2108d 100644
--- a/sys/vm/vm_map.c
+++ b/sys/vm/vm_map.c
@@ -3997,7 +3997,7 @@ vm_map_entry_delete(vm_map_t map, vm_map_entry_t entry)
                                object->size = offidxstart;
                                if (object->cred != NULL) {
                                        swap_release_by_cred(ptoa(oldsize -
-                                           ptoa(object->size)), object->cred);
+                                           object->size), object->cred);
                                }
                        }
                }

That fixed it for me.

Andrew

Reply via email to