Skip to content

Commit 3372d10

Browse files
committed
Configurable KV blob store buffer size
1 parent 361a5c9 commit 3372d10

File tree

2 files changed

+29
-1
lines changed

2 files changed

+29
-1
lines changed

Cargo.toml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,15 @@ max-responders-3 = []
6868
max-responders-2 = []
6969
max-responders-1 = []
7070

71+
# KV Blob store buffer size
72+
kv-blob-store-65536 = []
73+
kv-blob-store-32768 = []
74+
kv-blob-store-16384 = []
75+
kv-blob-store-8192 = []
76+
kv-blob-store-4096 = [] # default
77+
kv-blob-store-2048 = []
78+
kv-blob-store-1024 = []
79+
7180
# Sizing / rs-matter
7281

7382
# Number of fabrics

src/persist.rs

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
use core::fmt::Display;
22

3+
use cfg_if::cfg_if;
34
use embassy_futures::select::select;
45
use embassy_sync::blocking_mutex::raw::{NoopRawMutex, RawMutex};
56

@@ -523,7 +524,25 @@ mod file {
523524
}
524525
}
525526

526-
const KV_BLOB_BUF_SIZE: usize = 4096;
527+
cfg_if! {
528+
if #[cfg(feature = "kv-blob-store-65536")] {
529+
const KV_BLOB_BUF_SIZE: usize = 65536;
530+
} else if #[cfg(feature = "kv-blob-store-32768")] {
531+
const KV_BLOB_BUF_SIZE: usize = 32768;
532+
} else if #[cfg(feature = "kv-blob-store-16384")] {
533+
const KV_BLOB_BUF_SIZE: usize = 16384;
534+
} else if #[cfg(feature = "kv-blob-store-8192")] {
535+
const KV_BLOB_BUF_SIZE: usize = 8192;
536+
} else if #[cfg(feature = "kv-blob-store-4096")] {
537+
const KV_BLOB_BUF_SIZE: usize = 4096;
538+
} else if #[cfg(feature = "kv-blob-store-2048")] {
539+
const KV_BLOB_BUF_SIZE: usize = 2048;
540+
} else if #[cfg(feature = "kv-blob-store-1024")] {
541+
const KV_BLOB_BUF_SIZE: usize = 1024;
542+
} else {
543+
const KV_BLOB_BUF_SIZE: usize = 4096;
544+
}
545+
}
527546

528547
/// A buffer for the `KvBlobStore` trait.
529548
pub type KvBlobBuffer = heapless::Vec<u8, KV_BLOB_BUF_SIZE>;

0 commit comments

Comments
 (0)