Skip to content

rocksdb: build db_bench portable - #287

Open
derSteFfi wants to merge 1 commit into
daanx:masterfrom
derSteFfi:rocksdb_portable
Open

derSteFfi wants to merge 1 commit into
daanx:masterfrom
derSteFfi:rocksdb_portable

Conversation

@derSteFfi

Copy link
Copy Markdown
Contributor

The bench-env image is cached per platform (type=gha, scope=buildkit_<platform>) and later jobs reuse it on other machines, but RocksDB compiles with -march=native when PORTABLE is unset (it ends up in make_config.mk). A db_bench built on a machine with AVX-512 therefore dies with SIGILL on a runner without it, before it prints a single line.

PORTABLE=1 keeps the binary runnable wherever the cache delivers it, and the measured time no longer depends on which machine built the cache: locally fillrandom takes 10.0 s native and 10.2 s portable.

The bench-env image is cached per platform (type=gha, scope=buildkit_<platform>)
and later jobs reuse it on other machines, but RocksDB compiles with
-march=native when PORTABLE is unset (it ends up in make_config.mk). A db_bench
built on a machine with AVX-512 therefore dies with SIGILL on a runner without
it, before it prints a single line. That is the rocksdb:mi and rocksdb:ff
failures in the current runs: the same cached binary is gone after 0.1 s with no
output on some jobs, while others pass the test.

PORTABLE=1 keeps the binary runnable wherever the cache delivers it, and the
measured time no longer depends on which machine built the cache: locally
fillrandom takes 10.0 s native and 10.2 s portable.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant