mirror of
https://git.FreeBSD.org/src.git
synced 2024-10-18 02:19:39 +00:00
tcp: hpts needs to still call output even after input.
The other stacks it turns out actually expect the output to be called and can become stuck if it is not. This is because they run there timer code from there and the input routine does not always assure a timer is running. The real longterm fix here might be to go into the other stacks (rack and bbr) and make sure that a timer is running after input if you don't do output.. as well as call the timer functions. This would cut down on calls from hpts. But I think its too dramatic of a change for the immediate time. Reviewed by: tuexen, glebius Sponsored by: Netflix Inc Differential Revision:https://reviews.freebsd.org/D39738
This commit is contained in:
parent
4bfffd8cf5
commit
01216268f8
@ -1348,11 +1348,10 @@ tcp_hptsi(struct tcp_hpts_entry *hpts, int from_callout)
|
||||
/* The input killed the connection */
|
||||
goto skip_pacing;
|
||||
}
|
||||
} else {
|
||||
error = tcp_output(tp);
|
||||
if (error < 0)
|
||||
goto skip_pacing;
|
||||
}
|
||||
error = tcp_output(tp);
|
||||
if (error < 0)
|
||||
goto skip_pacing;
|
||||
if (ninp) {
|
||||
/*
|
||||
* If we have a nxt inp, see if we can
|
||||
|
Loading…
Reference in New Issue
Block a user