[Qemu-devel] [PATCH v14 0/3] Add make check tests for Migration

Juan Quintela posted 3 patches 5 years, 1 month ago
Failed in applying to current master (apply log)
hmp.c                  |  33 ++++++++
migration/migration.c  |  24 ++++++
migration/migration.h  |   4 +
migration/socket.c     |  11 +++
qapi/migration.json    |   6 +-
qapi/sockets.json      |  18 +++++
tests/migration-test.c | 174 +++++++++++++++++++++++++++++++++++++++--
7 files changed, 264 insertions(+), 6 deletions(-)
[Qemu-devel] [PATCH v14 0/3] Add make check tests for Migration
Posted by Juan Quintela 5 years, 1 month ago
In v14:
- updates commets to 4.0
- Update migration-test copy of SocketAddress_str

In v13:
- Rename socket_address to socket_address_list (dave)
- Remove useless breaks (dave)

If nothing pops out, everything is reviewed and will be sent on next
pull requset.

Later, Juan.

In v12:
- drop multifd case (caming in next series)
- fix leak of socketaddress (eric)
- handle vsock printing correctly (eric)

Iv v11:
- Rebase to lastest
- Remove the compress test.  It didin't worked really.
  See my next series.
- Only patch missing review-by is the second one.

Please, consider them.

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 (3):
  tests: Add migration xbzrle test
  migration: Create socket-address parameter
  tests: Add basic migration precopy tcp test

 hmp.c                  |  33 ++++++++
 migration/migration.c  |  24 ++++++
 migration/migration.h  |   4 +
 migration/socket.c     |  11 +++
 qapi/migration.json    |   6 +-
 qapi/sockets.json      |  18 +++++
 tests/migration-test.c | 174 +++++++++++++++++++++++++++++++++++++++--
 7 files changed, 264 insertions(+), 6 deletions(-)

-- 
2.20.1


Re: [Qemu-devel] [PATCH v14 0/3] Add make check tests for Migration
Posted by Dr. David Alan Gilbert 5 years, 1 month ago
* Juan Quintela (quintela@redhat.com) wrote:
> In v14:
> - updates commets to 4.0
> - Update migration-test copy of SocketAddress_str

Queued

> In v13:
> - Rename socket_address to socket_address_list (dave)
> - Remove useless breaks (dave)
> 
> If nothing pops out, everything is reviewed and will be sent on next
> pull requset.
> 
> Later, Juan.
> 
> In v12:
> - drop multifd case (caming in next series)
> - fix leak of socketaddress (eric)
> - handle vsock printing correctly (eric)
> 
> Iv v11:
> - Rebase to lastest
> - Remove the compress test.  It didin't worked really.
>   See my next series.
> - Only patch missing review-by is the second one.
> 
> Please, consider them.
> 
> 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 (3):
>   tests: Add migration xbzrle test
>   migration: Create socket-address parameter
>   tests: Add basic migration precopy tcp test
> 
>  hmp.c                  |  33 ++++++++
>  migration/migration.c  |  24 ++++++
>  migration/migration.h  |   4 +
>  migration/socket.c     |  11 +++
>  qapi/migration.json    |   6 +-
>  qapi/sockets.json      |  18 +++++
>  tests/migration-test.c | 174 +++++++++++++++++++++++++++++++++++++++--
>  7 files changed, 264 insertions(+), 6 deletions(-)
> 
> -- 
> 2.20.1
> 
> 
--
Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK