diff --git a/services/swaptest1/Cargo.toml b/services/swaptest1/Cargo.toml new file mode 100644 index 000000000..beb7b1dec --- /dev/null +++ b/services/swaptest1/Cargo.toml @@ -0,0 +1,13 @@ +[package] +name = "swaptest1" +version = "0.1.0" +edition = "2024" + +[dependencies] +xous = { version = "0.9.68", features = ["raw-trng"] } +xous-ipc = "0.10.8" +xous-names = { package = "xous-api-names", version = "0.9.69" } +ticktimer = { package = "xous-api-ticktimer", version = "0.9.67" } +log-server = { package = "xous-api-log", version = "0.1.67" } +log = "0.4.14" +arbitrary-int = "1.2" diff --git a/services/swaptest1/src/main.rs b/services/swaptest1/src/main.rs new file mode 100644 index 000000000..2d7ce888f --- /dev/null +++ b/services/swaptest1/src/main.rs @@ -0,0 +1,44 @@ +fn main() { + log_server::init_wait().unwrap(); + log::set_max_level(log::LevelFilter::Info); + log::info!("my PID is {}", xous::process::id()); + + const HEAP_LARGER_LIMIT: usize = 4096 * 1024; + let new_limit = HEAP_LARGER_LIMIT; + let result = + xous::rsyscall(xous::SysCall::AdjustProcessLimit(xous::Limits::HeapMaximum as usize, 0, new_limit)); + + if let Ok(xous::Result::Scalar2(1, current_limit)) = result { + xous::rsyscall(xous::SysCall::AdjustProcessLimit( + xous::Limits::HeapMaximum as usize, + current_limit, + new_limit, + )) + .unwrap(); + log::info!("Heap limit increased to: {}", new_limit); + } else { + panic!("Unsupported syscall!"); + } + + let mut test_vec = Vec::new(); + let xns = xous_names::XousNames::new().unwrap(); + let sid = xns.register_name("swaptest1", None).expect("can't register server"); + let mut msg_opt = None; + + const ALLOC_SIZE: usize = 1024 * 256; + loop { + xous::reply_and_receive_next(sid, &mut msg_opt).unwrap(); + if let Some(scalar) = msg_opt.as_ref().unwrap().body.scalar_message() { + log::info!("kicking off swaptest1 {}", scalar.arg1); + for i in 0..ALLOC_SIZE { + test_vec.push(i + scalar.arg1); + } + let mut sum = 0; + for i in (0..ALLOC_SIZE).rev() { + sum += test_vec[i]; + } + log::info!("swaptest1: {}", sum); + test_vec.clear(); + } + } +} diff --git a/services/swaptest2/Cargo.toml b/services/swaptest2/Cargo.toml new file mode 100644 index 000000000..681f502fe --- /dev/null +++ b/services/swaptest2/Cargo.toml @@ -0,0 +1,13 @@ +[package] +name = "swaptest2" +version = "0.1.0" +edition = "2024" + +[dependencies] +xous = { version = "0.9.68", features = ["raw-trng"] } +xous-ipc = "0.10.8" +xous-names = { package = "xous-api-names", version = "0.9.69" } +ticktimer = { package = "xous-api-ticktimer", version = "0.9.67" } +log-server = { package = "xous-api-log", version = "0.1.67" } +log = "0.4.14" +arbitrary-int = "1.2" diff --git a/services/swaptest2/src/main.rs b/services/swaptest2/src/main.rs new file mode 100644 index 000000000..3db4c81fa --- /dev/null +++ b/services/swaptest2/src/main.rs @@ -0,0 +1,44 @@ +fn main() { + log_server::init_wait().unwrap(); + log::set_max_level(log::LevelFilter::Info); + log::info!("my PID is {}", xous::process::id()); + + const HEAP_LARGER_LIMIT: usize = 4096 * 1024; + let new_limit = HEAP_LARGER_LIMIT; + let result = + xous::rsyscall(xous::SysCall::AdjustProcessLimit(xous::Limits::HeapMaximum as usize, 0, new_limit)); + + if let Ok(xous::Result::Scalar2(1, current_limit)) = result { + xous::rsyscall(xous::SysCall::AdjustProcessLimit( + xous::Limits::HeapMaximum as usize, + current_limit, + new_limit, + )) + .unwrap(); + log::info!("Heap limit increased to: {}", new_limit); + } else { + panic!("Unsupported syscall!"); + } + + let mut test_vec = Vec::new(); + let xns = xous_names::XousNames::new().unwrap(); + let sid = xns.register_name("swaptest2", None).expect("can't register server"); + let mut msg_opt = None; + + const ALLOC_SIZE: usize = 1024 * 256; + loop { + xous::reply_and_receive_next(sid, &mut msg_opt).unwrap(); + if let Some(scalar) = msg_opt.as_ref().unwrap().body.scalar_message() { + log::info!("kicking off swaptest2 {}", scalar.arg1); + for i in 0..ALLOC_SIZE { + test_vec.push(i + scalar.arg1); + } + let mut sum = 0; + for i in (0..ALLOC_SIZE).rev() { + sum += test_vec[i]; + } + log::info!("swaptest2: {}", sum); + test_vec.clear(); + } + } +}