- 31 May, 2013 5 commits
-
-
Robert Griesemer authored
As suggested by ej@evanjones.ca. Fixes #5604. R=r CC=golang-dev https://golang.org/cl/9899043
-
Dave Cheney authored
Update #5599 R=golang-dev, r, minux.ma CC=golang-dev https://golang.org/cl/9738052
-
Dmitriy Vyukov authored
mheap.map become a pointer, so nelem(h->map) returns 1 rather than the map size. As the result coalescing with subsequent spans does not happen. R=golang-dev, khr CC=golang-dev https://golang.org/cl/9649046
-
Dmitriy Vyukov authored
It is a caching wrapper around SysAlloc() that can allocate small chunks. Use it for symtab allocations. Reduces number of symtab walks from 4 to 3 (reduces buildfuncs time from 10ms to 7.5ms on a large binary, reduces initial heap size by 680K on the same binary). Also can be used for type info allocation, itab allocation. There are also several places in GC where we do the same thing, they can be changed to use persistentalloc(). Also can be used in FixAlloc, because each instance of FixAlloc allocates in 128K regions, which is too eager. Reincarnation of committed and rolled back https://golang.org/cl/9805043 The latent bugs that it revealed are fixed: https://golang.org/cl/9837049 https://golang.org/cl/9778048 R=golang-dev, khr CC=golang-dev https://golang.org/cl/9778049
-
Keith Randall authored
Then use the limit to make sure MHeap_LookupMaybe & inlined copies don't return a span if the pointer is beyond the limit. Use this fact to optimize all call sites. R=golang-dev, dvyukov CC=golang-dev https://golang.org/cl/9869045
-
- 30 May, 2013 8 commits
-
-
Rob Pike authored
R=golang-dev, khr, rsc CC=golang-dev https://golang.org/cl/9728045
-
Rob Pike authored
As the code now says: We are forced to return a float64 because the API is silly, but do the division as integers so we can ask if AllocsPerRun()==1 instead of AllocsPerRun()<2. R=golang-dev, rsc CC=golang-dev https://golang.org/cl/9837049
-
Dmitriy Vyukov authored
as was dicussed in cl/9791044 R=golang-dev, r CC=golang-dev https://golang.org/cl/9853046
-
Dmitriy Vyukov authored
Required for preemptive scheduler, see the comment. R=golang-dev, daniel.morsing CC=golang-dev https://golang.org/cl/9841047
-
Rémy Oudompheng authored
Escape analysis already gives that the underlying array does not escape but the result was ignored. Fixes #5484. R=golang-dev, dave, daniel.morsing CC=golang-dev https://golang.org/cl/9662046
-
Lucio De Re authored
Fixes #5591. R=golang-dev, dave, minux.ma, cshapiro CC=carl shapiro <cshapiro, golang-dev https://golang.org/cl/9839046
-
Alex Brainman authored
Fixes #5405. R=golang-dev, adg CC=golang-dev https://golang.org/cl/9856043
-
Carl Shapiro authored
A nosplits was assumed to have no argument information and no pointer map. However, nosplits created by the linker often have both. This change uses the pointer map size as an alternate source of argument size when processing a nosplit. In addition, the symbol table construction pointer map size and argument size consistency check is strengthened. If a nptrs is greater than 0 it must be equal to the number of argument words. R=golang-dev, khr, khr CC=golang-dev https://golang.org/cl/9666047
-
- 29 May, 2013 11 commits
-
-
Shenghou Ma authored
to avoid unintentionally clobber R9/R10. Thanks Lucio for the suggestion. PS: yes, this could be considered a big change (but not an API change), but as it turns out even temporarily changes R9/R10 in user code is unsafe and leads to very hard to diagnose problems later, better to disable using R9/R10 when the user first uses it. See CL 6300043 and CL 6305100 for two problems caused by misusing R9/R10. R=golang-dev, khr, rsc CC=golang-dev https://golang.org/cl/9840043
-
Shenghou Ma authored
R=golang-dev, iant CC=golang-dev https://golang.org/cl/9826043
-
Carl Shapiro authored
R=golang-dev, dave, iant CC=golang-dev https://golang.org/cl/9738045
-
Jan Ziak authored
R=iant CC=golang-dev https://golang.org/cl/9738046
-
Rob Pike authored
The old code put the index before the period in the precision; it should be after so it's always before the star, as documented. A little trickier to do in one pass but compensated for by more tests and catching a couple of other error cases. R=rsc CC=golang-dev https://golang.org/cl/9751044
-
John Shahid authored
Currently we only check the leaf node's issuer against the list of distinguished names in the server's CertificateRequest message. This will fail if the client certiciate has more than one certificate in the path and the leaf node issuer isn't in the list of distinguished names, but the issuer's issuer was in the distinguished names. R=agl, agl CC=gobot, golang-dev https://golang.org/cl/9795043
-
Adam Langley authored
Generated by addca. R=gobot CC=golang-dev https://golang.org/cl/9798049
-
Dmitriy Vyukov authored
This is needed for preemptive scheduler, because during stoptheworld we want to wait with timeout and re-preempt M's on timeout. R=golang-dev, remyoudompheng, iant CC=golang-dev https://golang.org/cl/9375043
-
Katrina Owen authored
See https://en.wikipedia.org/wiki/Newton%27s_method#Square_root_of_a_number R=golang-dev, minux.ma, adg CC=golang-dev https://golang.org/cl/9145044
-
Andrew Gerrand authored
R=golang-dev CC=golang-dev https://golang.org/cl/9853043
-
Carl Shapiro authored
With this change the compiler emits a bitmap for each function covering its stack frame arguments area. If an argument word is known to contain a pointer, a bit is set. The garbage collector reads this information when scanning the stack by frames and uses it to ignores locations known to not contain a pointer. R=golang-dev, bradfitz, daniel.morsing, dvyukov, khr, khr, iant, cshapiro CC=golang-dev https://golang.org/cl/9223046
-
- 28 May, 2013 9 commits
-
-
Dmitriy Vyukov authored
This depends on: 9791044: runtime: allocate page table lazily Once page table is moved out of heap, the heap becomes small. This removes unnecessary dereferences during heap access. No logical changes. R=golang-dev, khr CC=golang-dev https://golang.org/cl/9802043
-
Dmitriy Vyukov authored
This removes the 256MB memory allocation at startup, which conflicts with ulimit. Also will allow to eliminate an unnecessary memory dereference in GC, because the page table is usually mapped at known address. Update #5049. Update #5236. R=golang-dev, khr, r, khr, rsc CC=golang-dev https://golang.org/cl/9791044
-
Dmitriy Vyukov authored
we need it for GC anyway. R=golang-dev, khr, dave, khr CC=golang-dev https://golang.org/cl/9728044
-
Dmitriy Vyukov authored
Currently the test closes random files descriptors, which leads to hang (in particular if netpoll fd is closed). Try to open only fd 3, since the parent process expects it to be fd 3 anyway. Fixes #5571. R=golang-dev, r CC=golang-dev https://golang.org/cl/9778048
-
Dmitriy Vyukov authored
The 'n' variable is used during rescan initiation in GC_END case, but it's overwritten with chan capacity in GC_CHAN case. As the result rescan is done with the wrong object size. Fixes #5554. R=golang-dev, khr CC=golang-dev https://golang.org/cl/9831043
-
Shenghou Ma authored
also don't clobber R9 if it is about to crash. In response to https://golang.org/cl/9251043/#msg2. R=golang-dev, khr, khr, dave CC=golang-dev https://golang.org/cl/9778046
-
Dmitriy Vyukov authored
multiple failures on amd64 ««« original CL description runtime: introduce helper persistentalloc() function It is a caching wrapper around SysAlloc() that can allocate small chunks. Use it for symtab allocations. Reduces number of symtab walks from 4 to 3 (reduces buildfuncs time from 10ms to 7.5ms on a large binary, reduces initial heap size by 680K on the same binary). Also can be used for type info allocation, itab allocation. There are also several places in GC where we do the same thing, they can be changed to use persistentalloc(). Also can be used in FixAlloc, because each instance of FixAlloc allocates in 128K regions, which is too eager. R=golang-dev, daniel.morsing, khr CC=golang-dev https://golang.org/cl/9805043 »»» R=golang-dev CC=golang-dev https://golang.org/cl/9822043
-
Dmitriy Vyukov authored
benchmark old ns/op new ns/op delta BenchmarkMalloc8 68 62 -8.63% BenchmarkMalloc16 75 69 -7.94% BenchmarkMallocTypeInfo8 102 98 -3.73% BenchmarkMallocTypeInfo16 108 103 -4.63% R=golang-dev, dave, khr CC=golang-dev https://golang.org/cl/9790043
-
Dmitriy Vyukov authored
It is a caching wrapper around SysAlloc() that can allocate small chunks. Use it for symtab allocations. Reduces number of symtab walks from 4 to 3 (reduces buildfuncs time from 10ms to 7.5ms on a large binary, reduces initial heap size by 680K on the same binary). Also can be used for type info allocation, itab allocation. There are also several places in GC where we do the same thing, they can be changed to use persistentalloc(). Also can be used in FixAlloc, because each instance of FixAlloc allocates in 128K regions, which is too eager. R=golang-dev, daniel.morsing, khr CC=golang-dev https://golang.org/cl/9805043
-
- 27 May, 2013 6 commits
-
-
Bill Neubauer authored
R=golang-dev, minux.ma CC=golang-dev https://golang.org/cl/9808043
-
Shenghou Ma authored
In preparation for CL 9249043 (already submitted). Fixes #5553. R=golang-dev, iant, capnm9, dave CC=golang-dev https://golang.org/cl/9251043
-
Dmitriy Vyukov authored
R=golang-dev, dsymonds CC=golang-dev https://golang.org/cl/9648044
-
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
-
Brian G. Merrell authored
This fixes two intra-page "type assertion" links that were broken in different ways. R=golang-dev, dsymonds CC=golang-dev https://golang.org/cl/9797043
-
David Symonds authored
Generated by addca. R=gobot CC=golang-dev https://golang.org/cl/9797044
-
- 25 May, 2013 1 commit
-
-
Dmitriy Vyukov authored
R=golang-dev, r CC=golang-dev https://golang.org/cl/9665046
-