Branch: refs/heads/master
  Home:   https://github.com/qemu/qemu
  Commit: dda53ee93af90547912f0ea99ca85deba49fd364
      
https://github.com/qemu/qemu/commit/dda53ee93af90547912f0ea99ca85deba49fd364
  Author: Zihan Yang <whois.zihan.y...@gmail.com>
  Date:   2018-05-23 (Wed, 23 May 2018)

  Changed paths:
    M hw/pci-host/q35.c

  Log Message:
  -----------
  hw/pci-host/q35: Replace hardcoded value with macro

During smram region initialization some addresses are hardcoded,
replace them with macro to be more clear to readers.

Previous patch forgets about one value and exceeds the line
limit of 90 characters. The v2 breaks a few long lines

Signed-off-by: Zihan Yang <whois.zihan.y...@gmail.com>
Reviewed-by: Michael S. Tsirkin <m...@redhat.com>
Signed-off-by: Michael S. Tsirkin <m...@redhat.com>


  Commit: 50a6fa8f939a3448967592e5136afcc063f9a25d
      
https://github.com/qemu/qemu/commit/50a6fa8f939a3448967592e5136afcc063f9a25d
  Author: Gerd Hoffmann <kra...@redhat.com>
  Date:   2018-05-23 (Wed, 23 May 2018)

  Changed paths:
    M docs/specs/pci-ids.txt
    M include/hw/pci/pci.h

  Log Message:
  -----------
  allocate pci id for mdpy

mdpy is a sample pci device for vfio-mdev.  Not (yet) merged upstream,
patch available here:

https://www.kraxel.org/cgit/linux/commit/?h=vfio-sample-display&id=6fd86cff3d7df38ab89625b16fdd6434b1c18749

Cc: Alex Williamson <alex.william...@redhat.com>
Signed-off-by: Gerd Hoffmann <kra...@redhat.com>
Reviewed-by: Michael S. Tsirkin <m...@redhat.com>
Signed-off-by: Michael S. Tsirkin <m...@redhat.com>


  Commit: b7b126442977dcfa5641e38b084bd13a0b366cff
      
https://github.com/qemu/qemu/commit/b7b126442977dcfa5641e38b084bd13a0b366cff
  Author: Jonathan Helman <jonathan.hel...@oracle.com>
  Date:   2018-05-23 (Wed, 23 May 2018)

  Changed paths:
    M docs/virtio-balloon-stats.txt
    M hw/virtio/virtio-balloon.c
    M include/standard-headers/linux/virtio_balloon.h

  Log Message:
  -----------
  virtio-balloon: add hugetlb page allocation counts

qemu should read and report hugetlb page allocation
counts exported in the following kernel patch:

    commit 4c3ca37c4a4394978fd0f005625f6064ed2b9a64
    Author: Jonathan Helman <jonathan.hel...@oracle.com>
    Date:   Mon Mar 19 11:00:35 2018 -0700

    virtio_balloon: export hugetlb page allocation counts

    Export the number of successful and failed hugetlb page
    allocations via the virtio balloon driver. These 2 counts
    come directly from the vm_events HTLB_BUDDY_PGALLOC and
    HTLB_BUDDY_PGALLOC_FAIL.

Signed-off-by: Jonathan Helman <jonathan.hel...@oracle.com>
Reviewed-by: Michael S. Tsirkin <m...@redhat.com>
Signed-off-by: Michael S. Tsirkin <m...@redhat.com>
Reviewed-by: Jason Wang <jasow...@redhat.com>


  Commit: ffcbbe722fcb3c162318cba1b94a115498e25acd
      
https://github.com/qemu/qemu/commit/ffcbbe722fcb3c162318cba1b94a115498e25acd
  Author: Peter Xu <pet...@redhat.com>
  Date:   2018-05-23 (Wed, 23 May 2018)

  Changed paths:
    M hw/virtio/trace-events
    M hw/virtio/vhost.c

  Log Message:
  -----------
  vhost: add trace for IOTLB miss

Add some trace points for IOTLB translation for vhost. After vhost-user
is setup, the only IO path that QEMU will participate should be the
IOMMU translation, so it'll be good we can track this with explicit
timestamps when needed to see how long time we take to do the
translation, and whether there's anything stuck inside.  It might be
useful for triaging vhost-user problems.

