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

Issue 131743009: Land Recent QUIC Changes. (Closed)

Created:
6 years, 11 months ago by ramant (doing other things)
Modified:
6 years, 11 months ago
Reviewers:
Ryan Hamilton
CC:
chromium-reviews, cbentzel+watch_chromium.org, dcheng
Visibility:
Public.

Description

Land Recent QUIC Changes. Eliminate separate boolean tracking socket writeability in QuicConnection; query the writer instead. This CL tries to minimize behavior changes, so no actual bugfixes. Connection will now check writer's status instead of its local flag, so it will refuse to write sooner. Merge internal change: 59603011 https://codereview.chromium.org/138843003/ Change QUIC's SendAlgorithmInterface to have a separate UpdateRtt method instead of passing it in with every acked packet. This fixes a bug where the RTT was not being updated when retransmitted packets were acked and one where a very large RTT could be used when packets are acked before being sent. Merge internal change: 59572874 https://codereview.chromium.org/138843003/ Break out of the loop in QuicSession::OnCanWrite if the QuicConnection is congestion control blocked. This fixes a weird form of starvation among same-priority streams caused by streams often ending up in the same order in the WriteBlockedList before and after QuicSession::OnCanWrite. Stop iterating through QUIC write blocked streams if the connection is congestion-control blocked to avoid starvation of same-priority streams. Not flag protected. Merge internal change: 59513911 https://codereview.chromium.org/139103002/ Fix a bug where the packet was put into unacked packets when it was serialized and acked before being sent. This was only ever seen on Chrome with very short RTTs. Merge internal change: 59408566 https://codereview.chromium.org/133683010/ WriteBlockedList for QUIC that prioritizes Crypto and Headers streams over data streams. Not flag protected. Merge internal change: 59400238 https://codereview.chromium.org/137893008/ Create an interface for explicit notification of Dispatcher about blocked writers; port TimeWaitListManager to the new interface. Merge internal change: 59396227 https://codereview.chromium.org/138503006/ Remove WritePacket() from internal server's QuicDispatcher; Integrating internal changes to clean up QuicDispatcher. Merge internal change: 59346874 https://codereview.chromium.org/131743007/ Reset QUIC's retransmission counters whenever a new packet is acked which updates the RTT estimate. Previously the counters were only done when the left edge was acked, which could cause excessive backoff when the connection was making progress. Merge internal change: 59292726 https://codereview.chromium.org/138273004/ Implement QuicPacketWriterWrapper. This lets us replace or embellish the low-level writer without disturbing connections that keep a pointer to the top level. Merge internal change: 59287995 https://codereview.chromium.org/138273004/ Use basictypes.h consistenly in QUIC code instead of macros.h and/or integral_types.h Simply refactoring includes. Sync'ed with internal source code for include of basictypes.h. Merge internal change: 59287325 https://codereview.chromium.org/136853005/ Use the right priority when marking QUIC streams write blocked via QuicFdWrapper::SetReady. Not flag protected. Used NULL instead of nullptr. Fixed QuicReliableClientStreamTests to pass. Activated the QuicReliableClientStream in the QuicSession so that session's MarkWriteBlocked knows about the stream. Merge internal change: 59263642 https://codereview.chromium.org/136523005/ R=rch@chromium.org Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=245204

Patch Set 1 #

Patch Set 2 : fix unittest #

Patch Set 3 : use size_t instead of int to fix win_x64 compile error #

