Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 22 Sep 2025 11:37:31 -0400
From:      "Jonathan T. Looney" <jtl@freebsd.org>
To:        Guido Falsi <madpilot@freebsd.org>
Cc:        src-committers@freebsd.org, dev-commits-src-all@freebsd.org,  dev-commits-src-main@freebsd.org
Subject:   Re: git: 0ec13430c583 - main - sys/netinet6: Fix ABI breakage introduced with RFC 7217 support
Message-ID:  <CADrOrmv22FzL9oP-B3NF=McMawJkQ5%2BL0zuvYSd0xRK%2BdnNYXQ@mail.gmail.com>
In-Reply-To: <202509220759.58M7xkrM031432@gitrepo.freebsd.org>
References:  <202509220759.58M7xkrM031432@gitrepo.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
--000000000000b879d5063f65997c
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Mon, Sep 22, 2025 at 3:59=E2=80=AFAM Guido Falsi <madpilot@freebsd.org> =
wrote:

> diff --git a/sys/netinet6/in6.c b/sys/netinet6/in6.c
> index 4f756a75fac7..8ef755e2dc0a 100644
> --- a/sys/netinet6/in6.c
> +++ b/sys/netinet6/in6.c
> @@ -2604,6 +2604,8 @@ in6_domifattach(struct ifnet *ifp)
>         COUNTER_ARRAY_ALLOC(ext->icmp6_ifstat,
>             sizeof(struct icmp6_ifstat) / sizeof(uint64_t), M_WAITOK);
>
> +       ext->dad_failures =3D counter_u64_alloc(M_WAITOK);
> +
>         ext->nd_ifinfo =3D nd6_ifattach(ifp);
>         ext->scope6_id =3D scope6_ifattach(ifp);
>         ext->lltable =3D in6_lltattach(ifp);
> @@ -2639,6 +2641,7 @@ in6_domifdetach(struct ifnet *ifp, void *aux)
>         COUNTER_ARRAY_FREE(ext->icmp6_ifstat,
>             sizeof(struct icmp6_ifstat) / sizeof(uint64_t));
>         free(ext->icmp6_ifstat, M_IFADDR);
> +       counter_u64_free(ext->dad_failures);
>         free(ext, M_IFADDR);
>  }
>

This seems like it is probably a low-frequency event. If so, why is a
counter a better choice for this than an atomic?

Jonathan

--000000000000b879d5063f65997c
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div dir=3D"ltr">On Mon, Sep 22, 2025 at 3:59=E2=80=AFAM G=
uido Falsi &lt;<a href=3D"mailto:madpilot@freebsd.org">madpilot@freebsd.org=
</a>&gt; wrote:</div><div class=3D"gmail_quote gmail_quote_container"><bloc=
kquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:=
1px solid rgb(204,204,204);padding-left:1ex">diff --git a/sys/netinet6/in6.=
c b/sys/netinet6/in6.c<br>
index 4f756a75fac7..8ef755e2dc0a 100644<br>
--- a/sys/netinet6/in6.c<br>
+++ b/sys/netinet6/in6.c<br>
@@ -2604,6 +2604,8 @@ in6_domifattach(struct ifnet *ifp)<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 COUNTER_ARRAY_ALLOC(ext-&gt;icmp6_ifstat,<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 sizeof(struct icmp6_ifstat) / siz=
eof(uint64_t), M_WAITOK);<br>
<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0ext-&gt;dad_failures =3D counter_u64_alloc(M_WA=
ITOK);<br>
+<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 ext-&gt;nd_ifinfo =3D nd6_ifattach(ifp);<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 ext-&gt;scope6_id =3D scope6_ifattach(ifp);<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 ext-&gt;lltable =3D in6_lltattach(ifp);<br>
@@ -2639,6 +2641,7 @@ in6_domifdetach(struct ifnet *ifp, void *aux)<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 COUNTER_ARRAY_FREE(ext-&gt;icmp6_ifstat,<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 sizeof(struct icmp6_ifstat) / siz=
eof(uint64_t));<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 free(ext-&gt;icmp6_ifstat, M_IFADDR);<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0counter_u64_free(ext-&gt;dad_failures);<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 free(ext, M_IFADDR);<br>
=C2=A0}<br></blockquote><div><br></div><div>This seems like it is probably =
a low-frequency event. If so, why is a counter a better choice for this tha=
n an atomic?</div><div><br></div><div>Jonathan</div></div></div>

--000000000000b879d5063f65997c--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CADrOrmv22FzL9oP-B3NF=McMawJkQ5%2BL0zuvYSd0xRK%2BdnNYXQ>