mbox

[PULL,00/12] Migration queue

Message ID 20180913125343.10912-1-quintela@redhat.com
State New
Headers show

Pull-request

git://github.com/juanquintela/qemu.git tags/migration/20180913

Message

Juan Quintela Sept. 13, 2018, 12:53 p.m. UTC
The following changes since commit 19b599f7664b2ebfd0f405fb79c14dd241557452:

  Merge remote-tracking branch 'remotes/armbru/tags/pull-error-2018-08-27-v2' into staging (2018-08-27 16:44:20 +0100)

are available in the Git repository at:

  git://github.com/juanquintela/qemu.git tags/migration/20180913

for you to fetch changes up to 418fe4f69648b4f3f0afd2588926deafac81cfe8:

  tests/migration: Enable the migration test on s390x, too (2018-09-13 14:06:26 +0200)

----------------------------------------------------------------
migration/next for 20180913

Hi this patchset has all pending migration queue that I have (It
superceedes the previous one).

- fix rdma_return_path (david)

- s390 migration-test (thomas)
  I ported it to the nema Makefile architecuter
  Please thomas, confirm that you agree with my changes

- aarch64 migration-test (wei)
- lots of compression fixes (xiao)

Please, apply.

----------------------------------------------------------------
Dr. David Alan Gilbert (1):
      migration/rdma: Fix uninitialised rdma_return_path

Jose Ricardo Ziviani (1):
      Add a hint message to loadvm and exits on failure

Thomas Huth (1):
      tests/migration: Enable the migration test on s390x, too

Wei Huang (4):
      tests/migration: Convert x86 boot block compilation script into Makefile
      tests/migration: Support cross compilation in generating boot header file
      tests/migration: Add migration-test header file
      tests: Add migration test for aarch64

Xiao Guangrong (5):
      migration: fix calculating xbzrle_counters.cache_miss_rate
      migration: handle the error condition properly
      migration: do not flush_compressed_data at the end of iteration
      migration: show the statistics of compression
      migration: use save_page_use_compression in flush_compressed_data

 hmp.c                                              |  13 +
 migration/migration.c                              |  12 +
 migration/ram.c                                    | 103 +++--
 migration/ram.h                                    |   1 +
 migration/rdma.c                                   |   2 +-
 migration/savevm.c                                 |   4 +-
 qapi/migration.json                                |  26 +-
 tests/Makefile.include                             |   2 +
 tests/migration-test.c                             |  83 +++-
 tests/migration/Makefile                           |  35 ++
 tests/migration/aarch64/Makefile                   |  20 +
 tests/migration/aarch64/a-b-kernel.S               |  75 ++++
 tests/migration/aarch64/a-b-kernel.h               |  19 +
 tests/migration/i386/Makefile                      |  22 ++
 .../{x86-a-b-bootblock.s => i386/a-b-bootblock.S}  |   4 -
 .../{x86-a-b-bootblock.h => i386/a-b-bootblock.h}  |   8 +-
 tests/migration/migration-test.h                   |  34 ++
 tests/migration/rebuild-x86-bootblock.sh           |  33 --
 tests/migration/s390x/Makefile                     |  22 ++
 tests/migration/s390x/a-b-bios.c                   |  35 ++
 tests/migration/s390x/a-b-bios.h                   | 427 +++++++++++++++++++++
 vl.c                                               |   1 +
 22 files changed, 899 insertions(+), 82 deletions(-)
 create mode 100644 tests/migration/Makefile
 create mode 100644 tests/migration/aarch64/Makefile
 create mode 100644 tests/migration/aarch64/a-b-kernel.S
 create mode 100644 tests/migration/aarch64/a-b-kernel.h
 create mode 100644 tests/migration/i386/Makefile
 rename tests/migration/{x86-a-b-bootblock.s => i386/a-b-bootblock.S} (93%)
 rename tests/migration/{x86-a-b-bootblock.h => i386/a-b-bootblock.h} (92%)
 create mode 100644 tests/migration/migration-test.h
 delete mode 100755 tests/migration/rebuild-x86-bootblock.sh
 create mode 100644 tests/migration/s390x/Makefile
 create mode 100644 tests/migration/s390x/a-b-bios.c
 create mode 100644 tests/migration/s390x/a-b-bios.h

