Thanks Liam, that sounds about right. 2GB of virtual address space per channel *32 * 10 is getting close to the entire virtual address space of the kernel.
This is at best a workaround then, the only real solution for us would be to redesign our data collections to not use large linear virtual address space allocations.
The good news is that the amount of data you can record in one session doesn’t affect this. The bad news is that it will crash on you any time you have more than ~300 channels in existence across sessions at once.
I’m going to let this sit as a workaround for now, and think about this more later. Please let me know if you run into any other issues on raspberry pi!
For everyone else coming across this issue, here is a quick summary:
- You can use the app right now on Raspberry Pi OS by setting the environment variable
export SALEAE_DATA_RESERVATION_GIB=2before you launch the software. - There is a cap on how many total channels across all channels that can exist at one time, about 300. Please close tabs you’re not using. If you exceed this the software will crash.
- We don’t have a more comprehensive fix planed yet.
- You can fix this permanently today by either (A) switching to a different distro like Ubuntu or (B) recompiling the Raspberry Pi OS kernel with 4 levels of of memory translation layers. (instructions linked above)