Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 24 Dec 2021 15:25:24 +0000
From:      bugzilla-noreply@freebsd.org
To:        bugs@FreeBSD.org
Subject:   [Bug 260406] pfctl: Cannot allocate memory (after a time)
Message-ID:  <bug-260406-227-kx6rSoA86d@https.bugs.freebsd.org/bugzilla/>
In-Reply-To: <bug-260406-227@https.bugs.freebsd.org/bugzilla/>
References:  <bug-260406-227@https.bugs.freebsd.org/bugzilla/>

next in thread | previous in thread | raw e-mail | index | archive | help
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D260406

--- 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 wh=
ere
I meant to use the return probe.

But also that it looks like in cache_alloc_retry() we failed to find a buck=
et
with free space, and then presumably also failed zone_alloc_item(). That st=
ill
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 =3D 0;
}

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

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

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

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

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

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

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

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

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

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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-260406-227-kx6rSoA86d>