Comments

Peter Maydell Sept. 25, 2018, 8:26 a.m. UTC | #1
On 13 September 2018 at 13:53, Juan Quintela <quintela@redhat.com> wrote:
> The following changes since commit 19b599f7664b2ebfd0f405fb79c14dd241557452:
>
>   Merge remote-tracking branch 'remotes/armbru/tags/pull-error-2018-08-27-v2' into staging (2018-08-27 16:44:20 +0100)
>
> are available in the Git repository at:
>
>   git://github.com/juanquintela/qemu.git tags/migration/20180913
>
> for you to fetch changes up to 418fe4f69648b4f3f0afd2588926deafac81cfe8:
>
>   tests/migration: Enable the migration test on s390x, too (2018-09-13 14:06:26 +0200)
>
> ----------------------------------------------------------------
> migration/next for 20180913
>
> Hi this patchset has all pending migration queue that I have (It
> superceedes the previous one).
>
> - fix rdma_return_path (david)
>
> - s390 migration-test (thomas)
>   I ported it to the nema Makefile architecuter
>   Please thomas, confirm that you agree with my changes
>
> - aarch64 migration-test (wei)
> - lots of compression fixes (xiao)
>
> Please, apply.

Hi. This causes the s390 migration test to fail on sparc host:

TEST: tests/migration-test... (pid=83922)
  /s390x/migration/deprecated:                                         OK
  /s390x/migration/bad_dest:                                           OK
  /s390x/migration/postcopy/unix:
qemu-system-s390x: load of migration failed: Input/output error
Broken pipe
/home/pm215/qemu/tests/libqtest.c:121: kill_qemu() tried to terminate
QEMU process but encountered exit status 1
FAIL
GTester: last random seed: R02S7b77f29679b5d4224f073b2cbaed1bff
(pid=83946)
  /s390x/migration/postcopy/recovery:
Broken pipe
/home/pm215/qemu/tests/libqtest.c:121: kill_qemu() tried to terminate
QEMU process but encountered exit status 1
FAIL
GTester: last random seed: R02Sefc9588e457bc609665979e83b5071bd
(pid=83958)
  /s390x/migration/precopy/unix:
qemu-system-s390x: Unexpected storage key flag data: 0
qemu-system-s390x: error while loading state for instance 0x0 of
device 's390-skeys'
qemu-system-s390x: load of migration failed: Invalid argument
Broken pipe
/home/pm215/qemu/tests/libqtest.c:121: kill_qemu() tried to terminate
QEMU process but encountered exit status 1
FAIL
GTester: last random seed: R02S23be4e2c4ae37551a17c8ae0a9675b47
(pid=83969)
FAIL: tests/migration-test


This is almost certainly because of these new misaligned accesess,
which cause segfaults on sparc, but show up as runtime errors
with the clang sanitizer on x86:

TEST: tests/migration-test... (pid=7176)
  /s390x/migration/deprecated:                                         OK
  /s390x/migration/bad_dest:                                           OK
  /s390x/migration/postcopy/unix:
/home/petmay01/linaro/qemu-for-merges/include/migration/qemu-file-types.h:63:22:
runti
me error: load of misaligned address 0x55e9f9b58f67 for type 'const
uint16_t' (aka 'const unsigned short'), which requires 2 byte
alignment
0x55e9f9b58f67: note: pointer points here
 00 00 00 00 00  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  00
00 00 00 00 00 00 00  00 00 00
             ^
/home/petmay01/linaro/qemu-for-merges/include/migration/qemu-file-types.h:58:22:
runtime error: load of misaligned address 0x55e9f9b66ea6 for type
'const uin
t32_t' (aka 'const unsigned int'), which requires 4 byte alignment
0x55e9f9b66ea6: note: pointer points here
 00 00 00 00 00 00  00 00 01 00 00 00 80 00  00 80 00 00 ff 80 00 00
00 00 00 00 00 00 00 00  00 00
             ^
