- 31 Oct, 2016 2 commits
-
-
Brad Fitzpatrick authored
The previous way was causing init blocks to be generated which the linker wasn't smart enough to discard, and the cmd/go tool was once again including http1 & http2 Servers. Change-Id: I9d82e14421e0faa96437668f9013d1174f009936 Reviewed-on: https://go-review.googlesource.com/32417Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> Reviewed-by: Daniel Theophanes <kardianos@gmail.com> Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Alex Brainman authored
Fixes golang/go#17661 Change-Id: Iff004af969c694dde9bc3c56add3a419ab1beac7 Reviewed-on: https://go-review.googlesource.com/32373Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> Run-TryBot: Alex Brainman <alex.brainman@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
- 30 Oct, 2016 2 commits
-
-
Brad Fitzpatrick authored
This adds support for gracefully shutting down the Server, including sending a GOAWAY frame to clients and shutting down when things are idle. For now this support is only when integrated with the standard library's Server. A future change could export some of this. Updates golang/go#4674 Change-Id: I78cd4f58ca529bf9d149054f929d9089e7685875 Reviewed-on: https://go-review.googlesource.com/32412 Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
Brad Fitzpatrick authored
The net/http package is now better at HTTP redirects, but that broke these tests which were trying to test the WebDAV server handler's behavior for a single roundtrip but were accidentally using the HTTP client (which does redirects) instead. Use the http.Transport which only does a single HTTP roundtrip. Change-Id: I8a0cfe2f841effc2f50c26f90c140e94e256a0ac Reviewed-on: https://go-review.googlesource.com/32413 Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Dominik Honnef <dominik@honnef.co> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
- 29 Oct, 2016 3 commits
-
-
Brad Fitzpatrick authored
This is an alternate implementation of https://golang.org/cl/32230 which is nicer to the dead code elimination in Go's linker. The old implementation causes a test in the net/http package to fail: https://storage.googleapis.com/go-build-log/2c24cf88/linux-amd64_39728ac9.log ... since it caused the cmd/go binary to link in the whole http1 & http2 Server code, due to the init func and slice which referenced those symbols. Instead, use an explicit func. This aso includes the tests meant to be in CL 32230 but which I'd failed to git add earlier. Updates golang/go#14204 Change-Id: I13dc138bf0c4df65bc282133ee94036b7f84ab70 Reviewed-on: https://go-review.googlesource.com/32323 Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Martin Möhrmann <martisch@uos.de>
-
Brad Fitzpatrick authored
The console package empirically seems to require \r\n line endings now, else the print head does not go back to the left of the screen. Change-Id: I49f1870b8c48da254afaeaf3daf2e8fdd0432d52 Reviewed-on: https://go-review.googlesource.com/32321Reviewed-by: Blake Mizerany <blake.mizerany@gmail.com>
-
Nigel Tao authored
escapeXML was introduced in the previous commit: https://go-review.googlesource.com/29297 Change-Id: I7d0c982049e495b312b1b8d28ba794444dd605d4 Reviewed-on: https://go-review.googlesource.com/32370Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
- 28 Oct, 2016 1 commit
-
-
Brad Fitzpatrick authored
CancelFunc was the only part of the context package which didn't forward nicely with the move from x/net/context to std context. Use it for Context as well. Change-Id: Ieff39b10b0783d55d0437c73923053297ed0ea4a Reviewed-on: https://go-review.googlesource.com/32317 Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> Reviewed-by: Rob Pike <r@golang.org>
-
- 27 Oct, 2016 3 commits
-
-
Brad Fitzpatrick authored
This makes ConfigureServer initialize the http2 Server's IdleTimeout from the http1 Server configuration, using the same rules as IdleTimeout in Go 1.8: first use IdleTimeout if specified, else fall back to the old ReadTimeout. Updates golang/go#14204 Change-Id: I4dee971f8416ef0cbf99335a199c46355f9ab09d Reviewed-on: https://go-review.googlesource.com/32230 Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Tom Bergan <tombergan@google.com> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Brad Fitzpatrick authored
Fixes regression from https://golang.org/cl/31495 which generated massive stacks like: net/http.(*http2serverConn).startFrameWrite(0x1890e7e0, 0x859bc70, 0x18c26050, 0x1897c1c0, 0x0) /tmp/workdir/go/src/net/http/h2_bundle.go:3664 +0x34a net/http.(*http2serverConn).scheduleFrameWrite(0x1890e7e0) /tmp/workdir/go/src/net/http/h2_bundle.go:3779 +0x114 net/http.(*http2serverConn).wroteFrame(0x1890e7e0, 0x859bb50, 0x18c26060, 0x0, 0x0, 0x0, 0x0) /tmp/workdir/go/src/net/http/h2_bundle.go:3742 +0xc8 net/http.(*http2serverConn).startFrameWrite(0x1890e7e0, 0x859bb50, 0x18c26060, 0x0, 0x0) /tmp/workdir/go/src/net/http/h2_bundle.go:3689 +0x23f net/http.(*http2serverConn).scheduleFrameWrite(0x1890e7e0) /tmp/workdir/go/src/net/http/h2_bundle.go:3779 +0x114 net/http.(*http2serverConn).writeFrame(0x1890e7e0, 0x859bb50, 0x18c26060, 0x0, 0x0) /tmp/workdir/go/src/net/http/h2_bundle.go:3648 +0x6b net/http.(*http2serverConn).resetStream(0x1890e7e0, 0x1, 0x8, 0x0, 0x0) /tmp/workdir/go/src/net/http/h2_bundle.go:3815 +0x91 net/http.(*http2serverConn).wroteFrame(0x1890e7e0, 0x859b6d0, 0x1890db00, 0x1897c1c0, 0x18ede040, 0x0, 0x0) /tmp/workdir/go/src/net/http/h2_bundle.go:3736 +0x124 net/http.(*http2serverConn).startFrameWrite(0x1890e7e0, 0x859b6d0, 0x1890db00, 0x1897c1c0, 0x18ede040) /tmp/workdir/go/src/net/http/h2_bundle.go:3689 +0x23f net/http.(*http2serverConn).scheduleFrameWrite(0x1890e7e0) /tmp/workdir/go/src/net/http/h2_bundle.go:3779 +0x114 net/http.(*http2serverConn).wroteFrame(0x1890e7e0, 0x859bc70, 0x18c26018, 0x0, 0x0, 0x0, 0x0) /tmp/workdir/go/src/net/http/h2_bundle.go:3742 +0xc8 net/http.(*http2serverConn).startFrameWrite(0x1890e7e0, 0x859bc70, 0x18c26018, 0x0, 0x0) /tmp/workdir/go/src/net/http/h2_bundle.go:3689 +0x23f net/http.(*http2serverConn).scheduleFrameWrite(0x1890e7e0) /tmp/workdir/go/src/net/http/h2_bundle.go:3779 +0x114 net/http.(*http2serverConn).wroteFrame(0x1890e7e0, 0x859b730, 0x18ede000, 0x1897c1c0, 0x0, 0x0, 0x0) /tmp/workdir/go/src/net/http/h2_bundle.go:3742 +0xc8 net/http.(*http2serverConn).serve(0x1890e7e0) /tmp/workdir/go/src/net/http/h2_bundle.go:3504 +0x50d net/http.(*http2Server).ServeConn(0x18ab49a0, 0x859e040, 0x18df2000, 0x1894ae18) /tmp/workdir/go/src/net/http/h2_bundle.go:3152 +0x6d9 net/http.http2ConfigureServer.func1(0x18d364e0, 0x18df2000, 0x859a1b0, 0x18ab2308) /tmp/workdir/go/src/net/http/h2_bundle.go:3033 +0x70 net/http.(*conn).serve(0x18ad60f0, 0x859cbc0, 0x18aa42a0) /tmp/workdir/go/src/net/http/server.go:1633 +0xf03 This changes it to be a loop instead. This also fixes the "internal error: attempt to send frame on half-closed-local stream" crash from golang/go#17627 because wroteFrame set stateHalfClosedLocal temporarily while calling resetStream which itself does a write in some cases. Prior to CL 31495 those writes were processed breadth-first. CL 31495 made the writes generated from resetStream (like the window updates returning unused flow-control) more aggressive and scheduled immediately. This loop restores the old write scheduling. Fixes golang/go#17627 Change-Id: I9651568e4105791d24d46819499efc7e018c86c3 Reviewed-on: https://go-review.googlesource.com/32217Reviewed-by: Tom Bergan <tombergan@google.com> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Tom Bergan authored
This makes x/net/http2's ResponseWriter implement the new interface, http.Pusher. This new interface requires Go 1.8. When compiled against older versions of Go, the ResponseWriter does not have a Push method. Fixes golang/go#13443 Change-Id: I8486ffe4bb5562a94270ace21e90e8c9a4653da0 Reviewed-on: https://go-review.googlesource.com/29439Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
-
- 24 Oct, 2016 4 commits
-
-
Tom Bergan authored
Fix spec bug: Section 5.3.1 says that self-dependencies should be treated as a stream error of type PROTOCOL_ERROR. Updates golang/go#16046 Change-Id: I8b5dc8808943dc96aac0c543c7032fa989ab9e0b Reviewed-on: https://go-review.googlesource.com/31858Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Brad Fitzpatrick authored
Don't do async frame writes when the write is known to be small enough to definitely fit in the write buffer and not cause a flush (which might block). This avoids starting a new goroutine and doing a channel send operation for many frame writes. name old time/op new time/op delta ServerGets-4 146µs ± 2% 144µs ± 1% -1.46% (p=0.000 n=14+14) ServerPosts-4 162µs ± 1% 160µs ± 1% -1.15% (p=0.000 n=15+15) Server_GetRequest-4 145µs ± 1% 143µs ± 0% -1.26% (p=0.000 n=15+15) Server_PostRequest-4 160µs ± 1% 158µs ± 1% -1.32% (p=0.000 n=15+15) The headers frame is the main last one which might show some benefit if there's a cheap enough way to conservatively calculate its size. Change-Id: I9be2ddbf04689340819d8701ea671fff378d9e79 Reviewed-on: https://go-review.googlesource.com/31495 Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Tom Bergan authored
This adds an interface to support pluggable schedulers. The interface is defined in writesched.go. The only type needed by this interface is FrameWriteRequest, which describes a request to write a frame (this used to be called frameWriteMsg). The scheduler can be configured with a new field in http2.Server. Two schedulers are implemented: 1) A random scheduler that is essentially equivalent to the existing scheduler. This is currently the default scheduler if none is configured. The implementation is in writesched_random.go. 2) A scheduler that uses H2 weights and priorities. The H2 priority tree is maintained as a tree of priorityNodes. The next frame is chosen by walking this tree in topological order, where sibling nodes are ordered by their bandwidth usage relative to their H2 weight. Two optional features are added to improve performance -- these are configured with PriorityWriteSchedulerConfig. Fixes golang/go#16168 Change-Id: I97ec93e5c58c2efec35455ba2f3c31e849f706af Reviewed-on: https://go-review.googlesource.com/25366Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Nigel Tao authored
Update the list to revision 915565885d0fbd25caf7d8b339cd3478f558da94 (2016-10-19T08:16:09Z). Change-Id: Ie94e7237015f2d84e0a0d082bd7ff9e04b05ecd9 Reviewed-on: https://go-review.googlesource.com/31530Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
- 23 Oct, 2016 1 commit
-
-
Brad Fitzpatrick authored
Also remove some stale TODOs and finish one of the TODOs, ignoring more incoming frames when the connection is in GOAWAY mode. Also, fix independently-broken transport test from a change in std: https://golang.org/cl/31595 Updates golang/go#14204 Change-Id: Iae8b02248464d613979c30d8f86eacb329cd262f Reviewed-on: https://go-review.googlesource.com/31727Reviewed-by: Ian Lance Taylor <iant@golang.org> Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
-
- 22 Oct, 2016 1 commit
-
-
Luka Zakrajšek authored
Displayname WebDAV property should be XML escaped. With current implementation a file with name '<.txt' would make the XML invalid. Fixes golang/go#17158 Change-Id: Ib3b5376094edc957ed15adf511bd1050ea13d27e Reviewed-on: https://go-review.googlesource.com/29297Reviewed-by: Nigel Tao <nigeltao@golang.org>
-
- 21 Oct, 2016 2 commits
-
-
Brad Fitzpatrick authored
Per RFC 7540, section 5.1 discussing the "idle" state: "Receiving any frame other than HEADERS or PRIORITY on a stream in this state MUST be treated as a connection error (Section 5.4.1) of type PROTOCOL_ERROR."x Updates golang/go#16046 Change-Id: Ie0696059e76a092e483aea5ee017d9729339d309 Reviewed-on: https://go-review.googlesource.com/31736 Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
Brad Fitzpatrick authored
Introduced by golang.org/cl/31447. grpc-go does concurrent Read/Close calls to the Request.Body. Since that was supported previously, continue to support it, and add a test. Updates grpc/grpc-go#938 Change-Id: I8a5cf6b28c5eca346ea46c4129021172e489f71d Reviewed-on: https://go-review.googlesource.com/31636 Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
- 20 Oct, 2016 2 commits
-
-
Mikio Hara authored
The encoded data is just for debugging at kernel side and has remained in normal code path until now, oops. Change-Id: I3581bf73a6e6c9ec4b6228a670b6d8338f13ee14 Reviewed-on: https://go-review.googlesource.com/31535 Run-TryBot: Mikio Hara <mikioh.mikioh@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
Mikio Hara authored
The encoded data is just for debugging at kernel side and has remained in normal code path until now, oops. Change-Id: I28003ae211eb63d717d7e20f39ee0f39201892a5 Reviewed-on: https://go-review.googlesource.com/31534 Run-TryBot: Mikio Hara <mikioh.mikioh@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
- 19 Oct, 2016 1 commit
-
-
Brad Fitzpatrick authored
name old time/op new time/op delta ServerPosts-4 192µs ± 1% 164µs ± 1% -14.16% (p=0.000 n=17+19) name old alloc/op new alloc/op delta ServerPosts-4 69.8kB ± 0% 2.8kB ± 0% -95.95% (p=0.000 n=18+18) name old allocs/op new allocs/op delta ServerPosts-4 42.0 ± 0% 40.0 ± 0% -4.76% (p=0.000 n=20+20) This is a redo of git rev e7da8eda (golang.org/cl/20542) which had a race and was later reverted in golang.org/cl/21160. Updates golang/go#14960 Updates grpc/grpc-go#604 Change-Id: Ie216e45730dce4fc0c58f295bcbc669973145599 Reviewed-on: https://go-review.googlesource.com/31447 Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
- 18 Oct, 2016 1 commit
-
-
Brad Fitzpatrick authored
Updates golang/go#17480 (fixes after vendor to std) Updates golang/go#17071 (a better fix than the original one) Change-Id: Ibb49d2cb825e28518e688b5c3e0952956a305050 Reviewed-on: https://go-review.googlesource.com/31326 Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Chris Broadfoot <cbro@golang.org>
-
- 13 Oct, 2016 4 commits
-
-
Mikio Hara authored
Change-Id: I228f1405aac4ed058dafdfd5fc4cc609c56004fa Reviewed-on: https://go-review.googlesource.com/30897 Run-TryBot: Mikio Hara <mikioh.mikioh@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
Mikio Hara authored
The Read function of math/rand package doesn't exist on Go 1.5 or below. Change-Id: If837bbd0a862726be93e07b021701004ba0f0fad Reviewed-on: https://go-review.googlesource.com/30896 Run-TryBot: Mikio Hara <mikioh.mikioh@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
Mikio Hara authored
Change-Id: I95dfb05e5c958c2949059c4230c023968a442b50 Reviewed-on: https://go-review.googlesource.com/30895 Run-TryBot: Mikio Hara <mikioh.mikioh@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
Mikio Hara authored
Change-Id: Ifbc3848dcf1f7d43e3d781bcfe24e144ce028c32 Reviewed-on: https://go-review.googlesource.com/30894 Run-TryBot: Mikio Hara <mikioh.mikioh@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
- 12 Oct, 2016 1 commit
-
-
Artyom Pervukhin authored
Codec's Receive method calls io.ReadAll of the whole frame payload, which can be abused by user sending large payloads in order to exhaust server memory. Introduce limit on received payload size defined by Conn.MaxPayloadBytes. If payload size of the message read with Codec.Receive exceeds limit, ErrFrameTooLarge error is returned; the connection can still be recovered if required: the next call to Receive would at first discard leftovers of previous oversized message before processing the next one. Fixes golang/go#5082. Change-Id: Ib04acd7038474fee39a1719324daaec1c0c496b1 Reviewed-on: https://go-review.googlesource.com/23590Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
- 11 Oct, 2016 1 commit
-
-
Mikio Hara authored
From FreeBSD 11 both ip_len and ip_off fields of struct ip must be provided in network byte order. See IP(4) on FreeBSD. Change-Id: I091b551074767daf098cc1d6a256eddc4f55e304 Reviewed-on: https://go-review.googlesource.com/30736 Run-TryBot: Mikio Hara <mikioh.mikioh@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
- 07 Oct, 2016 5 commits
-
-
Radu Berinde authored
SetMaxEvent allocates storage for all events, which is very expensive if we want to set a high value; even with small values, the unnecessary allocation of the initial slice is measurable. We improve the performance by having a few events preallocated as part of the trace, and appending as necessary. We also co-locate the flags in event which makes it smaller (by a word). We also add a set of benchmarks; before and after amortized cost per-event is shown: name old time/op new time/op delta Trace_Default_2-32 1.19µs ± 1% 0.96µs ± 0% -18.94% Trace_Default_10-32 579ns ± 0% 635ns ± 1% +9.82% Trace_Default_100-32 463ns ± 1% 466ns ± 1% ~ Trace_Default_1000-32 451ns ± 1% 451ns ± 0% ~ Trace_Default_10000-32 451ns ± 2% 449ns ± 1% ~ Trace_10_2-32 1.41µs ± 1% 0.96µs ± 1% -31.74% Trace_10_10-32 623ns ± 1% 634ns ± 1% +1.73% Trace_10_100-32 469ns ± 1% 466ns ± 1% ~ Trace_10_1000-32 452ns ± 1% 453ns ± 2% ~ Trace_10_10000-32 451ns ± 1% 449ns ± 1% ~ Trace_100_2-32 2.78µs ± 2% 0.97µs ± 1% -65.28% Trace_100_10-32 912ns ± 1% 637ns ± 1% -30.23% Trace_100_100-32 479ns ± 1% 541ns ± 0% +12.77% Trace_100_1000-32 510ns ± 0% 541ns ± 1% +6.08% Trace_100_10000-32 514ns ± 1% 540ns ± 0% +5.14% Trace_1000_2-32 17.2µs ± 1% 1.0µs ± 1% -94.39% Trace_1000_10-32 3.90µs ± 1% 0.64µs ± 0% -83.68% Trace_1000_100-32 814ns ± 1% 542ns ± 0% -33.46% Trace_1000_1000-32 503ns ± 1% 581ns ± 0% +15.56% Trace_1000_10000-32 1.28µs ± 2% 1.03µs ± 1% -19.68% Change-Id: I5bbc12153a9f30dff821ef139583cb1c07a11069 Reviewed-on: https://go-review.googlesource.com/30615Reviewed-by: Ian Lance Taylor <iant@golang.org> Run-TryBot: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Brad Fitzpatrick authored
This reverts commit If7c68bb1809fb92fa5d06cb6640be5e09e1f131f. Reason for revert: breaks the build for Go 1.6 or below due to use of Go 1.7+ only features. Original change's description: > trace: don't allocate all events upfront > > SetMaxEvent allocates storage for all events, which is very expensive > if we want to set a high value; even with small values, the > unnecessary allocation of the initial slice is measurable. > > We improve the performance by having a few events preallocated as part > of the trace, and appending as necessary. We also co-locate the flags > in event which makes it smaller (by a word). > > We also add a set of benchmarks; before and after amortized cost > per-event is shown: > > name old time/op new time/op delta > Trace/0-2-32 1.19µs ± 1% 0.96µs ± 0% -18.94% (p=0.008 n=5+5) > Trace/0-10-32 579ns ± 0% 635ns ± 1% +9.82% (p=0.008 n=5+5) > Trace/0-100-32 463ns ± 1% 466ns ± 1% ~ (p=0.190 n=5+5) > Trace/0-1000-32 451ns ± 1% 451ns ± 0% ~ (p=0.984 n=5+5) > Trace/0-10000-32 451ns ± 2% 449ns ± 1% ~ (p=0.492 n=5+5) > Trace/10-2-32 1.41µs ± 1% 0.96µs ± 1% -31.74% (p=0.008 n=5+5) > Trace/10-10-32 623ns ± 1% 634ns ± 1% +1.73% (p=0.008 n=5+5) > Trace/10-100-32 469ns ± 1% 466ns ± 1% ~ (p=0.357 n=5+5) > Trace/10-1000-32 452ns ± 1% 453ns ± 2% ~ (p=0.913 n=5+5) > Trace/10-10000-32 451ns ± 1% 449ns ± 1% ~ (p=0.175 n=5+5) > Trace/100-2-32 2.78µs ± 2% 0.97µs ± 1% -65.28% (p=0.008 n=5+5) > Trace/100-10-32 912ns ± 1% 637ns ± 1% -30.23% (p=0.008 n=5+5) > Trace/100-100-32 479ns ± 1% 541ns ± 0% +12.77% (p=0.008 n=5+5) > Trace/100-1000-32 510ns ± 0% 541ns ± 1% +6.08% (p=0.008 n=5+5) > Trace/100-10000-32 514ns ± 1% 540ns ± 0% +5.14% (p=0.008 n=5+5) > Trace/1000-2-32 17.2µs ± 1% 1.0µs ± 1% -94.39% (p=0.008 n=5+5) > Trace/1000-10-32 3.90µs ± 1% 0.64µs ± 0% -83.68% (p=0.008 n=5+5) > Trace/1000-100-32 814ns ± 1% 542ns ± 0% -33.46% (p=0.008 n=5+5) > Trace/1000-1000-32 503ns ± 1% 581ns ± 0% +15.56% (p=0.008 n=5+5) > Trace/1000-10000-32 1.28µs ± 2% 1.03µs ± 1% -19.68% (p=0.008 n=5+5) > > Change-Id: If7c68bb1809fb92fa5d06cb6640be5e09e1f131f > Reviewed-on: https://go-review.googlesource.com/30374 > Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> > TryBot-Result: Gobot Gobot <gobot@golang.org> > Reviewed-by: Ian Lance Taylor <iant@golang.org> > Change-Id: I7cf25464ae836489e0af4a59a4d534a5d25ee352 Reviewed-on: https://go-review.googlesource.com/30650Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Mikio Hara authored
To match up with other packages that work with IP protocol stack. Change-Id: Idc3ee5b2399c4982dbd9114aac441f6d7452aeef Reviewed-on: https://go-review.googlesource.com/30576 Run-TryBot: Mikio Hara <mikioh.mikioh@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
Mikio Hara authored
To match up with other packages that work with IP protocol stack. Change-Id: I1f4eb76051964766113914c9698233022e73d5eb Reviewed-on: https://go-review.googlesource.com/30575 Run-TryBot: Mikio Hara <mikioh.mikioh@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
Mikio Hara authored
To match up with other packages that work with IP protocol stack. Change-Id: I2d20e4194617b05b6b46d6fba5df1f6c12ae2793 Reviewed-on: https://go-review.googlesource.com/30574 Run-TryBot: Mikio Hara <mikioh.mikioh@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
- 06 Oct, 2016 5 commits
-
-
Radu Berinde authored
SetMaxEvent allocates storage for all events, which is very expensive if we want to set a high value; even with small values, the unnecessary allocation of the initial slice is measurable. We improve the performance by having a few events preallocated as part of the trace, and appending as necessary. We also co-locate the flags in event which makes it smaller (by a word). We also add a set of benchmarks; before and after amortized cost per-event is shown: name old time/op new time/op delta Trace/0-2-32 1.19µs ± 1% 0.96µs ± 0% -18.94% (p=0.008 n=5+5) Trace/0-10-32 579ns ± 0% 635ns ± 1% +9.82% (p=0.008 n=5+5) Trace/0-100-32 463ns ± 1% 466ns ± 1% ~ (p=0.190 n=5+5) Trace/0-1000-32 451ns ± 1% 451ns ± 0% ~ (p=0.984 n=5+5) Trace/0-10000-32 451ns ± 2% 449ns ± 1% ~ (p=0.492 n=5+5) Trace/10-2-32 1.41µs ± 1% 0.96µs ± 1% -31.74% (p=0.008 n=5+5) Trace/10-10-32 623ns ± 1% 634ns ± 1% +1.73% (p=0.008 n=5+5) Trace/10-100-32 469ns ± 1% 466ns ± 1% ~ (p=0.357 n=5+5) Trace/10-1000-32 452ns ± 1% 453ns ± 2% ~ (p=0.913 n=5+5) Trace/10-10000-32 451ns ± 1% 449ns ± 1% ~ (p=0.175 n=5+5) Trace/100-2-32 2.78µs ± 2% 0.97µs ± 1% -65.28% (p=0.008 n=5+5) Trace/100-10-32 912ns ± 1% 637ns ± 1% -30.23% (p=0.008 n=5+5) Trace/100-100-32 479ns ± 1% 541ns ± 0% +12.77% (p=0.008 n=5+5) Trace/100-1000-32 510ns ± 0% 541ns ± 1% +6.08% (p=0.008 n=5+5) Trace/100-10000-32 514ns ± 1% 540ns ± 0% +5.14% (p=0.008 n=5+5) Trace/1000-2-32 17.2µs ± 1% 1.0µs ± 1% -94.39% (p=0.008 n=5+5) Trace/1000-10-32 3.90µs ± 1% 0.64µs ± 0% -83.68% (p=0.008 n=5+5) Trace/1000-100-32 814ns ± 1% 542ns ± 0% -33.46% (p=0.008 n=5+5) Trace/1000-1000-32 503ns ± 1% 581ns ± 0% +15.56% (p=0.008 n=5+5) Trace/1000-10000-32 1.28µs ± 2% 1.03µs ± 1% -19.68% (p=0.008 n=5+5) Change-Id: If7c68bb1809fb92fa5d06cb6640be5e09e1f131f Reviewed-on: https://go-review.googlesource.com/30374 Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
Mikio Hara authored
The size of sockaddr_storage is fixed for interoperability on each platform. There is no need to depend on changable cgo-generated offset values. Change-Id: I54b775b2a8c86d969a6da0398a335075f0cbe3df Reviewed-on: https://go-review.googlesource.com/30178 Run-TryBot: Mikio Hara <mikioh.mikioh@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
Mikio Hara authored
The size of sockaddr_storage is fixed for interoperability on each platform. There is no need to depend on changable cgo-generated offset values. Change-Id: I7469fe330d49867bbdbdfae128834140244925ec Reviewed-on: https://go-review.googlesource.com/30177 Run-TryBot: Mikio Hara <mikioh.mikioh@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
Mikio Hara authored
This change adds support for Solaris. To read and write IPv6 ancillary data using ControlMessage, ipv6 pacakge requires https://go-review.googlesource.com/30171/ Note: Unlike other platforms, Solaris seems to have a few restrictions on ICMP property access via raw IP sockets. At least applications are prohibited from using IPV6_CHECKSUM option for ICMP transport. Fixes golang/go#17324. Change-Id: Ie014665d94ae6e4955c95d3eea88db90332e20bd Reviewed-on: https://go-review.googlesource.com/30176 Run-TryBot: Mikio Hara <mikioh.mikioh@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
Mikio Hara authored
This change adds support for Solaris. To read and write IPv4 ancillary data using ControlMessage, ipv4 pacakge requires https://go-review.googlesource.com/30171/ Note: Unlike other platforms, Solaris seems to have a few restrictions on ICMP property access via raw IP sockets. At least applications are prohibited from using IP_RECVTTL option for ICMP transport. Fixes golang/go#17323. Change-Id: Icb6dfa3c8eced28d14693ddfea4601301999d735 Reviewed-on: https://go-review.googlesource.com/30175 Run-TryBot: Mikio Hara <mikioh.mikioh@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
- 03 Oct, 2016 1 commit
-
-
Mikio Hara authored
Change-Id: I8f05f473bb78336dd1ba788cfa09fc02797eb8dd Reviewed-on: https://go-review.googlesource.com/30174Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-