49 lines
2.3 KiB
Diff
49 lines
2.3 KiB
Diff
diff --git a/src/main.rs b/src/main.rs
|
|
index 78dabb0..a41086e 100644
|
|
--- a/src/main.rs
|
|
+++ b/src/main.rs
|
|
@@ -557,0 +558 @@ fn main(os: &impl Os) -> (usize, u64, KernelArgs) {
|
|
+ let disk_block = fs.block;
|
|
@@ -559 +560,13 @@ fn main(os: &impl Os) -> (usize, u64, KernelArgs) {
|
|
- print!("live: 0/{} MiB", size / MIBI as u64);
|
|
+ let max_preload: u64 = 128 * MIBI as u64;
|
|
+ let preload_size = if size > max_preload {
|
|
+ println!(
|
|
+ "live: filesystem is {} MiB, capping preload at {} MiB",
|
|
+ size / MIBI as u64,
|
|
+ max_preload / MIBI as u64
|
|
+ );
|
|
+ max_preload
|
|
+ } else {
|
|
+ size
|
|
+ };
|
|
+
|
|
+ print!("live: 0/{} MiB", preload_size / MIBI as u64);
|
|
@@ -561 +574 @@ fn main(os: &impl Os) -> (usize, u64, KernelArgs) {
|
|
- let live_size = match usize::try_from(size) {
|
|
+ let live_size = match usize::try_from(preload_size) {
|
|
@@ -593 +606 @@ fn main(os: &impl Os) -> (usize, u64, KernelArgs) {
|
|
- print!("\rlive: {}/{} MiB", i / MIBI as u64, size / MIBI as u64);
|
|
+ print!("\rlive: {}/{} MiB", i / MIBI as u64, preload_size / MIBI as u64);
|
|
@@ -600 +613,10 @@ fn main(os: &impl Os) -> (usize, u64, KernelArgs) {
|
|
- println!("\rlive: {}/{} MiB", i / MIBI as u64, size / MIBI as u64);
|
|
+ println!("\rlive: {}/{} MiB", i / MIBI as u64, preload_size / MIBI as u64);
|
|
+
|
|
+ if preload_size < size {
|
|
+ println!(
|
|
+ "live: preloaded {} MiB of {} MiB filesystem (remaining {} MiB from disk)",
|
|
+ preload_size / MIBI as u64,
|
|
+ size / MIBI as u64,
|
|
+ (size - preload_size) / MIBI as u64
|
|
+ );
|
|
+ }
|
|
@@ -613 +635 @@ fn main(os: &impl Os) -> (usize, u64, KernelArgs) {
|
|
- Some(live)
|
|
+ Some((disk_block, size, live))
|
|
@@ -672 +694 @@ fn main(os: &impl Os) -> (usize, u64, KernelArgs) {
|
|
- if let Some(live) = live_opt {
|
|
+ if let Some((disk_block, fs_size, live)) = live_opt {
|
|
@@ -674,0 +697,2 @@ fn main(os: &impl Os) -> (usize, u64, KernelArgs) {
|
|
+ writeln!(w, "DISK_PHYS_BLOCK={:016x}", disk_block).unwrap();
|
|
+ writeln!(w, "REDOXFS_FULL_SIZE={:016x}", fs_size).unwrap();
|