qemu-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-commits] [qemu/qemu] d98f26: target/i386: kvm: add VMX migration b


From: GitHub
Subject: [Qemu-commits] [qemu/qemu] d98f26: target/i386: kvm: add VMX migration blocker
Date: Wed, 28 Nov 2018 05:47:45 -0800

  Branch: refs/heads/master
  Home:   https://github.com/qemu/qemu
  Commit: d98f26073bebddcd3da0ba1b86c3a34e840c0fb8
      
https://github.com/qemu/qemu/commit/d98f26073bebddcd3da0ba1b86c3a34e840c0fb8
  Author: Paolo Bonzini <address@hidden>
  Date:   2018-11-27 (Tue, 27 Nov 2018)

  Changed paths:
    M target/i386/kvm.c

  Log Message:
  -----------
  target/i386: kvm: add VMX migration blocker

Nested VMX does not support live migration yet.  Add a blocker
until that is worked out.

Nested SVM only does not support it, but unfortunately it is
enabled by default for -cpu host so we cannot really disable it.

Signed-off-by: Paolo Bonzini <address@hidden>


  Commit: a8efa60633575a2ee4dbf807a71cb44d44b0e0f8
      
https://github.com/qemu/qemu/commit/a8efa60633575a2ee4dbf807a71cb44d44b0e0f8
  Author: Paolo Bonzini <address@hidden>
  Date:   2018-11-27 (Tue, 27 Nov 2018)

  Changed paths:
    M cpus.c

  Log Message:
  -----------
  cpus: run work items for all vCPUs if single-threaded

This avoids the following I/O thread deadlock:

1) the I/O thread calls run_on_cpu for CPU 3 from a timer.  single_tcg_halt_cond
is signaled

2) CPU 1 is running and exits.  It finds no work item and enters CPU 2

3) because the I/O thread is stuck in run_on_cpu, the round-robin kick
timer never triggers, and CPU 3 never runs the work item

4) run_on_cpu never completes

Reviewed-by: Emilio G. Cota <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>


  Commit: 56333e69ee1855a8fa74b361742a0a79407846d2
      
https://github.com/qemu/qemu/commit/56333e69ee1855a8fa74b361742a0a79407846d2
  Author: George Kennedy <address@hidden>
  Date:   2018-11-27 (Tue, 27 Nov 2018)

  Changed paths:
    M hw/scsi/lsi53c895a.c

  Log Message:
  -----------
  lsi: Reselection needed to remove pending commands from queue

Under heavy IO (e.g. fio) the queue is not checked frequently enough for
pending commands. As a result some pending commands are timed out by the
linux sym53c8xx driver, which sends SCSI Abort messages for the timed out
commands. The SCSI Abort messages result in linux errors, which show up
on the console and in /var/log/messages.

e.g.
sd 0:0:3:0: [sdd] tag#33 ABORT operation started
scsi target0:0:3: control msgout:
80 20 47 d
sd 0:0:3:0: ABORT operation complete.
scsi target0:0:4: message d sent on bad reselection

Now following a WAIT DISCONNECT Script instruction, and if there is no
current command, check for a pending command on the queue and if one
exists call lsi_reselect().

Signed-off-by: George Kennedy <address@hidden>
Message-Id: <address@hidden>
[For safety, add a s->current check in lsi_update_irq - Paolo]
Signed-off-by: Paolo Bonzini <address@hidden>


  Commit: 5aaac46793828d01c893b9d99d905c657f59541e
      
https://github.com/qemu/qemu/commit/5aaac46793828d01c893b9d99d905c657f59541e
  Author: Paolo Bonzini <address@hidden>
  Date:   2018-11-27 (Tue, 27 Nov 2018)

  Changed paths:
    M migration/savevm.c
    M target/i386/kvm.c

  Log Message:
  -----------
  migration: savevm: consult migration blockers

There is really no difference between live migration and savevm, except
that savevm does not require bdrv_invalidate_cache to be implemented
by all disks.  However, it is unlikely that savevm is used with anything
except qcow2 disks, so the penalty is small and worth the improvement
in catching bad usage of savevm.

Only one place was taking care of savevm when adding a migration blocker,
and it can be removed.

Signed-off-by: Paolo Bonzini <address@hidden>


  Commit: 03fee66fde3f9e179e3973e8c50f6fa0a0a14613
      