Unified diffs Side-by-side diffs Delta from patch set Stats (+1188 lines, -621 lines) Patch
M net/net.gyp View 4 chunks +5 lines, -2 lines 0 comments Download
M net/quic/congestion_control/fix_rate_sender.h View 2 chunks +2 lines, -2 lines 0 comments Download
M net/quic/congestion_control/fix_rate_sender.cc View 2 chunks +10 lines, -9 lines 0 comments Download
M net/quic/congestion_control/fix_rate_test.cc View 3 chunks +6 lines, -8 lines 0 comments Download
M net/quic/congestion_control/inter_arrival_sender.h View 2 chunks +2 lines, -2 lines 0 comments Download
M net/quic/congestion_control/inter_arrival_sender.cc View 2 chunks +19 lines, -18 lines 0 comments Download
M net/quic/congestion_control/inter_arrival_sender_test.cc View 6 chunks +5 lines, -6 lines 0 comments Download
M net/quic/congestion_control/pacing_sender.h View 2 chunks +2 lines, -2 lines 0 comments Download
M net/quic/congestion_control/pacing_sender.cc View 2 chunks +6 lines, -3 lines 0 comments Download
M net/quic/congestion_control/send_algorithm_interface.h View 2 chunks +4 lines, -2 lines 0 comments Download
M net/quic/congestion_control/tcp_cubic_sender.h View 3 chunks +2 lines, -3 lines 0 comments Download
M net/quic/congestion_control/tcp_cubic_sender.cc View 2 chunks +2 lines, -5 lines 0 comments Download
M net/quic/congestion_control/tcp_cubic_sender_test.cc View 5 chunks +7 lines, -13 lines 0 comments Download
M net/quic/crypto/crypto_server_test.cc View 1 chunk +1 line, -0 lines 0 comments Download
M net/quic/crypto/curve25519_key_exchange.cc View 1 chunk +1 line, -0 lines 0 comments Download
M net/quic/crypto/local_strike_register_client.h View 1 chunk +1 line, -0 lines 0 comments Download
M net/quic/crypto/strike_register_client.h View 1 chunk +1 line, -0 lines 0 comments Download
M net/quic/quic_client_session.h View 1 chunk +2 lines, -0 lines 0 comments Download
M net/quic/quic_connection.h View 8 chunks +15 lines, -16 lines 0 comments Download
M net/quic/quic_connection.cc View 15 chunks +62 lines, -60 lines 0 comments Download
M net/quic/quic_connection_helper.h View 1 chunk +1 line, -0 lines 0 comments Download
M net/quic/quic_connection_test.cc View 44 chunks +156 lines, -78 lines 0 comments Download
M net/quic/quic_crypto_stream.h View 1 chunk +1 line, -0 lines 0 comments Download
M net/quic/quic_data_stream.h View 1 chunk +2 lines, -0 lines 0 comments Download
M net/quic/quic_data_stream.cc View 1 chunk +1 line, -1 line 0 comments Download
M net/quic/quic_data_stream_test.cc View 2 chunks +2 lines, -1 line 0 comments Download
M net/quic/quic_fec_group.cc View 1 chunk +1 line, -0 lines 0 comments Download
M net/quic/quic_fec_group_test.cc View 1 chunk +1 line, -0 lines 0 comments Download
M net/quic/quic_framer_test.cc View 2 chunks +2 lines, -1 line 0 comments Download
M net/quic/quic_http_stream_test.cc View 4 chunks +4 lines, -4 lines 0 comments Download
M net/quic/quic_packet_creator.cc View 1 chunk +1 line, -0 lines 0 comments Download
M net/quic/quic_packet_generator.cc View 1 chunk +1 line, -0 lines 0 comments Download
M net/quic/quic_packet_writer.h View 1 chunk +2 lines, -2 lines 0 comments Download
M net/quic/quic_reliable_client_stream.cc View 2 chunks +2 lines, -2 lines 0 comments Download
M net/quic/quic_reliable_client_stream_test.cc View 1 7 chunks +23 lines, -21 lines 0 comments Download
M net/quic/quic_sent_packet_manager.cc View 7 chunks +22 lines, -29 lines 0 comments Download
M net/quic/quic_sent_packet_manager_test.cc View 19 chunks +66 lines, -26 lines 0 comments Download
M net/quic/quic_session.h View 4 chunks +4 lines, -4 lines 0 comments Download
M net/quic/quic_session.cc View 4 chunks +22 lines, -9 lines 0 comments Download
M net/quic/quic_session_test.cc View 5 chunks +75 lines, -2 lines 0 comments Download
M net/quic/quic_stream_sequencer_test.cc View 1 chunk +1 line, -0 lines 0 comments Download
M net/quic/quic_utils.cc View 2 chunks +4 lines, -3 lines 0 comments Download
A net/quic/quic_write_blocked_list.h View 1 2 1 chunk +90 lines, -0 lines 0 comments Download
A net/quic/quic_write_blocked_list.cc View 1 chunk +21 lines, -0 lines 0 comments Download
A net/quic/quic_write_blocked_list_test.cc View 1 chunk +106 lines, -0 lines 0 comments Download
M net/quic/reliable_quic_stream.h View 1 chunk +1 line, -0 lines 0 comments Download
M net/quic/reliable_quic_stream.cc View 1 chunk +1 line, -1 line 0 comments Download
M net/quic/reliable_quic_stream_test.cc View 2 chunks +2 lines, -1 line 0 comments Download
M net/quic/test_tools/crypto_test_utils.h View 1 chunk +1 line, -0 lines 0 comments Download
M net/quic/test_tools/quic_connection_peer.h View 5 chunks +5 lines, -8 lines 0 comments Download
M net/quic/test_tools/quic_connection_peer.cc View 4 chunks +7 lines, -13 lines 0 comments Download
M net/quic/test_tools/quic_data_stream_peer.h View 1 chunk +0 lines, -1 line 0 comments Download
M net/quic/test_tools/quic_session_peer.h View 2 chunks +2 lines, -3 lines 0 comments Download
M net/quic/test_tools/quic_session_peer.cc View 1 chunk +1 line, -1 line 0 comments Download
M net/quic/test_tools/quic_test_utils.h View 4 chunks +6 lines, -2 lines 0 comments Download
D net/quic/test_tools/quic_test_writer.h View 1 chunk +0 lines, -37 lines 0 comments Download
D net/quic/test_tools/quic_test_writer.cc View 1 chunk +0 lines, -31 lines 0 comments Download
M net/quic/test_tools/simple_quic_framer.h View 1 chunk +1 line, -0 lines 0 comments Download
M net/tools/quic/end_to_end_test.cc View 7 chunks +11 lines, -9 lines 0 comments Download
M net/tools/quic/quic_client.h View 4 chunks +18 lines, -0 lines 0 comments Download
M net/tools/quic/quic_client.cc View 1 chunk +7 lines, -2 lines 0 comments Download
M net/tools/quic/quic_client_session.h View 1 chunk +1 line, -0 lines 0 comments Download
M net/tools/quic/quic_dispatcher.h View 10 chunks +35 lines, -12 lines 0 comments Download
M net/tools/quic/quic_dispatcher.cc View 6 chunks +27 lines, -10 lines 0 comments Download
M net/tools/quic/quic_dispatcher_test.cc View 14 chunks +58 lines, -45 lines 0 comments Download
M net/tools/quic/quic_epoll_clock.h View 1 chunk +1 line, -0 lines 0 comments Download
A net/tools/quic/quic_packet_writer_wrapper.h View 1 chunk +51 lines, -0 lines 0 comments Download
A net/tools/quic/quic_packet_writer_wrapper.cc View 1 chunk +50 lines, -0 lines 0 comments Download
M net/tools/quic/quic_server.h View 1 chunk +1 line, -0 lines 0 comments Download
M net/tools/quic/quic_server.cc View 1 chunk +3 lines, -3 lines 0 comments Download
M net/tools/quic/quic_server_session.h View 4 chunks +9 lines, -5 lines 0 comments Download
M net/tools/quic/quic_server_session.cc View 2 chunks +9 lines, -6 lines 0 comments Download
M net/tools/quic/quic_server_session_test.cc View 2 chunks +3 lines, -4 lines 0 comments Download
M net/tools/quic/quic_server_test.cc View 1 chunk +3 lines, -1 line 0 comments Download
M net/tools/quic/quic_socket_utils.cc View 1 chunk +1 line, -0 lines 0 comments Download
M net/tools/quic/quic_spdy_client_stream.h View 1 chunk +1 line, -0 lines 0 comments Download
M net/tools/quic/quic_spdy_server_stream.h View 1 chunk +1 line, -0 lines 0 comments Download
M net/tools/quic/quic_time_wait_list_manager.h View 5 chunks +9 lines, -2 lines 0 comments Download
M net/tools/quic/quic_time_wait_list_manager.cc View 4 chunks +6 lines, -1 line 0 comments Download
M net/tools/quic/quic_time_wait_list_manager_test.cc View 6 chunks +6 lines, -11 lines 0 comments Download
M net/tools/quic/test_tools/mock_quic_dispatcher.h View 1 chunk +1 line, -1 line 0 comments Download
M net/tools/quic/test_tools/mock_quic_dispatcher.cc View 1 chunk +2 lines, -4 lines 0 comments Download
M net/tools/quic/test_tools/packet_dropping_test_writer.h View 3 chunks +5 lines, -6 lines 0 comments Download
M net/tools/quic/test_tools/packet_dropping_test_writer.cc View 5 chunks +8 lines, -12 lines 0 comments Download
M net/tools/quic/test_tools/quic_dispatcher_peer.h View 2 chunks +7 lines, -3 lines 0 comments Download
M net/tools/quic/test_tools/quic_dispatcher_peer.cc View 2 chunks +6 lines, -6 lines 0 comments Download
M net/tools/quic/test_tools/quic_test_client.h View 6 chunks +8 lines, -6 lines 0 comments Download
M net/tools/quic/test_tools/quic_test_client.cc View 9 chunks +41 lines, -35 lines 0 comments Download
M net/tools/quic/test_tools/quic_test_utils.h View 1 chunk +4 lines, -3 lines 0 comments Download
M net/tools/quic/test_tools/quic_test_utils.cc View 1 chunk +2 lines, -2 lines 0 comments Download

