go/src/pkg
Russ Cox ba134539c5 runtime: faster entersyscall/exitsyscall
Replace cas with xadd in scheduler.
Suggested by Dmitriy in last code review.
Verified with Promela model.

When there's actual contention for the atomic word,
this avoids the looping that compare-and-swap requires.

benchmark                            old ns/op    new ns/op    delta
runtime_test.BenchmarkSyscall               32           26  -17.08%
runtime_test.BenchmarkSyscall-2            155           59  -61.81%
runtime_test.BenchmarkSyscall-3            112           52  -52.95%
runtime_test.BenchmarkSyscall-4             94           48  -48.57%
runtime_test.BenchmarkSyscallWork          871          872   +0.11%
runtime_test.BenchmarkSyscallWork-2        481          477   -0.83%
runtime_test.BenchmarkSyscallWork-3        338          335   -0.89%
runtime_test.BenchmarkSyscallWork-4        263          256   -2.66%

R=golang-dev, iant
CC=golang-dev
https://golang.org/cl/4800047
2011-07-23 12:22:55 -04:00
..
archive zip: add a test for the previous >65k files fix 2011-07-22 18:30:07 -07:00
asn1 go/printer: changed max. number of newlines from 3 to 2 2011-07-14 14:39:40 -07:00
big big: minor comment adjustments 2011-07-21 15:01:58 -07:00
bufio go/printer: changed max. number of newlines from 3 to 2 2011-07-14 14:39:40 -07:00
bytes go/printer: changed max. number of newlines from 3 to 2 2011-07-14 14:39:40 -07:00
cmath
compress go/printer: changed max. number of newlines from 3 to 2 2011-07-14 14:39:40 -07:00
container go/printer: changed max. number of newlines from 3 to 2 2011-07-14 14:39:40 -07:00
crypto go/printer: changed max. number of newlines from 3 to 2 2011-07-14 14:39:40 -07:00
csv go/printer: changed max. number of newlines from 3 to 2 2011-07-14 14:39:40 -07:00
debug ld: remove overlap of ELF sections on dynamic binaries 2011-07-20 12:47:02 -03:00
ebnf go/printer: changed max. number of newlines from 3 to 2 2011-07-14 14:39:40 -07:00
encoding go/printer: changed max. number of newlines from 3 to 2 2011-07-14 14:39:40 -07:00
exec go/printer: changed max. number of newlines from 3 to 2 2011-07-14 14:39:40 -07:00
exp exp/template: construct sets from plain template files 2011-07-23 18:10:30 +10:00
expvar go/printer: changed max. number of newlines from 3 to 2 2011-07-14 14:39:40 -07:00
flag flag: make -help nicer. 2011-07-11 09:35:50 +10:00
fmt fmt: handle precision 0 format stings in standard way 2011-07-21 16:46:51 +10:00
go go/parser: report illegal label declarations at ':' rather than guessing the start 2011-07-22 09:55:37 -07:00
gob gob: send empty but non-nil maps. 2011-07-21 10:27:11 +10:00
hash hash/crc32: add SSE4.2 support 2011-07-12 09:29:24 -04:00
html html: sync html/testdata/webkit with upstream WebKit. 2011-07-21 12:50:45 +10:00
http pkg/http: fix a couple of error messages 2011-07-22 17:11:44 +10:00
image gif: fix local color map and coordinates 2011-07-19 11:47:15 +10:00
index/suffixarray go/printer: changed max. number of newlines from 3 to 2 2011-07-14 14:39:40 -07:00
io io/ioutil: improve performance of ioutil.Discard 2011-07-20 14:34:49 -07:00
json go/printer: changed max. number of newlines from 3 to 2 2011-07-14 14:39:40 -07:00
log log: more locking 2011-07-17 15:46:00 -07:00
mail strings.Split: make the default to split all. 2011-06-28 09:43:14 +10:00
math go/printer: changed max. number of newlines from 3 to 2 2011-07-14 14:39:40 -07:00
mime net/textproto: fix build 2011-07-20 11:41:41 -04:00
net net/textproto: fix build 2011-07-20 11:41:41 -04:00
netchan os.Error API: don't export os.ErrorString, use os.NewError consistently 2011-06-22 10:52:47 -07:00
os os: point readers at the exec package 2011-07-20 11:38:18 -07:00
patch strings.Split: make the default to split all. 2011-06-28 09:43:14 +10:00
path go/build: fixes for windows paths 2011-07-19 14:02:23 +10:00
rand os.Error API: don't export os.ErrorString, use os.NewError consistently 2011-06-22 10:52:47 -07:00
reflect reflect: panic if Method index is out of range for a type. 2011-07-18 11:34:13 +10:00
regexp regexp: document that Regexp is thread-safe. 2011-06-29 15:41:09 +10:00
rpc go/printer: changed max. number of newlines from 3 to 2 2011-07-14 14:39:40 -07:00
runtime runtime: faster entersyscall/exitsyscall 2011-07-23 12:22:55 -04:00
scanner go/printer: changed max. number of newlines from 3 to 2 2011-07-14 14:39:40 -07:00
smtp strings.Split: make the default to split all. 2011-06-28 09:43:14 +10:00
sort sort: remove testing cycle 2011-07-22 21:17:46 -04:00
strconv go/printer: changed max. number of newlines from 3 to 2 2011-07-14 14:39:40 -07:00
strings go/printer: changed max. number of newlines from 3 to 2 2011-07-14 14:39:40 -07:00
sync sync: improve Once fast path 2011-07-21 11:30:14 -04:00
syscall syscall: Parse and encode SCM_RIGHTS and SCM_CREDENTIALS. 2011-07-18 11:21:59 -04:00
syslog os.Error API: don't export os.ErrorString, use os.NewError consistently 2011-06-22 10:52:47 -07:00
tabwriter go/printer: changed max. number of newlines from 3 to 2 2011-07-14 14:39:40 -07:00
template go/printer: changed max. number of newlines from 3 to 2 2011-07-14 14:39:40 -07:00
testing testing: output benchmark name before executing it 2011-07-21 11:31:07 -04:00
time time: typo in documentation 2011-07-18 17:54:32 -07:00
try
unicode go/printer: changed max. number of newlines from 3 to 2 2011-07-14 14:39:40 -07:00
unsafe
utf8
utf16
websocket go/printer: changed max. number of newlines from 3 to 2 2011-07-14 14:39:40 -07:00
xml go/printer: changed max. number of newlines from 3 to 2 2011-07-14 14:39:40 -07:00
Makefile debug/proc: Remove. 2011-07-18 09:55:09 -07:00
deps.bash build: use awk instead of giant egrep regexp 2011-06-16 00:04:24 -04:00