[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