Messages

Total messages: 10 (0 generated)
ramant (doing other things)
6 years, 11 months ago (2014-01-15 02:25:22 UTC) #1
Ryan Hamilton
lgtm
6 years, 11 months ago (2014-01-15 05:24:49 UTC) #2
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/rtenneti@chromium.org/131743009/1
6 years, 11 months ago (2014-01-15 05:51:55 UTC) #3
commit-bot: I haz the power
Retried try job too often on linux_rel for step(s) net_unittests http://build.chromium.org/p/tryserver.chromium/buildstatus?builder=linux_rel&number=214258
6 years, 11 months ago (2014-01-15 16:44:24 UTC) #4
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/rtenneti@chromium.org/131743009/180004
6 years, 11 months ago (2014-01-15 19:33:42 UTC) #5
commit-bot: I haz the power
Retried try job too often on win_x64_rel for step(s) base_unittests http://build.chromium.org/p/tryserver.chromium/buildstatus?builder=win_x64_rel&number=67741
6 years, 11 months ago (2014-01-16 00:23:02 UTC) #6
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/rtenneti@chromium.org/131743009/650001
6 years, 11 months ago (2014-01-16 01:28:01 UTC) #7
commit-bot: I haz the power
Retried try job too often on win_rel for step(s) browser_tests http://build.chromium.org/p/tryserver.chromium/buildstatus?builder=win_rel&number=247068
6 years, 11 months ago (2014-01-16 03:41:10 UTC) #8
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/rtenneti@chromium.org/131743009/650001
6 years, 11 months ago (2014-01-16 06:16:16 UTC) #9
commit-bot: I haz the power
6 years, 11 months ago (2014-01-16 15:58:19 UTC) #10
Message was sent while issue was closed.
Change committed as 245204

Powered by Google App Engine
This is Rietveld 408576698