https://github.com/qemu/qemu/commit/03fee66fde3f9e179e3973e8c50f6fa0a0a14613
  Author: Marc-André Lureau <address@hidden>
  Date:   2018-11-27 (Tue, 27 Nov 2018)

  Changed paths:
    M hw/display/virtio-gpu.c
    M hw/intc/s390_flic_kvm.c
    M hw/nvram/eeprom93xx.c
    M hw/nvram/fw_cfg.c
    M hw/pci/msix.c
    M hw/pci/pci.c
    M hw/pci/shpc.c
    M hw/scsi/scsi-bus.c
    M hw/timer/twl92230.c
    M hw/usb/redirect.c
    M hw/virtio/virtio.c
    M include/migration/vmstate.h
    M migration/savevm.c
    M migration/vmstate-types.c
    M migration/vmstate.c
    M target/alpha/machine.c
    M target/arm/machine.c
    M target/hppa/machine.c
    M target/mips/machine.c
    M target/openrisc/machine.c
    M target/ppc/machine.c
    M target/sparc/machine.c

  Log Message:
  -----------
  vmstate: constify VMStateField

Because they are supposed to remain const.

Signed-off-by: Marc-André Lureau <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>


  Commit: 353c7d58b9192c6c0443a426ebb8582d73ded960
      
https://github.com/qemu/qemu/commit/353c7d58b9192c6c0443a426ebb8582d73ded960
  Author: Li Qiang <address@hidden>
  Date:   2018-11-27 (Tue, 27 Nov 2018)

  Changed paths:
    M vl.c

  Log Message:
  -----------
  vl: Improve error message when we can't load fw_cfg from file

parse_fw_cfg() reports "can't load" without further details.  Get
the details from g_file_get_contents(), and include them in the
error message.

Signed-off-by: Li Qiang <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>


  Commit: 8f1d22d97046052424c7daf7c657bb68a816c540
      
https://github.com/qemu/qemu/commit/8f1d22d97046052424c7daf7c657bb68a816c540
  Author: Marc-André Lureau <address@hidden>
  Date:   2018-11-27 (Tue, 27 Nov 2018)

  Changed paths:
    M tests/vhost-user-bridge.c

  Log Message:
  -----------
  vhost-user-bridge: fix recvmsg iovlen

After iov_discard_front(), the iov may be smaller than its initial
size. Fixes the heap-buffer-overflow spotted by ASAN:

==9036==ERROR: AddressSanitizer: heap-buffer-overflow on address 0x6060000001e0 
at pc 0x7fe632eca3f0 bp 0x7ffddc4a05a0 sp 0x7ffddc49fd48
WRITE of size 32 at 0x6060000001e0 thread T0
    #0 0x7fe632eca3ef  (/lib64/libasan.so.5+0x773ef)
    #1 0x7fe632ecad23 in __interceptor_recvmsg (/lib64/libasan.so.5+0x77d23)
    #2 0x561e7491936b in vubr_backend_recv_cb 
/home/elmarco/src/qemu/tests/vhost-user-bridge.c:333
    #3 0x561e74917711 in dispatcher_wait 
/home/elmarco/src/qemu/tests/vhost-user-bridge.c:160
    #4 0x561e7491c3b5 in vubr_run 
/home/elmarco/src/qemu/tests/vhost-user-bridge.c:725
    #5 0x561e7491c85c in main 
/home/elmarco/src/qemu/tests/vhost-user-bridge.c:806
    #6 0x7fe631a6c412 in __libc_start_main (/lib64/libc.so.6+0x24412)
    #7 0x561e7491667d in _start 
(/home/elmarco/src/qemu/build/tests/vhost-user-bridge+0x3967d)

0x6060000001e0 is located 0 bytes to the right of 64-byte region 
[0x6060000001a0,0x6060000001e0)
allocated by thread T0 here:
    #0 0x7fe632f42848 in __interceptor_malloc (/lib64/libasan.so.5+0xef848)
    #1 0x561e7493acd8 in virtqueue_alloc_element 
/home/elmarco/src/qemu/contrib/libvhost-user/libvhost-user.c:1848
    #2 0x561e7493c2a8 in vu_queue_pop 
/home/elmarco/src/qemu/contrib/libvhost-user/libvhost-user.c:1954
    #3 0x561e749189bf in vubr_backend_recv_cb 
/home/elmarco/src/qemu/tests/vhost-user-bridge.c:297
    #4 0x561e74917711 in dispatcher_wait 
/home/elmarco/src/qemu/tests/vhost-user-bridge.c:160
    #5 0x561e7491c3b5 in vubr_run 
/home/elmarco/src/qemu/tests/vhost-user-bridge.c:725
    #6 0x561e7491c85c in main 
/home/elmarco/src/qemu/tests/vhost-user-bridge.c:806
    #7 0x7fe631a6c412 in __libc_start_main (/lib64/libc.so.6+0x24412)

SUMMARY: AddressSanitizer: heap-buffer-overflow (/lib64/libasan.so.5+0x773ef)
Shadow bytes around the buggy address:
  0x0c0c7fff7fe0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x0c0c7fff7ff0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x0c0c7fff8000: fa fa fa fa 00 00 00 00 00 00 05 fa fa fa fa fa
  0x0c0c7fff8010: 00 00 00 00 00 00 00 00 fa fa fa fa fd fd fd fd
  0x0c0c7fff8020: fd fd fd fd fa fa fa fa fd fd fd fd fd fd fd fd
