Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code | Sign in
(441)

Issue 7612045: code review 7612045: net: band-aid for windows network poller (Closed)

Can't Edit
Can't Publish+Mail
Start Review
Created:
12 years ago by dvyukov
Modified:
11 years, 10 months ago
Reviewers:
brainman, rsc
CC:
golang-dev, Ewan Chou, rsc
Visibility:
Public.

Description

net: band-aid for windows network poller Fixes performance of the current windows network poller with the new scheduler. Gives runtime a hint when GetQueuedCompletionStatus() will block. Fixes issue 5068. benchmark old ns/op new ns/op delta BenchmarkTCP4Persistent 4004000 33906 -99.15% BenchmarkTCP4Persistent-2 21790 17513 -19.63% BenchmarkTCP4Persistent-4 44760 34270 -23.44% BenchmarkTCP4Persistent-6 45280 43000 -5.04%

Patch Set 1 #

Patch Set 2 : diff -r 43eb97ed849a https://dvyukov%40google.com@code.google.com/p/go/ #

Patch Set 3 : diff -r 43eb97ed849a https://dvyukov%40google.com@code.google.com/p/go/ #

Patch Set 4 : diff -r 43eb97ed849a https://dvyukov%40google.com@code.google.com/p/go/ #

Total comments: 1

Patch Set 5 : diff -r f78c5036b7f6 https://dvyukov%40google.com@code.google.com/p/go/ #

Patch Set 6 : diff -r f78c5036b7f6 https://dvyukov%40google.com@code.google.com/p/go/ #

Patch Set 7 : diff -r f78c5036b7f6 https://dvyukov%40google.com@code.google.com/p/go/ #

Unified diffs Side-by-side diffs Delta from patch set Stats (+22 lines, -2 lines) Patch
M src/pkg/net/fd_windows.go View 1 1 chunk +7 lines, -1 line 0 comments Download
M src/pkg/runtime/cgocall.c View 1 2 3 4 2 chunks +14 lines, -1 line 0 comments Download
M src/pkg/runtime/runtime.h View 1 2 1 chunk +1 line, -0 lines 0 comments Download

Messages

