Part of an ongoing quest to fix:
libvirt management of VFIO devices can lead to host crashes
https://bugzilla.redhat.com/show_bug.cgi?id=1272300
Previous episode:
[PATCH v2 0/9] PCI hostdev refactoring
https://www.redhat.com/archives/libvir-list/2016-January/msg01066.html
The plan:
Once this is in, rebase the series mentioned above on top of it;
hopefully it will be smaller and easier to review. Once *that*
is in, rebase / rewrite the actual bug fix - probably the latter,
because the code has changed a lot since I posted it
In this episode:
01-06 Cleanups in the test cases; mostly unrelated, but commit
24 depends on them
07-17 More cleanups and (I believe) farily uncontroversial
changes, aimed at making the actual changes either
smaller or more obvious
18-19 Change in variable names that make the intended semantics
clearer, which should in turn make the follow-up changes
easier to review
Up until here there should be basically no change in behavior
20 Bug fix
21 Improvement to error reporting
22 The whole point of this series, and also the commit
where it's more likely that I might have gotten something
wrong :) I haven't been able to figure out a way to split
it into smaller chunks, sorry
23 Another bug fix
24 Test the changes made by the rest of the series
Cheers.
Andrea Bolognani (24):
tests: hostdev: Remove magic numbers
tests: hostdev: Use better variable names
tests: hostdev: Declare count inside CHECK_LIST_COUNT()
tests: hostdev: Use size_t for count variables
tests: hostdev: Add more checks on list size
tests: hostdev: Group test cases
hostdev: Make comments easier to change later
hostdev: Remove false comment
hostdev: Fix indentation
hostdev: Remove explicit NULL checks
hostdev: Remove redundant check
hostdev: virHostdevIsPCINetDevice() should return a bool
hostdev: Change argument order for virHostdevReattachPCIDevice()
hostdev: Look up devices using IDs when possible
hostdev: Remove virHostdevGetActivePCIHostDeviceList()
hostdev: Rename hostdev_mgr -> mgr
hostdev: Rename usesVfio -> usesVFIO
hostdev: Use consistent variable names
hostdev: Add more comments
hostdev: Save netdev configuration of actual device
hostdev: Stop early if unmanaged devices have not been detached
hostdev: Streamline device ownership tracking
hostdev: Use actual device when reattaching
tests: hostdev: Add more tests
src/util/virhostdev.c | 660 +++++++++++++++++++++++++------------------------
tests/virhostdevtest.c | 320 ++++++++++++++++++------
2 files changed, 576 insertions(+), 404 deletions(-)
--
2.5.0