=>0x0c0c7fff8030: fa fa fa fa 00 00 00 00 00 00 00 00[fa]fa fa fa
  0x0c0c7fff8040: fd fd fd fd fd fd fd fd fa fa fa fa fd fd fd fd
  0x0c0c7fff8050: fd fd fd fd fa fa fa fa fd fd fd fd fd fd fd fd
  0x0c0c7fff8060: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
  0x0c0c7fff8070: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
  0x0c0c7fff8080: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa

Signed-off-by: Marc-André Lureau <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Paolo BOnzini <address@hidden>


  Commit: d4c7e7e7e017e94b99cf6a2b84b69947aace424d
      
https://github.com/qemu/qemu/commit/d4c7e7e7e017e94b99cf6a2b84b69947aace424d
  Author: Li Qiang <address@hidden>
  Date:   2018-11-27 (Tue, 27 Nov 2018)

  Changed paths:
    M vl.c

  Log Message:
  -----------
  vl.c: remove outdated comment

Cc: address@hidden

Signed-off-by: Li Qiang <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>


  Commit: f1e35acf787d22ef98906a9a375a400e0df3d55f
      
https://github.com/qemu/qemu/commit/f1e35acf787d22ef98906a9a375a400e0df3d55f
  Author: Paolo Bonzini <address@hidden>
  Date:   2018-11-27 (Tue, 27 Nov 2018)

  Changed paths:
    M scripts/checkpatch.pl

  Log Message:
  -----------
  checkpatch: g_test_message does not need a trailing newline

Reviewed-by: Philippe Mathieu-Daudé <address@hidden>
Tested-by: Philippe Mathieu-Daudé <address@hidden>
Reviewed-by: Thomas Huth <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>


  Commit: e84fcd7f662a0d8198703f6f89416d7ac2c32767
      
https://github.com/qemu/qemu/commit/e84fcd7f662a0d8198703f6f89416d7ac2c32767
  Author: Richard Henderson <address@hidden>
  Date:   2018-11-27 (Tue, 27 Nov 2018)

  Changed paths:
    M target/i386/translate.c

  Log Message:
  -----------
  target/i386: Generate #UD when applying LOCK to a register destination

Fixes a TCG crash due to attempting the atomic operation without
having set up the address first.  This does not attempt to fix
all of the other missing checks for LOCK.

Fixes: a7cee522f35
Fixes: https://bugs.launchpad.net/qemu/+bug/1803160
Signed-off-by: Richard Henderson <address@hidden>
Message-Id: <address@hidden>
Reviewed-by: Philippe Mathieu-Daudé <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>


  Commit: 9681ad3e2b3e7ed858968ccc7c82a73c6a1d21b9
      
https://github.com/qemu/qemu/commit/9681ad3e2b3e7ed858968ccc7c82a73c6a1d21b9
  Author: Thomas Huth <address@hidden>
  Date:   2018-11-27 (Tue, 27 Nov 2018)

  Changed paths:
    M MAINTAINERS

  Log Message:
  -----------
  MAINTAINERS: Add some missing entries related to accelerators

Add some files from accel/stubs/, include/hw/kvm/ and scripts/kvm/
to the MAINTAINERS file.

Signed-off-by: Thomas Huth <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>


  Commit: 15ffb43cbf453163e9ef712e8e558ff46123c7bc
      
https://github.com/qemu/qemu/commit/15ffb43cbf453163e9ef712e8e558ff46123c7bc
  Author: Philippe Mathieu-Daudé <address@hidden>
  Date:   2018-11-27 (Tue, 27 Nov 2018)

  Changed paths:
    M MAINTAINERS

  Log Message:
  -----------
  MAINTAINERS: Add an entry for the Firmware Configuration (fw_cfg) device

Step in to maintain it, with Laszlo (EDK2) and Gerd (SeaBIOS)
as designated reviewers.

Signed-off-by: Philippe Mathieu-Daudé <address@hidden>
Message-Id: <address@hidden>
Acked-by: Eduardo Habkost <address@hidden>
Reviewed-by: Gerd Hoffmann <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>


  Commit: 36ea397956c169aa79db9487de2ea65a938a13e9
      
https://github.com/qemu/qemu/commit/36ea397956c169aa79db9487de2ea65a938a13e9
  Author: Marc-André Lureau <address@hidden>
  Date:   2018-11-27 (Tue, 27 Nov 2018)

  Changed paths:
    M backends/hostmem-memfd.c
    M qemu-options.hx

  Log Message:
  -----------
  hostmem-memfd: honour share=on/off property

