[nova] NUMA live migration - mostly how it's tested
Artom Lifshitz
alifshit at redhat.com
Thu Feb 28 01:25:41 UTC 2019
Hey all,
There won't be much new here for those who've reviewed the patches [1]
already, but I wanted to address the testing situation.
Until recently, the last patch was WIP because I had functional tests
but no unit tests. Even without NUMA anywhere, the claims part of the
new code could be tested in functional tests. With the new and
improved implementation proposed by Dan Smith [2], this is no longer
the case. Any test more involved than unit testing will need "real"
NUMA instances on "real" NUMA hosts to trigger the new code. Because
of that, I've dropped functional testing altogether, have added unit
tests, and have taken the WIP tag off.
What I've been using for testing is this: [3]. It's a series of
patches to whitebox_tempest_plugin, a Tempest plugin used by a bunch
of us Nova Red Hatters to automate testing that's outside of Tempest's
scope. Same idea as the intel-nfv-ci plugin [4]. The tests I currently
have check that:
* CPU pin mapping is updated if the destination has an instance pinned
to the same CPUs as the incoming instance
* emulator thread pins are updated if the destination has a different
cpu_shared_set value and the instance has the
hw:emulator_threads_policy set to `share`
* NUMA node pins are updated for a hugepages instance if the
destination has a hugepages instances consuming the same NUMA node as
the incoming instance
It's not exhaustive by any means, but I've made sure that all
iterations pass those 3 tests. It should be fairly easy to add new
tests, as most of the necessary scaffolding is already in place.
[1] https://review.openstack.org/#/c/634606/
[2] https://review.openstack.org/#/c/634828/28/nova/virt/driver.py@1147
[3] https://review.rdoproject.org/r/#/c/18832/
[4] https://github.com/openstack/intel-nfv-ci-tests/
More information about the openstack-discuss
mailing list