From fd8f4caa8133d509610b13ee99ac60d1adadaca3 Mon Sep 17 00:00:00 2001 From: Alex Auvolat Date: Fri, 19 Mar 2021 12:19:40 +0100 Subject: [PATCH] Support old CPUs --- Cargo.lock | 130 ++++++++------------------------------------ Makefile | 7 +-- src/util/Cargo.toml | 2 +- src/util/data.rs | 9 ++- 4 files changed, 29 insertions(+), 119 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 2e10093..296c654 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -96,12 +96,6 @@ version = "1.0.67" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e3c69b077ad434294d3ce9f1f6143a2a4b89a8a2d54ef813d85003a4fd1137fd" -[[package]] -name = "cfg-if" -version = "0.1.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822" - [[package]] name = "cfg-if" version = "1.0.0" @@ -144,7 +138,7 @@ version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "81156fece84ab6a9f2afdb109ce3ae577e42b1228441eded99bd77f627953b1a" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", ] [[package]] @@ -153,7 +147,7 @@ version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2584f639eb95fea8c798496315b297cf81b9b58b6d30ab066a75455333cf4b12" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "crossbeam-utils", "lazy_static", "memoffset", @@ -167,7 +161,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e7e9d99fa91428effe99c5c6d4634cdeba32b8cf784fc428a2a687f61a952c49" dependencies = [ "autocfg", - "cfg-if 1.0.0", + "cfg-if", "lazy_static", ] @@ -227,28 +221,6 @@ dependencies = [ "synstructure", ] -[[package]] -name = "fasthash" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "032213946b4eaae09117ec63f020322b78ca7a31d8aa2cf64df3032e1579690f" -dependencies = [ - "cfg-if 0.1.10", - "fasthash-sys", - "num-traits", - "seahash", - "xoroshiro128", -] - -[[package]] -name = "fasthash-sys" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6de941abfe2e715cdd34009d90546f850597eb69ca628ddfbf616e53dda28f8" -dependencies = [ - "gcc", -] - [[package]] name = "fnv" version = "1.0.7" @@ -275,12 +247,6 @@ dependencies = [ "winapi", ] -[[package]] -name = "fuchsia-cprng" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a06f77d526c1a601b7c4cdd98f54b5eaabffc14d5f2f0296febdc7f357c6d3ba" - [[package]] name = "futures" version = "0.3.13" @@ -399,7 +365,7 @@ dependencies = [ "hex", "log", "pretty_env_logger", - "rand 0.8.3", + "rand", "rmp-serde", "serde", "sled", @@ -449,7 +415,7 @@ dependencies = [ "garage_util", "hex", "log", - "rand 0.8.3", + "rand", "rmp-serde", "serde", "serde_bytes", @@ -493,7 +459,7 @@ dependencies = [ "garage_util", "hexdump", "log", - "rand 0.8.3", + "rand", "rmp-serde", "serde", "serde_bytes", @@ -508,13 +474,12 @@ dependencies = [ "blake2", "chrono", "err-derive", - "fasthash", "futures", "hex", "http", "hyper", "log", - "rand 0.8.3", + "rand", "rmp-serde", "rustls", "serde", @@ -524,6 +489,7 @@ dependencies = [ "tokio", "toml", "webpki", + "xxhash-rust", ] [[package]] @@ -543,12 +509,6 @@ dependencies = [ "percent-encoding", ] -[[package]] -name = "gcc" -version = "0.3.55" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f5f3913fa0bfe7ee1fd8248b6b9f42a5af4b9d65ec2dd2c3c26132b950ecfc2" - [[package]] name = "generic-array" version = "0.14.4" @@ -575,7 +535,7 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c9495705279e7140bf035dde1f6e750c162df8b625267cd52cc44e0b156732c8" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "libc", "wasi", ] @@ -785,7 +745,7 @@ version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "61124eeebbd69b8190558df225adf7e4caafce0d743919e5d6b19652314ec5ec" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", ] [[package]] @@ -836,7 +796,7 @@ version = "0.4.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "51b9bbe6c47d51fc3e1a9b945965946b4c44142ab8792c50835a980d362c2710" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", ] [[package]] @@ -961,7 +921,7 @@ version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fa7a782938e745763fe6907fc6ba86946d72f49fe7e21de074e08128a99fb018" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "instant", "libc", "redox_syscall", @@ -1083,19 +1043,6 @@ dependencies = [ "proc-macro2", ] -[[package]] -name = "rand" -version = "0.4.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "552840b97013b1a26992c11eac34bdd778e464601a4c2054b5f0bff7c6761293" -dependencies = [ - "fuchsia-cprng", - "libc", - "rand_core 0.3.1", - "rdrand", - "winapi", -] - [[package]] name = "rand" version = "0.8.3" @@ -1104,7 +1051,7 @@ checksum = "0ef9e7e66b4468674bfcb0c81af8b7fa0bb154fa9f28eb840da5c447baeb8d7e" dependencies = [ "libc", "rand_chacha", - "rand_core 0.6.2", + "rand_core", "rand_hc", ] @@ -1115,24 +1062,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e12735cf05c9e10bf21534da50a147b924d555dc7a547c42e6bb2d5b6017ae0d" dependencies = [ "ppv-lite86", - "rand_core 0.6.2", + "rand_core", ] -[[package]] -name = "rand_core" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a6fdeb83b075e8266dcc8762c22776f6877a63111121f5f8c7411e5be7eed4b" -dependencies = [ - "rand_core 0.4.2", -] - -[[package]] -name = "rand_core" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c33a3c44ca05fa6f1807d8e6743f3824e8509beca625669633be0acbdf509dc" - [[package]] name = "rand_core" version = "0.6.2" @@ -1148,16 +1080,7 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3190ef7066a446f2e7f42e239d161e905420ccab01eb967c9eb27d21b2322a73" dependencies = [ - "rand_core 0.6.2", -] - -[[package]] -name = "rdrand" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "678054eb77286b51581ba43620cc911abf02758c91f93f479767aed0f90458b2" -dependencies = [ - "rand_core 0.3.1", + "rand_core", ] [[package]] @@ -1272,12 +1195,6 @@ dependencies = [ "untrusted", ] -[[package]] -name = "seahash" -version = "3.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58f57ca1d128a43733fd71d583e837b1f22239a37ebea09cde11d8d9a9080f47" - [[package]] name = "serde" version = "1.0.124" @@ -1325,7 +1242,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fa827a14b29ab7f44778d14a88d3cb76e949c45083f7dbfa507d0cb699dc12de" dependencies = [ "block-buffer", - "cfg-if 1.0.0", + "cfg-if", "cpuid-bool", "digest", "opaque-debug", @@ -1374,7 +1291,7 @@ version = "0.3.19" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "122e570113d28d773067fab24266b66753f6ea915758651696b6e35e49f88d6e" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "libc", "winapi", ] @@ -1568,7 +1485,7 @@ version = "0.1.25" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "01ebdc2bb4498ab1ab5f5b73c5803825e60199229ccba0698170e3be0e7f959f" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "pin-project-lite", "tracing-core", ] @@ -1676,7 +1593,7 @@ version = "0.2.72" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8fe8f61dba8e5d645a4d8132dc7a0a66861ed5e1045d2c0ed940fab33bac0fbe" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "wasm-bindgen-macro", ] @@ -1782,10 +1699,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "114ba2b24d2167ef6d67d7d04c8cc86522b87f490025f39f0303b7db5bf5e3d8" [[package]] -name = "xoroshiro128" -version = "0.3.0" +name = "xxhash-rust" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0eeda34baec49c4f1eb2c04d59b761582fd6330010f9330ca696ca1a355dfcd" -dependencies = [ - "rand 0.4.6", -] +checksum = "e575e15bedf6e57b5c2d763ffc6c3c760143466cbd09d762d539680ab5992ded" diff --git a/Makefile b/Makefile index cbbcee2..06a0bf9 100644 --- a/Makefile +++ b/Makefile @@ -2,13 +2,10 @@ BIN=target/release/garage DOCKER=lxpz/garage_amd64 all: - #cargo fmt || true - #RUSTFLAGS="-C link-arg=-fuse-ld=lld" cargo build - clear; cargo build + clear; RUSTFLAGS="-C link-arg=-fuse-ld=lld -C target-cpu=x86-64 -C target-feature=+sse2" cargo build --no-default-features $(BIN): - #RUSTFLAGS="-C link-arg=-fuse-ld=lld" cargo build --release - cargo build --release + RUSTFLAGS="-C link-arg=-fuse-ld=lld -C target-cpu=x86-64 -C target-feature=+sse2" cargo build --release --no-default-features $(BIN).stripped: $(BIN) cp $^ $@ diff --git a/src/util/Cargo.toml b/src/util/Cargo.toml index 3c2971d..a83c876 100644 --- a/src/util/Cargo.toml +++ b/src/util/Cargo.toml @@ -15,7 +15,7 @@ path = "lib.rs" [dependencies] blake2 = "0.9" err-derive = "0.3" -fasthash = "0.4" +xxhash-rust = { version = "0.8", default-features = false, features = ["xxh3"] } hex = "0.4" log = "0.4" rand = "0.8" diff --git a/src/util/data.rs b/src/util/data.rs index cb78473..8cd6dd9 100644 --- a/src/util/data.rs +++ b/src/util/data.rs @@ -106,12 +106,11 @@ pub fn blake2sum(data: &[u8]) -> Hash { pub type FastHash = u64; pub fn fasthash(data: &[u8]) -> FastHash { - use fasthash::{xx::Hasher64, FastHasher}; - use std::hash::Hasher; + use xxhash_rust::xxh3::Xxh3; - let mut h = Hasher64::new(); - h.write(data); - h.finish() + let mut h = Xxh3::new(); + h.update(data); + h.digest() } pub fn gen_uuid() -> UUID {