diff options
| author | Dmitry Vyukov <dvyukov@google.com> | 2025-01-23 09:31:50 +0100 |
|---|---|---|
| committer | Dmitry Vyukov <dvyukov@google.com> | 2025-01-23 13:10:32 +0000 |
| commit | 79910ad71b16dbf22e70717166c21361b5cf9bf0 (patch) | |
| tree | 4b967c98b3654b7c0f2900c798ac8e2760e6380b /sys/netbsd | |
| parent | af620dc7f40ce8ec58b546376a779eff1b64cddb (diff) | |
sys/syz-sysgen: serialize descriptions as gob and embed
Instead of generating Go files with descriptions
serialize them as gob and compress with flate.
This significantly reduces build time, go vet time,
and solves scalability problems with some static analysis tools.
Reference times (all after rm -rf ~/.cache/go-build) before:
TIME="%e %P %M" time go install ./syz-manager
48.29 577% 4824820
TIME="%e %P %M" time go test -c ./prog
56.28 380% 6973292
After:
TIME="%e %P %M" time go install ./syz-manager
22.81 865% 859788
TIME="%e %P %M" time go test -c ./prog
12.74 565% 267760
syz-manager size before/after: 194712597 -> 83418407
-57% even provided we now embed all descriptions
instead of just a single arch.
Deflate/decoding time for a single Linux arch is ~330ms.
Fixes #5542
Diffstat (limited to 'sys/netbsd')
| -rw-r--r-- | sys/netbsd/gen/empty.go | 6 | ||||
| -rw-r--r-- | sys/netbsd/init_test.go | 2 |
2 files changed, 1 insertions, 7 deletions
diff --git a/sys/netbsd/gen/empty.go b/sys/netbsd/gen/empty.go deleted file mode 100644 index 7884be456..000000000 --- a/sys/netbsd/gen/empty.go +++ /dev/null @@ -1,6 +0,0 @@ -// Copyright 2021 syzkaller project authors. All rights reserved. -// Use of this source code is governed by Apache 2 LICENSE that can be found in the LICENSE file. - -package gen - -// Empty file to unbreak build while descriptions are not generated. diff --git a/sys/netbsd/init_test.go b/sys/netbsd/init_test.go index 1f0abfad3..ecb85956b 100644 --- a/sys/netbsd/init_test.go +++ b/sys/netbsd/init_test.go @@ -7,7 +7,7 @@ import ( "testing" "github.com/google/syzkaller/prog" - _ "github.com/google/syzkaller/sys/netbsd/gen" + _ "github.com/google/syzkaller/sys" "github.com/google/syzkaller/sys/targets" ) |
