Call unstick_channels to mitigate the lost synic issue #376
+23
−5
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR addresses an issue where the synic event was lost during the save process. To mitigate this issue during the restore process, we have introduced a new field lost_synic_bug_fixed in the SavedState structure. The lost_synic_bug_fixed field will indicate whether the issue was fixed in save code path. During the restore process, we check if the field is not set then unstick_channels() function is called to mitigate the issue.
In below kmsg traces, yellow line shows we check the field to see if need call unstick_channels and green line shows we did hit the issue where the rings were not empty and need signal the guest: