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

Issue 1989003002: QUIC - add instrumentation to HPACK. (Closed)

Created:
4 years, 7 months ago by Buck
Modified:
4 years, 7 months ago
Reviewers:
Ryan Hamilton
CC:
chromium-reviews, cbentzel+watch_chromium.org
Base URL:
https://chromium.googlesource.com/chromium/src.git@master
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

QUIC - add instrumentation to HPACK. Measure delta between time of creation and use for dynamic table entries. This instrumentation is help sanity check a proposed scheme to eliminate HPACK induced HOL blocking in QUIC. The hypothesis is that most indexed representations occur some non-negligible time after the entries are added to the table in the first place. This is somewhat implied by data that shows 98% of QUIC sessions do not experience HOL blocking. If data from this new instrumentation shows the hypothesis false, then the proposed scheme is not sound. [ Note that the opposite inference is not assumed. ] This change introduces |HpackHeaderTable::DebugVisitorInterface| that surfaces dynamic table events with |OnNewEntry()| and |OnUseEntry()|, plumbed via |SpdyFramer| to |QuicHeadersStream|. Generic timekeeping code isn't available between chromium and the internal codebase, but QUIC code has |QuicTime| which is available both codebases. So the new DebugVisitorInterface uses int64_t as opaque time type, which is marshalled to/from |QuicTime| in |QuicHeadersStream|, the actual timekeeping lives on the QUIC side, and uses existing |QuicTime| and |QuicClock| facilities. |QuicHeaderStream::HpackDebugVisitor| wraps HHT:DVI providing a |OnUseEntry(QuicTime::Delta elapsed)| time suitable for use in tests and the followup change that will do UMA logging (https://codereview.chromium.org/1987913002/). Merge internal change: 122853032 BUG= Committed: https://crrev.com/ff8d65d99ceb8cb9e19c29281defdeffb0a389fa Cr-Commit-Position: refs/heads/master@{#395160}

Patch Set 1 #

Patch Set 2 : try to fix mock decl for windows compile #

Patch Set 3 : another try to fix windows compile #

Patch Set 4 : and again windows #

Patch Set 5 : I think I've done this already... #

Patch Set 6 : rebase update #

Patch Set 7 : really really rebase update #

Patch Set 8 : C4373 - don't mix const and call by value #

Patch Set 9 : update from internal review #

Patch Set 10 : changes from internal review #

Patch Set 11 : rebase-update #

Unified diffs Side-by-side diffs Delta from patch set Stats (+258 lines, -3 lines) Patch
M net/quic/quic_headers_stream.h View 1 2 3 4 5 6 7 8 9 2 chunks +19 lines, -0 lines 0 comments Download
M net/quic/quic_headers_stream.cc View 1 2 3 4 5 6 7 8 9 10 2 chunks +52 lines, -0 lines 0 comments Download
M net/quic/quic_headers_stream_test.cc View 1 2 3 4 5 6 7 8 9 10 4 chunks +106 lines, -0 lines 0 comments Download
M net/spdy/hpack/hpack_decoder.h View 1 2 3 4 5 6 7 8 1 chunk +5 lines, -0 lines 0 comments Download
M net/spdy/hpack/hpack_encoder.h View 1 2 3 4 5 6 7 8 1 chunk +5 lines, -0 lines 0 comments Download
M net/spdy/hpack/hpack_entry.h View 2 chunks +6 lines, -0 lines 0 comments Download
M net/spdy/hpack/hpack_header_table.h View 1 2 3 4 5 6 7 8 4 chunks +29 lines, -0 lines 0 comments Download
M net/spdy/hpack/hpack_header_table.cc View 1 2 3 4 5 6 7 8 9 4 chunks +20 lines, -3 lines 0 comments Download
M net/spdy/spdy_framer.h View 1 2 3 4 5 6 7 8 9 10 1 chunk +6 lines, -0 lines 0 comments Download
M net/spdy/spdy_framer.cc View 1 2 3 4 5 6 7 8 9 10 1 chunk +10 lines, -0 lines 0 comments Download

Dependent Patchsets:

Messages

Total messages: 15 (8 generated)
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1989003002/80001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1989003002/80001
4 years, 7 months ago (2016-05-18 19:48:27 UTC) #2
commit-bot: I haz the power
Dry run: Try jobs failed on following builders: mac_chromium_gn_rel on tryserver.chromium.mac (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.mac/builders/mac_chromium_gn_rel/builds/113631) win_chromium_rel_ng on ...
4 years, 7 months ago (2016-05-18 20:17:11 UTC) #4
Buck
This is a straight up merge of the internal change. The chromium specific code for ...
4 years, 7 months ago (2016-05-20 19:37:41 UTC) #8
Ryan Hamilton
lgtm Woo hoo! Facade design pattern for the win!
4 years, 7 months ago (2016-05-20 20:50:53 UTC) #10
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1989003002/200001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1989003002/200001
4 years, 7 months ago (2016-05-20 20:51:16 UTC) #11
commit-bot: I haz the power
Committed patchset #11 (id:200001)
4 years, 7 months ago (2016-05-20 20:57:05 UTC) #13
commit-bot: I haz the power
4 years, 7 months ago (2016-05-20 20:59:23 UTC) #15
Message was sent while issue was closed.
Patchset 11 (id:??) landed as
https://crrev.com/ff8d65d99ceb8cb9e19c29281defdeffb0a389fa
Cr-Commit-Position: refs/heads/master@{#395160}

Powered by Google App Engine
This is Rietveld 408576698