[Qemu-devel] [PATCH v10 0/5] Add make check tests for Migration

Juan Quintela posted 5 patches 5 years, 4 months ago
Failed in applying to current master (apply log)
There is a newer version of this series
hmp.c                  |  31 +++++
migration/migration.c  |  24 ++++
migration/migration.h  |   4 +
migration/socket.c     |  11 ++
qapi/migration.json    |   6 +-
qapi/sockets.json      |  13 ++
tests/migration-test.c | 275 ++++++++++++++++++++++++++++++++++++++++-
7 files changed, 358 insertions(+), 6 deletions(-)
[Qemu-devel] [PATCH v10 0/5] Add make check tests for Migration
Posted by Juan Quintela 5 years, 4 months ago
Hi

In v10:
- rebase to latest upstream
- code changed quite a bit with qmp refactorings
  apllied them
- make it work again
- compress threads test, continue working there, not trivial.

Two question-:
- should we integrate them on this cycle?
  they are tests
- should we enable them only on baremetal, and not on emulation?
  There is still a problem on TCG that sometimes fails the migration
  thread

ToDo:
- Finish debug compress test
  Still stuck why the test wonk when I launch qemu by hand but not
  trough qtest.  Creatuve uses of launching gdb through launched
  guests have not help so far.

- Finish fd transport test
  Not very difficult in principle, need more checking to see if it
  don't fail in other setups.

- Finish tl trasport test
  I already knew that I hate certificates, but this is too much.  Trying
  to understand how to use them.

Please commet, Juan.



In v9:
- Dropp Export SocketAddress_to_str
  just create the functions where I need them.
- drop precopy test and xbzrle (on pull requset)
  Use 100M for cache as dave suggests
- drop ppc improvemnet (on pull request)
- drop RFH, will work on tha later
- move socket_address to info migrate

Please, review.

Later, Juan.


v8:
- just rebase to make things continue to wonk


New in the other v7:
- SocketAddress is now a list (a.k.a make happy danp)
- Rebase on top of upstream
  network listener is *interesting*
- *HACK* to make SocketAddress list in common
  see patch: create-socket-paramenter

Please review, Juan.

CC: berrange@redhat.com

[v7]
This is v6, it differest from the patches that I sent with previous
multifd post:
- Rename x-tcp-port to x-socket-address
  This is more *complicated* that it looks as:

  * it is a pointer, so I need to use QAPI_CLONE() to make info
    migrate work

  * this is an union of structs.  In QAPI. So, a dict of strings.  The
    only way that I was able to make things work is parsing the qdict
    to a SocketAddress and then output a SocketAddress as an str.  It
    needs to be an easier way, for sure.

  * Cleanups here andthere.

Please, review, Juan.

[v5]
- Several patches moved to pull request
- merge info_migrate and migration_tests
  only missing bit is tcp_port, needed for tcp tests
- Rename tcp-port to x-tcp-port
  We will get better naming from David at some point, and we will use that bit
- ppc: use inline code as suggested by lvivier

Please, review.

It is based on my previous pull request

Based-on: 20180129120932.12874-1-quintela@redhat.com

[v4]
- rebase on top on v4 info_migrate patches
- Tune sleeps to make patches fast
- Create a deprecated test for deprecated commands (i.e. make peterxu happy)
- create migrate_start_postcopy function
- fix naming/sizes between power and x86
- cleanup comments to match code

[v3]

- No more tests for deprecated parameters. Now I only use
  migrate_set_parameter.  If there is a deprecated command for that,
  we tests it there.
- free "result" string, always good to return memory (Peter found it)
- use the new tcp_port parameter from info migrate.  So we are
  handling well the tcp case.
- lots of code movement around to make everything consistent.
- Several patches already integrated upstream.

[v2]
- to make review easier, I started renaming postcopy-test.c to migration-test.c
- Did cleanups/refactoring there
- Don't use global-qtest anymore
- check that the parameters that we sent got really set
- RFH: comrpress threads tests is not working for some weird reason.  Using the same code on command line works.
  still investigating why.

ToDoo:

- tcp: after discussions with dave, we ended in conclusion that we
  need to use the 0 port and let the system gives us a free one

  But .... that means that we need to be able to get that port back somehow.
  "info migrate" woring on destination side?

- compression threads.  There is some weird interaction with the test
  hardness and every migration thread get waiting in a different
  semaphore.  Investigating if it is a race/bug/whateverr

- deprecated commands: There was a suggestion to make
  migrate_set_parameter look at the parameter name and test old/new
  depending on something.  Not sure what to do here.

- testing commands: Is there a way to launch qemu and just sent
  qmp/hmp commands without having to really run anything else?

[v1]
- add test for precopy for unix/tcp
  exec and fd to came, don't know how to test rdma without hardware
- add tests using deprecated interfaces
- add test for xbzrle
  Note to myself, there is no way to set the cache size with migraton_set_parameters
- Add test for compress threads
  disabled on the series, right now it appears that compression is not working at all
- Move postcopy to use new results
  Idea is to move it on top of migration-test.c, but first I want some reviews on basic idea

Juan Quintela (5):
  tests: Add migration xbzrle test
  migration: Create socket-address parameter
  tests: Add basic migration precopy tcp test
  tests: Add migration multifd test
  [RFH] tests: Add migration compress threads tests

 hmp.c                  |  31 +++++
 migration/migration.c  |  24 ++++
 migration/migration.h  |   4 +
 migration/socket.c     |  11 ++
 qapi/migration.json    |   6 +-
 qapi/sockets.json      |  13 ++
 tests/migration-test.c | 275 ++++++++++++++++++++++++++++++++++++++++-
 7 files changed, 358 insertions(+), 6 deletions(-)

-- 
2.19.1


Re: [Qemu-devel] [PATCH v10 0/5] Add make check tests for Migration
Posted by Daniel P. Berrangé 5 years, 4 months ago
On Wed, Nov 28, 2018 at 12:33:32PM +0100, Juan Quintela wrote:
> - Finish tl trasport test
>   I already knew that I hate certificates, but this is too much.  Trying
>   to understand how to use them.

I'll happily contribute TLS tests on top of your basic series here
if you want. Just let me know...

If you prefer to try to do it yourself though, take a look at the
test-io-channel-tls.c  test which goes through the process of
creating certificates and loading the QEMU TLS credential objets

Regards,
Daniel
-- 
|: https://berrange.com      -o-    https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org         -o-            https://fstop138.berrange.com :|
|: https://entangle-photo.org    -o-    https://www.instagram.com/dberrange :|