-
Notifications
You must be signed in to change notification settings - Fork 39
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
IceCap: Improve ring buffer stability #447
Conversation
c97246a
to
5578a0d
Compare
I merged https://gitlab.com/arm-research/security/icecap/icecap/-/merge_requests/22 and rebased this PR. |
8ac3ef2
to
f5087dc
Compare
Should be good to go now when/if CI passes |
@geky unfortunately some commits are not signed: can you rewrite the Git history to sign them? |
workspaces/icecap-runtime/src/virtio-console-server/src/main.rs
Outdated
Show resolved
Hide resolved
You don't need to add commits to re-run CI, you can restart the failing jobs in "Actions". |
I was going to just remove those commits, they're empty and was just to trigger CI.
Unfortunately this clobbers the log and hides the old results. I was particularly interested in how many runs failed (though not sure what to do with this info). |
You can access the logs for all attempts. e.g. https://github.com/veracruz-project/veracruz/actions/runs/2247521453 see the |
The more you know! |
5c3d776
to
8654bdd
Compare
@mathias-arm I went ahead and removed the unverified and useless commits added to force a CI re-run, and addressed my own comment above. Can you review this (given it risks needing a rebase given the amount of other changes going in to the repository)? |
Oh this is good to know! Looks like they must have added this recently.
Thanks for fixing it up. This looks good to me though not sure my review counts. It should be noted we're still seeing unknown CI failures in IceCap, but this PR at least fixes some of the known reasons. More fixes can always come later. |
No problem, was a small change to get it over the line and remove any risk of rebase nightmares. |
Since disabling the 3 tests and the |
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.
Approval in principle, conditioned to rebase and successful CI results.
Valid concerns --- @geky can you do the rebase? |
I think |
8654bdd
to
ec106ca
Compare
I went ahead and rebased and dropped bad3596, it's an easy enough patch to apply on its own. |
Unverified commits 😢 |
…console Reworked to be: 1. More stable, hopefully more resilient to losing read/write notifications 2. Use BufferedRingBuffer on both sides, which should be less error prone and avoids losing data when Veracruz responses exceed the size of the underlying ring-buffer Note this requires a bit of mixed usage of the BufferedRingBuffer on recieving, since we look ahead to see if we have a full message.
…ons by default See the relevant commit in icecap for more details. This should solve the race-conditions around ring-buffer bring-ups we are seeing in CI.
Changed to be less error-prone
… condition should be fixed
ec106ca
to
acd17c8
Compare
Woopsie doopsie, fixed now 😅 |
What is the status of this, again? I've lost track of what's going on with this PR, unfortunately... |
Superseded by #555 |
This includes a number of changes to improve the stability of the ring-buffers used to communicate between domains. As it was it was easy to lose notifications and cause applications to lock up.
The commits have more details, but here are the high-level changes:
This depends on https://gitlab.com/arm-research/security/icecap/icecap/-/merge_requests/22, which is depended on in several places in the commit history (and is already broken by a rebase needed there). So I will wait to fix the submodule and make this a non-draft until that is merged.
This should resolve #429, resolve #443, and fix the main hanging problem we are currently seeing in IceCap in CI.