Signed-off-by: Peter Xu <pet...@redhat.com>
Reviewed-by: Michael S. Tsirkin <m...@redhat.com>
Signed-off-by: Michael S. Tsirkin <m...@redhat.com>


  Commit: ec7b10800c3c91afe6777ea13068ccf280a741ce
      
https://github.com/qemu/qemu/commit/ec7b10800c3c91afe6777ea13068ccf280a741ce
  Author: Michael S. Tsirkin <m...@redhat.com>
  Date:   2018-05-23 (Wed, 23 May 2018)

  Changed paths:
    M scripts/update-linux-headers.sh

  Log Message:
  -----------
  update-linux-headers.sh: drop kvm_para.h hacks

It turns out (as will be clear from follow-up patches)
we do not really need any kvm para macros host side
for now, except on x86, and there we need it
unconditionally whether we run on kvm or we don't.

Import the x86 asm/kvm_para.h into standard-headers,
follow-up patches remove a bunch of code using this.

Signed-off-by: Michael S. Tsirkin <m...@redhat.com>


  Commit: d49bd359d186a83fbb66a23dafd2d6664b79aa6a
      
https://github.com/qemu/qemu/commit/d49bd359d186a83fbb66a23dafd2d6664b79aa6a
  Author: Michael S. Tsirkin <m...@redhat.com>
  Date:   2018-05-23 (Wed, 23 May 2018)

  Changed paths:
    A include/standard-headers/asm-x86/kvm_para.h

  Log Message:
  -----------
  include/standard-headers: add asm-x86/kvm_para.h

Import asm-x86/kvm_para.h from linux where it can
be easily used on Linux and non-Linux platforms.

Signed-off-by: Michael S. Tsirkin <m...@redhat.com>


  Commit: 1814eab67398029a927847dfd29198a26aeaf7d8
      
https://github.com/qemu/qemu/commit/1814eab67398029a927847dfd29198a26aeaf7d8
  Author: Michael S. Tsirkin <m...@redhat.com>
  Date:   2018-05-23 (Wed, 23 May 2018)

  Changed paths:
    M hw/i386/kvm/clock.c
    M include/sysemu/kvm.h
    M target/i386/cpu.c
    M target/i386/cpu.h
    M target/i386/kvm.c
    M target/i386/kvm_i386.h

  Log Message:
  -----------
  x86/cpu: use standard-headers/asm-x86.kvm_para.h

Switch to the header we imported from Linux,
this allows us to drop a hack in kvm_i386.h.
More code will be dropped in the next patch.

Signed-off-by: Michael S. Tsirkin <m...@redhat.com>


  Commit: fe7f9b8e6e095bc2842180fe72dd45158678eeb7
      
https://github.com/qemu/qemu/commit/fe7f9b8e6e095bc2842180fe72dd45158678eeb7
  Author: Michael S. Tsirkin <m...@redhat.com>
  Date:   2018-05-23 (Wed, 23 May 2018)

  Changed paths:
    R linux-headers/asm-arm/kvm_para.h
    R linux-headers/asm-arm64/kvm_para.h
    R linux-headers/asm-generic/kvm_para.h
    R linux-headers/asm-mips/kvm_para.h
    R linux-headers/asm-powerpc/epapr_hcalls.h
    R linux-headers/asm-powerpc/kvm_para.h
    R linux-headers/asm-s390/kvm_para.h
    R linux-headers/asm-x86/kvm_para.h
    R linux-headers/linux/kvm_para.h

  Log Message:
  -----------
  linux-headers: drop kvm_para.h

Unused now and can be removed.

Signed-off-by: Michael S. Tsirkin <m...@redhat.com>


  Commit: 9882d3ef3c43fc89a0e1d43d7b52720092bef29b
      
https://github.com/qemu/qemu/commit/9882d3ef3c43fc89a0e1d43d7b52720092bef29b
  Author: Michael S. Tsirkin <m...@redhat.com>
  Date:   2018-05-23 (Wed, 23 May 2018)

  Changed paths:
    M scripts/update-linux-headers.sh

  Log Message:
  -----------
  update-linux-headers.sh: unistd.h, kvm consistency

Rework the update script slightly, add the unistd.h header and its
dependencies on all architectures.

This also removes the IA64 and MIPS from a KVM blacklist:
Linux dropped IA64, and there was never a reason to
exclude MIPS from kvm specifically - it was
excluded due to dependency of its unistd.h on sgidefs.h,
which we also import.