The share=on/off property is used to modified mmap() MAP_SHARED
setting. Make it on by default for convenience and compatibility
reasons.

Signed-off-by: Marc-André Lureau <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>


  Commit: 86100290cb6600b3d65e0794b45c1b82ead99411
      
https://github.com/qemu/qemu/commit/86100290cb6600b3d65e0794b45c1b82ead99411
  Author: Marc-André Lureau <address@hidden>
  Date:   2018-11-28 (Wed, 28 Nov 2018)

  Changed paths:
    M backends/hostmem-file.c
    M backends/hostmem-memfd.c

  Log Message:
  -----------
  hostmem: no need to check for host_memory_backend_mr_inited() in alloc()

memfd_backend_memory_alloc/file_backend_memory_alloc both needlessly
are are calling host_memory_backend_mr_inited() which creates an
illusion that alloc could be called multiple times but it isn't, it's
called once from UserCreatable complete().

Suggested-by: Igor Mammedov <address@hidden>
Signed-off-by: Marc-André Lureau <address@hidden>
Reviewed-by: Igor Mammedov <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>


  Commit: c56606684ad253fad1fc160a225295bcfb3fba14
      
https://github.com/qemu/qemu/commit/c56606684ad253fad1fc160a225295bcfb3fba14
  Author: Peter Maydell <address@hidden>
  Date:   2018-11-28 (Wed, 28 Nov 2018)

  Changed paths:
    M MAINTAINERS
    M backends/hostmem-file.c
    M backends/hostmem-memfd.c
    M cpus.c
    M hw/display/virtio-gpu.c
    M hw/intc/s390_flic_kvm.c
    M hw/nvram/eeprom93xx.c
    M hw/nvram/fw_cfg.c
    M hw/pci/msix.c
    M hw/pci/pci.c
    M hw/pci/shpc.c
    M hw/scsi/lsi53c895a.c
    M hw/scsi/scsi-bus.c
    M hw/timer/twl92230.c
    M hw/usb/redirect.c
    M hw/virtio/virtio.c
    M include/migration/vmstate.h
    M migration/savevm.c
    M migration/vmstate-types.c
    M migration/vmstate.c
    M qemu-options.hx
    M scripts/checkpatch.pl
    M target/alpha/machine.c
    M target/arm/machine.c
    M target/hppa/machine.c
    M target/i386/kvm.c
    M target/i386/translate.c
    M target/mips/machine.c
    M target/openrisc/machine.c
    M target/ppc/machine.c
    M target/sparc/machine.c
    M tests/vhost-user-bridge.c
    M vl.c

  Log Message:
  -----------
  Merge remote-tracking branch 'remotes/bonzini/tags/for-upstream' into staging

* lsi HBA reselection fix (George)
* Small cleanups (Li Qiang)
* bugfixes for vhost-user-bridge and hostmem (Marc-André)
* single-thread TCG fix (me)
* VMX migration blocker (me)
* target/i386 fix for LOCK (Richard)
* MAINTAINERS update (Philippe, Thomas)

# gpg: Signature made Wed 28 Nov 2018 10:51:36 GMT
# gpg:                using RSA key BFFBD25F78C7AE83
# gpg: Good signature from "Paolo Bonzini <address@hidden>"
# gpg:                 aka "Paolo Bonzini <address@hidden>"
# Primary key fingerprint: 46F5 9FBD 57D6 12E7 BFD4  E2F7 7E15 100C CD36 69B1
#      Subkey fingerprint: F133 3857 4B66 2389 866C  7682 BFFB D25F 78C7 AE83

* remotes/bonzini/tags/for-upstream:
  hostmem: no need to check for host_memory_backend_mr_inited() in alloc()
  hostmem-memfd: honour share=on/off property
  MAINTAINERS: Add an entry for the Firmware Configuration (fw_cfg) device
  MAINTAINERS: Add some missing entries related to accelerators
  target/i386: Generate #UD when applying LOCK to a register destination
  checkpatch: g_test_message does not need a trailing newline
  vl.c: remove outdated comment
  vhost-user-bridge: fix recvmsg iovlen
  vl: Improve error message when we can't load fw_cfg from file
  vmstate: constify VMStateField
  migration: savevm: consult migration blockers
  lsi: Reselection needed to remove pending commands from queue
  cpus: run work items for all vCPUs if single-threaded
  target/i386: kvm: add VMX migration blocker

Signed-off-by: Peter Maydell <address@hidden>


Compare: https://github.com/qemu/qemu/compare/039d4e3df004...c56606684ad2
      **NOTE:** This service has been marked for deprecation: 
https://developer.github.com/changes/2018-04-25-github-services-deprecation/

      Functionality will be removed from GitHub.com on January 31st, 2019.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]