From owner-svn-src-stable-12@freebsd.org Thu Sep 5 23:21:28 2019 Return-Path: Delivered-To: svn-src-stable-12@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 1A7BBD76FA for ; Thu, 5 Sep 2019 23:21:28 +0000 (UTC) (envelope-from wlosh@bsdimp.com) Received: from mail-qt1-x82d.google.com (mail-qt1-x82d.google.com [IPv6:2607:f8b0:4864:20::82d]) (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 46PcBt5f1Kz4WbD for ; Thu, 5 Sep 2019 23:21:26 +0000 (UTC) (envelope-from wlosh@bsdimp.com) Received: by mail-qt1-x82d.google.com with SMTP id c9so4940235qth.9 for ; Thu, 05 Sep 2019 16:21:26 -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=X7oMCVkgDLtegD8AzjYzvm1N8nfk5OqgQH6DxqQuDY8=; b=Uw7g9A4XxH12FD9+qQ0mTfQpf60YsWn9/2eDztHdFViAtpMhNCtuBkagxIdU1p1QWq vU/Bn2y7oBPiDIoUlZDx1Od3OGH8MS7kSFBOO0uc9l9GYFrO3tEziEvXK6zhXQqnk5PZ tv2NrAGrmb51Ht6WwXdWlkV3ItTkzIkuygyHtegFhgifk9Alfgt1BXcud/DHhGyI3Ew2 fFz+vMmaxlCZ3/oO5MmrLTjWrZbrySB3eCNbyNDQzNhyhzg5O2xQWj8XXVaavXZbCX9D 2W/UjEfifXI+PXywlQSLpWlZOXR6sbFETK8HRqiJ7dCam+Fcj/kghvoh0Kj618p3AgOK 50/Q== 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=X7oMCVkgDLtegD8AzjYzvm1N8nfk5OqgQH6DxqQuDY8=; b=fMvqeEvJSuIZvHwEp48WnLJ5DCssAoc9tiXFt5yHy88Wff1HV30niEVWzbUbQpaMrL lQ8X/OyV/X709vVDb+kxvxDrZUq12T5H0ok0TBZqHqMn/zmpDvYffhQ45uLkBmp7A7vx IoRPUQWW9DC4b7SC/19B6Y31YUZuZ6558TMWPgJrQVMtI59ShhuAunA7499eL63V8IrJ qXOFzB+bqkUrSGU4x4rHHQeAmq8uwIKzcsJpdOgMQ3ld73WcHzqBBPo/8K01TQCsOCfn h2Y1luMUxssT7M2hQBMeWqDGpr0mm8F6mS1xasqsjKOWcaQwx6g48OUl+At7Yx3xm8/8 cThw== X-Gm-Message-State: APjAAAUzHJiGgrLGx+nbjeRV323RJyjajnMIC+TfsYfL9wK6hR+FShEv /J5JOatIMXN6tCFFYJULGkfO5CEnFwivTIEvsLUa2A== X-Google-Smtp-Source: APXvYqwzwUS21OwR75UkVQUKH0MY4j8ChpDdwK8ANF5chHwaDupMv2/6F3oi+9Sr4p8WpNB7WWueRYUuNbzJe2cPMiU= X-Received: by 2002:ac8:3364:: with SMTP id u33mr6512235qta.187.1567725685271; Thu, 05 Sep 2019 16:21:25 -0700 (PDT) MIME-Version: 1.0 References: <201909052238.x85Mcs3R010976@repo.freebsd.org> <201909052315.x85NFElx027352@gndrsh.dnsmgr.net> In-Reply-To: <201909052315.x85NFElx027352@gndrsh.dnsmgr.net> From: Warner Losh Date: Thu, 5 Sep 2019 17:21:14 -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: 46PcBt5f1Kz4WbD X-Spamd-Bar: ---- Authentication-Results: mx1.freebsd.org; dkim=pass header.d=bsdimp-com.20150623.gappssmtp.com header.s=20150623 header.b=Uw7g9A4X; dmarc=none; spf=none (mx1.freebsd.org: domain of wlosh@bsdimp.com has no SPF policy when checking 2607:f8b0:4864:20::82d) smtp.mailfrom=wlosh@bsdimp.com X-Spamd-Result: default: False [-4.79 / 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-12@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:+]; MIME_BASE64_TEXT(0.10)[]; RCVD_IN_DNSWL_NONE(0.00)[d.2.8.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]; NEURAL_HAM_SHORT(-0.99)[-0.993,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.90)[ip: (-9.39), 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-12@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for only the 12-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 05 Sep 2019 23:21:28 -0000 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.... 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 >