Cc: Dr. David Alan Gilbert <dgilb...@redhat.com>
Signed-off-by: Michael S. Tsirkin <m...@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <f4...@amsat.org>
Reviewed-by: Philippe Mathieu-Daudé <f4...@amsat.org>


  Commit: 43370036476707479a03a90e7e1c526dffbaad4b
      
https://github.com/qemu/qemu/commit/43370036476707479a03a90e7e1c526dffbaad4b
  Author: Michael S. Tsirkin <m...@redhat.com>
  Date:   2018-05-23 (Wed, 23 May 2018)

  Changed paths:
    A linux-headers/asm-arm/bitsperlong.h
    A linux-headers/asm-arm64/bitsperlong.h
    A linux-headers/asm-generic/bitsperlong.h
    A linux-headers/asm-generic/unistd.h
    A linux-headers/asm-mips/bitsperlong.h
    A linux-headers/asm-mips/sgidefs.h
    M linux-headers/asm-mips/unistd.h
    A linux-headers/asm-powerpc/bitsperlong.h
    A linux-headers/asm-s390/bitsperlong.h
    M linux-headers/asm-s390/unistd_32.h
    M linux-headers/asm-s390/unistd_64.h
    A linux-headers/asm-x86/bitsperlong.h

  Log Message:
  -----------
  linux-headers: add unistd.h on all arches

This adds unistd.h on ARM64 and MIPS and their dependencies.

Updated to Linux 4.17-rc2.

Signed-off-by: Michael S. Tsirkin <m...@redhat.com>


  Commit: 85e99cf80bec66adf39f948db824a0216daaa486
      
https://github.com/qemu/qemu/commit/85e99cf80bec66adf39f948db824a0216daaa486
  Author: Michael S. Tsirkin <m...@redhat.com>
  Date:   2018-05-23 (Wed, 23 May 2018)

  Changed paths:
    M linux-headers/asm-mips/kvm.h

  Log Message:
  -----------
  linux-headers: add kvm header for mips

kvm header for MIPS was manually excluded from auto-updates.

Update it now to 4.17-rc2.

Signed-off-by: Michael S. Tsirkin <m...@redhat.com>


  Commit: 703878e2e0975123b1a89a006c0204c469333278
      
https://github.com/qemu/qemu/commit/703878e2e0975123b1a89a006c0204c469333278
  Author: Tiwei Bie <tiwei....@intel.com>
  Date:   2018-05-23 (Wed, 23 May 2018)

  Changed paths:
    M net/vhost-user.c

  Log Message:
  -----------
  vhost-user: add Net prefix to internal state structure

We are going to introduce a shared vhost user state which
will be named as 'VhostUserState'. So add 'Net' prefix to
the existing internal state structure in the vhost-user
netdev to avoid conflict.

Signed-off-by: Tiwei Bie <tiwei....@intel.com>
Reviewed-by: Michael S. Tsirkin <m...@redhat.com>
Signed-off-by: Michael S. Tsirkin <m...@redhat.com>


  Commit: 1f3a4519b1c107b5db2434b30638353978366b4d
      
https://github.com/qemu/qemu/commit/1f3a4519b1c107b5db2434b30638353978366b4d
  Author: Tiwei Bie <tiwei....@intel.com>
  Date:   2018-05-23 (Wed, 23 May 2018)

  Changed paths:
    M hw/virtio/vhost-user.c

  Log Message:
  -----------
  vhost-user: support receiving file descriptors in slave_read

Signed-off-by: Tiwei Bie <tiwei....@intel.com>
Reviewed-by: Michael S. Tsirkin <m...@redhat.com>
Signed-off-by: Michael S. Tsirkin <m...@redhat.com>


  Commit: 6f80e6170ede13605817e5c0ca73db0de7bdf261
      
https://github.com/qemu/qemu/commit/6f80e6170ede13605817e5c0ca73db0de7bdf261
  Author: Tiwei Bie <tiwei....@intel.com>
  Date:   2018-05-23 (Wed, 23 May 2018)

  Changed paths:
    M hw/virtio/virtio-pci.c
    M hw/virtio/virtio.c
    M include/hw/virtio/virtio-bus.h
    M include/hw/virtio/virtio.h

  Log Message:
  -----------
  virtio: support setting memory region based host notifier

This patch introduces the support for setting memory region
based host notifiers for virtio device. This is helpful when
using a hardware accelerator for a virtio device, because
hardware heavily depends on the notification, this will allow
the guest driver in the VM to notify the hardware directly.

