Skip to content
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

CA-388210: use unique datapaths for concurrent VDI copies #5920

Draft
wants to merge 5 commits into
base: master
Choose a base branch
from

Conversation

edwintorok
Copy link
Contributor

Testing on a box shows that the new unique arguments for 'domain' work, but opening as a draft PR, because this needs wider testing in XenRT.

This parameter was passed through unchanged.
However VDI.epoch_begin/epoch_end doesn't actually need it, so drop it.

We intend to change how we compute the 'domain' parameter, and VDI.epoch_begin/end wouldn't have
sufficient information to compute it anymore.

No functional change.

Signed-off-by: Edwin Török <[email protected]>
We are going to change how we compute it, so factor it out into a function.

No functional change.

Signed-off-by: Edwin Török <[email protected]>
…ument as domain for Dom0

Dom0 allows multiple attaches of RO disks, used e.g. for VDI.copy.
Send a unique value to SMAPIv3 plugins to avoid bugs to the lack of reference counting in those plugins.

XAPI already sends a unique value here, either vbd/domid/device, or a fresh UUID (for storage migration).

Signed-off-by: Edwin Török <[email protected]>
It is believed that the deadlocks in SMAPIv3 were caused by VDI.copy operations that attach
the same disk RO multiple times in Dom0.
With the previous commits we now use a unique identifier and spawn a separate qemu-dp process
in the SMAPIv3 plugins, which should prevent the deadlocks and IO errors due to lack of refcounting.

Signed-off-by: Edwin Török <[email protected]>
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.

1 participant