Total messages: 60
dvyukov
Hello golang-dev@googlegroups.com, I'd like you to review this change to https://dvyukov%40google.com@code.google.com/p/go/
12 years ago (2013-03-18 06:56:34 UTC) #1
brainman
Do you have a plan for *general* solution. I suspect many other syscalls will be ...
12 years ago (2013-03-18 07:59:27 UTC) #2
dvyukov
On 2013/03/18 07:59:27, brainman wrote: > Do you have a plan for *general* solution. I ...
12 years ago (2013-03-18 08:07:50 UTC) #3
brainman
I don't know of any. But what do I do, if one of my syscalls ...
12 years ago (2013-03-18 08:27:31 UTC) #4
dvyukov
On 2013/03/18 08:27:31, brainman wrote: > I don't know of any. But what do I ...
12 years ago (2013-03-18 08:37:29 UTC) #5
brainman
I re-run net benchmarks to see regression on windows. I compared two "clean" versions before ...
12 years ago (2013-03-19 00:39:32 UTC) #6
Ewan Chou
On 2013/03/19 00:39:32, brainman wrote: > I re-run net benchmarks to see regression on windows. ...
12 years ago (2013-03-19 01:55:56 UTC) #7
Ewan Chou
I'm sorry, I misunderstood the comparison. So does it mean the new scheduler is a ...
12 years ago (2013-03-19 02:26:25 UTC) #8
brainman
On 2013/03/19 02:26:25, Ewan Chou wrote: > I'm sorry, I misunderstood the comparison. Yeh, your ...
12 years ago (2013-03-19 02:28:58 UTC) #9
dvyukov
On 2013/03/19 00:39:32, brainman wrote: > I re-run net benchmarks to see regression on windows. ...
12 years ago (2013-03-21 09:04:38 UTC) #10
brainman
Profiling does work on windows, but I don't know what you want. If you could ...
12 years ago (2013-03-21 11:38:20 UTC) #11
dvyukov
On 2013/03/21 11:38:20, brainman wrote: > Profiling does work on windows, but I don't know ...
12 years ago (2013-03-21 18:17:53 UTC) #12
brainman
My reply is in http://play.golang.org/p/9bJ323Me7T. Codereview rejects my message because it is too long. Alex
12 years ago (2013-03-22 02:06:06 UTC) #13
Ewan Chou
On 2013/03/22 02:06:06, brainman wrote: > My reply is in http://play.golang.org/p/9bJ323Me7T. Codereview rejects my > ...
12 years ago (2013-03-22 02:25:38 UTC) #14
brainman
On 2013/03/22 02:25:38, Ewan Chou wrote: > On 2013/03/22 02:06:06, brainman wrote: > > My ...
12 years ago (2013-03-22 02:29:00 UTC) #15
Ewan Chou
On 2013/03/22 02:29:00, brainman wrote: > What is your OS? How many cpus you have? ...
12 years ago (2013-03-22 02:47:11 UTC) #16
brainman
What version of go is this benchmark for? Use "hg id" to discover. Please supply ...
12 years ago (2013-03-22 03:25:25 UTC) #17
Ewan Chou
On 2013/03/22 03:25:25, brainman wrote: > What version of go is this benchmark for? Use ...
12 years ago (2013-03-22 03:37:10 UTC) #18
brainman
On 2013/03/22 03:37:10, Ewan Chou wrote: > > go version is f12b24ea373f+ tip, windows version ...
12 years ago (2013-03-22 03:48:14 UTC) #19
Ewan Chou
On 2013/03/22 03:48:14, brainman wrote: > I can only supply valid TCPOneShot benchmark because sometimes ...
12 years ago (2013-03-22 04:52:50 UTC) #20
brainman
On 2013/03/22 04:52:50, Ewan Chou wrote: > > I can only supply valid TCPOneShot benchmark ...
12 years ago (2013-03-22 06:04:12 UTC) #21
Ewan Chou
On 2013/03/22 06:04:12, brainman wrote: > On 2013/03/22 04:52:50, Ewan Chou wrote: > > > ...
12 years ago (2013-03-22 06:09:22 UTC) #22
Ewan Chou
On 2013/03/22 06:04:12, brainman wrote: > On 2013/03/22 04:52:50, Ewan Chou wrote: > > > ...
12 years ago (2013-03-22 06:09:54 UTC) #23
dvyukov
If you see errors in tcp benchmarks, try to apply the following change: --- a/src/pkg/net/tcp_test.go ...
12 years ago (2013-03-22 06:10:13 UTC) #24
dvyukov
>> 3. Do not do 3-chan select (this is also allocates memory and locks mutexes, ...
12 years ago (2013-03-22 06:15:48 UTC) #25
dvyukov
>> 5. Better integration with scheduler with runtime.netpoll(). > What are the details, and why ...
12 years ago (2013-03-22 06:20:11 UTC) #26
dvyukov
> On 386 (unlike amd64) all IO submission and cancellation happens on single dedicated thread. ...
12 years ago (2013-03-22 06:21:27 UTC) #27
dvyukov
On Fri, Mar 22, 2013 at 10:21 AM, Dmitry Vyukov <dvyukov@google.com> wrote: > > On ...
12 years ago (2013-03-22 06:22:38 UTC) #28
brainman
On Friday, 22 March 2013 17:21:26 UTC+11, Dmitry Vyukov wrote: > > Please patch net ...
12 years ago (2013-03-22 06:36:39 UTC) #29
brainman
On Friday, 22 March 2013 17:22:38 UTC+11, Dmitry Vyukov wrote: > > ... > Btw, ...
12 years ago (2013-03-22 06:38:48 UTC) #30
brainman
On Friday, 22 March 2013 17:10:13 UTC+11, Dmitry Vyukov wrote: > > If you see ...
12 years ago (2013-03-22 06:47:55 UTC) #31
dvyukov
It is what against what? For amd64/16362 you've posted very different numbers before: 16007 - ...
12 years ago (2013-03-22 06:54:43 UTC) #32
dvyukov
Now I must admit that I am lost in all these numbers for 386/amd64, old ...
12 years ago (2013-03-22 07:00:43 UTC) #33
brainman
On Friday, 22 March 2013 17:54:43 UTC+11, Dmitry Vyukov wrote: > It is what against ...
12 years ago (2013-03-22 09:11:51 UTC) #34
brainman
On Friday, 22 March 2013 18:00:43 UTC+11, Dmitry Vyukov wrote: > Now I must admit ...
12 years ago (2013-03-22 09:24:38 UTC) #35
dvyukov
On Fri, Mar 22, 2013 at 10:36 AM, brainman <alex.brainman@gmail.com> wrote: > On Friday, 22 ...
12 years ago (2013-03-22 09:24:40 UTC) #36
dvyukov
On Fri, Mar 22, 2013 at 1:23 PM, brainman <alex.brainman@gmail.com> wrote: > > On Friday, ...
12 years ago (2013-03-22 09:29:09 UTC) #37
brainman
On Friday, 22 March 2013 20:24:39 UTC+11, Dmitry Vyukov wrote: > On Fri, Mar 22, ...
12 years ago (2013-03-22 09:39:10 UTC) #38
brainman
On 2013/03/22 09:29:09, dvyukov wrote: > It helps because new scheduler favors short/non-blocking syscalls > ...
12 years ago (2013-03-22 10:00:23 UTC) #39
dvyukov
On Fri, Mar 22, 2013 at 2:00 PM, <alex.brainman@gmail.com> wrote: > On 2013/03/22 09:29:09, dvyukov ...
12 years ago (2013-03-22 10:12:53 UTC) #40
brainman
On 2013/03/22 10:12:53, dvyukov wrote: > ... > ..., so it will be difficult to ...
12 years ago (2013-03-22 10:44:20 UTC) #41
dvyukov
On Fri, Mar 22, 2013 at 2:44 PM, <alex.brainman@gmail.com> wrote: > On 2013/03/22 10:12:53, dvyukov ...
12 years ago (2013-03-22 10:53:36 UTC) #42
brainman
On 2013/03/22 10:53:36, dvyukov wrote: > > > > What about a different solution - ...
12 years ago (2013-03-22 11:10:51 UTC) #43
dvyukov
Russ, Can you take a look at this CL? A brief summary of the discussion: ...
12 years ago (2013-03-22 12:00:42 UTC) #44
rsc
LGTM https://codereview.appspot.com/7612045/diff/4004/src/pkg/runtime/cgocall.c File src/pkg/runtime/cgocall.c (right): https://codereview.appspot.com/7612045/diff/4004/src/pkg/runtime/cgocall.c#newcode157 src/pkg/runtime/cgocall.c:157: if(Windows && g->blockingsyscall) { Is it terribly expensive ...
12 years ago (2013-03-22 14:26:29 UTC) #45
brainman
Ewan, does this CL helps in your case? Alex
12 years ago (2013-03-22 19:42:26 UTC) #46
Ewan Chou
On 2013/03/22 19:42:26, brainman wrote: > Ewan, does this CL helps in your case? > ...
12 years ago (2013-03-23 01:31:10 UTC) #47
dvyukov
On 2013/03/22 14:26:29, rsc wrote: > LGTM > > https://codereview.appspot.com/7612045/diff/4004/src/pkg/runtime/cgocall.c > File src/pkg/runtime/cgocall.c (right): > ...
12 years ago (2013-03-25 16:56:12 UTC) #48
dvyukov
*** Submitted as https://code.google.com/p/go/source/detail?r=2be8c885acc8 *** net: band-aid for windows network poller Fixes performance of the ...
12 years ago (2013-03-25 16:57:57 UTC) #49
brainman
On 2013/03/21 18:17:53, dvyukov wrote: > ... > 5. Better integration with scheduler with runtime.netpoll(). ...
11 years, 11 months ago (2013-04-12 02:04:42 UTC) #50
dvyukov
On Thu, Apr 11, 2013 at 7:04 PM, <alex.brainman@gmail.com> wrote: > On 2013/03/21 18:17:53, dvyukov ...
11 years, 11 months ago (2013-04-12 02:28:50 UTC) #51
brainman
On 2013/04/12 02:28:50, dvyukov wrote: > ... > If WaitRead/Write returns errTimeout, it just means ...
11 years, 11 months ago (2013-04-12 02:51:49 UTC) #52
dvyukov
On 2013/04/12 02:51:49, brainman wrote: > On 2013/04/12 02:28:50, dvyukov wrote: > > ... > ...
11 years, 11 months ago (2013-04-15 05:18:39 UTC) #53
brainman
On 2013/04/15 05:18:39, dvyukov wrote: > ... > I think for Windows you need a ...
11 years, 11 months ago (2013-04-15 07:36:56 UTC) #54
brainman
Here are my benchmark results on windows/amd64: # ~/go/root/misc/benchcmp old.txt new.txt benchmark old ns/op new ...
11 years, 11 months ago (2013-04-16 03:09:26 UTC) #55
dvyukov
On Mon, Apr 15, 2013 at 12:36 AM, <alex.brainman@gmail.com> wrote: > On 2013/04/15 05:18:39, dvyukov ...
11 years, 11 months ago (2013-04-17 03:59:49 UTC) #56
brainman
On 2013/04/17 03:59:49, dvyukov wrote: > ... How about https://codereview.appspot.com/8670044/ ? I will split it ...
11 years, 11 months ago (2013-04-18 07:40:33 UTC) #57
dvyukov
On Thu, Apr 18, 2013 at 12:40 AM, <alex.brainman@gmail.com> wrote: > On 2013/04/17 03:59:49, dvyukov ...
11 years, 11 months ago (2013-04-20 03:36:22 UTC) #58
brainman
On 2013/04/20 03:36:22, dvyukov wrote: > > I will look at it later. Probably in ...
11 years, 11 months ago (2013-04-20 07:15:52 UTC) #59
brainman
11 years, 10 months ago (2013-05-19 03:27:52 UTC) #60
Message was sent while issue was closed.
On 2013/04/20 03:36:22, dvyukov wrote:
> ...
> I will look at it later. Probably in a week or two. This is not for Go1.1,
> right? So we have a plenty of time.

Just a reminder. Mikio wants to move it along http://goo.gl/OuoNT.

I am not asking for a thorough review - I just want to make sure, there are no
show stoppers. As I said earlier, I am planning to split this change into
smaller CLs, so it is easier to review.

Thank you.

Alex
Sign in to reply to this message.

Powered by Google App Engine
RSS Feeds Recent Issues | This issue
This is Rietveld f62528b