Signed-off-by: Tiwei Bie <tiwei....@intel.com>
Reviewed-by: Michael S. Tsirkin <m...@redhat.com>
Signed-off-by: Michael S. Tsirkin <m...@redhat.com>


  Commit: 9952e807fd016c95f50372536f1ac65a601be6e4
      
https://github.com/qemu/qemu/commit/9952e807fd016c95f50372536f1ac65a601be6e4
  Author: Dr. David Alan Gilbert <dgilb...@redhat.com>
  Date:   2018-05-23 (Wed, 23 May 2018)

  Changed paths:
    M hw/virtio/vhost-user.c

  Log Message:
  -----------
  vhost-user+postcopy: Use qemu_set_nonblock

Use qemu_set_nonblock rather than a simple fcntl; cleaner
and I have no reason to change other flags.

Reported-by: Peter Maydell <peter.mayd...@linaro.org>
Signed-off-by: Dr. David Alan Gilbert <dgilb...@redhat.com>
Reviewed-by: Eric Blake <ebl...@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefa...@redhat.com>
Reviewed-by: Michael S. Tsirkin <m...@redhat.com>
Signed-off-by: Michael S. Tsirkin <m...@redhat.com>


  Commit: e3638151da2a314dda3ed862cf707b8b66aca4cb
      
https://github.com/qemu/qemu/commit/e3638151da2a314dda3ed862cf707b8b66aca4cb
  Author: Dr. David Alan Gilbert <dgilb...@redhat.com>
  Date:   2018-05-23 (Wed, 23 May 2018)

  Changed paths:
    M contrib/libvhost-user/libvhost-user.c

  Log Message:
  -----------
  libvhost-user: Send messages with no data

The response to a VHOST_USER_POSTCOPY_ADVISE contains a fd but doesn't
actually contain any data.   FIx vu_message_write so that it doesn't
do a 0-byte write() call, since this was ending up with rc=0
that was confusing the error handling code.

Signed-off-by: Dr. David Alan Gilbert <dgilb...@redhat.com>
Reviewed-by: Marc-André Lureau <marcandre.lur...@redhat.com>
Reviewed-by: Michael S. Tsirkin <m...@redhat.com>
Signed-off-by: Michael S. Tsirkin <m...@redhat.com>


  Commit: ebf2a499a5c43d5eaee2b70ab5ae655af49d935c
      
https://github.com/qemu/qemu/commit/ebf2a499a5c43d5eaee2b70ab5ae655af49d935c
  Author: Richard Henderson <richard.hender...@linaro.org>
  Date:   2018-05-23 (Wed, 23 May 2018)

  Changed paths:
    M hw/virtio/vhost-user.c

  Log Message:
  -----------
  hw/virtio: Fix brace Werror with clang 6.0.0

The warning is

hw/virtio/vhost-user.c:1319:26: error: suggest braces
      around initialization of subobject [-Werror,-Wmissing-braces]
    VhostUserMsg msg = { 0 };
                   ^
                   {}

While the original code is correct, and technically exactly correct
as per ISO C89, both GCC and Clang support plain empty set of braces
as an extension.

Cc: Michael S. Tsirkin <m...@redhat.com>
Signed-off-by: Richard Henderson <richard.hender...@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <f4...@amsat.org>
Reviewed-by: Eric Blake <ebl...@redhat.com>
Reviewed-by: Michael S. Tsirkin <m...@redhat.com>
Signed-off-by: Michael S. Tsirkin <m...@redhat.com>


  Commit: 7d405b2ffbcbee4c622deb6c0ab4f5649de7fc2b
      
https://github.com/qemu/qemu/commit/7d405b2ffbcbee4c622deb6c0ab4f5649de7fc2b
  Author: Changpeng Liu <changpeng....@intel.com>
  Date:   2018-05-23 (Wed, 23 May 2018)

  Changed paths:
    M contrib/vhost-user-blk/vhost-user-blk.c

  Log Message:
  -----------
  contrib/vhost-user-blk: enable protocol feature for vhost-user-blk

This patch reports the protocol feature that is only advertised by
QEMU if the device implements the config ops.

Signed-off-by: Changpeng Liu <changpeng....@intel.com>
Reviewed-by: Stefan Hajnoczi <stefa...@redhat.com>
Reviewed-by: Michael S. Tsirkin <m...@redhat.com>
Signed-off-by: Michael S. Tsirkin <m...@redhat.com>


  Commit: 1a97a478e69534f70ebbed1f27c315dbdc23f94f
      
