openvmm
openvmm copied to clipboard
wip - mana: save/restore for keepalive support
Opening this early to get ahead of feedback while I work on save/restore for mana queues. I've merged #945 into this branch in the interest of writing a unit test, but it hasn't actually been implemented yet.
Some open questions:
- How can I write a unit test for this scenario? I've attempted to use the changes in #945 to write a test but have been unable to get it to work. The vmm_test I've added gets past
test_eqso I'm relatively confident the GDMA driver is being restored at least somewhat properly. - The enablement code is from me just following
nvme_keepalive's lead - is there any interest in changing how enablement works? - Should we add error paths to fall-back to completely re-initializing the device in instances of failure?
- There's a bunch of
info!logging I was using for testing - will remove or move to debug level if interest in keeping them around - The leak flag is currently set to true in private pool to get past leaking allocations as a result of not restoring the mana queues yet - will turn back to false as soon as restoration is working properly for those as well
- Should deriving debug be removed for save/restore state?
Is there interest in staging these changes rather than merging one large change in the interest of smaller reviews?