Crashing in Raspberry Pi Arm64 Linux Environment

Hello - Logic 2.4.45 adds an experimental flag we can use to test the software on Raspberry Pi OS.

I haven’t published the 2.4.45 arm64 download links yet - here is the Linux arm64 release:
https://downloads2.saleae.com/logic2/Logic-2.4.45-linux-arm64.AppImage

Before launching Logic, try this:
export SALEAE_DATA_RESERVATION_GIB=2

This will dramatically reduce the amount of virtual address space that the Logic software will reserve. I’ve done some basic tests on x86_64 systems and it seems to be OK, but I haven’t had a chance to test on Raspberry Pi OS yet.

If you have time to try it, please let me know!

Hi @markgarrison,

I tested the 2.4.45 arm64 release this morning on my RPi 4 Model B, and it appears to be working! Haven’t run into any issues yet. Thanks for following up on this, and I will keep an eye out for the next insider release for the official release.

Thanks!

Liam

Glad to hear it @liam.ogletree!

Could you run the following test for me the next time you’re using the device? If anyone else could too, that would be great.

With whatever device you’re using (or with a simulation logic Pro 16) please enable all the channels on the device and take a a very short recording. (e.g. 100ms). any sample rates are fine.

Create a new tab, and repeat the capture, until you have at least 10 tabs open with data.

Let me know if you run into any issues. (crashes, capture failures, etc.) If you get “can’t keep up” errors, just lower the sample rate on the device.

If that works reliably, please try creating more tabs until you get tired or it crashes. If it crashes, please report back how many tabs you managed to open. (the default tab label includes the session counter, which starts from 0. however the important thing here is how many tabs can be opened at once, so don’t close any).

Hopefully it can easily reach 100+.

You can also run this test by opening the same file over and over.

The limiting factor here is that each channel in each tab reserves a certain amount of virtual address space when its created. The more channels that exist at a time, the more virtual address space is reserved. I haven’t had a chance yet to test this on a Raspberry Pi.

@markgarrison,

I did the procedure twice with a Logic Pro16 and all digital/analog channels enabled and crashed when trying to open my 10th tab (session 9) both times.

Thanks,

Liam

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=2 before 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)