[Bug 260406] pfctl: Cannot allocate memory (after a time)

From: <bugzilla-noreply_at_freebsd.org>
Date: Fri, 24 Dec 2021 15:25:24 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=260406

--- Comment #47 from Kristof Provost <kp@freebsd.org> ---
(In reply to Diego Linke from comment #45)
Okay, that tells us at least that I used the entry probe in a few places where
I meant to use the return probe.

But also that it looks like in cache_alloc_retry() we failed to find a bucket
with free space, and then presumably also failed zone_alloc_item(). That still
looks for all the world like you're out of memory.

Here's an updated dtrace script:

#!/usr/sbin/dtrace -s

BEGIN
{
        self->in_call = 0;
}

fbt:pf:pfr_create_kentry:entry
{
        self->in_call = 1;
        printf("In");
}

fbt:pf:pfr_create_kentry:return
{
        self->in_call = 0;
        printf("=> %x (@%x)\n", arg1, arg0);
}
fbt:pf:pfr_create_kentry:return
/ arg1 == 0 /
{
        stack();
}

fbt:kernel:uma_zalloc_arg:return
/ self->in_call == 1 /
{
        printf("=> %x (@%x)", arg1, arg0);
}

fbt:kernel:cache_alloc_retry:return
/ self->in_call == 1 /
{
        printf("=> %x (@%x)", arg1, arg0);
}

fbt:kernel:cache_alloc:return
/ self->in_call == 1 /
{
        printf("=> %x (@%x)", arg1, arg0);
}

fbt:kernel:zone_alloc_item:return
/ self->in_call == 1 /
{
        printf("=> %x (@%x)", arg1, arg0);
}

fbt:kernel:uma_small_alloc:return
/ self->in_call == 1 /
{
        printf("=> %x (@%x)", arg1, arg0);
}

fbt:kernel:zone_alloc_limit_hard:return
/ self->in_call == 1 /
{
        printf("=> %x (@%x)", arg1, arg0);
}

fbt:kernel:zone_free_limit:entry
/ self->in_call == 1 /
{
    printf("In");
}

-- 
You are receiving this mail because:
You are the assignee for the bug.