An error occurred fetching the project authors.
- 05 Sep, 2014 1 commit
-
-
Russ Cox authored
Mostly NOSPLIT additions. Had to rewrite atomic_arm.c in Go because it calls lock, and lock is too complex. With this CL, I find no Go -> C calls that can split the stack on any system except Solaris and Windows. Solaris and Windows need more work and will be done separately. LGTM=iant, dave R=golang-codereviews, bradfitz, iant, dave CC=dvyukov, golang-codereviews, khr, r https://golang.org/cl/137160043
-
- 04 Sep, 2014 1 commit
-
-
Russ Cox authored
Convert no-op race functions. Everything else is tiny and gets NOSPLITs. After this, all that is left on darwin is sysAlloc, panic, and gothrow (all pending). There may be system-specific calls in other builds. LGTM=iant R=golang-codereviews, iant CC=dvyukov, golang-codereviews, khr, r https://golang.org/cl/140240044
-
- 29 Aug, 2014 2 commits
-
-
Russ Cox authored
I had to rename Kevent and Sigaction to avoid the functions of the same (lowercase) name. LGTM=iant, r R=golang-codereviews, r, iant, aram.h CC=dvyukov, golang-codereviews, khr https://golang.org/cl/140740043
-
Russ Cox authored
LGTM=iant R=golang-codereviews, iant CC=dvyukov, golang-codereviews, khr, r https://golang.org/cl/135930043
-
- 28 Aug, 2014 1 commit
-
-
Matthew Dempsky authored
Fixes #8092. LGTM=rsc R=iant, rsc CC=golang-codereviews https://golang.org/cl/126790043
-
- 31 Jul, 2014 1 commit
-
-
Keith Randall authored
Fixes #8297 LGTM=bradfitz R=golang-codereviews, bradfitz, khr, dave, dvyukov CC=golang-codereviews https://golang.org/cl/119240043
-
- 30 Jul, 2014 1 commit
-
-
Keith Randall authored
machines and int64* on 64 bit machines. LGTM=bradfitz R=golang-codereviews, bradfitz CC=golang-codereviews https://golang.org/cl/117330044
-
- 26 Jun, 2014 1 commit
-
-
Russ Cox authored
The runtime has historically held two dedicated values g (current goroutine) and m (current thread) in 'extern register' slots (TLS on x86, real registers backed by TLS on ARM). This CL removes the extern register m; code now uses g->m. On ARM, this frees up the register that formerly held m (R9). This is important for NaCl, because NaCl ARM code cannot use R9 at all. The Go 1 macrobenchmarks (those with per-op times >= 10 µs) are unaffected: BenchmarkBinaryTree17 5491374955 5471024381 -0.37% BenchmarkFannkuch11 4357101311 4275174828 -1.88% BenchmarkGobDecode 11029957 11364184 +3.03% BenchmarkGobEncode 6852205 6784822 -0.98% BenchmarkGzip 650795967 650152275 -0.10% BenchmarkGunzip 140962363 141041670 +0.06% BenchmarkHTTPClientServer 71581 73081 +2.10% BenchmarkJSONEncode 31928079 31913356 -0.05% BenchmarkJSONDecode 117470065 113689916 -3.22% BenchmarkMandelbrot200 6008923 5998712 -0.17% BenchmarkGoParse 6310917 6327487 +0.26% BenchmarkRegexpMatchMedium_1K 114568 114763 +0.17% BenchmarkRegexpMatchHard_1K 168977 169244 +0.16% BenchmarkRevcomp 935294971 914060918 -2.27% BenchmarkTemplate 145917123 148186096 +1.55% Minux previous reported larger variations, but these were caused by run-to-run noise, not repeatable slowdowns. Actual code changes by Minux. I only did the docs and the benchmarking. LGTM=dvyukov, iant, minux R=minux, josharian, iant, dave, bradfitz, dvyukov CC=golang-codereviews https://golang.org/cl/109050043
-
- 31 May, 2014 1 commit
-
-
Keith Randall authored
C globals are conservatively scanned. This helps avoid false retention, especially for 32 bit. LGTM=rsc R=golang-codereviews, khr, rsc CC=golang-codereviews https://golang.org/cl/102040043
-
- 03 Apr, 2014 1 commit
-
-
Russ Cox authored
Delaying the runtime.throw until here will print more information. In particular it will print the signal and code values, which means it will show the fault address. The canpanic checks were added recently, in CL 75320043. They were just not added in exactly the right place. LGTM=iant R=dvyukov, iant CC=golang-codereviews https://golang.org/cl/83980043
-
- 12 Mar, 2014 1 commit
-
-
Mikio Hara authored
For now Note, futexsleep and futexwakeup are designed for threads, not for processes. The explicit use of UMTX_OP_WAIT_UINT_PRIVATE and UMTX_OP_WAKE_PRIVATE can avoid unnecessary traversals of VM objects, to hit undiscovered bugs related to VM system on SMP/SMT/NUMA environment. Update #7496 LGTM=iant R=golang-codereviews, gobot, iant, bradfitz CC=golang-codereviews https://golang.org/cl/72760043
-
- 20 Feb, 2014 1 commit
-
-
Russ Cox authored
SetPanicOnFault allows recovery from unexpected memory faults. This can be useful if you are using a memory-mapped file or probing the address space of the current program. LGTM=r R=r CC=golang-codereviews https://golang.org/cl/66590044
-
- 20 Dec, 2013 1 commit
-
-
Shenghou Ma authored
Fixes #6988. R=golang-dev, iant CC=golang-dev https://golang.org/cl/44070046
-
- 12 Aug, 2013 1 commit
-
-
Keith Randall authored
R=golang-dev, bradfitz CC=golang-dev https://golang.org/cl/12798043
-
- 05 Aug, 2013 1 commit
-
-
Russ Cox authored
This means that pprof will no longer report profiles on OS X. That's unfortunate, but the profiles were often wrong and, worse, it was difficult to tell whether the profile was wrong or not. The workarounds were making the scheduler more complex, possibly caused a deadlock (see issue 5519), and did not actually deliver reliable results. It may be possible for adventurous users to apply a patch to their kernels to get working results, or perhaps having no results will encourage someone to do the work of creating a profiling thread like on Windows. Issue 6047 has details. Fixes #5519. Fixes #6047. R=golang-dev, bradfitz, r CC=golang-dev https://golang.org/cl/12429045
-
- 29 Jul, 2013 3 commits
-
-
Russ Cox authored
Document endian-ness assumption. R=dvyukov CC=golang-dev https://golang.org/cl/12056044
-
Dmitriy Vyukov authored
notetsleep: nosplit stack overflow 120 assumed on entry to notetsleep 80 after notetsleep uses 40 72 on entry to runtime.futexsleep 16 after runtime.futexsleep uses 56 8 on entry to runtime.printf -16 after runtime.printf uses 24 R=golang-dev, rsc CC=golang-dev https://golang.org/cl/12047043
-
Dmitriy Vyukov authored
Split stack checks (morestack) corrupt g->sched, but g->sched must be preserved consistent for GC/traceback. The change implements runtime.notetsleepg function, which does entersyscall/exitsyscall and is carefully arranged to not call any split functions in between. R=rsc CC=golang-dev https://golang.org/cl/11575044
-
- 11 Jul, 2013 1 commit
-
-
Shenghou Ma authored
Fixes #3250. R=rsc CC=golang-dev https://golang.org/cl/10757044
-
- 29 May, 2013 1 commit
-
-
Jan Ziak authored
R=iant CC=golang-dev https://golang.org/cl/9738046
-
- 27 May, 2013 1 commit
-
-
Jan Ziak authored
Variables in data sections of 32-bit executables interfere with garbage collector's ability to free objects and/or unnecessarily slow down the garbage collector. This changeset moves some static variables to .noptr sections. 'files' in symtab.c is now allocated dynamically. R=golang-dev, dvyukov, minux.ma CC=golang-dev https://golang.org/cl/9786044
-
- 06 May, 2013 1 commit
-
-
Dmitriy Vyukov authored
The linker can generate split stack prolog when a textflag 7 function makes an indirect function call. If it happens, badsignal() crashes trying to dereference g. Fixes #5337. R=bradfitz, dave, adg, iant, r, minux.ma CC=adonovan, golang-dev https://golang.org/cl/9226043
-
- 12 Apr, 2013 1 commit
-
-
Ian Lance Taylor authored
UMTX_OP_WAIT expects that the address points to a uintptr, but the code in lock_futex.c uses a uint32. UMTX_OP_WAIT_UINT is just like UMTX_OP_WAIT, but the address points to a uint32. This almost certainly makes no difference on a little-endian system, but since the kernel supports it we should do the right thing. And, who knows, maybe it matters. R=golang-dev, bradfitz, r, ality CC=golang-dev https://golang.org/cl/8699043
-
- 19 Mar, 2013 1 commit
-
-
Mikio Hara authored
R=golang-dev, rsc CC=golang-dev https://golang.org/cl/7884045
-
- 18 Mar, 2013 1 commit
-
-
Rémy Oudompheng authored
Fixes #5063. R=golang-dev, minux.ma, rsc CC=golang-dev https://golang.org/cl/7876043
-
- 14 Mar, 2013 1 commit
-
-
Russ Cox authored
thread_GOOS.c becomes os_GOOS.c. signal_GOOS_GOARCH.c becomes os_GOOS_GOARCH.c, but with non-GOARCH-specific code moved into os_GOOS.c. The actual arch-specific signal handler moves into signal_GOARCH.c to avoid per-GOOS duplication. New files signal_GOOS_GOARCH.h provide macros for accessing fields of the very system-specific signal info structs. Lots moving, but nothing changing. This is a preliminarly cleanup so I can work on the signal handling code to fix some open issues without having to make each change 13 times. Tested on Linux and OS X, 386 and amd64. Will fix Plan 9, Windows, and ARM after the fact if necessary. (Plan 9 and Windows should be fine; ARM will probably have some typos.) Net effect: -1081 lines of code. R=golang-dev, r CC=golang-dev https://golang.org/cl/7565048
-
- 12 Mar, 2013 1 commit
-
-
Keith Randall authored
Uses AES hardware instructions on 386/amd64 to implement a fast hash function. Incorporates a random key to thwart hash collision DOS attacks. Depends on CL#7548043 for new assembly instructions. Update #3885 Helps some by making hashing faster. Go time drops from 0.65s to 0.51s. R=rsc, r, bradfitz, remyoudompheng, khr, dsymonds, minux.ma, elias.naur CC=golang-dev https://golang.org/cl/7543043
-
- 01 Mar, 2013 3 commits
-
-
Russ Cox authored
Putting the M initialization in multiple places will not scale. Various code assumes mstart is the start already. Make it so. R=golang-dev, devon.odell CC=golang-dev https://golang.org/cl/7420048
-
Russ Cox authored
Move the mstartfn into its own field. Simpler, more likely to be correct. R=golang-dev, devon.odell CC=golang-dev https://golang.org/cl/7414046
-
Russ Cox authored
R=devon.odell CC=golang-dev https://golang.org/cl/7443046
-
- 21 Feb, 2013 1 commit
-
-
Dmitriy Vyukov authored
mpreinit() is called on the parent thread and with mcache (can allocate memory), minit() is called on the child thread and can not allocate memory. R=golang-dev, rsc CC=golang-dev https://golang.org/cl/7389043
-
- 20 Feb, 2013 1 commit
-
-
Russ Cox authored
Fixes #4435. R=golang-dev, iant, alex.brainman, minux.ma, dvyukov CC=golang-dev https://golang.org/cl/7304104
-
- 15 Feb, 2013 3 commits
-
-
Russ Cox authored
In addition to the compile failure fixed in signal*.c, preserving the signal mask led to very strange crashes. Testing shows that looking for SIG_IGN is all that matters to get along with nohup, so reintroduce sigset_zero instead of trying to preserve the signal mask. TBR=iant CC=golang-dev https://golang.org/cl/7323067
-
Russ Cox authored
There are two ways nohup(1) might be implemented: it might mask away the signal, or it might set the handler to SIG_IGN, both of which are inherited across fork+exec. So two fixes: * Make sure to preserve the inherited signal mask at minit instead of clearing it. * If the SIGHUP handler is SIG_IGN, leave it that way. Fixes #4491. R=golang-dev, mikioh.mikioh, iant CC=golang-dev https://golang.org/cl/7308102
-
Alan Donovan authored
We call runtime.findnull dynamically to avoid exceeding the static nosplit stack limit check. (Thanks minux!) Fixes #4048. R=rsc, minux.ma, ality CC=golang-dev https://golang.org/cl/7232066
-
- 18 Dec, 2012 1 commit
-
-
Jingcheng Zhang authored
runtime: use "mp" and "gp" instead of "m" and "g" for local variable name to avoid confusion with the global "m" and "g". R=golang-dev, minux.ma, rsc CC=bradfitz, golang-dev https://golang.org/cl/6939064
-
- 26 Nov, 2012 1 commit
-
-
Mikio Hara authored
R=minux.ma, jsing CC=golang-dev https://golang.org/cl/6855080
-
- 04 Sep, 2012 1 commit
-
-
Alan Donovan authored
Signal handlers are global resources but many language environments (Go, C++ at Google, etc) assume they have sole ownership of a particular handler. Signal handlers in mixed-language applications must therefore be robust against unexpected delivery of certain signals, such as SIGPROF. The default Go signal handler runtime·sigtramp assumes that it will never be called on a non-Go thread, but this assumption is violated by when linking in C++ code that spawns threads. Specifically, the handler asserts the thread has an associated "m" (Go scheduler). This CL is a very simple workaround: discard SIGPROF delivered to non-Go threads. runtime.badsignal(int32) now receives the signal number; if it returns without panicking (e.g. sig==SIGPROF) the signal is discarded. I don't think there is any really satisfactory solution to the problem of signal-based profiling in a mixed-language application. It's not only the issue of handler clobbering, but also that a C++ SIGPROF handler called in a Go thread can't unwind the Go stack (and vice versa). The best we can hope for is not crashing. Note: - I've ported this to all POSIX platforms, except ARM-linux which already ignores unexpected signals on m-less threads. - I've avoided tail-calling runtime.badsignal because AFAICT the 6a/6l don't support it. - I've avoided hoisting 'push sig' (common to both function calls) because it makes the code harder to read. - Fixed an (apparently incorrect?) docstring. R=iant, rsc, minux.ma CC=golang-dev https://golang.org/cl/6498057
-
- 30 May, 2012 1 commit
-
-
Jan Ziak authored
R=rsc, remyoudompheng, minux.ma, ality CC=golang-dev https://golang.org/cl/6242061
-
- 12 Mar, 2012 1 commit
-
-
Russ Cox authored
It's the best we can do before Go 1. For issue 3250; not a fix but at least less mysterious. R=golang-dev, bradfitz CC=golang-dev https://golang.org/cl/5797068
-