https://github.com/qemu/qemu/commit/1a97a478e69534f70ebbed1f27c315dbdc23f94f
  Author: Ross Zwisler <ross.zwis...@linux.intel.com>
  Date:   2018-05-23 (Wed, 23 May 2018)

  Changed paths:
    M hw/mem/nvdimm.c
    M include/hw/mem/nvdimm.h

  Log Message:
  -----------
  nvdimm: fix typo in label-size definition

Signed-off-by: Ross Zwisler <ross.zwis...@linux.intel.com>
Fixes: commit da6789c27c2e ("nvdimm: add a macro for property "label-size"")
Reviewed-by: Stefan Hajnoczi <stefa...@redhat.com>
Reviewed-by: Igor Mammedov <imamm...@redhat.com>
Cc: Haozhong Zhang <haozhong.zh...@intel.com>
Cc: Michael S. Tsirkin <m...@redhat.com>
Cc: Stefan Hajnoczi <stefa...@redhat.com>
Reviewed-by: Michael S. Tsirkin <m...@redhat.com>
Signed-off-by: Michael S. Tsirkin <m...@redhat.com>


  Commit: 36d2d52bdb45f5b753a61fdaf0fe7891f1f5b61d
      
https://github.com/qemu/qemu/commit/36d2d52bdb45f5b753a61fdaf0fe7891f1f5b61d
  Author: Peter Xu <pet...@redhat.com>
  Date:   2018-05-23 (Wed, 23 May 2018)

  Changed paths:
    M hw/i386/intel_iommu.c

  Log Message:
  -----------
  intel-iommu: send PSI always even if across PDEs

SECURITY IMPLICATION: without this patch, any guest with both assigned
device and a vIOMMU might encounter stale IO page mappings even if guest
has already unmapped the page, which may lead to guest memory
corruption.  The stale mappings will only be limited to the guest's own
memory range, so it should not affect the host memory or other guests on
the host.

During IOVA page table walking, there is a special case when the PSI
covers one whole PDE (Page Directory Entry, which contains 512 Page
Table Entries) or more.  In the past, we skip that entry and we don't
notify the IOMMU notifiers.  This is not correct.  We should send UNMAP
notification to registered UNMAP notifiers in this case.

For UNMAP only notifiers, this might cause IOTLBs cached in the devices
even if they were already invalid.  For MAP/UNMAP notifiers like
vfio-pci, this will cause stale page mappings.

This special case doesn't trigger often, but it is very easy to be
triggered by nested device assignments, since in that case we'll
possibly map the whole L2 guest RAM region into the device's IOVA
address space (several GBs at least), which is far bigger than normal
kernel driver usages of the device (tens of MBs normally).

Without this patch applied to L1 QEMU, nested device assignment to L2
guests will dump some errors like:

qemu-system-x86_64: VFIO_MAP_DMA: -17
qemu-system-x86_64: vfio_dma_map(0x557305420c30, 0xad000, 0x1000,
              0x7f89a920d000) = -17 (File exists)

CC: QEMU Stable <qemu-sta...@nongnu.org>
Acked-by: Jason Wang <jasow...@redhat.com>
[peterx: rewrite the commit message]
Signed-off-by: Peter Xu <pet...@redhat.com>
Reviewed-by: Michael S. Tsirkin <m...@redhat.com>
Signed-off-by: Michael S. Tsirkin <m...@redhat.com>


  Commit: b4a4ba0d68f50f218ee3957b6638dbee32a5eeef
      
https://github.com/qemu/qemu/commit/b4a4ba0d68f50f218ee3957b6638dbee32a5eeef
  Author: Peter Xu <pet...@redhat.com>
  Date:   2018-05-23 (Wed, 23 May 2018)

  Changed paths:
    M hw/i386/intel_iommu.c
    M include/hw/i386/intel_iommu.h

  Log Message:
  -----------
  intel-iommu: remove IntelIOMMUNotifierNode

That is not really necessary.  Removing that node struct and put the
list entry directly into VTDAddressSpace.  It simplfies the code a lot.
Since at it, rename the old notifiers_list into vtd_as_with_notifiers.

CC: QEMU Stable <qemu-sta...@nongnu.org>
Signed-off-by: Peter Xu <pet...@redhat.com>
Reviewed-by: Michael S. Tsirkin <m...@redhat.com>
Signed-off-by: Michael S. Tsirkin <m...@redhat.com>


  Commit: 1d9efa73e12ddf361ea997c2d532cc4afa6674d1
      
