From c9cb50b5794cfbb50114e2fe806bbfe5d6f24df6 Mon Sep 17 00:00:00 2001 From: Sean Cross Date: Wed, 30 Dec 2020 16:50:28 +0800 Subject: [PATCH] kernel: use crossbeam-channel internally This provides better performance than MPSC. Signed-off-by: Sean Cross --- kernel/Cargo.lock | 38 ++++++++++++++++++++++++++++++++++++-- kernel/Cargo.toml | 5 +++-- 2 files changed, 39 insertions(+), 4 deletions(-) diff --git a/kernel/Cargo.lock b/kernel/Cargo.lock index 8644d6bb7..5b59cf914 100644 --- a/kernel/Cargo.lock +++ b/kernel/Cargo.lock @@ -41,6 +41,12 @@ dependencies = [ "winapi", ] +[[package]] +name = "autocfg" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cdb031dd78e28731d87d56cc8ffef4a8f36ca26c38fe2de700543e627f8a464a" + [[package]] name = "backtrace" version = "0.3.50" @@ -48,7 +54,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "46254cf2fdcdf1badb5934448c1bcbe046a56537b3987d96c51a7afc5d03f293" dependencies = [ "addr2line", - "cfg-if", + "cfg-if 0.1.10", "libc", "miniz_oxide", "object", @@ -115,6 +121,12 @@ version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822" +[[package]] +name = "cfg-if" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" + [[package]] name = "clap" version = "2.33.3" @@ -130,6 +142,27 @@ dependencies = [ "vec_map", ] +[[package]] +name = "crossbeam-channel" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dca26ee1f8d361640700bde38b2c37d8c22b3ce2d360e1fc1c74ea4b0aa7d775" +dependencies = [ + "cfg-if 1.0.0", + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-utils" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02d96d1e189ef58269ebe5b97953da3274d83a93af647c2ddd6f9dab28cedb8d" +dependencies = [ + "autocfg", + "cfg-if 1.0.0", + "lazy_static", +] + [[package]] name = "debug-here" version = "0.2.2" @@ -174,7 +207,7 @@ version = "0.1.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7abc8dd8451921606d809ba32e95b6111925cd2906060d2dcc29c070220503eb" dependencies = [ - "cfg-if", + "cfg-if 0.1.10", "libc", "wasi", ] @@ -211,6 +244,7 @@ name = "kernel" version = "0.1.0" dependencies = [ "bitflags", + "crossbeam-channel", "debug-here", "hex", "lazy_static", diff --git a/kernel/Cargo.toml b/kernel/Cargo.toml index 6bb7cc32f..248e0a12b 100644 --- a/kernel/Cargo.toml +++ b/kernel/Cargo.toml @@ -21,14 +21,15 @@ riscv = "0.5.6" debug-print = [] print-panics = [] report-memory = ["stats_alloc"] -#default = ["print-panics", "debug-print"] -default = [] +default = ["print-panics", "debug-print"] +# default = [] [target.'cfg(any(windows, unix))'.dependencies] lazy_static = "1.4" rand = "0.7" hex = "0.4" debug-here = "0.2.2" +crossbeam-channel = "0.5" [profile.release] codegen-units = 1 # 1 better optimizations