Date: Mon, 1 Feb 2021 14:05:54 +0100 From: Hans Petter Selasky <hps@selasky.org> To: Mateusz Guzik <mjguzik@gmail.com>, Michael Tuexen <Michael.Tuexen@macmic.franken.de>, Konstantin Belousov <kib@FreeBSD.org> Cc: Randall Stewart <rrs@netflix.com>, Randall Stewart <rrs@freebsd.org>, src-committers <src-committers@freebsd.org>, dev-commits-src-all@freebsd.org, dev-commits-src-main@freebsd.org Subject: Re: git: 1a714ff20419 - main - This pulls over all the changes that are in the netflix tree that fix the ratelimit code. There were several bugs in tcp_ratelimit itself and we needed further work to support the multiple tag format coming for the joint TLS and Ratelimit dances. Message-ID: <48fe9f24-e96b-1078-ada2-a8691ead6cf1@selasky.org> In-Reply-To: <CAGudoHEVy3Uif3cjLjnTz_4EzvZV0g%2Bqev1aN-MOdD1cfUKXZQ@mail.gmail.com> References: <202101281653.10SGrJWf002301@gitrepo.freebsd.org> <CAGudoHFh9HMQNUOKpfrj3tBnO2%2BhUyhnnLFVF5c1NnPD=31OFA@mail.gmail.com> <CAGudoHH=Eu7zRLWezj9mOtXH827A4k4rFsVhRn45aK589mDWvQ@mail.gmail.com> <E0ABCA13-DDCC-45E7-A12A-AB1805782152@macmic.franken.de> <CAGudoHEVy3Uif3cjLjnTz_4EzvZV0g%2Bqev1aN-MOdD1cfUKXZQ@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
This is a multi-part message in MIME format. --------------4CEF225002A76A7E4D6C5E4E Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Hi, The attached patch should fix it. (Waiting for a quick review). But there are more issues: For i386 I now see: > ld: error: undefined symbol: xdr_export_sec_context_res >>>> referenced by gss_impl.c >>>> gss_impl.o:(kgss_transfer_context) > > ld: error: undefined symbol: gssd_import_name_1 >>>> referenced by gss_import_name.c >>>> gss_import_name.o:(gss_import_name) > > ld: error: undefined symbol: gssd_pname_to_uid_1 >>>> referenced by gss_pname_to_uid.c >>>> gss_pname_to_uid.o:(gss_pname_to_uid) >>>> referenced by gss_pname_to_uid.c >>>> gss_pname_to_uid.o:(gss_pname_to_unix_cred) > > ld: error: undefined symbol: xdr_pname_to_uid_res >>>> referenced by gss_pname_to_uid.c >>>> gss_pname_to_uid.o:(gss_pname_to_unix_cred) > > ld: error: undefined symbol: gssd_release_cred_1 >>>> referenced by gss_release_cred.c >>>> gss_release_cred.o:(gss_release_cred) > > ld: error: undefined symbol: gssd_release_name_1 >>>> referenced by gss_release_name.c >>>> gss_release_name.o:(gss_release_name) > Maybe xdr needs to be added to LINT now? Passing the ball onto Konstantin. --HPS --------------4CEF225002A76A7E4D6C5E4E Content-Type: text/x-patch; charset=UTF-8; name="a.diff" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="a.diff" commit 38dc40d5b501932e60eb1fb52933a280d5035488 Author: Hans Petter Selasky <hselasky@FreeBSD.org> Date: Mon Feb 1 13:23:21 2021 +0100 Fix LINT kernel builds after 1a714ff20419 . MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D28357 Sponsored by: Mellanox Technologies // NVIDIA Networking diff --git a/sys/netinet/tcp_ratelimit.c b/sys/netinet/tcp_ratelimit.c index aeb1ed6906b..8f2cf3d8d06 100644 --- a/sys/netinet/tcp_ratelimit.c +++ b/sys/netinet/tcp_ratelimit.c @@ -372,17 +372,6 @@ rl_add_syctl_entries(struct sysctl_oid *rl_sysctl_root, struct tcp_rate_set *rs) OID_AUTO, "rate", CTLFLAG_RD, &rs->rs_rlt[i].rate, 0, "Rate in bytes per second"); - SYSCTL_ADD_U64(&rs->sysctl_ctx, - SYSCTL_CHILDREN(rl_rate_num), - OID_AUTO, "using", CTLFLAG_RD, - &rs->rs_rlt[i].using, 0, - "Number of flows using"); - SYSCTL_ADD_U64(&rs->sysctl_ctx, - SYSCTL_CHILDREN(rl_rate_num), - OID_AUTO, "enobufs", CTLFLAG_RD, - &rs->rs_rlt[i].rs_num_enobufs, 0, - "Number of enobufs logged on this rate"); - } } #endif @@ -678,8 +667,6 @@ rt_setup_new_rs(struct ifnet *ifp, int *error) */ rs->rs_rlt[i].ptbl = rs; rs->rs_rlt[i].tag = NULL; - rs->rs_rlt[i].using = 0; - rs->rs_rlt[i].rs_num_enobufs = 0; /* * Calculate the time between. */ @@ -1076,28 +1063,16 @@ rt_find_real_interface(struct ifnet *ifp, struct inpcb *inp, int *error) static void rl_increment_using(const struct tcp_hwrate_limit_table *rte) { - struct tcp_hwrate_limit_table *decon_rte; - - decon_rte = __DECONST(struct tcp_hwrate_limit_table *, rte); - atomic_add_long(&decon_rte->using, 1); } static void rl_decrement_using(const struct tcp_hwrate_limit_table *rte) { - struct tcp_hwrate_limit_table *decon_rte; - - decon_rte = __DECONST(struct tcp_hwrate_limit_table *, rte); - atomic_subtract_long(&decon_rte->using, 1); } void tcp_rl_log_enobuf(const struct tcp_hwrate_limit_table *rte) { - struct tcp_hwrate_limit_table *decon_rte; - - decon_rte = __DECONST(struct tcp_hwrate_limit_table *, rte); - atomic_add_long(&decon_rte->rs_num_enobufs, 1); } /* @@ -1214,9 +1189,11 @@ rt_setup_rate(struct inpcb *inp, struct ifnet *ifp, uint64_t bytes_per_sec, rte = NULL; } else { KASSERT((inp->inp_snd_tag != NULL) , - ("Setup rate has no snd_tag inp:%p rte:%p rate:%lu rs:%p", - inp, rte, rte->rate, rs)); + ("Setup rate has no snd_tag inp:%p rte:%p rate:%llu rs:%p", + inp, rte, (unsigned long long)rte->rate, rs)); +#ifdef INET counter_u64_add(rate_limit_new, 1); +#endif } } if (rte) { @@ -1462,8 +1439,11 @@ tcp_chg_pacing_rate(const struct tcp_hwrate_limit_table *crte, if (error) *error = err; return (NULL); - } else + } else { +#ifdef INET counter_u64_add(rate_limit_chg, 1); +#endif + } if (error) *error = 0; tp->t_pacing_rate = nrte->rate; diff --git a/sys/netinet/tcp_ratelimit.h b/sys/netinet/tcp_ratelimit.h index d3f82fab3ee..b69f0e634b6 100644 --- a/sys/netinet/tcp_ratelimit.h +++ b/sys/netinet/tcp_ratelimit.h @@ -44,8 +44,6 @@ struct tcp_hwrate_limit_table { const struct tcp_rate_set *ptbl; /* Pointer to parent table */ struct m_snd_tag *tag; /* Send tag if needed (chelsio) */ uint64_t rate; /* Rate we get in Bytes per second (Bps) */ - uint64_t using; /* Temporary -- rrs remove */ - uint64_t rs_num_enobufs; uint32_t time_between; /* Time-Gap between packets at this rate */ uint32_t flags; }; --------------4CEF225002A76A7E4D6C5E4E--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?48fe9f24-e96b-1078-ada2-a8691ead6cf1>