Landing Recent QUIC changes until 12/30/2015 21:25:57 UTC
relnote: Remove references to insecure QUIC from QUIC code.
Merge internal change: 111148463
https://codereview.chromium.org/1561613002/
relnote: Try to make QuicFramer path-aware.
Merge internal change: 111132961
https://codereview.chromium.org/1560093002/
relnote: Speed up QuicUtils::FNV1a_128_Hash by >2x. No functional change. Guarded by flag--quic_utils_use_fast_incremental_hash.
The improvement stems from the compiler being better able to optimize
__uint128_t intrinsics than base/int128.h, which results in a sufficient
reduction in code so the hashing loop can fit entirely in the IDQ.
Unfortunately, the actual benefit to QUIC is much less; this code is only used
for the null crypter, so the net improvement is only 3% of one Iota core.
Benchmark results:
Benchmarking blaze-out/gcc-4.X.Y-crosstool-v18-hybrid-grtev4-k8-opt/bin/gfe/quic/quic_utils_test
Run on jdorfman.cam (12 X 3501 MHz CPUs); 2015/12/29-10:17:01
CPU: Intel Ivybridge with HyperThreading (6 cores) dL1:32KB dL2:256KB dL3:12MB
Benchmark Time(ns) CPU(ns) Iterations
-----------------------------------------------------------
BM_FNV1a_128_Hash_Slow/1 7 7 96655929 144.3MB/s
BM_FNV1a_128_Hash_Slow/8 33 33 19950100 234.4MB/s
BM_FNV1a_128_Hash_Slow/64 250 250 2784427 244.2MB/s
BM_FNV1a_128_Hash_Slow/512 1987 1987 354172 245.7MB/s
BM_FNV1a_128_Hash_Slow/2k 7956 7873 87130 248.1MB/s
BM_FNV1a_128_Hash_Fast/1 4 4 183786447 245.4MB/s
BM_FNV1a_128_Hash_Fast/8 13 13 53793929 590.8MB/s
BM_FNV1a_128_Hash_Fast/64 102 102 6545438 597.1MB/s
BM_FNV1a_128_Hash_Fast/512 800 801 876827 609.7MB/s
BM_FNV1a_128_Hash_Fast/2k 3247 3254 217981 600.2MB/s
Merge internal change: 111129897
https://codereview.chromium.org/1556023003/
relnote: Make headers self-contained
Un-disable header parsing in BUILD files to ensure that headers are self-contained. Fix up headers and BUILD files to add missing dependencies. There are only a few targets where I explicitly disabled parsing for especially troublesome headers. I'll fix those in a follow-up CL.
Merge internal change: 111129322
https://codereview.chromium.org/1559173002/
relnote: Remove unused #include in quic_server_session_base.h and unnecessary forward declaration in quic_simple_server_stream.h. No behavior changed.
Merge internal change: 111087405
https://codereview.chromium.org/1556283002/
relnote: Close the QUIC connection in QuicPacketCreator instead of QuicConnection to ensure unencrypted stream data is ever written. Flag protected by gfe2_reloadable_flag_quic_never_write_unencrypted_data.
Merge internal change: 110809817
https://codereview.chromium.org/1560593002/
relnote: Always flush in the packet generator when a full stream frame is constructed. No functional change.
Expected to slightly improve branch prediction, because a packet is created everytime through the loop.
Merge internal change: 110701055
https://codereview.chromium.org/1560073002/
relnote: split QuicServerSession into an abstract base class(QuicServerSessionBase) and a derived class(QuicSimpleServerSession) implementing toy server session. No functional changes.
Move create incoming/outgoing/crypto stream methods to QuicSimpleServerSession. The rest methods remain in QuicServerSessionBase.
Merge internal change: 110695484
https://codereview.chromium.org/1556223002/
relnote: Replace last remaining NULLs in gfe/quic with nullptr. No behavior change.
Merge internal change: 110570650
https://codereview.chromium.org/1556053002/
[email protected]
BUG=
Review URL: https://codereview.chromium.org/1556403002
Cr-Commit-Position: refs/heads/master@{#367717}
43 files changed