Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(230)

Issue 368803003: QUIC_VERSION_21: headers and crypto streams are now flow controlled at (Closed)

Created:
6 years, 5 months ago by ramant (doing other things)
Modified:
6 years, 5 months ago
CC:
chromium-reviews, cbentzel+watch_chromium.org, wtc, Robbie Shade
Project:
chromium
Visibility:
Public.

Description

QUIC_VERSION_21: headers and crypto streams are now flow controlled at the stream level, but do not contribute to connection level flow control. Merge internal change: 70318947 R=rch@chromium.org

Patch Set 1 #

Total comments: 10
Unified diffs Side-by-side diffs Delta from patch set Stats (+170 lines, -23 lines) Patch
M net/quic/quic_crypto_stream.cc View 1 chunk +7 lines, -1 line 0 comments Download
M net/quic/quic_crypto_stream_test.cc View 2 chunks +11 lines, -2 lines 0 comments Download
M net/quic/quic_headers_stream.cc View 1 chunk +7 lines, -1 line 0 comments Download
M net/quic/quic_headers_stream_test.cc View 2 chunks +11 lines, -2 lines 0 comments Download
M net/quic/quic_protocol.h View 2 chunks +4 lines, -2 lines 0 comments Download
M net/quic/quic_protocol.cc View 2 chunks +3 lines, -0 lines 0 comments Download
M net/quic/quic_session.cc View 4 chunks +20 lines, -4 lines 0 comments Download
M net/quic/reliable_quic_stream.h View 2 chunks +10 lines, -0 lines 0 comments Download
M net/quic/reliable_quic_stream.cc View 6 chunks +27 lines, -11 lines 8 comments Download
M net/quic/test_tools/quic_session_peer.h View 2 chunks +2 lines, -0 lines 0 comments Download
M net/quic/test_tools/quic_session_peer.cc View 1 chunk +5 lines, -0 lines 0 comments Download
M net/quic/test_tools/reliable_quic_stream_peer.h View 1 chunk +3 lines, -0 lines 0 comments Download
M net/quic/test_tools/reliable_quic_stream_peer.cc View 1 chunk +6 lines, -0 lines 0 comments Download
M net/tools/quic/end_to_end_test.cc View 1 chunk +54 lines, -0 lines 2 comments Download

Messages

Total messages: 5 (0 generated)
ramant (doing other things)
6 years, 5 months ago (2014-07-02 02:06:08 UTC) #1
Ryan Hamilton
lgtm
6 years, 5 months ago (2014-07-02 19:24:51 UTC) #2
wtc
Patch set 1 LGTM. Some of my suggested fixes for nits may not be worth ...
6 years, 5 months ago (2014-07-02 22:38:31 UTC) #3
jar (doing other things)
This looks to be a nice compact CL.... It seems very plausible to get this ...
6 years, 5 months ago (2014-07-14 21:49:23 UTC) #4
ramant (doing other things)
6 years, 5 months ago (2014-07-16 19:43:09 UTC) #5
Message was sent while issue was closed.
Fixed the comments in CL: https://codereview.chromium.org/394053003/ and will
merge that back into the internal source tree.

https://codereview.chromium.org/368803003/diff/1/net/quic/reliable_quic_strea...
File net/quic/reliable_quic_stream.cc (right):

https://codereview.chromium.org/368803003/diff/1/net/quic/reliable_quic_strea...
net/quic/reliable_quic_stream.cc:336: if
(stream_contributes_to_connection_flow_control_) {
On 2014/07/02 22:38:31, wtc wrote:
> 
> Nit: we can merge these two if statements as follows:
> 
>   if (stream_contributes_to_connection_flow_control_) {
>     connection_flow_controller_->MaybeSendBlocked();
>     // If we are connection level flow control blocked, then add the stream
>     // to the write blocked list. It will be given a chance to write when a
>     // connection level WINDOW_UPDATE arrives.
>     if (connection_flow_controller_->IsBlocked() &&
>         !flow_controller_.IsBlocked()) {
>       session_->MarkWriteBlocked(id(), EffectivePriority());
>     }
>   }
> 
> Alternatively, we can do an early return:
> 
>   if (!stream_contributes_to_connection_flow_control_) {
>     return;
>   }
>   connection_flow_controller_->MaybeSendBlocked();
>   ...

Done.

https://codereview.chromium.org/368803003/diff/1/net/quic/reliable_quic_strea...
net/quic/reliable_quic_stream.cc:336: if
(stream_contributes_to_connection_flow_control_) {
On 2014/07/14 21:49:23, jar wrote:
> On 2014/07/02 22:38:31, wtc wrote:
> > 
> > Nit: we can merge these two if statements as follows:
> > 
> >   if (stream_contributes_to_connection_flow_control_) {
> >     connection_flow_controller_->MaybeSendBlocked();
> >     // If we are connection level flow control blocked, then add the stream
> >     // to the write blocked list. It will be given a chance to write when a
> >     // connection level WINDOW_UPDATE arrives.
> >     if (connection_flow_controller_->IsBlocked() &&
> >         !flow_controller_.IsBlocked()) {
> >       session_->MarkWriteBlocked(id(), EffectivePriority());
> >     }
> >   }
> > 
> > Alternatively, we can do an early return:
> > 
> >   if (!stream_contributes_to_connection_flow_control_) {
> >     return;
> >   }
> >   connection_flow_controller_->MaybeSendBlocked();
> >   ...
> 
> +1 for early return suggestion.

Done.

https://codereview.chromium.org/368803003/diff/1/net/quic/reliable_quic_strea...
net/quic/reliable_quic_stream.cc:500: if
(stream_contributes_to_connection_flow_control_) {
On 2014/07/02 22:38:30, wtc wrote:
> 
> Nit: merge this inner if with the if on line 496.

Reworked the if statements.

https://codereview.chromium.org/368803003/diff/1/net/quic/reliable_quic_strea...
net/quic/reliable_quic_stream.cc:538: return stream_flow_control_blocked ||
connecton_flow_control_blocked;
On 2014/07/02 22:38:31, wtc wrote:
> 
> Nit: the new code loses some of the short circuit. We can also do:
> 
>   if (flow_controller_.IsBlocked()) {
>     return true;
>   }
>   return stream_contributes_to_connection_flow_control_ &&
>          connection_flow_controller_->IsBlocked();

Done.

https://codereview.chromium.org/368803003/diff/1/net/tools/quic/end_to_end_te...
File net/tools/quic/end_to_end_test.cc (right):

https://codereview.chromium.org/368803003/diff/1/net/tools/quic/end_to_end_te...
net/tools/quic/end_to_end_test.cc:1328: server_connection_flow_controller));
On 2014/07/14 21:49:23, jar wrote:
> nit: either indent 4 from the "EXP..."  or 4 from the "("

Done.

Powered by Google App Engine
This is Rietveld 408576698