/home/petmay01/linaro/qemu-for-merges/include/migration/qemu-file-types.h:53:22:
runtime error: load of misaligned address 0x55e9f9b66ece for type
'const uin
t64_t' (aka 'const unsigned long'), which requires 8 byte alignment
0x55e9f9b66ece: note: pointer points here
 00 00 00 00 00 00  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00  00 00
             ^
/home/petmay01/linaro/qemu-for-merges/include/migration/qemu-file-types.h:83:5:
runtime error: store to misaligned address 0x55fc0a5e2fb7 for type
'uint16_t'
 (aka 'unsigned short'), which requires 2 byte alignment
0x55fc0a5e2fb7: note: pointer points here
 00 00 00 00 00  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  00
00 00 00 00 00 00 00  00 00 00
             ^
/home/petmay01/linaro/qemu-for-merges/include/migration/qemu-file-types.h:78:5:
runtime error: store to misaligned address 0x55fc0a5f0ee6 for type
'uint32_t' (aka 'unsigned int'), which requires 4 byte alignment
0x55fc0a5f0ee6: note: pointer points here
 00 00 00 00 00 00  00 00 01 00 00 00 80 00  00 80 00 00 ff 80 00 00
00 00 00 00 00 00 00 00  00 00
             ^
/home/petmay01/linaro/qemu-for-merges/include/migration/qemu-file-types.h:73:5:
runtime error: store to misaligned address 0x55fc0a5f0f0e for type
'uint64_t' (aka 'unsigned long'), which requires 8 byte alignment
0x55fc0a5f0f0e: note: pointer points here
 00 00 00 00 00 00  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00  00 00
             ^
OK
  /s390x/migration/postcopy/recovery:                                  OK
  /s390x/migration/precopy/unix:
/home/petmay01/linaro/qemu-for-merges/include/migration/qemu-file-types.h:63:22:
runtime error: load of misaligned address 0x55fb25800fb7 for type
'const uint16_t' (aka 'const unsigned short'), which requires 2 byte
alignment
0x55fb25800fb7: note: pointer points here
 00 00 00 00 00  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  00
00 00 00 00 00 00 00  00 00 00
             ^
/home/petmay01/linaro/qemu-for-merges/include/migration/qemu-file-types.h:58:22:
runtime error: load of misaligned address 0x55fb2580eee6 for type
'const uint32_t' (aka 'const unsigned int'), which requires 4 byte
alignment
0x55fb2580eee6: note: pointer points here
 00 00 00 00 00 00  00 00 01 00 00 00 80 00  00 80 00 00 ff 80 00 00
00 00 00 00 00 00 00 00  00 00
             ^
/home/petmay01/linaro/qemu-for-merges/include/migration/qemu-file-types.h:53:22:
runtime error: load of misaligned address 0x55fb2580ef0e for type
'const uint64_t' (aka 'const unsigned long'), which requires 8 byte
alignment
0x55fb2580ef0e: note: pointer points here
 00 00 00 00 00 00  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00  00 00
             ^
/home/petmay01/linaro/qemu-for-merges/include/migration/qemu-file-types.h:83:5:
runtime error: store to misaligned address 0x55d0ef92ff77 for type
'uint16_t' (aka 'unsigned short'), which requires 2 byte alignment
0x55d0ef92ff77: note: pointer points here
 00 00 00 00 00  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  00
00 00 00 00 00 00 00  00 00 00
             ^
/home/petmay01/linaro/qemu-for-merges/include/migration/qemu-file-types.h:78:5:
runtime error: store to misaligned address 0x55d0ef93dea6 for type
'uint32_t' (aka 'unsigned int'), which requires 4 byte alignment
0x55d0ef93dea6: note: pointer points here
 00 00 00 00 00 00  00 00 01 00 00 00 80 00  00 80 00 00 ff 80 00 00
00 00 00 00 00 00 00 00  00 00
             ^
/home/petmay01/linaro/qemu-for-merges/include/migration/qemu-file-types.h:73:5:
runtime error: store to misaligned address 0x55d0ef93dece for type
'uint64_t' (aka 'unsigned long'), which requires 8 byte alignment
0x55d0ef93dece: note: pointer points here
 00 00 00 00 00 00  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00  00 00
             ^
