Hector Chu
9fd26872cb
runtime: implement pprof support for windows
...
Credit to jp for proof of concept.
R=alex.brainman, jp, rsc, dvyukov
CC=golang-dev
https://golang.org/cl/4960057
2011-09-17 17:57:59 +10:00
Hector Chu
5c30325983
runtime: eliminate handle churn when churning channels on Windows
...
The Windows implementation of the net package churns through a couple of channels for every read/write operation. This translates into a lot of time spent in the kernel creating and deleting event objects.
R=rsc, dvyukov, alex.brainman, jp
CC=golang-dev
https://golang.org/cl/4997044
2011-09-14 20:23:21 -04:00
Alex Brainman
7406379fff
runtime: syscall to return both AX and DX for windows/386
...
Fixes #2181 .
R=golang-dev, jp
CC=golang-dev
https://golang.org/cl/5000042
2011-09-14 16:19:45 +10:00
Hector Chu
9b011500c0
runtime: implement exception handling on windows/amd64
...
Fixes #2194 .
R=rsc, alex.brainman, vcc.163, jp
CC=golang-dev
https://golang.org/cl/4977044
2011-09-03 18:27:16 +10:00
Jaroslavas Počepko
c586b5b96b
runtime: windows/amd64 callbacks fixed and syscall fixed to allow using it in callbacks
...
Fixes #2178 .
Patch2: Fixed allocating shadow space for stdcall (must be at least 32 bytes in any case)
Patch3: Made allocated chunk smaller.
Patch4: Typo
Patch5: suppress linktime warning "runtime.callbackasm: nosplit stack overflow"
Patch6: added testcase src/pkg/syscall/callback_windows_test.go
Patch7: weakly related files moved to https://golang.org/cl/4965050 https://golang.org/cl/4974041 https://golang.org/cl/4965051
Patch8: reflect changes https://golang.org/cl/4926042/
Patch9: reflect comments
R=golang-dev, alex.brainman, vcc.163
CC=golang-dev, hectorchu
https://golang.org/cl/4958042
2011-08-30 22:02:02 +10:00
Jaroslavas Počepko
ae891b5528
windows/386: clean stack after syscall (it is necessary after call cdecl functions and does not have an effect after stdcall)
...
Result of discussion here: http://groups.google.com/group/golang-nuts/browse_thread/thread/357c806cbb57ca62
R=golang-dev, bradfitz, alex.brainman, hectorchu, rsc
CC=golang-dev
https://golang.org/cl/4961045
2011-08-30 14:43:54 +10:00
Hector Chu
0f5902d6be
runtime: fix stack cleanup on windows/amd64
...
In amd64 it is the caller who cleans the stack.
R=alex.brainman, vcc.163, jp
CC=golang-dev
https://golang.org/cl/4966046
2011-08-29 22:12:56 +10:00
Jaroslavas Počepko
f627215bab
runtime: go interface to cdecl calbacks
...
cdecl calbacks have been implemented in C/ASM code, just Go function is missing
R=golang-dev, alex.brainman
CC=golang-dev
https://golang.org/cl/4969047
2011-08-29 10:40:28 +10:00
Alex Brainman
2a80882601
runtime: use cgo runtime functions to call windows syscalls
...
R=rsc
CC=golang-dev, jp, vcc.163
https://golang.org/cl/4926042
2011-08-27 23:17:00 +10:00
Wei Guangjing
acfb0a1584
runtime: ctrlhandler for windows amd64
...
R=rsc
CC=golang-dev
https://golang.org/cl/4825047
2011-08-18 12:37:42 -04:00
Alex Brainman
c8ee9c60d2
runtime: better checks for syscall.NewCallback parameter
...
R=golang-dev, rsc
CC=golang-dev
https://golang.org/cl/4859042
2011-08-11 12:23:55 +10:00
Alex Brainman
9c774c3f26
runtime: correct seh installation during callbacks
...
Every time we enter callback from Windows, it is
possible that go exception handler is not at the top
of per-thread exception handlers chain. So it needs
to be installed again. At this moment this is done
by replacing top SEH frame with SEH frame as at time
of syscall for the time of callback. This is incorrect,
because, if exception strike, we won't be able to call
any exception handlers installed inside syscall,
because they are not in the chain. This changes
procedure to add new SEH frame on top of existing
chain instead.
I also removed m sehframe field, because I don't
think it is needed. We use single global exception
handler everywhere.
R=golang-dev, r
CC=golang-dev, hectorchu
https://golang.org/cl/4832060
2011-08-10 17:17:28 +10:00
Dmitriy Vyukov
d770aadee5
runtime: faster chan creation on Linux/FreeBSD/Plan9
...
The change removes chan finalizer (Lock destructor)
if it is not required on the platform.
benchmark old ns/op new ns/op delta
BenchmarkChanCreation 1132.00 381.00 -66.34%
BenchmarkChanCreation-2 1215.00 243.00 -80.00%
BenchmarkChanCreation-4 1084.00 186.00 -82.84%
BenchmarkChanCreation-8 1415.00 154.00 -89.12%
BenchmarkChanCreation-16 1386.00 144.00 -89.61%
(on 2 x Intel Xeon E5620, 8 HT cores, 2.4 GHz, Linux)
R=golang-dev, rsc
CC=golang-dev
https://golang.org/cl/4841041
2011-08-04 08:31:03 -04:00
Wei Guangjing
9f636598ba
cgo: windows amd64 port
...
R=golang-dev, rsc
CC=golang-dev
https://golang.org/cl/4725041
2011-07-19 10:47:33 -04:00
Wei Guangjing
a6e60916c1
runtime: stdcall_raw stack 16byte align for Win64
...
R=alex.brainman, rsc
CC=golang-dev
https://golang.org/cl/4681049
2011-07-13 11:44:44 -07:00
Wei Guangjing
f83609f642
runtime: windows/amd64 port
...
R=rsc, alex.brainman, hectorchu, r
CC=golang-dev
https://golang.org/cl/3759042
2011-06-29 17:37:56 +10:00
Alex Brainman
6b648cafde
runtime: another attempt to allow stdcall to be used from both 386 and amd64 arch
...
R=rsc
CC=golang-dev, vcc.163
https://golang.org/cl/4627071
2011-06-28 12:46:16 +10:00
Alex Brainman
c3be760889
runtime: increase maximum number of windows callbacks
...
Fixes #1912 .
R=rsc
CC=golang-dev
https://golang.org/cl/4591047
2011-06-09 10:29:25 +10:00
Alex Brainman
b873701dbd
runtime: do not garbage collect windows callbacks
...
Fixes #1883 .
Fixes #1702 .
R=golang-dev, rsc
CC=golang-dev
https://golang.org/cl/4532103
2011-06-02 17:08:56 +10:00
Alexey Borzenkov
c4206cb231
runtime: save cdecl registers in Windows SEH handler
...
Fixes #1779
R=golang-dev, rsc
CC=golang-dev
https://golang.org/cl/4566041
2011-05-31 10:11:47 -04:00
Russ Cox
8698bb6c8c
runtime: turn "too many EPIPE" into real SIGPIPE
...
Tested on Linux and OS X, amd64 and 386.
R=r, iant
CC=golang-dev
https://golang.org/cl/4452046
2011-04-25 16:58:00 -04:00
Russ Cox
c19b373c8a
runtime: cpu profiling support
...
R=r
CC=golang-dev
https://golang.org/cl/4306043
2011-03-23 11:43:37 -04:00
Russ Cox
ad29ef9561
runtime: fix windows/386 build
...
TBR=brainman
CC=golang-dev
https://golang.org/cl/4237060
2011-03-07 11:48:35 -05:00
Alex Brainman
176eb49d9c
runtime: add empty windows/signals.h file to fix build
...
R=golang-dev, gri
CC=golang-dev
https://golang.org/cl/4223049
2011-02-25 11:16:39 +11:00
Russ Cox
59ce067da8
runtime: omit breakpoint during terminal panic
...
A terminal panic (one that prints a stack trace and exits)
has been calling runtime.breakpoint before calling exit,
so that if running under a debugger, the debugger can
take control. When not running under a debugger, though,
this causes an additional SIGTRAP on Unix and pop-up
dialogs on Windows.
Support for debugging Go programs has gotten good
enough that we can rely on the debugger to set its own
breakpoint on runtime.exit if it wants to look around.
R=r, r2
CC=golang-dev
https://golang.org/cl/4222043
2011-02-23 15:42:13 -05:00
Alex Brainman
ff7d7b271f
runtime: detect failed thread creation on Windows
...
Fixes #1495 .
R=rsc
CC=golang-dev
https://golang.org/cl/4182047
2011-02-15 09:42:25 +11:00
Hector Chu
1723fbe13e
windows: runtime: implemented console ctrl handler (SIGINT).
...
R=rsc, brainman, iant2
CC=golang-dev
https://golang.org/cl/4129049
2011-02-14 12:15:13 -05:00
Russ Cox
12bdb29bdf
runtime: complete windows SysReserve
...
Should fix windows/386 build.
R=brainman
CC=golang-dev
https://golang.org/cl/4170041
2011-02-10 15:39:08 -05:00
Hector Chu
239ef63bf2
runtime: take the callback return value from the stack
...
R=brainman, lxn, rsc
CC=golang-dev
https://golang.org/cl/4126056
2011-02-10 23:02:27 +11:00
Russ Cox
1e063b32cd
runtime: faster allocator, garbage collector
...
GC is still single-threaded.
Multiple threads will happen in another CL.
Garbage collection pauses are typically
about half as long as they were before this CL.
R=brainman, iant, r
CC=golang-dev
https://golang.org/cl/3975046
2011-02-02 23:03:47 -05:00
Hector Chu
62afa225af
windows: multiple improvements and cleanups
...
The callback mechanism has been made more flexible.
Eliminated one round of argument copying in Syscall.
Faster Get/SetLastError implemented.
Added gettime for gc perf profiling.
R=rsc, brainman, mattn, rog
CC=golang-dev
https://golang.org/cl/4058046
2011-02-01 11:49:24 -05:00
Luuk van Dijk
7400be87d8
runtime: generate Go defs for C types.
...
R=rsc, mattn
CC=golang-dev
https://golang.org/cl/4047047
2011-01-31 12:27:28 +01:00
Wei Guangjing
6606995c91
fix windows build
...
R=rsc
CC=golang-dev
https://golang.org/cl/4124041
2011-01-28 23:44:37 -05:00
Russ Cox
4608feb18b
runtime: simpler heap map, memory allocation
...
The old heap maps used a multilevel table, but that
was overkill: there are only 1M entries on a 32-bit
machine and we can arrange to use a dense address
range on a 64-bit machine.
The heap map is in bss. The assumption is that if
we don't touch the pages they won't be mapped in.
Also moved some duplicated memory allocation
code out of the OS-specific files.
R=r
CC=golang-dev
https://golang.org/cl/4118042
2011-01-28 15:03:26 -05:00
Alex Brainman
b7949035d6
runtime: fix windows build
...
R=golang-dev
CC=golang-dev
https://golang.org/cl/4052046
2011-01-26 09:50:15 +11:00
Hector Chu
90294a08c8
runtime: make Walk webbrowser example work
...
R=rsc, brainman, lxn
CC=golang-dev
https://golang.org/cl/4005045
2011-01-25 17:56:33 +11:00
Alex Brainman
f0b8f84d37
runtime: implementation of callback functions for windows
...
R=rsc, lxn, alex.brainman, dho
CC=golang-dev
https://golang.org/cl/1696051
2011-01-22 13:55:53 +11:00
Wei Guangjing
1aa2d88739
cgo: windows/386 port
...
R=rsc, peterGo, brainman
CC=golang-dev
https://golang.org/cl/3733046
2011-01-20 10:22:20 -05:00
Hector Chu
6c240d7671
runtime: fix tabs in windows/386/sys.s
...
R=rsc, brainman
CC=golang-dev
https://golang.org/cl/4030043
2011-01-20 09:21:04 -05:00
Hector Chu
aae5f91213
windows: implement exception handling
...
R=rsc, brainman
CC=golang-dev
https://golang.org/cl/4079041
2011-01-19 15:10:15 -05:00
Alex Brainman
a41d85498e
runtime: revert 6974:1f3c3696babb
...
I missed that environment is used during runtime setup,
well before go init() functions run. Implemented os-dependent
runtime.goenvs functions to allow for different unix, plan9 and
windows versions of environment discovery.
R=rsc, paulzhol
CC=golang-dev
https://golang.org/cl/3787046
2011-01-12 11:48:15 +11:00
Alex Brainman
c83451971e
runtime: move windows goargs implementation from runtime and into os package
...
R=rsc
CC=golang-dev
https://golang.org/cl/3702041
2010-12-16 12:18:18 +11:00
Wei Guangjing
e04ef7769e
Fix windows build.
...
R=brainman, rsc
CC=golang-dev
https://golang.org/cl/3533041
2010-12-13 16:41:02 +11:00
Alex Brainman
60c91bbf4c
runtime: fix windows build
...
R=golang-dev, rsc
CC=golang-dev
https://golang.org/cl/3419043
2010-12-08 12:52:36 +11:00
Wei Guangjing
70deac67cf
8l : add dynimport to import table in Windows PE, initial make cgo dll work.
...
R=rsc, brainman, Joe Poirier, mattn
CC=golang-dev
https://golang.org/cl/2166041
2010-12-07 15:28:33 -05:00
Luuk van Dijk
555feea117
runtime: fix windows breakage
...
R=iant
CC=golang-dev
https://golang.org/cl/3344044
2010-12-01 00:19:00 +01:00
Luuk van Dijk
85cae877f5
runtime: parallel definitions in Go for all C structs.
...
R=rsc
CC=golang-dev
https://golang.org/cl/3308041
2010-11-30 18:21:26 +01:00
Alex Brainman
4e69976a60
runtime: fix SysFree to really free memory on Windows
...
Fixes #1294 .
R=golang-dev, PeterGo, iant
CC=golang-dev
https://golang.org/cl/3271041
2010-11-24 11:47:35 +11:00
Alex Brainman
b611137098
runtime: free memory allocated by windows CommandLineToArgv
...
R=golang-dev, r2
CC=golang-dev
https://golang.org/cl/3003043
2010-11-11 10:38:45 +11:00
Alex Brainman
2b18b18263
runtime: fix windows build
...
R=rsc
CC=golang-dev
https://golang.org/cl/2923041
2010-11-05 17:27:12 +11:00