I would like to write a kernel module in rust and the first steps are disabling cache and disabling interrupts in my Debian environment. Are there crates that do this?
You have to use the respective kernel api's for that. Also why do you need to disable the cache? The only thing that does is making everything like 1000x slower.
I have to follow these steps for a project
- Know addresses and limits of RAM segments assigned to the life process. The information is not
static, hence to be retrieved run-time since addresses are assigned by the operating system (OS);
- Disable the cache during testing;
- Disable interrupts during the test;
- Run the test by "slices" of RAM so as not to impact the performance of the process;
- Run the test in kernel space and collect the outcomes in user space;
- Run for the code segment (non-writable portion of RAM) an ad hoc test just to check
of the integrity of the code loaded there
Disabling cpu caches can only be done globally for all cpu cores at the same time afaik and definitively affects the performance of the entire system.
What exactly are you testing?
The stuck at errors present in RAM via Abraham Algorithm.
Brief Explain of ABraham Algorithm:
By writing 0 and 1 in smart mode we can conclude that ram is not locked to the value 0 or 1.
I see. https://developer.arm.com/documentation/ddi0438/f/BABHEJFF has instructions on how to disable the cache.