OK
PASS: tests/migration-test


thanks
-- PMM
Thomas Huth Sept. 25, 2018, 8:36 a.m. UTC | #2
On 2018-09-25 10:26, Peter Maydell wrote:
> On 13 September 2018 at 13:53, Juan Quintela <quintela@redhat.com> wrote:
>> The following changes since commit 19b599f7664b2ebfd0f405fb79c14dd241557452:
>>
>>   Merge remote-tracking branch 'remotes/armbru/tags/pull-error-2018-08-27-v2' into staging (2018-08-27 16:44:20 +0100)
>>
>> are available in the Git repository at:
>>
>>   git://github.com/juanquintela/qemu.git tags/migration/20180913
>>
>> for you to fetch changes up to 418fe4f69648b4f3f0afd2588926deafac81cfe8:
>>
>>   tests/migration: Enable the migration test on s390x, too (2018-09-13 14:06:26 +0200)
>>
>> ----------------------------------------------------------------
>> migration/next for 20180913
>>
>> Hi this patchset has all pending migration queue that I have (It
>> superceedes the previous one).
>>
>> - fix rdma_return_path (david)
>>
>> - s390 migration-test (thomas)
>>   I ported it to the nema Makefile architecuter
>>   Please thomas, confirm that you agree with my changes
>>
>> - aarch64 migration-test (wei)
>> - lots of compression fixes (xiao)
>>
>> Please, apply.
> 
> Hi. This causes the s390 migration test to fail on sparc host:
> 
> TEST: tests/migration-test... (pid=83922)
>   /s390x/migration/deprecated:                                         OK
>   /s390x/migration/bad_dest:                                           OK
>   /s390x/migration/postcopy/unix:
> qemu-system-s390x: load of migration failed: Input/output error
> Broken pipe
> /home/pm215/qemu/tests/libqtest.c:121: kill_qemu() tried to terminate
> QEMU process but encountered exit status 1
> FAIL
> GTester: last random seed: R02S7b77f29679b5d4224f073b2cbaed1bff
> (pid=83946)
>   /s390x/migration/postcopy/recovery:
> Broken pipe
> /home/pm215/qemu/tests/libqtest.c:121: kill_qemu() tried to terminate
> QEMU process but encountered exit status 1
> FAIL
> GTester: last random seed: R02Sefc9588e457bc609665979e83b5071bd
> (pid=83958)
>   /s390x/migration/precopy/unix:
> qemu-system-s390x: Unexpected storage key flag data: 0
> qemu-system-s390x: error while loading state for instance 0x0 of
> device 's390-skeys'
> qemu-system-s390x: load of migration failed: Invalid argument
> Broken pipe
> /home/pm215/qemu/tests/libqtest.c:121: kill_qemu() tried to terminate
> QEMU process but encountered exit status 1
> FAIL
> GTester: last random seed: R02S23be4e2c4ae37551a17c8ae0a9675b47
> (pid=83969)
> FAIL: tests/migration-test
> 
> 
> This is almost certainly because of these new misaligned accesess,
> which cause segfaults on sparc, but show up as runtime errors
> with the clang sanitizer on x86:
> 
> TEST: tests/migration-test... (pid=7176)
>   /s390x/migration/deprecated:                                         OK
>   /s390x/migration/bad_dest:                                           OK
>   /s390x/migration/postcopy/unix:
> /home/petmay01/linaro/qemu-for-merges/include/migration/qemu-file-types.h:63:22:
> runti
> me error: load of misaligned address 0x55e9f9b58f67 for type 'const
> uint16_t' (aka 'const unsigned short'), which requires 2 byte
> alignment
> 0x55e9f9b58f67: note: pointer points here
>  00 00 00 00 00  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  00
> 00 00 00 00 00 00 00  00 00 00
>              ^

Ok, I'll have a look. (I think this PULL request should not go in anyway
since patch 12 is missing the "strip" of the binary, so that the header
is unnecessary big ...)

 Thomas