https://github.com/qemu/qemu/commit/1d9efa73e12ddf361ea997c2d532cc4afa6674d1
  Author: Peter Xu <pet...@redhat.com>
  Date:   2018-05-23 (Wed, 23 May 2018)

  Changed paths:
    M hw/i386/intel_iommu.c
    M include/hw/i386/intel_iommu.h

  Log Message:
  -----------
  intel-iommu: add iommu lock

SECURITY IMPLICATION: this patch fixes a potential race when multiple
threads access the IOMMU IOTLB cache.

Add a per-iommu big lock to protect IOMMU status.  Currently the only
thing to be protected is the IOTLB/context cache, since that can be
accessed even without BQL, e.g., in IO dataplane.

Note that we don't need to protect device page tables since that's fully
controlled by the guest kernel.  However there is still possibility that
malicious drivers will program the device to not obey the rule.  In that
case QEMU can't really do anything useful, instead the guest itself will
be responsible for all uncertainties.

CC: QEMU Stable <qemu-sta...@nongnu.org>
Reported-by: Fam Zheng <f...@redhat.com>
Signed-off-by: Peter Xu <pet...@redhat.com>
Reviewed-by: Michael S. Tsirkin <m...@redhat.com>
Signed-off-by: Michael S. Tsirkin <m...@redhat.com>


  Commit: 4f8a62a933a79094e44bc1b16b63bb23e62d67b4
      
https://github.com/qemu/qemu/commit/4f8a62a933a79094e44bc1b16b63bb23e62d67b4
  Author: Peter Xu <pet...@redhat.com>
  Date:   2018-05-23 (Wed, 23 May 2018)

  Changed paths:
    M hw/i386/intel_iommu.c
    M include/hw/i386/intel_iommu.h

  Log Message:
  -----------
  intel-iommu: only do page walk for MAP notifiers

For UNMAP-only IOMMU notifiers, we don't need to walk the page tables.
Fasten that procedure by skipping the page table walk.  That should
boost performance for UNMAP-only notifiers like vhost.

CC: QEMU Stable <qemu-sta...@nongnu.org>
Signed-off-by: Peter Xu <pet...@redhat.com>
Reviewed-by: Michael S. Tsirkin <m...@redhat.com>
Signed-off-by: Michael S. Tsirkin <m...@redhat.com>


  Commit: fe215b0cbb8c1f4b4af0a64aa5c02042080dd537
      
https://github.com/qemu/qemu/commit/fe215b0cbb8c1f4b4af0a64aa5c02042080dd537
  Author: Peter Xu <pet...@redhat.com>
  Date:   2018-05-23 (Wed, 23 May 2018)

  Changed paths:
    M hw/i386/intel_iommu.c

  Log Message:
  -----------
  intel-iommu: introduce vtd_page_walk_info

During the recursive page walking of IOVA page tables, some stack
variables are constant variables and never changed during the whole page
walking procedure.  Isolate them into a struct so that we don't need to
pass those contants down the stack every time and multiple times.

CC: QEMU Stable <qemu-sta...@nongnu.org>
Signed-off-by: Peter Xu <pet...@redhat.com>
Reviewed-by: Michael S. Tsirkin <m...@redhat.com>
Signed-off-by: Michael S. Tsirkin <m...@redhat.com>


  Commit: 2f764fa87d2a81812b313dd6d998e10126292653
      
https://github.com/qemu/qemu/commit/2f764fa87d2a81812b313dd6d998e10126292653
  Author: Peter Xu <pet...@redhat.com>
  Date:   2018-05-23 (Wed, 23 May 2018)

  Changed paths:
    M hw/i386/intel_iommu.c

  Log Message:
  -----------
  intel-iommu: pass in address space when page walk

We pass in the VTDAddressSpace too.  It'll be used in the follow up
patches.

CC: QEMU Stable <qemu-sta...@nongnu.org>
Signed-off-by: Peter Xu <pet...@redhat.com>
Reviewed-by: Michael S. Tsirkin <m...@redhat.com>
Signed-off-by: Michael S. Tsirkin <m...@redhat.com>


  Commit: d118c06ebbee2d23ddf873cae4a809311aa61310
      
https://github.com/qemu/qemu/commit/d118c06ebbee2d23ddf873cae4a809311aa61310
  Author: Peter Xu <pet...@redhat.com>
  Date:   2018-05-23 (Wed, 23 May 2018)

  Changed paths:
    M hw/i386/intel_iommu.c
    M hw/i386/trace-events

  Log Message:
  -----------
  intel-iommu: trace domain id during page walk

