-
Notifications
You must be signed in to change notification settings - Fork 9
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Use known and adaptive buffer sizes to lower generated garbage #117
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This mostly looks good to me, thanks for taking it on. I have a few minor comments below.
This would address #101 btw. |
It's possible the device detection code doesn't support adaptive buffers. Probably an oversight. |
Looks like a bug in Viceroy: https://github.com/fastly/Viceroy/blob/main/lib/src/wiggle_abi/device_detection_impl.rs#L46-L51 Note how Contrast this with the equivalent secret store code: https://github.com/fastly/Viceroy/blob/main/lib/src/wiggle_abi/secret_store_impl.rs#L105-L114 It doesn't appear to be an issue with the production Compute platform though. |
fastly/Viceroy#383 adds adaptive buffer support for geolocation and device detection to Viceroy, which should allow these tests to pass once it's merged and a new Viceroy is released. |
…ffer lengths - MaxMethodLen - MaxURLLen - SetMaxMethodLen - SetMaxURLLen
Does not modify the values of Limits fields. The Header-related fields are still used by the Limits API. Though the fields are unexported, their values are exposed through the exported methods.
I like these changes! From a cursory glance I didn't see anything obviously wrong, just the minor nits I pointed above. |
I've verified on the ExecuteD side that all the host calls (except for |
Closes #101
To enable merging this branch, we verified which of the following hostcalls fully support adaptive buffers (return a
buflen
error with a usable value) in both ExecuteD and Viceroy:ExecuteD:
Viceroy:
Any hostcalls found not to match behavior between ExecuteD and Viceroy will be corrected in Viceroy.
Any hostcalls found not to return a useable value in ExecuteD will be held back in a separate branch until a new version is fully rolled to the fleet.