From owner-svn-src-all@freebsd.org Thu Sep 5 23:21:27 2019 Return-Path: Delivered-To: svn-src-all@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 ED7AED76F7 for ; Thu, 5 Sep 2019 23:21:27 +0000 (UTC) (envelope-from wlosh@bsdimp.com) Received: from mail-qt1-x835.google.com (mail-qt1-x835.google.com [IPv6:2607:f8b0:4864:20::835]) (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 46PcBv2Lptz4WbJ for ; Thu, 5 Sep 2019 23:21:27 +0000 (UTC) (envelope-from wlosh@bsdimp.com) Received: by mail-qt1-x835.google.com with SMTP id r15so4924556qtn.12 for ; Thu, 05 Sep 2019 16:21:27 -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=sxrlCfrEe1spMgmSsHQBOWYMyJ/bJdzOe5ZiRiBsUEEStb0o6/+1NRriU5D/tjIe0U yn5OcEEMzPC3joMK3/RwP4gLgklcIJp9ks4U2kdsV1n6AbqrBZsStVHqrbI4nLL6P5Fl yw1kNdHk5BICQqeidoaU095PdlearF12nmOEjeHSjuqiDeA93GNRU/6zRAWf/RRPUQKt eQ1NZ7tE2NZItK0SycVNcX8mrADTh4L0MDsyoD22cNAn1+AfZw1B9bVWCDqOhEScsSZ4 xT8o3YK1Lm90xRiot5rNz7+k+SgKLpZiyk2btAV3A4OfPAvUXKKxtrRk/MXe6nK1Cb24 v1qQ== X-Gm-Message-State: APjAAAWcZ9e/SUG85OhxzYn9M8GEXfB6WcLUPxcgSmusOVpWYjI2ktM4 UIB9V3fkr9uI20EbfEuvYBI39DPnNGkAzys7g7Z9pw== 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: 46PcBv2Lptz4WbJ 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::835) 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-all@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)[5.3.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.40), 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-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" 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 >