This patch only modifies the trace points.

Previously we were tracing page walk levels.  They are redundant since
we have page mask (size) already.  Now we trace something much more
useful which is the domain ID of the page walking.  That can be very
useful when we trace more than one devices on the same system, so that
we can know which map is for which domain.

CC: QEMU Stable <qemu-sta...@nongnu.org>
Signed-off-by: Peter Xu <pet...@redhat.com>
Reviewed-by: Michael S. Tsirkin <m...@redhat.com>
Signed-off-by: Michael S. Tsirkin <m...@redhat.com>


  Commit: eecf5eedbdc0fc04f39abcf3afeedfbf21b25ca4
      
https://github.com/qemu/qemu/commit/eecf5eedbdc0fc04f39abcf3afeedfbf21b25ca4
  Author: Peter Xu <pet...@redhat.com>
  Date:   2018-05-23 (Wed, 23 May 2018)

  Changed paths:
    M MAINTAINERS
    A include/qemu/iova-tree.h
    M util/Makefile.objs
    A util/iova-tree.c

  Log Message:
  -----------
  util: implement simple iova tree

Introduce a simplest iova tree implementation based on GTree.

CC: QEMU Stable <qemu-sta...@nongnu.org>
Signed-off-by: Peter Xu <pet...@redhat.com>
Reviewed-by: Michael S. Tsirkin <m...@redhat.com>
Signed-off-by: Michael S. Tsirkin <m...@redhat.com>


  Commit: 63b88968f139b6a77f2f81e6f1eedf70c0170a85
      
https://github.com/qemu/qemu/commit/63b88968f139b6a77f2f81e6f1eedf70c0170a85
  Author: Peter Xu <pet...@redhat.com>
  Date:   2018-05-23 (Wed, 23 May 2018)

  Changed paths:
    M hw/i386/intel_iommu.c
    M hw/i386/trace-events
    M include/hw/i386/intel_iommu.h

  Log Message:
  -----------
  intel-iommu: rework the page walk logic

This patch fixes a potential small window that the DMA page table might
be incomplete or invalid when the guest sends domain/context
invalidations to a device.  This can cause random DMA errors for
assigned devices.

This is a major change to the VT-d shadow page walking logic. It
includes but is not limited to:

- For each VTDAddressSpace, now we maintain what IOVA ranges we have
  mapped and what we have not.  With that information, now we only send
  MAP or UNMAP when necessary.  Say, we don't send MAP notifies if we
  know we have already mapped the range, meanwhile we don't send UNMAP
  notifies if we know we never mapped the range at all.

- Introduce vtd_sync_shadow_page_table[_range] APIs so that we can call
  in any places to resync the shadow page table for a device.

- When we receive domain/context invalidation, we should not really run
  the replay logic, instead we use the new sync shadow page table API to
  resync the whole shadow page table without unmapping the whole
  region.  After this change, we'll only do the page walk once for each
  domain invalidations (before this, it can be multiple, depending on
  number of notifiers per address space).

While at it, the page walking logic is also refactored to be simpler.

CC: QEMU Stable <qemu-sta...@nongnu.org>
Reported-by: Jintack Lim <jint...@cs.columbia.edu>
Tested-by: Jintack Lim <jint...@cs.columbia.edu>
Signed-off-by: Peter Xu <pet...@redhat.com>
Reviewed-by: Michael S. Tsirkin <m...@redhat.com>
Signed-off-by: Michael S. Tsirkin <m...@redhat.com>


  Commit: 45eabb2ede0caf2f3dd0e1ace045d0915c53ef4d
      
