AW: git: d1de2b05a001 - main - tcp: Rename rfc6675_pipe to sack.revised, and enable by default

Scheffenegger, Richard Richard.Scheffenegger at netapp.com
Sun Apr 18 14:54:42 UTC 2021


It appears that the SACK scoreboard ended up unordered (the assumption/invariant is for it to remain sorted for efficient processing):

tp->snd_holes
	0xfffff80726393c00	3958849524	3958865856
	0xfffff80726393bc0	3958816860	3958849524
	0xfffff80726393ae0	3959110836	3959192496

The 2nd entry has lower sequence numbers than the first. The KASSERT happened, when this hole was scheduled for retransmission, but snd_una already acknowledged it by that time...

It seems the reproduction is stable, I will look into where this happens...

Richard Scheffenegger


-----Ursprüngliche Nachricht-----
Von: owner-src-committers at freebsd.org <owner-src-committers at freebsd.org> Im Auftrag von Peter Holm
Gesendet: Sonntag, 18. April 2021 11:04
An: Scheffenegger, Richard <Richard.Scheffenegger at netapp.com>
Cc: Richard Scheffenegger <rscheff at freebsd.org>; src-committers at freebsd.org; dev-commits-src-all at freebsd.org; dev-commits-src-main at freebsd.org; transport at freebsd.org
Betreff: Re: git: d1de2b05a001 - main - tcp: Rename rfc6675_pipe to sack.revised, and enable by default

NetApp Security WARNING: This is an external email. Do not click links or open attachments unless you recognize the sender and know the content is safe.




On Sun, Apr 18, 2021 at 08:30:20AM +0000, Scheffenegger, Richard wrote:
> Hi Peter,
>
> Hmm... the panic appears to be due to a stale entry in the sack scoreboard - a hole not having been closed up to snd_una...
>
> Unlikely that this was solely due to this change by itself.
>
> Can I get the vmcore and kernel.debug for a close investigation?
>

Sure. Uploaded to: https://people.freebsd.org/~pho/kernel.vmcore.320-mercat1.tar

- Peter

>
> Richard Scheffenegger
>
> -----Ursprüngliche Nachricht-----
> Von: Peter Holm <pho at freebsd.org>
> Gesendet: Sonntag, 18. April 2021 08:01
> An: Richard Scheffenegger <rscheff at freebsd.org>
> Cc: src-committers at freebsd.org; dev-commits-src-all at freebsd.org; 
> dev-commits-src-main at freebsd.org
> Betreff: Re: git: d1de2b05a001 - main - tcp: Rename rfc6675_pipe to 
> sack.revised, and enable by default
>
> NetApp Security WARNING: This is an external email. Do not click links or open attachments unless you recognize the sender and know the content is safe.
>
>
>
>
> On Sat, Apr 17, 2021 at 01:50:25PM +0000, Richard Scheffenegger wrote:
> > The branch main has been updated by rscheff:
> >
> > URL:
> > https://cgit.FreeBSD.org/src/commit/?id=d1de2b05a001d3d80f633f576f49
> > 09
> > c2686dda3d
> >
> > commit d1de2b05a001d3d80f633f576f4909c2686dda3d
> > Author:     Richard Scheffenegger <rscheff at FreeBSD.org>
> > AuthorDate: 2021-04-17 12:59:30 +0000
> > Commit:     Richard Scheffenegger <rscheff at FreeBSD.org>
> > CommitDate: 2021-04-17 12:59:45 +0000
> >
> >     tcp: Rename rfc6675_pipe to sack.revised, and enable by default
> >
> >     As full support of RFC6675 is in place, deprecating
> >     net.inet.tcp.rfc6675_pipe and enabling by default
> >     net.inet.tcp.sack.revised.
> >
> >     Reviewed By: #transport, kbowling, rrs
> >     Sponsored by: NetApp, Inc.
> >     Differential Revision: https://reviews.freebsd.org/D28702
> > ---
> >  share/man/man4/tcp.4        | 25 ++++++++++++++-----------
> >  sys/netinet/cc/cc_cubic.c   |  2 +-
> >  sys/netinet/cc/cc_htcp.c    |  2 +-
> >  sys/netinet/cc/cc_newreno.c |  2 +-
> >  sys/netinet/tcp_input.c     | 11 +++--------
> >  sys/netinet/tcp_sack.c      | 12 +++++++++---
> >  sys/netinet/tcp_var.h       |  4 ++--
> >  7 files changed, 31 insertions(+), 27 deletions(-)
> >
> > diff --git a/share/man/man4/tcp.4 b/share/man/man4/tcp.4 index 
> > d01505e58427..cbb8021226fe 100644
> > --- a/share/man/man4/tcp.4
>
> Could this panic be related?
>
> 20210418 07:19:59 all (204/751): jumbo.sh
> panic: tcp_output: sack block to the left of una : -293976 cpuid = 3 
> time = 1618723234
> KDB: stack backtrace:
> db_trace_self_wrapper() at db_trace_self_wrapper+0x2b/frame 
> 0xfffffe00e49b0550
> vpanic() at vpanic+0x181/frame 0xfffffe00e49b05a0
> panic() at panic+0x43/frame 0xfffffe00e49b0600
> tcp_output() at tcp_output+0x27dc/frame 0xfffffe00e49b07c0
> tcp_do_segment() at tcp_do_segment+0x32a3/frame 0xfffffe00e49b08b0
> tcp_input() at tcp_input+0xbd5/frame 0xfffffe00e49b0a10
> ip_input() at ip_input+0x194/frame 0xfffffe00e49b0aa0
> swi_net() at swi_net+0x1a1/frame 0xfffffe00e49b0b20
> ithread_loop() at ithread_loop+0x279/frame 0xfffffe00e49b0bb0
> fork_exit() at fork_exit+0x80/frame 0xfffffe00e49b0bf0
> fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe00e49b0bf0
> --- trap 0, rip = 0, rsp = 0, rbp = 0 ---
>
> https://people.freebsd.org/~pho/stress/log/log0094.txt
>
> - Peter


More information about the freebsd-transport mailing list