From owner-svn-src-stable@freebsd.org Thu Sep 5 23:29:29 2019 Return-Path: Delivered-To: svn-src-stable@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 59187D7A4B for ; Thu, 5 Sep 2019 23:29:29 +0000 (UTC) (envelope-from wlosh@bsdimp.com) Received: from mail-qk1-x72d.google.com (mail-qk1-x72d.google.com [IPv6:2607:f8b0:4864:20::72d]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "GTS CA 1O1" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46PcN82w37z4XDD for ; Thu, 5 Sep 2019 23:29:28 +0000 (UTC) (envelope-from wlosh@bsdimp.com) Received: by mail-qk1-x72d.google.com with SMTP id u184so1012144qkd.4 for ; Thu, 05 Sep 2019 16:29:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bsdimp-com.20150623.gappssmtp.com; s=20150623; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=fxcIJ9LknIeCzFiCjb3jICLiNaTwAY4PYuHfJ2yALp0=; b=E/EVyKqaMZZUOGZG1WpKgzrWSNQTu1Yh2rciXZ3K9TH+p2xCW22zOGvmnzGitVFrQq 8COlz9f4CEuBtXgTuf3/jNvHnOMBR/yI8/Fbh5jeLQpIbHRD4Q8l7KfnD8UcbY4cB3IW X4EQBGtb0UsOG3Yxv0ptb+tfwOLOceNTU1vBIjtALrNuoXbBkX7TQ1LkY9d9QcJKajnZ WKAVMC/lh5LIZuG9yGqny6BvleuyIKDRFyNJBGZ/ypDfve4hhJya/prFG1a3ycrM3qg+ KW0h2trZfEmzKLJ+03FSdpz1fb4MiTAcd3aOZeb0e71M97Q47/ZDeoH1gNHtsVs//uE6 4tJw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=fxcIJ9LknIeCzFiCjb3jICLiNaTwAY4PYuHfJ2yALp0=; b=LXzxQLb4OnARwbk3WPxgfMdRrVueIBqLYK7oa7qxIBdMXSa5RNkn06Vc0KziG00SYa RGGVK6U7PSIZ3UKu3tuJIlwBdxlJ6bldsNwwxkkvBjT0W0F/b8s/E7L2UkqBYK/8Qvyy e4r+xtPANmwtt6H5/4rIPBPnuL1qxGTYQkSHnX6Xh0fS0eHfnWeyR47uNbTy+3rEhYGG 8GHKvMpY5sw5avA3tPZx7LUJUdYj2QiyVdaIu9vTbrHc0xKWalJy7htd29AaC98eEn5Z 7UEh2Ie4Mz4l+zil/rrTEzUsdYXdGkxt96Y8e73D14nzSPFPs6VcoR+fWLIvbn+cqauL g+RA== X-Gm-Message-State: APjAAAWE5VNb5qzn6TtC/pnKI3Q314uSO7aQfC3DK/s+NX60+ulR8FpP u6R5YMAvB1cgEHdXEQIk+QNIAIRQHtYGh7ihu2c/aA== X-Google-Smtp-Source: APXvYqyRsU7tyleLy6R0oT4Bl1EOIKgnnlJx0yd4X05nQvPATXMbbJ1Fsj5mZDU9TFyRjZnUOdVIehPvq/8V2YHwmm8= X-Received: by 2002:a37:4804:: with SMTP id v4mr6111171qka.60.1567726166854; Thu, 05 Sep 2019 16:29:26 -0700 (PDT) MIME-Version: 1.0 References: <201909052238.x85Mcs3R010976@repo.freebsd.org> <201909052315.x85NFElx027352@gndrsh.dnsmgr.net> In-Reply-To: From: Warner Losh Date: Thu, 5 Sep 2019 17:29:15 -0600 Message-ID: Subject: Re: svn commit: r351902 - in stable/12: lib/libefivar sbin/devmatch sbin/nvmecontrol sbin/nvmecontrol/modules/wdc share/man/man4 share/man/man9 stand/efi/libefi stand/efi/loader stand/forth stand/i386/... To: "Rodney W. Grimes" Cc: Warner Losh , src-committers , svn-src-all , svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org X-Rspamd-Queue-Id: 46PcN82w37z4XDD X-Spamd-Bar: ---- Authentication-Results: mx1.freebsd.org; dkim=pass header.d=bsdimp-com.20150623.gappssmtp.com header.s=20150623 header.b=E/EVyKqa; dmarc=none; spf=none (mx1.freebsd.org: domain of wlosh@bsdimp.com has no SPF policy when checking 2607:f8b0:4864:20::72d) smtp.mailfrom=wlosh@bsdimp.com X-Spamd-Result: default: False [-4.88 / 15.00]; ARC_NA(0.00)[]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; R_DKIM_ALLOW(-0.20)[bsdimp-com.20150623.gappssmtp.com:s=20150623]; FROM_HAS_DN(0.00)[]; TO_DN_SOME(0.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; MIME_GOOD(-0.10)[multipart/alternative,text/plain]; PREVIOUSLY_DELIVERED(0.00)[svn-src-stable@freebsd.org]; DMARC_NA(0.00)[bsdimp.com]; URI_COUNT_ODD(1.00)[3]; RCPT_COUNT_FIVE(0.00)[6]; TO_MATCH_ENVRCPT_SOME(0.00)[]; DKIM_TRACE(0.00)[bsdimp-com.20150623.gappssmtp.com:+]; NEURAL_HAM_SHORT(-0.99)[-0.992,0]; RCVD_IN_DNSWL_NONE(0.00)[d.2.7.0.0.0.0.0.0.0.0.0.0.0.0.0.0.2.0.0.4.6.8.4.0.b.8.f.7.0.6.2.list.dnswl.org : 127.0.5.0]; R_SPF_NA(0.00)[]; FORGED_SENDER(0.30)[imp@bsdimp.com,wlosh@bsdimp.com]; MIME_TRACE(0.00)[0:+,1:+,2:~]; IP_SCORE(-2.89)[ip: (-9.38), ipnet: 2607:f8b0::/32(-2.76), asn: 15169(-2.27), country: US(-0.05)]; ASN(0.00)[asn:15169, ipnet:2607:f8b0::/32, country:US]; FROM_NEQ_ENVFROM(0.00)[imp@bsdimp.com,wlosh@bsdimp.com]; RCVD_TLS_ALL(0.00)[]; RCVD_COUNT_TWO(0.00)[2] Content-Type: text/plain; charset="UTF-8" X-Content-Filtered-By: Mailman/MimeDel 2.1.29 X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 05 Sep 2019 23:29:29 -0000 On Thu, Sep 5, 2019 at 5:21 PM Warner Losh wrote: > > > On Thu, Sep 5, 2019 at 5:15 PM Rodney W. Grimes > wrote: > >> > Author: imp >> > Date: Thu Sep 5 22:38:53 2019 >> > New Revision: 351902 >> > URL: https://svnweb.freebsd.org/changeset/base/351902 >> > >> > Log: >> > MFC r343755: >> > >> > Regularize the Netflix copyright >> >> Thanks, but FYI, noted hunk of something else below... >> >> > Modified: stable/12/sys/netinet/tcp_stacks/rack.c >> >> Are you sure you wanted to do this to rack.c? >> > > hmmm, I thought I told svn to ignore that part of the diff that didn't > apply... This surprises me. I'll back out that chunk... I've done 10 MFCs > since this, though, and some of them may depend on this commit which may > make this not a simple revert + reapply.... > Ah, the simple revert + redo worked.... Warner > Warner > > >> >> > >> ============================================================================== >> > --- stable/12/sys/netinet/tcp_stacks/rack.c Thu Sep 5 22:25:19 2019 >> (r351901) >> > +++ stable/12/sys/netinet/tcp_stacks/rack.c Thu Sep 5 22:38:53 2019 >> (r351902) >> > @@ -1,5 +1,5 @@ >> > /*- >> > - * Copyright (c) 2016-2019 Netflix, Inc. >> > + * Copyright (c) 2016-2018 Netflix, Inc. >> > * >> > * Redistribution and use in source and binary forms, with or without >> > * modification, are permitted provided that the following conditions >> > @@ -202,7 +202,6 @@ static int32_t rack_always_send_oldest = 0; >> > static int32_t rack_sack_block_limit = 128; >> > static int32_t rack_use_sack_filter = 1; >> > static int32_t rack_tlp_threshold_use = TLP_USE_TWO_ONE; >> > -static uint32_t rack_map_split_limit = 0; /* unlimited by default */ >> > >> > /* Rack specific counters */ >> > counter_u64_t rack_badfr; >> > @@ -228,8 +227,6 @@ counter_u64_t rack_to_arm_tlp; >> > counter_u64_t rack_to_alloc; >> > counter_u64_t rack_to_alloc_hard; >> > counter_u64_t rack_to_alloc_emerg; >> > -counter_u64_t rack_alloc_limited_conns; >> > -counter_u64_t rack_split_limited; >> > >> > counter_u64_t rack_sack_proc_all; >> > counter_u64_t rack_sack_proc_short; >> > @@ -263,8 +260,6 @@ static void >> > rack_ack_received(struct tcpcb *tp, struct tcp_rack *rack, >> > struct tcphdr *th, uint16_t nsegs, uint16_t type, int32_t >> recovery); >> > static struct rack_sendmap *rack_alloc(struct tcp_rack *rack); >> > -static struct rack_sendmap *rack_alloc_limit(struct tcp_rack *rack, >> > - uint8_t limit_type); >> > static struct rack_sendmap * >> > rack_check_recovery_mode(struct tcpcb *tp, >> > uint32_t tsused); >> > @@ -449,8 +444,6 @@ sysctl_rack_clear(SYSCTL_HANDLER_ARGS) >> > counter_u64_zero(rack_sack_proc_short); >> > counter_u64_zero(rack_sack_proc_restart); >> > counter_u64_zero(rack_to_alloc); >> > - counter_u64_zero(rack_alloc_limited_conns); >> > - counter_u64_zero(rack_split_limited); >> > counter_u64_zero(rack_find_high); >> > counter_u64_zero(rack_runt_sacks); >> > counter_u64_zero(rack_used_tlpmethod); >> > @@ -628,11 +621,6 @@ rack_init_sysctls() >> > OID_AUTO, "pktdelay", CTLFLAG_RW, >> > &rack_pkt_delay, 1, >> > "Extra RACK time (in ms) besides reordering thresh"); >> > - SYSCTL_ADD_U32(&rack_sysctl_ctx, >> > - SYSCTL_CHILDREN(rack_sysctl_root), >> > - OID_AUTO, "split_limit", CTLFLAG_RW, >> > - &rack_map_split_limit, 0, >> > - "Is there a limit on the number of map split entries >> (0=unlimited)"); >> > SYSCTL_ADD_S32(&rack_sysctl_ctx, >> > SYSCTL_CHILDREN(rack_sysctl_root), >> > OID_AUTO, "inc_var", CTLFLAG_RW, >> > @@ -768,19 +756,7 @@ rack_init_sysctls() >> > SYSCTL_CHILDREN(rack_sysctl_root), >> > OID_AUTO, "allocemerg", CTLFLAG_RD, >> > &rack_to_alloc_emerg, >> > - "Total allocations done from emergency cache"); >> > - rack_alloc_limited_conns = counter_u64_alloc(M_WAITOK); >> > - SYSCTL_ADD_COUNTER_U64(&rack_sysctl_ctx, >> > - SYSCTL_CHILDREN(rack_sysctl_root), >> > - OID_AUTO, "alloc_limited_conns", CTLFLAG_RD, >> > - &rack_alloc_limited_conns, >> > - "Connections with allocations dropped due to limit"); >> > - rack_split_limited = counter_u64_alloc(M_WAITOK); >> > - SYSCTL_ADD_COUNTER_U64(&rack_sysctl_ctx, >> > - SYSCTL_CHILDREN(rack_sysctl_root), >> > - OID_AUTO, "split_limited", CTLFLAG_RD, >> > - &rack_split_limited, >> > - "Split allocations dropped due to limit"); >> > + "Total alocations done from emergency cache"); >> > rack_sack_proc_all = counter_u64_alloc(M_WAITOK); >> > SYSCTL_ADD_COUNTER_U64(&rack_sysctl_ctx, >> > SYSCTL_CHILDREN(rack_sysctl_root), >> > @@ -1144,11 +1120,10 @@ rack_alloc(struct tcp_rack *rack) >> > { >> > struct rack_sendmap *rsm; >> > >> > + counter_u64_add(rack_to_alloc, 1); >> > + rack->r_ctl.rc_num_maps_alloced++; >> > rsm = uma_zalloc(rack_zone, M_NOWAIT); >> > if (rsm) { >> > -alloc_done: >> > - counter_u64_add(rack_to_alloc, 1); >> > - rack->r_ctl.rc_num_maps_alloced++; >> > return (rsm); >> > } >> > if (rack->rc_free_cnt) { >> > @@ -1156,46 +1131,14 @@ alloc_done: >> > rsm = TAILQ_FIRST(&rack->r_ctl.rc_free); >> > TAILQ_REMOVE(&rack->r_ctl.rc_free, rsm, r_next); >> > rack->rc_free_cnt--; >> > - goto alloc_done; >> > + return (rsm); >> > } >> > return (NULL); >> > } >> > >> > -/* wrapper to allocate a sendmap entry, subject to a specific limit */ >> > -static struct rack_sendmap * >> > -rack_alloc_limit(struct tcp_rack *rack, uint8_t limit_type) >> > -{ >> > - struct rack_sendmap *rsm; >> > - >> > - if (limit_type) { >> > - /* currently there is only one limit type */ >> > - if (rack_map_split_limit > 0 && >> > - rack->r_ctl.rc_num_split_allocs >= >> rack_map_split_limit) { >> > - counter_u64_add(rack_split_limited, 1); >> > - if (!rack->alloc_limit_reported) { >> > - rack->alloc_limit_reported = 1; >> > - counter_u64_add(rack_alloc_limited_conns, >> 1); >> > - } >> > - return (NULL); >> > - } >> > - } >> > - >> > - /* allocate and mark in the limit type, if set */ >> > - rsm = rack_alloc(rack); >> > - if (rsm != NULL && limit_type) { >> > - rsm->r_limit_type = limit_type; >> > - rack->r_ctl.rc_num_split_allocs++; >> > - } >> > - return (rsm); >> > -} >> > - >> > static void >> > rack_free(struct tcp_rack *rack, struct rack_sendmap *rsm) >> > { >> > - if (rsm->r_limit_type) { >> > - /* currently there is only one limit type */ >> > - rack->r_ctl.rc_num_split_allocs--; >> > - } >> > rack->r_ctl.rc_num_maps_alloced--; >> > if (rack->r_ctl.rc_tlpsend == rsm) >> > rack->r_ctl.rc_tlpsend = NULL; >> > @@ -1481,21 +1424,9 @@ rack_cc_after_idle(struct tcpcb *tp, int >> reduce_larges >> > >> > if (tp->snd_cwnd == 1) >> > i_cwnd = tp->t_maxseg; /* SYN(-ACK) lost */ >> > - else if (V_tcp_initcwnd_segments) >> > - i_cwnd = min((V_tcp_initcwnd_segments * tp->t_maxseg), >> > - max(2 * tp->t_maxseg, V_tcp_initcwnd_segments * >> 1460)); >> > - else if (V_tcp_do_rfc3390) >> > - i_cwnd = min(4 * tp->t_maxseg, >> > - max(2 * tp->t_maxseg, 4380)); >> > - else { >> > - /* Per RFC5681 Section 3.1 */ >> > - if (tp->t_maxseg > 2190) >> > - i_cwnd = 2 * tp->t_maxseg; >> > - else if (tp->t_maxseg > 1095) >> > - i_cwnd = 3 * tp->t_maxseg; >> > - else >> > - i_cwnd = 4 * tp->t_maxseg; >> > - } >> > + else >> > + i_cwnd = tcp_compute_initwnd(tcp_maxseg(tp)); >> > + >> > if (reduce_largest) { >> > /* >> > * Do we reduce the largest cwnd to make >> > @@ -1790,17 +1721,6 @@ rack_drop_checks(struct tcpopt *to, struct mbuf >> *m, st >> > TCPSTAT_INC(tcps_rcvpartduppack); >> > TCPSTAT_ADD(tcps_rcvpartdupbyte, todrop); >> > } >> > - /* >> > - * DSACK - add SACK block for dropped range >> > - */ >> > - if (tp->t_flags & TF_SACK_PERMIT) { >> > - tcp_update_sack_list(tp, th->th_seq, th->th_seq + >> tlen); >> > - /* >> > - * ACK now, as the next in-sequence segment >> > - * will clear the DSACK block again >> > - */ >> > - tp->t_flags |= TF_ACKNOW; >> > - } >> > *drop_hdrlen += todrop; /* drop from the top afterwards */ >> > th->th_seq += todrop; >> > tlen -= todrop; >> > @@ -2949,7 +2869,7 @@ rack_timeout_rxt(struct tcpcb *tp, struct >> tcp_rack *ra >> > TCPSTAT_INC(tcps_rexmttimeo); >> > if ((tp->t_state == TCPS_SYN_SENT) || >> > (tp->t_state == TCPS_SYN_RECEIVED)) >> > - rexmt = MSEC_2_TICKS(RACK_INITIAL_RTO * >> tcp_backoff[tp->t_rxtshift]); >> > + rexmt = MSEC_2_TICKS(RACK_INITIAL_RTO * >> tcp_syn_backoff[tp->t_rxtshift]); >> > else >> > rexmt = TCP_REXMTVAL(tp) * tcp_backoff[tp->t_rxtshift]; >> > TCPT_RANGESET(tp->t_rxtcur, rexmt, >> > @@ -4022,7 +3942,7 @@ do_rest_ofb: >> > /* >> > * Need to split this in two pieces the before and after. >> > */ >> > - nrsm = rack_alloc_limit(rack, RACK_LIMIT_TYPE_SPLIT); >> > + nrsm = rack_alloc(rack); >> > if (nrsm == NULL) { >> > /* >> > * failed XXXrrs what can we do but loose the sack >> > @@ -4083,7 +4003,7 @@ do_rest_ofb: >> > goto do_rest_ofb; >> > } >> > /* Ok we need to split off this one at the tail */ >> > - nrsm = rack_alloc_limit(rack, RACK_LIMIT_TYPE_SPLIT); >> > + nrsm = rack_alloc(rack); >> > if (nrsm == NULL) { >> > /* failed rrs what can we do but loose the sack info? */ >> > goto out; >> > @@ -4833,8 +4753,6 @@ dodata: /* XXX */ >> > if ((tlen || (thflags & TH_FIN) || tfo_syn) && >> > TCPS_HAVERCVDFIN(tp->t_state) == 0) { >> > tcp_seq save_start = th->th_seq; >> > - tcp_seq save_rnxt = tp->rcv_nxt; >> > - int save_tlen = tlen; >> > >> > m_adj(m, drop_hdrlen); /* delayed header drop */ >> > /* >> > @@ -4877,29 +4795,11 @@ dodata: /* XXX */ >> > * m_adj() doesn't actually frees any mbufs when >> > * trimming from the head. >> > */ >> > - tcp_seq temp = save_start; >> > - thflags = tcp_reass(tp, th, &temp, &tlen, m); >> > + thflags = tcp_reass(tp, th, &save_start, &tlen, >> m); >> > tp->t_flags |= TF_ACKNOW; >> > } >> > - if (((tlen == 0) && (save_tlen > 0) && >> > - (SEQ_LT(save_start, save_rnxt)))) { >> > - /* >> > - * DSACK actually handled in the fastpath >> > - * above. >> > - */ >> > - tcp_update_sack_list(tp, save_start, save_start + >> save_tlen); >> > - } else if ((tlen > 0) && SEQ_GT(tp->rcv_nxt, save_rnxt)) { >> > - /* >> > - * Cleaning sackblks by using zero length >> > - * update. >> > - */ >> > - tcp_update_sack_list(tp, save_start, save_start); >> > - } else if ((tlen > 0) && (tlen >= save_tlen)) { >> > - /* Update of sackblks. */ >> > - tcp_update_sack_list(tp, save_start, save_start + >> save_tlen); >> > - } else if (tlen > 0) { >> > - tcp_update_sack_list(tp, save_start, >> save_start+tlen); >> > - } >> > + if (tlen > 0) >> > + tcp_update_sack_list(tp, save_start, save_start + >> tlen); >> > } else { >> > m_freem(m); >> > thflags &= ~TH_FIN; >> > >> > Modified: stable/12/sys/netinet/tcp_stacks/rack_bbr_common.h >> > >> ============================================================================== >> ... >> >> -- >> Rod Grimes >> rgrimes@freebsd.org >> >