Skip to content

Conversation

@marcbrevoort-cyberhive
Copy link
Contributor

@marcbrevoort-cyberhive marcbrevoort-cyberhive commented May 15, 2024

McEliece keys, in particular, take up a large amount of stack space.

Not only do we currently have to configure this manually for builds for each individual platform,
but since the stack space is set in compile time, this RAM will be held on to indefinitely,
even while no keys are being generated.

This pull request solves both issues by running the KEM key generation in a separate thread.
This allows the stack to be created in runtime, which has two benefits:

  1. Compile time configuration is no longer required and
  2. Rather than taking up memory for the entire duration of the runtime, it is only in use when needed.

Running as before is still supported through a feature flag.

EDIT:

The macos CI build couldn't find libcrypto. I'm not sure why this is but does not seem to be an issue related to this update. I have commented out RUST_MIN_STACK in ci.yml as it is no longer needed.

I have also commented out macos-latest from the OS matrix as it was getting in the way of the windows/ubuntu builds runing their test. Once the build issue has been overcome on your side, this will have to be uncommented again.

@marcbrevoort-cyberhive marcbrevoort-cyberhive changed the title Auto-allocate stack in runtime feat: Auto-allocate stack in runtime May 15, 2024
@marcbrevoort-cyberhive marcbrevoort-cyberhive force-pushed the improvement/auto_stack branch 2 times, most recently from bfb3c06 to 5912b50 Compare July 11, 2024 16:09
@maharg101
Copy link

+1

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants