OXIESEC PANEL
- Current Dir:
/
/
opt
/
golang
/
1.22.0
/
src
/
runtime
Server IP: 2a02:4780:11:1084:0:327f:3464:10
Upload:
Create Dir:
Name
Size
Modified
Perms
📁
..
-
02/02/2024 06:09:55 PM
rwxr-xr-x
📄
HACKING.md
13.85 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
Makefile
178 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
abi_test.go
2.83 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
alg.go
10.99 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
align_runtime_test.go
1.82 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
align_test.go
5.37 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
arena.go
31.66 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
arena_test.go
13.39 KB
02/02/2024 06:09:55 PM
rw-r--r--
📁
asan
-
02/02/2024 06:09:55 PM
rwxr-xr-x
📄
asan.go
1.55 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
asan0.go
760 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
asan_amd64.s
2.45 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
asan_arm64.s
2.14 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
asan_loong64.s
2.12 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
asan_ppc64le.s
2.75 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
asan_riscv64.s
1.92 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
asm.s
719 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
asm_386.s
42.54 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
asm_amd64.h
631 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
asm_amd64.s
60.09 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
asm_arm.s
31.58 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
asm_arm64.s
43.33 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
asm_loong64.s
27.58 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
asm_mips64x.s
24.34 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
asm_mipsx.s
25.82 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
asm_ppc64x.h
1.93 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
asm_ppc64x.s
45.19 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
asm_riscv64.s
26.97 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
asm_s390x.s
27.55 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
asm_wasm.s
11.82 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
atomic_arm64.s
259 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
atomic_loong64.s
245 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
atomic_mips64x.s
300 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
atomic_mipsx.s
262 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
atomic_pointer.go
3.66 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
atomic_ppc64x.s
437 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
atomic_riscv64.s
275 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
auxv_none.go
298 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
callers_test.go
12.13 KB
02/02/2024 06:09:55 PM
rw-r--r--
📁
cgo
-
02/02/2024 06:09:55 PM
rwxr-xr-x
📄
cgo.go
2.5 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
cgo_mmap.go
2.42 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
cgo_ppc64x.go
418 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
cgo_sigaction.go
3.28 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
cgocall.go
23.23 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
cgocallback.go
317 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
cgocheck.go
7.97 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
chan.go
23.74 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
chan_test.go
23.44 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
chanbarrier_test.go
1.4 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
checkptr.go
3.29 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
checkptr_test.go
2.86 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
closure_test.go
937 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
compiler.go
410 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
complex.go
1.59 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
complex_test.go
1.05 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
conv_wasm_test.go
2.96 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
coro.go
4.92 KB
02/02/2024 06:09:55 PM
rw-r--r--
📁
coverage
-
02/02/2024 06:09:55 PM
rwxr-xr-x
📄
covercounter.go
749 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
covermeta.go
2.4 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
cpuflags.go
810 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
cpuflags_amd64.go
533 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
cpuflags_arm64.go
312 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
cpuprof.go
7.94 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
cputicks.go
437 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
crash_cgo_test.go
23.35 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
crash_test.go
23.12 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
crash_unix_test.go
9.19 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
create_file_nounix.go
305 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
create_file_unix.go
368 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📁
debug
-
02/02/2024 06:09:55 PM
rwxr-xr-x
📄
debug.go
3.53 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
debug_test.go
7.99 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
debugcall.go
6.75 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
debuglog.go
18.24 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
debuglog_off.go
357 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
debuglog_on.go
1.09 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
debuglog_test.go
4.9 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
defer_test.go
11.4 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
defs1_linux.go
845 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
defs1_netbsd_386.go
2.91 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
defs1_netbsd_amd64.go
3.14 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
defs1_netbsd_arm.go
3.03 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
defs1_netbsd_arm64.go
3.25 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
defs1_solaris_amd64.go
4.01 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
defs2_linux.go
3.22 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
defs3_linux.go
1.09 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
defs_aix.go
4.17 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
defs_aix_ppc64.go
3.63 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
defs_arm_linux.go
2.67 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
defs_darwin.go
4.18 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
defs_darwin_amd64.go
6.34 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
defs_darwin_arm64.go
4.17 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
defs_dragonfly.go
2.73 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
defs_dragonfly_amd64.go
3.41 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
defs_freebsd.go
3.96 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
defs_freebsd_386.go
4.52 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
defs_freebsd_amd64.go
4.79 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
defs_freebsd_arm.go
3.92 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
defs_freebsd_arm64.go
4.18 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
defs_freebsd_riscv64.go
4.19 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
defs_illumos_amd64.go
285 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
defs_linux.go
2.92 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
defs_linux_386.go
4.2 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
defs_linux_amd64.go
4.7 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
defs_linux_arm.go
3.89 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
defs_linux_arm64.go
3.62 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
defs_linux_loong64.go
3.43 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
defs_linux_mips64x.go
3.6 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
defs_linux_mipsx.go
3.6 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
defs_linux_ppc64.go
3.69 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
defs_linux_ppc64le.go
3.69 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
defs_linux_riscv64.go
3.81 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
defs_linux_s390x.go
3.16 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
defs_netbsd.go
2.83 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
defs_netbsd_386.go
855 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
defs_netbsd_amd64.go
1.01 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
defs_netbsd_arm.go
764 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
defs_openbsd.go
3.06 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
defs_openbsd_386.go
2.91 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
defs_openbsd_amd64.go
3.11 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
defs_openbsd_arm.go
3.03 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
defs_openbsd_arm64.go
2.78 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
defs_openbsd_mips64.go
2.75 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
defs_openbsd_ppc64.go
3 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
defs_openbsd_riscv64.go
2.89 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
defs_plan9_386.go
1.63 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
defs_plan9_amd64.go
1.82 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
defs_plan9_arm.go
1.73 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
defs_solaris.go
3.32 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
defs_solaris_amd64.go
1004 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
defs_windows.go
2.25 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
defs_windows_386.go
2.28 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
defs_windows_amd64.go
3.19 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
defs_windows_arm.go
2.57 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
defs_windows_arm64.go
3.07 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
duff_386.s
8.24 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
duff_amd64.s
5.64 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
duff_arm.s
7.11 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
duff_arm64.s
5.27 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
duff_loong64.s
11.9 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
duff_mips64x.s
11.28 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
duff_ppc64x.s
7.06 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
duff_riscv64.s
11.4 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
duff_s390x.s
507 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
ehooks_test.go
2.04 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
env_plan9.go
3 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
env_posix.go
1.56 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
env_test.go
1.16 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
error.go
9.29 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
example_test.go
1.55 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
exithook.go
2.32 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
export_aix_test.go
207 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
export_arm_test.go
226 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
export_darwin_test.go
207 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
export_debug_amd64_test.go
3.6 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
export_debug_arm64_test.go
3.49 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
export_debug_ppc64le_test.go
3.5 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
export_debug_test.go
5.07 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
export_debuglog_test.go
1.27 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
export_linux_test.go
378 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
export_mmap_test.go
429 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
export_pipe2_test.go
310 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
export_pipe_test.go
219 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
export_test.go
50.52 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
export_unix_test.go
2.27 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
export_windows_test.go
903 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
extern.go
18.58 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
fastlog2.go
1.22 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
fastlog2_test.go
784 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
fastlog2table.go
904 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
fds_nonunix.go
256 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
fds_test.go
1.43 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
fds_unix.go
1.27 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
float.go
1.35 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
float_test.go
699 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
funcdata.h
2.53 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
gc_test.go
20.32 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
gcinfo_test.go
5.95 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
go_tls.h
366 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
hash32.go
1.58 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
hash64.go
1.95 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
hash_test.go
17.24 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
heap_test.go
529 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
heapdump.go
17.88 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
histogram.go
7.3 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
histogram_test.go
3.51 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
iface.go
20.92 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
iface_test.go
7.45 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
import_test.go
1.42 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
importx_test.go
763 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📁
internal
-
02/02/2024 06:09:55 PM
rwxr-xr-x
📄
lfstack.go
2.03 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
lfstack_test.go
2.74 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
libfuzzer.go
6.34 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
libfuzzer_amd64.s
5.03 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
libfuzzer_arm64.s
3.15 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
lock_futex.go
5.4 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
lock_js.go
7.28 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
lock_sema.go
6.75 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
lock_wasip1.go
2.01 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
lockrank.go
18.19 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
lockrank_off.go
1.17 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
lockrank_on.go
10.27 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
lockrank_test.go
856 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
malloc.go
58.5 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
malloc_test.go
10.64 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
map.go
52.17 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
map_benchmark_test.go
10.59 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
map_fast32.go
12.74 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
map_fast64.go
12.92 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
map_faststr.go
14.32 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
map_test.go
31.75 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
mbarrier.go
13.78 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
mbitmap.go
22.54 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
mbitmap_allocheaders.go
44.67 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
mbitmap_noallocheaders.go
28.95 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
mcache.go
10 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
mcentral.go
8.05 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
mcheckmark.go
2.85 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
mem.go
6.72 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
mem_aix.go
2.01 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
mem_bsd.go
2.21 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
mem_darwin.go
1.96 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
mem_js.go
457 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
mem_linux.go
4.98 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
mem_plan9.go
447 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
mem_sbrk.go
4.19 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
mem_wasip1.go
392 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
mem_wasm.go
488 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
mem_windows.go
3.88 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
memclr_386.s
2.38 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
memclr_amd64.s
4.91 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
memclr_arm.s
2.6 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
memclr_arm64.s
3.62 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
memclr_loong64.s
843 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
memclr_mips64x.s
1.72 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
memclr_mipsx.s
1.32 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
memclr_plan9_386.s
983 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
memclr_plan9_amd64.s
511 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
memclr_ppc64x.s
4.44 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
memclr_riscv64.s
1.71 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
memclr_s390x.s
1.96 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
memclr_wasm.s
485 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
memmove_386.s
4.42 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
memmove_amd64.s
12.48 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
memmove_arm.s
5.9 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
memmove_arm64.s
5.96 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
memmove_linux_amd64_test.go
1.53 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
memmove_loong64.s
1.87 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
memmove_mips64x.s
1.83 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
memmove_mipsx.s
4.4 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
memmove_plan9_386.s
3.06 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
memmove_plan9_amd64.s
3.04 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
memmove_ppc64x.s
4.91 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
memmove_riscv64.s
5.46 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
memmove_s390x.s
2.92 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
memmove_test.go
21.23 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
memmove_wasm.s
479 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📁
metrics
-
02/02/2024 06:09:55 PM
rwxr-xr-x
📄
metrics.go
26.01 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
metrics_test.go
42.46 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
mfinal.go
18.91 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
mfinal_test.go
5.57 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
mfixalloc.go
3.13 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
mgc.go
59.29 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
mgclimit.go
17.28 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
mgclimit_test.go
9.02 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
mgcmark.go
53.07 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
mgcpacer.go
55.36 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
mgcpacer_test.go
39.26 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
mgcscavenge.go
52.32 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
mgcscavenge_test.go
25.2 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
mgcstack.go
10.58 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
mgcsweep.go
32.26 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
mgcwork.go
12.89 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
mheap.go
72.64 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
minmax.go
1.46 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
minmax_test.go
3.31 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
mkduff.go
8.04 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
mkfastlog2table.go
3.08 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
mklockrank.go
9 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
mkpreempt.go
15.33 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
mksizeclasses.go
9.52 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
mmap.go
844 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
mpagealloc.go
39.23 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
mpagealloc_32bit.go
4.56 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
mpagealloc_64bit.go
9.34 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
mpagealloc_test.go
32.59 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
mpagecache.go
5.59 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
mpagecache_test.go
10.79 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
mpallocbits.go
12.58 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
mpallocbits_test.go
13.69 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
mprof.go
47.4 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
mranges.go
14.46 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
mranges_test.go
5.68 KB
02/02/2024 06:09:55 PM
rw-r--r--
📁
msan
-
02/02/2024 06:09:55 PM
rwxr-xr-x
📄
msan.go
1.5 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
msan0.go
725 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
msan_amd64.s
2.3 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
msan_arm64.s
1.98 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
msan_loong64.s
1.96 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
msize_allocheaders.go
1.32 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
msize_noallocheaders.go
915 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
mspanset.go
13.12 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
mstats.go
33.81 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
mwbbuf.go
8.13 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
nbpipe_pipe.go
405 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
nbpipe_pipe2.go
344 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
nbpipe_pipe_test.go
706 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
nbpipe_test.go
1.99 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
net_plan9.go
645 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
netpoll.go
20.55 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
netpoll_aix.go
5.06 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
netpoll_epoll.go
4.4 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
netpoll_fake.go
664 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
netpoll_kqueue.go
5.62 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
netpoll_os_test.go
520 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
netpoll_solaris.go
11.2 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
netpoll_stub.go
1.48 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
netpoll_wasip1.go
6.08 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
netpoll_windows.go
4.01 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
nonwindows_stub.go
729 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
norace_linux_test.go
915 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
norace_test.go
983 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
numcpu_freebsd_test.go
381 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
os2_aix.go
20.88 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
os2_freebsd.go
302 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
os2_openbsd.go
296 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
os2_plan9.go
1.48 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
os2_solaris.go
320 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
os3_plan9.go
3.94 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
os3_solaris.go
17.59 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
os_aix.go
8.89 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
os_android.go
463 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
os_darwin.go
11.92 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
os_darwin_arm64.go
329 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
os_dragonfly.go
7.14 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
os_freebsd.go
11.64 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
os_freebsd2.go
603 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
os_freebsd_amd64.go
658 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
os_freebsd_arm.go
1.45 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
os_freebsd_arm64.go
320 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
os_freebsd_noauxv.go
241 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
os_freebsd_riscv64.go
198 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
os_illumos.go
3.93 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
os_js.go
767 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
os_linux.go
25.71 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
os_linux_arm.go
1.51 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
os_linux_arm64.go
478 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
os_linux_be64.go
806 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
os_linux_generic.go
870 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
os_linux_loong64.go
263 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
os_linux_mips64x.go
996 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
os_linux_mipsx.go
987 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
os_linux_noauxv.go
337 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
os_linux_novdso.go
347 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
os_linux_ppc64x.go
526 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
os_linux_riscv64.go
198 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
os_linux_s390x.go
825 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
os_linux_x86.go
234 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
os_netbsd.go
10.12 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
os_netbsd_386.go
617 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
os_netbsd_amd64.go
614 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
os_netbsd_arm.go
1.07 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
os_netbsd_arm64.go
769 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
os_nonopenbsd.go
437 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
os_only_solaris.go
357 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
os_openbsd.go
6.23 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
os_openbsd_arm.go
662 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
os_openbsd_arm64.go
329 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
os_openbsd_libc.go
1.49 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
os_openbsd_mips64.go
329 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
os_openbsd_syscall.go
1.36 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
os_openbsd_syscall1.go
441 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
os_openbsd_syscall2.go
2.51 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
os_plan9.go
10.18 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
os_plan9_arm.go
375 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
os_solaris.go
6.62 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
os_unix.go
436 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
os_unix_nonlinux.go
374 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
os_wasip1.go
7 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
os_wasm.go
3.15 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
os_windows.go
41.39 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
os_windows_arm.go
511 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
os_windows_arm64.go
339 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
pagetrace_off.go
550 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
pagetrace_on.go
10.36 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
panic.go
41.85 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
panic32.go
4.8 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
panic_test.go
1.71 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
panicnil_test.go
1.25 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
pinner.go
10.98 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
pinner_test.go
11.04 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
plugin.go
4.37 KB
02/02/2024 06:09:55 PM
rw-r--r--
📁
pprof
-
02/02/2024 06:09:55 PM
rwxr-xr-x
📄
preempt.go
15.03 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
preempt_386.s
824 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
preempt_amd64.s
1.67 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
preempt_arm.s
1.49 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
preempt_arm64.s
1.97 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
preempt_loong64.s
2.41 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
preempt_mips64x.s
2.72 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
preempt_mipsx.s
2.68 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
preempt_nonwindows.go
290 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
preempt_ppc64x.s
2.72 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
preempt_riscv64.s
2.26 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
preempt_s390x.s
1.01 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
preempt_wasm.s
176 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
print.go
5.92 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
proc.go
204.28 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
proc_runtime_test.go
1.38 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
proc_test.go
25.85 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
profbuf.go
18.26 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
profbuf_test.go
8.54 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
proflabel.go
1.52 KB
02/02/2024 06:09:55 PM
rw-r--r--
📁
race
-
02/02/2024 06:09:55 PM
rwxr-xr-x
📄
race.go
18.81 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
race0.go
2.79 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
race_amd64.s
13.94 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
race_arm64.s
14.21 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
race_ppc64le.s
15.93 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
race_s390x.s
11.99 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
rand.go
7.11 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
rand_test.go
1.95 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
rdebug.go
550 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
retry.go
760 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
rt0_aix_ppc64.s
4.09 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
rt0_android_386.s
822 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
rt0_android_amd64.s
754 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
rt0_android_arm.s
843 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
rt0_android_arm64.s
941 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
rt0_darwin_amd64.s
399 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
rt0_darwin_arm64.s
1.69 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
rt0_dragonfly_amd64.s
448 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
rt0_freebsd_386.s
454 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
rt0_freebsd_amd64.s
442 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
rt0_freebsd_arm.s
298 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
rt0_freebsd_arm64.s
1.88 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
rt0_freebsd_riscv64.s
2.72 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
rt0_illumos_amd64.s
311 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
rt0_ios_amd64.s
425 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
rt0_ios_arm64.s
425 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
rt0_js_wasm.s
1.53 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
rt0_linux_386.s
450 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
rt0_linux_amd64.s
307 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
rt0_linux_arm.s
1007 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
rt0_linux_arm64.s
1.81 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
rt0_linux_loong64.s
2.01 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
rt0_linux_mips64x.s
1014 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
rt0_linux_mipsx.s
797 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
rt0_linux_ppc64.s
847 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
rt0_linux_ppc64le.s
2.89 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
rt0_linux_riscv64.s
2.65 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
rt0_linux_s390x.s
676 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
rt0_netbsd_386.s
452 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
rt0_netbsd_amd64.s
309 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
rt0_netbsd_arm.s
296 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
rt0_netbsd_arm64.s
1.8 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
rt0_openbsd_386.s
454 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
rt0_openbsd_amd64.s
311 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
rt0_openbsd_arm.s
298 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
rt0_openbsd_arm64.s
1.96 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
rt0_openbsd_mips64.s
976 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
rt0_openbsd_ppc64.s
370 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
rt0_openbsd_riscv64.s
372 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
rt0_plan9_386.s
523 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
rt0_plan9_amd64.s
481 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
rt0_plan9_arm.s
397 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
rt0_solaris_amd64.s
311 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
rt0_wasip1_wasm.s
387 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
rt0_windows_386.s
1.28 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
rt0_windows_amd64.s
1.14 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
rt0_windows_arm.s
386 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
rt0_windows_arm64.s
733 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
runtime-gdb.py
15.44 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
runtime-gdb_test.go
24.04 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
runtime-gdb_unix_test.go
9.4 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
runtime-lldb_test.go
4.95 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
runtime-seh_windows_test.go
4.7 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
runtime.go
7.1 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
runtime1.go
16.66 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
runtime2.go
46.16 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
runtime_boring.go
606 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
runtime_linux_test.go
1.77 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
runtime_mmap_test.go
1.77 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
runtime_test.go
11.81 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
runtime_unix_test.go
1.22 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
rwmutex.go
5 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
rwmutex_test.go
4.21 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
security_aix.go
449 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
security_issetugid.go
502 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
security_linux.go
335 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
security_nonunix.go
256 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
security_test.go
4.09 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
security_unix.go
818 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
select.go
14.82 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
sema.go
18.43 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
sema_test.go
4.21 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
semasleep_test.go
3.46 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
sigaction.go
489 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
signal_386.go
1.72 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
signal_aix_ppc64.go
3.54 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
signal_amd64.go
2.73 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
signal_arm.go
2.54 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
signal_arm64.go
3.83 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
signal_darwin.go
2.13 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
signal_darwin_amd64.go
4 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
signal_darwin_arm64.go
3.6 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
signal_dragonfly.go
2.17 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
signal_dragonfly_amd64.go
2.01 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
signal_freebsd.go
2.2 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
signal_freebsd_386.go
1.55 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
signal_freebsd_amd64.go
2.03 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
signal_freebsd_arm.go
2.18 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
signal_freebsd_arm64.go
3.24 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
signal_freebsd_riscv64.go
3.08 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
signal_linux_386.go
1.59 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
signal_linux_amd64.go
2.05 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
signal_linux_arm.go
2.12 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
signal_linux_arm64.go
2.95 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
signal_linux_loong64.go
3.22 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
signal_linux_mips64x.go
3.35 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
signal_linux_mipsx.go
3.67 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
signal_linux_ppc64x.go
3.5 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
signal_linux_riscv64.go
2.92 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
signal_linux_s390x.go
4.49 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
signal_loong64.go
3.01 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
signal_mips64x.go
3.18 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
signal_mipsx.go
3.06 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
signal_netbsd.go
2.18 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
signal_netbsd_386.go
1.76 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
signal_netbsd_amd64.go
2.33 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
signal_netbsd_arm.go
2.3 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
signal_netbsd_arm64.go
3.4 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
signal_openbsd.go
2.18 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
signal_openbsd_386.go
1.58 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
signal_openbsd_amd64.go
2.04 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
signal_openbsd_arm.go
2.12 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
signal_openbsd_arm64.go
3.39 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
signal_openbsd_mips64.go
3.28 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
signal_openbsd_ppc64.go
3.53 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
signal_openbsd_riscv64.go
3.12 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
signal_plan9.go
1.93 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
signal_ppc64x.go
3.71 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
signal_riscv64.go
2.91 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
signal_solaris.go
4.5 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
signal_solaris_amd64.go
2.47 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
signal_unix.go
44.11 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
signal_windows.go
14.48 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
signal_windows_test.go
8.98 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
sigqueue.go
7.62 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
sigqueue_note.go
648 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
sigqueue_plan9.go
3.25 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
sigtab_aix.go
11.3 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
sigtab_linux_generic.go
3.52 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
sigtab_linux_mipsx.go
5.95 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
sizeclasses.go
9.17 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
sizeof_test.go
1003 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
slice.go
11.23 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
slice_test.go
10.32 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
softfloat64.go
11.54 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
softfloat64_test.go
4.04 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
stack.go
40.02 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
stack_test.go
23.14 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
start_line_amd64_test.go
647 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
start_line_test.go
2.58 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
stkframe.go
9.88 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
string.go
13.35 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
string_test.go
13.33 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
stubs.go
17.39 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
stubs2.go
1.15 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
stubs3.go
324 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
stubs_386.go
708 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
stubs_amd64.go
1.38 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
stubs_arm.go
689 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
stubs_arm64.go
700 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
stubs_linux.go
650 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
stubs_loong64.go
638 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
stubs_mips64x.go
522 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
stubs_mipsx.go
441 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
stubs_nonlinux.go
298 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
stubs_ppc64.go
302 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
stubs_ppc64x.go
688 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
stubs_riscv64.go
695 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
stubs_s390x.go
414 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
symtab.go
34.76 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
symtab_test.go
7.48 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
symtabinl.go
3.81 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
symtabinl_test.go
2.97 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
sys_aix_ppc64.s
7.42 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
sys_arm.go
521 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
sys_arm64.go
469 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
sys_darwin.go
22.56 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
sys_darwin_amd64.s
19.65 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
sys_darwin_arm64.go
1.74 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
sys_darwin_arm64.s
18.28 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
sys_dragonfly_amd64.s
8.31 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
sys_freebsd_386.s
9.41 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
sys_freebsd_amd64.s
12.67 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
sys_freebsd_arm.s
10.38 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
sys_freebsd_arm64.s
9.49 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
sys_freebsd_riscv64.s
8.92 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
sys_libc.go
1.84 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
sys_linux_386.s
17.89 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
sys_linux_amd64.s
15.74 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
sys_linux_arm.s
13.5 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
sys_linux_arm64.s
16.71 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
sys_linux_loong64.s
14.16 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
sys_linux_mips64x.s
11.96 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
sys_linux_mipsx.s
9.69 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
sys_linux_ppc64x.s
18.09 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
sys_linux_riscv64.s
11.48 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
sys_linux_s390x.s
12.49 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
sys_loong64.go
489 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
sys_mips64x.go
500 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
sys_mipsx.go
496 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
sys_netbsd_386.s
9.61 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
sys_netbsd_amd64.s
9.78 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
sys_netbsd_arm.s
10.58 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
sys_netbsd_arm64.s
9.47 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
sys_nonppc64x.go
245 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
sys_openbsd.go
2.59 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
sys_openbsd1.go
1.23 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
sys_openbsd2.go
8.67 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
sys_openbsd3.go
3.37 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
sys_openbsd_386.s
20.4 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
sys_openbsd_amd64.s
15.54 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
sys_openbsd_arm.s
18.46 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
sys_openbsd_arm64.s
15.05 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
sys_openbsd_mips64.s
8.81 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
sys_openbsd_ppc64.s
15.3 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
sys_openbsd_riscv64.s
16.8 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
sys_plan9_386.s
4.48 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
sys_plan9_amd64.s
4.56 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
sys_plan9_arm.s
7.03 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
sys_ppc64x.go
532 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
sys_riscv64.go
469 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
sys_s390x.go
469 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
sys_solaris_amd64.s
6.42 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
sys_wasm.go
758 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
sys_wasm.s
1.43 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
sys_windows_386.s
6.46 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
sys_windows_amd64.s
8.41 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
sys_windows_arm.s
7.72 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
sys_windows_arm64.s
6.8 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
sys_x86.go
552 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
syscall2_solaris.go
1.85 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
syscall_aix.go
6.33 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
syscall_solaris.go
8.38 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
syscall_unix_test.go
635 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
syscall_windows.go
16.57 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
syscall_windows_test.go
32.45 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
tagptr.go
496 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
tagptr_32bit.go
927 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
tagptr_64bit.go
3.23 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
test_amd64.go
196 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
test_amd64.s
316 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
test_stubs.go
218 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📁
testdata
-
02/02/2024 06:09:55 PM
rwxr-xr-x
📄
textflag.h
1.47 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
time.go
30.57 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
time_fake.go
2.5 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
time_linux_amd64.s
2.02 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
time_nofake.go
709 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
time_test.go
2.04 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
time_windows.h
753 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
time_windows_386.s
1.71 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
time_windows_amd64.s
786 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
time_windows_arm.s
1.97 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
time_windows_arm64.s
906 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
timeasm.go
418 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
timestub.go
532 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
timestub2.go
363 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
tls_arm.s
3.45 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
tls_arm64.h
1.1 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
tls_arm64.s
1.2 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
tls_loong64.s
589 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
tls_mips64x.s
733 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
tls_mipsx.s
710 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
tls_ppc64x.s
1.52 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
tls_riscv64.s
615 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
tls_s390x.s
1.55 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
tls_stub.go
260 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
tls_windows_amd64.go
294 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📁
trace
-
02/02/2024 06:09:55 PM
rwxr-xr-x
📄
trace.go
62.76 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
trace2.go
33.81 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
trace2buf.go
6.58 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
trace2cpu.go
8.87 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
trace2event.go
8.39 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
trace2map.go
4.36 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
trace2region.go
1.68 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
trace2runtime.go
24.2 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
trace2stack.go
9.45 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
trace2status.go
7.24 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
trace2string.go
2.59 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
trace2time.go
3.21 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
trace_cgo_test.go
4.47 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
traceback.go
54.61 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
traceback_test.go
22.95 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
tracebackx_test.go
509 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
type.go
12.1 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
typekind.go
743 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
unsafe.go
2.97 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
unsafepoint_test.go
3.27 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
utf8.go
3.39 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
vdso_elf32.go
2.76 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
vdso_elf64.go
2.84 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
vdso_freebsd.go
2.44 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
vdso_freebsd_arm.go
454 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
vdso_freebsd_arm64.go
454 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
vdso_freebsd_riscv64.go
429 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
vdso_freebsd_x86.go
1.86 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
vdso_in_none.go
443 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
vdso_linux.go
7.77 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
vdso_linux_386.go
669 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
vdso_linux_amd64.go
685 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
vdso_linux_arm.go
669 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
vdso_linux_arm64.go
670 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
vdso_linux_loong64.go
793 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
vdso_linux_mips64x.go
850 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
vdso_linux_ppc64x.go
672 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
vdso_linux_riscv64.go
666 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
vdso_linux_s390x.go
659 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
vdso_test.go
3.71 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
vlop_386.s
2.02 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
vlop_arm.s
7.06 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
vlop_arm_test.go
3.75 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
vlrt.go
6.71 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
wincallback.go
3.45 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
write_err.go
291 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
write_err_android.go
4.65 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
zcallback_windows.go
155 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
zcallback_windows.s
63.06 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
zcallback_windows_arm.s
89.32 KB
02/02/2024 06:09:55 PM
rw-r--r--
📄
zcallback_windows_arm64.s
89.32 KB
02/02/2024 06:09:55 PM
rw-r--r--
Editing: mstats.go
Close
// Copyright 2009 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Memory statistics package runtime import ( "runtime/internal/atomic" "unsafe" ) type mstats struct { // Statistics about malloc heap. heapStats consistentHeapStats // Statistics about stacks. stacks_sys sysMemStat // only counts newosproc0 stack in mstats; differs from MemStats.StackSys // Statistics about allocation of low-level fixed-size structures. mspan_sys sysMemStat mcache_sys sysMemStat buckhash_sys sysMemStat // profiling bucket hash table // Statistics about GC overhead. gcMiscSys sysMemStat // updated atomically or during STW // Miscellaneous statistics. other_sys sysMemStat // updated atomically or during STW // Statistics about the garbage collector. // Protected by mheap or worldsema during GC. last_gc_unix uint64 // last gc (in unix time) pause_total_ns uint64 pause_ns [256]uint64 // circular buffer of recent gc pause lengths pause_end [256]uint64 // circular buffer of recent gc end times (nanoseconds since 1970) numgc uint32 numforcedgc uint32 // number of user-forced GCs gc_cpu_fraction float64 // fraction of CPU time used by GC last_gc_nanotime uint64 // last gc (monotonic time) lastHeapInUse uint64 // heapInUse at mark termination of the previous GC enablegc bool } var memstats mstats // A MemStats records statistics about the memory allocator. type MemStats struct { // General statistics. // Alloc is bytes of allocated heap objects. // // This is the same as HeapAlloc (see below). Alloc uint64 // TotalAlloc is cumulative bytes allocated for heap objects. // // TotalAlloc increases as heap objects are allocated, but // unlike Alloc and HeapAlloc, it does not decrease when // objects are freed. TotalAlloc uint64 // Sys is the total bytes of memory obtained from the OS. // // Sys is the sum of the XSys fields below. Sys measures the // virtual address space reserved by the Go runtime for the // heap, stacks, and other internal data structures. It's // likely that not all of the virtual address space is backed // by physical memory at any given moment, though in general // it all was at some point. Sys uint64 // Lookups is the number of pointer lookups performed by the // runtime. // // This is primarily useful for debugging runtime internals. Lookups uint64 // Mallocs is the cumulative count of heap objects allocated. // The number of live objects is Mallocs - Frees. Mallocs uint64 // Frees is the cumulative count of heap objects freed. Frees uint64 // Heap memory statistics. // // Interpreting the heap statistics requires some knowledge of // how Go organizes memory. Go divides the virtual address // space of the heap into "spans", which are contiguous // regions of memory 8K or larger. A span may be in one of // three states: // // An "idle" span contains no objects or other data. The // physical memory backing an idle span can be released back // to the OS (but the virtual address space never is), or it // can be converted into an "in use" or "stack" span. // // An "in use" span contains at least one heap object and may // have free space available to allocate more heap objects. // // A "stack" span is used for goroutine stacks. Stack spans // are not considered part of the heap. A span can change // between heap and stack memory; it is never used for both // simultaneously. // HeapAlloc is bytes of allocated heap objects. // // "Allocated" heap objects include all reachable objects, as // well as unreachable objects that the garbage collector has // not yet freed. Specifically, HeapAlloc increases as heap // objects are allocated and decreases as the heap is swept // and unreachable objects are freed. Sweeping occurs // incrementally between GC cycles, so these two processes // occur simultaneously, and as a result HeapAlloc tends to // change smoothly (in contrast with the sawtooth that is // typical of stop-the-world garbage collectors). HeapAlloc uint64 // HeapSys is bytes of heap memory obtained from the OS. // // HeapSys measures the amount of virtual address space // reserved for the heap. This includes virtual address space // that has been reserved but not yet used, which consumes no // physical memory, but tends to be small, as well as virtual // address space for which the physical memory has been // returned to the OS after it became unused (see HeapReleased // for a measure of the latter). // // HeapSys estimates the largest size the heap has had. HeapSys uint64 // HeapIdle is bytes in idle (unused) spans. // // Idle spans have no objects in them. These spans could be // (and may already have been) returned to the OS, or they can // be reused for heap allocations, or they can be reused as // stack memory. // // HeapIdle minus HeapReleased estimates the amount of memory // that could be returned to the OS, but is being retained by // the runtime so it can grow the heap without requesting more // memory from the OS. If this difference is significantly // larger than the heap size, it indicates there was a recent // transient spike in live heap size. HeapIdle uint64 // HeapInuse is bytes in in-use spans. // // In-use spans have at least one object in them. These spans // can only be used for other objects of roughly the same // size. // // HeapInuse minus HeapAlloc estimates the amount of memory // that has been dedicated to particular size classes, but is // not currently being used. This is an upper bound on // fragmentation, but in general this memory can be reused // efficiently. HeapInuse uint64 // HeapReleased is bytes of physical memory returned to the OS. // // This counts heap memory from idle spans that was returned // to the OS and has not yet been reacquired for the heap. HeapReleased uint64 // HeapObjects is the number of allocated heap objects. // // Like HeapAlloc, this increases as objects are allocated and // decreases as the heap is swept and unreachable objects are // freed. HeapObjects uint64 // Stack memory statistics. // // Stacks are not considered part of the heap, but the runtime // can reuse a span of heap memory for stack memory, and // vice-versa. // StackInuse is bytes in stack spans. // // In-use stack spans have at least one stack in them. These // spans can only be used for other stacks of the same size. // // There is no StackIdle because unused stack spans are // returned to the heap (and hence counted toward HeapIdle). StackInuse uint64 // StackSys is bytes of stack memory obtained from the OS. // // StackSys is StackInuse, plus any memory obtained directly // from the OS for OS thread stacks. // // In non-cgo programs this metric is currently equal to StackInuse // (but this should not be relied upon, and the value may change in // the future). // // In cgo programs this metric includes OS thread stacks allocated // directly from the OS. Currently, this only accounts for one stack in // c-shared and c-archive build modes and other sources of stacks from // the OS (notably, any allocated by C code) are not currently measured. // Note this too may change in the future. StackSys uint64 // Off-heap memory statistics. // // The following statistics measure runtime-internal // structures that are not allocated from heap memory (usually // because they are part of implementing the heap). Unlike // heap or stack memory, any memory allocated to these // structures is dedicated to these structures. // // These are primarily useful for debugging runtime memory // overheads. // MSpanInuse is bytes of allocated mspan structures. MSpanInuse uint64 // MSpanSys is bytes of memory obtained from the OS for mspan // structures. MSpanSys uint64 // MCacheInuse is bytes of allocated mcache structures. MCacheInuse uint64 // MCacheSys is bytes of memory obtained from the OS for // mcache structures. MCacheSys uint64 // BuckHashSys is bytes of memory in profiling bucket hash tables. BuckHashSys uint64 // GCSys is bytes of memory in garbage collection metadata. GCSys uint64 // OtherSys is bytes of memory in miscellaneous off-heap // runtime allocations. OtherSys uint64 // Garbage collector statistics. // NextGC is the target heap size of the next GC cycle. // // The garbage collector's goal is to keep HeapAlloc ≤ NextGC. // At the end of each GC cycle, the target for the next cycle // is computed based on the amount of reachable data and the // value of GOGC. NextGC uint64 // LastGC is the time the last garbage collection finished, as // nanoseconds since 1970 (the UNIX epoch). LastGC uint64 // PauseTotalNs is the cumulative nanoseconds in GC // stop-the-world pauses since the program started. // // During a stop-the-world pause, all goroutines are paused // and only the garbage collector can run. PauseTotalNs uint64 // PauseNs is a circular buffer of recent GC stop-the-world // pause times in nanoseconds. // // The most recent pause is at PauseNs[(NumGC+255)%256]. In // general, PauseNs[N%256] records the time paused in the most // recent N%256th GC cycle. There may be multiple pauses per // GC cycle; this is the sum of all pauses during a cycle. PauseNs [256]uint64 // PauseEnd is a circular buffer of recent GC pause end times, // as nanoseconds since 1970 (the UNIX epoch). // // This buffer is filled the same way as PauseNs. There may be // multiple pauses per GC cycle; this records the end of the // last pause in a cycle. PauseEnd [256]uint64 // NumGC is the number of completed GC cycles. NumGC uint32 // NumForcedGC is the number of GC cycles that were forced by // the application calling the GC function. NumForcedGC uint32 // GCCPUFraction is the fraction of this program's available // CPU time used by the GC since the program started. // // GCCPUFraction is expressed as a number between 0 and 1, // where 0 means GC has consumed none of this program's CPU. A // program's available CPU time is defined as the integral of // GOMAXPROCS since the program started. That is, if // GOMAXPROCS is 2 and a program has been running for 10 // seconds, its "available CPU" is 20 seconds. GCCPUFraction // does not include CPU time used for write barrier activity. // // This is the same as the fraction of CPU reported by // GODEBUG=gctrace=1. GCCPUFraction float64 // EnableGC indicates that GC is enabled. It is always true, // even if GOGC=off. EnableGC bool // DebugGC is currently unused. DebugGC bool // BySize reports per-size class allocation statistics. // // BySize[N] gives statistics for allocations of size S where // BySize[N-1].Size < S ≤ BySize[N].Size. // // This does not report allocations larger than BySize[60].Size. BySize [61]struct { // Size is the maximum byte size of an object in this // size class. Size uint32 // Mallocs is the cumulative count of heap objects // allocated in this size class. The cumulative bytes // of allocation is Size*Mallocs. The number of live // objects in this size class is Mallocs - Frees. Mallocs uint64 // Frees is the cumulative count of heap objects freed // in this size class. Frees uint64 } } func init() { if offset := unsafe.Offsetof(memstats.heapStats); offset%8 != 0 { println(offset) throw("memstats.heapStats not aligned to 8 bytes") } // Ensure the size of heapStatsDelta causes adjacent fields/slots (e.g. // [3]heapStatsDelta) to be 8-byte aligned. if size := unsafe.Sizeof(heapStatsDelta{}); size%8 != 0 { println(size) throw("heapStatsDelta not a multiple of 8 bytes in size") } } // ReadMemStats populates m with memory allocator statistics. // // The returned memory allocator statistics are up to date as of the // call to ReadMemStats. This is in contrast with a heap profile, // which is a snapshot as of the most recently completed garbage // collection cycle. func ReadMemStats(m *MemStats) { _ = m.Alloc // nil check test before we switch stacks, see issue 61158 stw := stopTheWorld(stwReadMemStats) systemstack(func() { readmemstats_m(m) }) startTheWorld(stw) } // doubleCheckReadMemStats controls a double-check mode for ReadMemStats that // ensures consistency between the values that ReadMemStats is using and the // runtime-internal stats. var doubleCheckReadMemStats = false // readmemstats_m populates stats for internal runtime values. // // The world must be stopped. func readmemstats_m(stats *MemStats) { assertWorldStopped() // Flush mcaches to mcentral before doing anything else. // // Flushing to the mcentral may in general cause stats to // change as mcentral data structures are manipulated. systemstack(flushallmcaches) // Calculate memory allocator stats. // During program execution we only count number of frees and amount of freed memory. // Current number of alive objects in the heap and amount of alive heap memory // are calculated by scanning all spans. // Total number of mallocs is calculated as number of frees plus number of alive objects. // Similarly, total amount of allocated memory is calculated as amount of freed memory // plus amount of alive heap memory. // Collect consistent stats, which are the source-of-truth in some cases. var consStats heapStatsDelta memstats.heapStats.unsafeRead(&consStats) // Collect large allocation stats. totalAlloc := consStats.largeAlloc nMalloc := consStats.largeAllocCount totalFree := consStats.largeFree nFree := consStats.largeFreeCount // Collect per-sizeclass stats. var bySize [_NumSizeClasses]struct { Size uint32 Mallocs uint64 Frees uint64 } for i := range bySize { bySize[i].Size = uint32(class_to_size[i]) // Malloc stats. a := consStats.smallAllocCount[i] totalAlloc += a * uint64(class_to_size[i]) nMalloc += a bySize[i].Mallocs = a // Free stats. f := consStats.smallFreeCount[i] totalFree += f * uint64(class_to_size[i]) nFree += f bySize[i].Frees = f } // Account for tiny allocations. // For historical reasons, MemStats includes tiny allocations // in both the total free and total alloc count. This double-counts // memory in some sense because their tiny allocation block is also // counted. Tracking the lifetime of individual tiny allocations is // currently not done because it would be too expensive. nFree += consStats.tinyAllocCount nMalloc += consStats.tinyAllocCount // Calculate derived stats. stackInUse := uint64(consStats.inStacks) gcWorkBufInUse := uint64(consStats.inWorkBufs) gcProgPtrScalarBitsInUse := uint64(consStats.inPtrScalarBits) totalMapped := gcController.heapInUse.load() + gcController.heapFree.load() + gcController.heapReleased.load() + memstats.stacks_sys.load() + memstats.mspan_sys.load() + memstats.mcache_sys.load() + memstats.buckhash_sys.load() + memstats.gcMiscSys.load() + memstats.other_sys.load() + stackInUse + gcWorkBufInUse + gcProgPtrScalarBitsInUse heapGoal := gcController.heapGoal() if doubleCheckReadMemStats { // Only check this if we're debugging. It would be bad to crash an application // just because the debugging stats are wrong. We mostly rely on tests to catch // these issues, and we enable the double check mode for tests. // // The world is stopped, so the consistent stats (after aggregation) // should be identical to some combination of memstats. In particular: // // * memstats.heapInUse == inHeap // * memstats.heapReleased == released // * memstats.heapInUse + memstats.heapFree == committed - inStacks - inWorkBufs - inPtrScalarBits // * memstats.totalAlloc == totalAlloc // * memstats.totalFree == totalFree // // Check if that's actually true. // // Prevent sysmon and the tracer from skewing the stats since they can // act without synchronizing with a STW. See #64401. lock(&sched.sysmonlock) lock(&trace.lock) if gcController.heapInUse.load() != uint64(consStats.inHeap) { print("runtime: heapInUse=", gcController.heapInUse.load(), "\n") print("runtime: consistent value=", consStats.inHeap, "\n") throw("heapInUse and consistent stats are not equal") } if gcController.heapReleased.load() != uint64(consStats.released) { print("runtime: heapReleased=", gcController.heapReleased.load(), "\n") print("runtime: consistent value=", consStats.released, "\n") throw("heapReleased and consistent stats are not equal") } heapRetained := gcController.heapInUse.load() + gcController.heapFree.load() consRetained := uint64(consStats.committed - consStats.inStacks - consStats.inWorkBufs - consStats.inPtrScalarBits) if heapRetained != consRetained { print("runtime: global value=", heapRetained, "\n") print("runtime: consistent value=", consRetained, "\n") throw("measures of the retained heap are not equal") } if gcController.totalAlloc.Load() != totalAlloc { print("runtime: totalAlloc=", gcController.totalAlloc.Load(), "\n") print("runtime: consistent value=", totalAlloc, "\n") throw("totalAlloc and consistent stats are not equal") } if gcController.totalFree.Load() != totalFree { print("runtime: totalFree=", gcController.totalFree.Load(), "\n") print("runtime: consistent value=", totalFree, "\n") throw("totalFree and consistent stats are not equal") } // Also check that mappedReady lines up with totalMapped - released. // This isn't really the same type of "make sure consistent stats line up" situation, // but this is an opportune time to check. if gcController.mappedReady.Load() != totalMapped-uint64(consStats.released) { print("runtime: mappedReady=", gcController.mappedReady.Load(), "\n") print("runtime: totalMapped=", totalMapped, "\n") print("runtime: released=", uint64(consStats.released), "\n") print("runtime: totalMapped-released=", totalMapped-uint64(consStats.released), "\n") throw("mappedReady and other memstats are not equal") } unlock(&trace.lock) unlock(&sched.sysmonlock) } // We've calculated all the values we need. Now, populate stats. stats.Alloc = totalAlloc - totalFree stats.TotalAlloc = totalAlloc stats.Sys = totalMapped stats.Mallocs = nMalloc stats.Frees = nFree stats.HeapAlloc = totalAlloc - totalFree stats.HeapSys = gcController.heapInUse.load() + gcController.heapFree.load() + gcController.heapReleased.load() // By definition, HeapIdle is memory that was mapped // for the heap but is not currently used to hold heap // objects. It also specifically is memory that can be // used for other purposes, like stacks, but this memory // is subtracted out of HeapSys before it makes that // transition. Put another way: // // HeapSys = bytes allocated from the OS for the heap - bytes ultimately used for non-heap purposes // HeapIdle = bytes allocated from the OS for the heap - bytes ultimately used for any purpose // // or // // HeapSys = sys - stacks_inuse - gcWorkBufInUse - gcProgPtrScalarBitsInUse // HeapIdle = sys - stacks_inuse - gcWorkBufInUse - gcProgPtrScalarBitsInUse - heapInUse // // => HeapIdle = HeapSys - heapInUse = heapFree + heapReleased stats.HeapIdle = gcController.heapFree.load() + gcController.heapReleased.load() stats.HeapInuse = gcController.heapInUse.load() stats.HeapReleased = gcController.heapReleased.load() stats.HeapObjects = nMalloc - nFree stats.StackInuse = stackInUse // memstats.stacks_sys is only memory mapped directly for OS stacks. // Add in heap-allocated stack memory for user consumption. stats.StackSys = stackInUse + memstats.stacks_sys.load() stats.MSpanInuse = uint64(mheap_.spanalloc.inuse) stats.MSpanSys = memstats.mspan_sys.load() stats.MCacheInuse = uint64(mheap_.cachealloc.inuse) stats.MCacheSys = memstats.mcache_sys.load() stats.BuckHashSys = memstats.buckhash_sys.load() // MemStats defines GCSys as an aggregate of all memory related // to the memory management system, but we track this memory // at a more granular level in the runtime. stats.GCSys = memstats.gcMiscSys.load() + gcWorkBufInUse + gcProgPtrScalarBitsInUse stats.OtherSys = memstats.other_sys.load() stats.NextGC = heapGoal stats.LastGC = memstats.last_gc_unix stats.PauseTotalNs = memstats.pause_total_ns stats.PauseNs = memstats.pause_ns stats.PauseEnd = memstats.pause_end stats.NumGC = memstats.numgc stats.NumForcedGC = memstats.numforcedgc stats.GCCPUFraction = memstats.gc_cpu_fraction stats.EnableGC = true // stats.BySize and bySize might not match in length. // That's OK, stats.BySize cannot change due to backwards // compatibility issues. copy will copy the minimum amount // of values between the two of them. copy(stats.BySize[:], bySize[:]) } //go:linkname readGCStats runtime/debug.readGCStats func readGCStats(pauses *[]uint64) { systemstack(func() { readGCStats_m(pauses) }) } // readGCStats_m must be called on the system stack because it acquires the heap // lock. See mheap for details. // //go:systemstack func readGCStats_m(pauses *[]uint64) { p := *pauses // Calling code in runtime/debug should make the slice large enough. if cap(p) < len(memstats.pause_ns)+3 { throw("short slice passed to readGCStats") } // Pass back: pauses, pause ends, last gc (absolute time), number of gc, total pause ns. lock(&mheap_.lock) n := memstats.numgc if n > uint32(len(memstats.pause_ns)) { n = uint32(len(memstats.pause_ns)) } // The pause buffer is circular. The most recent pause is at // pause_ns[(numgc-1)%len(pause_ns)], and then backward // from there to go back farther in time. We deliver the times // most recent first (in p[0]). p = p[:cap(p)] for i := uint32(0); i < n; i++ { j := (memstats.numgc - 1 - i) % uint32(len(memstats.pause_ns)) p[i] = memstats.pause_ns[j] p[n+i] = memstats.pause_end[j] } p[n+n] = memstats.last_gc_unix p[n+n+1] = uint64(memstats.numgc) p[n+n+2] = memstats.pause_total_ns unlock(&mheap_.lock) *pauses = p[:n+n+3] } // flushmcache flushes the mcache of allp[i]. // // The world must be stopped. // //go:nowritebarrier func flushmcache(i int) { assertWorldStopped() p := allp[i] c := p.mcache if c == nil { return } c.releaseAll() stackcache_clear(c) } // flushallmcaches flushes the mcaches of all Ps. // // The world must be stopped. // //go:nowritebarrier func flushallmcaches() { assertWorldStopped() for i := 0; i < int(gomaxprocs); i++ { flushmcache(i) } } // sysMemStat represents a global system statistic that is managed atomically. // // This type must structurally be a uint64 so that mstats aligns with MemStats. type sysMemStat uint64 // load atomically reads the value of the stat. // // Must be nosplit as it is called in runtime initialization, e.g. newosproc0. // //go:nosplit func (s *sysMemStat) load() uint64 { return atomic.Load64((*uint64)(s)) } // add atomically adds the sysMemStat by n. // // Must be nosplit as it is called in runtime initialization, e.g. newosproc0. // //go:nosplit func (s *sysMemStat) add(n int64) { val := atomic.Xadd64((*uint64)(s), n) if (n > 0 && int64(val) < n) || (n < 0 && int64(val)+n < n) { print("runtime: val=", val, " n=", n, "\n") throw("sysMemStat overflow") } } // heapStatsDelta contains deltas of various runtime memory statistics // that need to be updated together in order for them to be kept // consistent with one another. type heapStatsDelta struct { // Memory stats. committed int64 // byte delta of memory committed released int64 // byte delta of released memory generated inHeap int64 // byte delta of memory placed in the heap inStacks int64 // byte delta of memory reserved for stacks inWorkBufs int64 // byte delta of memory reserved for work bufs inPtrScalarBits int64 // byte delta of memory reserved for unrolled GC prog bits // Allocator stats. // // These are all uint64 because they're cumulative, and could quickly wrap // around otherwise. tinyAllocCount uint64 // number of tiny allocations largeAlloc uint64 // bytes allocated for large objects largeAllocCount uint64 // number of large object allocations smallAllocCount [_NumSizeClasses]uint64 // number of allocs for small objects largeFree uint64 // bytes freed for large objects (>maxSmallSize) largeFreeCount uint64 // number of frees for large objects (>maxSmallSize) smallFreeCount [_NumSizeClasses]uint64 // number of frees for small objects (<=maxSmallSize) // NOTE: This struct must be a multiple of 8 bytes in size because it // is stored in an array. If it's not, atomic accesses to the above // fields may be unaligned and fail on 32-bit platforms. } // merge adds in the deltas from b into a. func (a *heapStatsDelta) merge(b *heapStatsDelta) { a.committed += b.committed a.released += b.released a.inHeap += b.inHeap a.inStacks += b.inStacks a.inWorkBufs += b.inWorkBufs a.inPtrScalarBits += b.inPtrScalarBits a.tinyAllocCount += b.tinyAllocCount a.largeAlloc += b.largeAlloc a.largeAllocCount += b.largeAllocCount for i := range b.smallAllocCount { a.smallAllocCount[i] += b.smallAllocCount[i] } a.largeFree += b.largeFree a.largeFreeCount += b.largeFreeCount for i := range b.smallFreeCount { a.smallFreeCount[i] += b.smallFreeCount[i] } } // consistentHeapStats represents a set of various memory statistics // whose updates must be viewed completely to get a consistent // state of the world. // // To write updates to memory stats use the acquire and release // methods. To obtain a consistent global snapshot of these statistics, // use read. type consistentHeapStats struct { // stats is a ring buffer of heapStatsDelta values. // Writers always atomically update the delta at index gen. // // Readers operate by rotating gen (0 -> 1 -> 2 -> 0 -> ...) // and synchronizing with writers by observing each P's // statsSeq field. If the reader observes a P not writing, // it can be sure that it will pick up the new gen value the // next time it writes. // // The reader then takes responsibility by clearing space // in the ring buffer for the next reader to rotate gen to // that space (i.e. it merges in values from index (gen-2) mod 3 // to index (gen-1) mod 3, then clears the former). // // Note that this means only one reader can be reading at a time. // There is no way for readers to synchronize. // // This process is why we need a ring buffer of size 3 instead // of 2: one is for the writers, one contains the most recent // data, and the last one is clear so writers can begin writing // to it the moment gen is updated. stats [3]heapStatsDelta // gen represents the current index into which writers // are writing, and can take on the value of 0, 1, or 2. gen atomic.Uint32 // noPLock is intended to provide mutual exclusion for updating // stats when no P is available. It does not block other writers // with a P, only other writers without a P and the reader. Because // stats are usually updated when a P is available, contention on // this lock should be minimal. noPLock mutex } // acquire returns a heapStatsDelta to be updated. In effect, // it acquires the shard for writing. release must be called // as soon as the relevant deltas are updated. // // The returned heapStatsDelta must be updated atomically. // // The caller's P must not change between acquire and // release. This also means that the caller should not // acquire a P or release its P in between. A P also must // not acquire a given consistentHeapStats if it hasn't // yet released it. // // nosplit because a stack growth in this function could // lead to a stack allocation that could reenter the // function. // //go:nosplit func (m *consistentHeapStats) acquire() *heapStatsDelta { if pp := getg().m.p.ptr(); pp != nil { seq := pp.statsSeq.Add(1) if seq%2 == 0 { // Should have been incremented to odd. print("runtime: seq=", seq, "\n") throw("bad sequence number") } } else { lock(&m.noPLock) } gen := m.gen.Load() % 3 return &m.stats[gen] } // release indicates that the writer is done modifying // the delta. The value returned by the corresponding // acquire must no longer be accessed or modified after // release is called. // // The caller's P must not change between acquire and // release. This also means that the caller should not // acquire a P or release its P in between. // // nosplit because a stack growth in this function could // lead to a stack allocation that causes another acquire // before this operation has completed. // //go:nosplit func (m *consistentHeapStats) release() { if pp := getg().m.p.ptr(); pp != nil { seq := pp.statsSeq.Add(1) if seq%2 != 0 { // Should have been incremented to even. print("runtime: seq=", seq, "\n") throw("bad sequence number") } } else { unlock(&m.noPLock) } } // unsafeRead aggregates the delta for this shard into out. // // Unsafe because it does so without any synchronization. The // world must be stopped. func (m *consistentHeapStats) unsafeRead(out *heapStatsDelta) { assertWorldStopped() for i := range m.stats { out.merge(&m.stats[i]) } } // unsafeClear clears the shard. // // Unsafe because the world must be stopped and values should // be donated elsewhere before clearing. func (m *consistentHeapStats) unsafeClear() { assertWorldStopped() for i := range m.stats { m.stats[i] = heapStatsDelta{} } } // read takes a globally consistent snapshot of m // and puts the aggregated value in out. Even though out is a // heapStatsDelta, the resulting values should be complete and // valid statistic values. // // Not safe to call concurrently. The world must be stopped // or metricsSema must be held. func (m *consistentHeapStats) read(out *heapStatsDelta) { // Getting preempted after this point is not safe because // we read allp. We need to make sure a STW can't happen // so it doesn't change out from under us. mp := acquirem() // Get the current generation. We can be confident that this // will not change since read is serialized and is the only // one that modifies currGen. currGen := m.gen.Load() prevGen := currGen - 1 if currGen == 0 { prevGen = 2 } // Prevent writers without a P from writing while we update gen. lock(&m.noPLock) // Rotate gen, effectively taking a snapshot of the state of // these statistics at the point of the exchange by moving // writers to the next set of deltas. // // This exchange is safe to do because we won't race // with anyone else trying to update this value. m.gen.Swap((currGen + 1) % 3) // Allow P-less writers to continue. They'll be writing to the // next generation now. unlock(&m.noPLock) for _, p := range allp { // Spin until there are no more writers. for p.statsSeq.Load()%2 != 0 { } } // At this point we've observed that each sequence // number is even, so any future writers will observe // the new gen value. That means it's safe to read from // the other deltas in the stats buffer. // Perform our responsibilities and free up // stats[prevGen] for the next time we want to take // a snapshot. m.stats[currGen].merge(&m.stats[prevGen]) m.stats[prevGen] = heapStatsDelta{} // Finally, copy out the complete delta. *out = m.stats[currGen] releasem(mp) } type cpuStats struct { // All fields are CPU time in nanoseconds computed by comparing // calls of nanotime. This means they're all overestimates, because // they don't accurately compute on-CPU time (so some of the time // could be spent scheduled away by the OS). gcAssistTime int64 // GC assists gcDedicatedTime int64 // GC dedicated mark workers + pauses gcIdleTime int64 // GC idle mark workers gcPauseTime int64 // GC pauses (all GOMAXPROCS, even if just 1 is running) gcTotalTime int64 scavengeAssistTime int64 // background scavenger scavengeBgTime int64 // scavenge assists scavengeTotalTime int64 idleTime int64 // Time Ps spent in _Pidle. userTime int64 // Time Ps spent in _Prunning or _Psyscall that's not any of the above. totalTime int64 // GOMAXPROCS * (monotonic wall clock time elapsed) } // accumulate takes a cpuStats and adds in the current state of all GC CPU // counters. // // gcMarkPhase indicates that we're in the mark phase and that certain counter // values should be used. func (s *cpuStats) accumulate(now int64, gcMarkPhase bool) { // N.B. Mark termination and sweep termination pauses are // accumulated in work.cpuStats at the end of their respective pauses. var ( markAssistCpu int64 markDedicatedCpu int64 markFractionalCpu int64 markIdleCpu int64 ) if gcMarkPhase { // N.B. These stats may have stale values if the GC is not // currently in the mark phase. markAssistCpu = gcController.assistTime.Load() markDedicatedCpu = gcController.dedicatedMarkTime.Load() markFractionalCpu = gcController.fractionalMarkTime.Load() markIdleCpu = gcController.idleMarkTime.Load() } // The rest of the stats below are either derived from the above or // are reset on each mark termination. scavAssistCpu := scavenge.assistTime.Load() scavBgCpu := scavenge.backgroundTime.Load() // Update cumulative GC CPU stats. s.gcAssistTime += markAssistCpu s.gcDedicatedTime += markDedicatedCpu + markFractionalCpu s.gcIdleTime += markIdleCpu s.gcTotalTime += markAssistCpu + markDedicatedCpu + markFractionalCpu + markIdleCpu // Update cumulative scavenge CPU stats. s.scavengeAssistTime += scavAssistCpu s.scavengeBgTime += scavBgCpu s.scavengeTotalTime += scavAssistCpu + scavBgCpu // Update total CPU. s.totalTime = sched.totaltime + (now-sched.procresizetime)*int64(gomaxprocs) s.idleTime += sched.idleTime.Load() // Compute userTime. We compute this indirectly as everything that's not the above. // // Since time spent in _Pgcstop is covered by gcPauseTime, and time spent in _Pidle // is covered by idleTime, what we're left with is time spent in _Prunning and _Psyscall, // the latter of which is fine because the P will either go idle or get used for something // else via sysmon. Meanwhile if we subtract GC time from whatever's left, we get non-GC // _Prunning time. Note that this still leaves time spent in sweeping and in the scheduler, // but that's fine. The overwhelming majority of this time will be actual user time. s.userTime = s.totalTime - (s.gcTotalTime + s.scavengeTotalTime + s.idleTime) }