https://github.com/qemu/qemu/commit/45eabb2ede0caf2f3dd0e1ace045d0915c53ef4d
  Author: Peter Maydell <peter.mayd...@linaro.org>
  Date:   2018-05-24 (Thu, 24 May 2018)

  Changed paths:
    M MAINTAINERS
    M contrib/libvhost-user/libvhost-user.c
    M contrib/vhost-user-blk/vhost-user-blk.c
    M docs/specs/pci-ids.txt
    M docs/virtio-balloon-stats.txt
    M hw/i386/intel_iommu.c
    M hw/i386/kvm/clock.c
    M hw/i386/trace-events
    M hw/mem/nvdimm.c
    M hw/pci-host/q35.c
    M hw/virtio/trace-events
    M hw/virtio/vhost-user.c
    M hw/virtio/vhost.c
    M hw/virtio/virtio-balloon.c
    M hw/virtio/virtio-pci.c
    M hw/virtio/virtio.c
    M include/hw/i386/intel_iommu.h
    M include/hw/mem/nvdimm.h
    M include/hw/pci/pci.h
    M include/hw/virtio/virtio-bus.h
    M include/hw/virtio/virtio.h
    A include/qemu/iova-tree.h
    A include/standard-headers/asm-x86/kvm_para.h
    M include/standard-headers/linux/virtio_balloon.h
    M include/sysemu/kvm.h
    A linux-headers/asm-arm/bitsperlong.h
    R linux-headers/asm-arm/kvm_para.h
    A linux-headers/asm-arm64/bitsperlong.h
    R linux-headers/asm-arm64/kvm_para.h
    A linux-headers/asm-generic/bitsperlong.h
    R linux-headers/asm-generic/kvm_para.h
    A linux-headers/asm-generic/unistd.h
    A linux-headers/asm-mips/bitsperlong.h
    M linux-headers/asm-mips/kvm.h
    R linux-headers/asm-mips/kvm_para.h
    A linux-headers/asm-mips/sgidefs.h
    M linux-headers/asm-mips/unistd.h
    A linux-headers/asm-powerpc/bitsperlong.h
    R linux-headers/asm-powerpc/epapr_hcalls.h
    R linux-headers/asm-powerpc/kvm_para.h
    A linux-headers/asm-s390/bitsperlong.h
    R linux-headers/asm-s390/kvm_para.h
    M linux-headers/asm-s390/unistd_32.h
    M linux-headers/asm-s390/unistd_64.h
    A linux-headers/asm-x86/bitsperlong.h
    R linux-headers/asm-x86/kvm_para.h
    R linux-headers/linux/kvm_para.h
    M net/vhost-user.c
    M scripts/update-linux-headers.sh
    M target/i386/cpu.c
    M target/i386/cpu.h
    M target/i386/kvm.c
    M target/i386/kvm_i386.h
    M util/Makefile.objs
    A util/iova-tree.c

  Log Message:
  -----------
  Merge remote-tracking branch 'remotes/mst/tags/for_upstream' into staging

pc, pci, virtio, vhost: fixes, features

Beginning of merging vDPA, new PCI ID, a new virtio balloon stat, intel
iommu rework fixing a couple of security problems (no CVEs yet), fixes
all over the place.

Signed-off-by: Michael S. Tsirkin <m...@redhat.com>

# gpg: Signature made Wed 23 May 2018 15:41:32 BST
# gpg:                using RSA key 281F0DB8D28D5469
# gpg: Good signature from "Michael S. Tsirkin <m...@kernel.org>"
# gpg:                 aka "Michael S. Tsirkin <m...@redhat.com>"
# Primary key fingerprint: 0270 606B 6F3C DF3D 0B17  0970 C350 3912 AFBE 8E67
#      Subkey fingerprint: 5D09 FD08 71C8 F85B 94CA  8A0D 281F 0DB8 D28D 5469

* remotes/mst/tags/for_upstream: (28 commits)
  intel-iommu: rework the page walk logic
  util: implement simple iova tree
  intel-iommu: trace domain id during page walk
  intel-iommu: pass in address space when page walk
  intel-iommu: introduce vtd_page_walk_info
  intel-iommu: only do page walk for MAP notifiers
  intel-iommu: add iommu lock
  intel-iommu: remove IntelIOMMUNotifierNode
  intel-iommu: send PSI always even if across PDEs
  nvdimm: fix typo in label-size definition
  contrib/vhost-user-blk: enable protocol feature for vhost-user-blk
  hw/virtio: Fix brace Werror with clang 6.0.0
  libvhost-user: Send messages with no data
  vhost-user+postcopy: Use qemu_set_nonblock
  virtio: support setting memory region based host notifier
  vhost-user: support receiving file descriptors in slave_read
  vhost-user: add Net prefix to internal state structure
  linux-headers: add kvm header for mips
  linux-headers: add unistd.h on all arches
  update-linux-headers.sh: unistd.h, kvm consistency
  ...

Signed-off-by: Peter Maydell <peter.mayd...@linaro.org>


Compare: https://github.com/qemu/qemu/compare/37cbe4da617e...45eabb2ede0c
      **NOTE:** This service 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