qemu-commits
[Top][All Lists]
Advanced

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

[Qemu-commits] [qemu/qemu] 8d7b8c: iommu: add is_write as a parameter to


From: GitHub
Subject: [Qemu-commits] [qemu/qemu] 8d7b8c: iommu: add is_write as a parameter to the translat...
Date: Thu, 04 Sep 2014 04:00:08 -0700

  Branch: refs/heads/master
  Home:   https://github.com/qemu/qemu
  Commit: 8d7b8cb9c22b7aa809050800a62e89f869054b35
      
https://github.com/qemu/qemu/commit/8d7b8cb9c22b7aa809050800a62e89f869054b35
  Author: Le Tan <address@hidden>
  Date:   2014-08-28 (Thu, 28 Aug 2014)

  Changed paths:
    M exec.c
    M hw/alpha/typhoon.c
    M hw/pci-host/apb.c
    M hw/ppc/spapr_iommu.c
    M include/exec/memory.h

  Log Message:
  -----------
  iommu: add is_write as a parameter to the translate function of 
MemoryRegionIOMMUOps

Add a bool variable is_write as a parameter to the translate function of
MemoryRegionIOMMUOps to indicate the operation of the access. It can be
used for correct fault reporting from within the callback.
Change the interface of related functions.

Signed-off-by: Le Tan <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>


  Commit: 1da12ec4c81330eb1ed1f29a78854bea87a23595
      
https://github.com/qemu/qemu/commit/1da12ec4c81330eb1ed1f29a78854bea87a23595
  Author: Le Tan <address@hidden>
  Date:   2014-08-28 (Thu, 28 Aug 2014)

  Changed paths:
    M hw/i386/Makefile.objs
    A hw/i386/intel_iommu.c
    A hw/i386/intel_iommu_internal.h
    A include/hw/i386/intel_iommu.h

  Log Message:
  -----------
  intel-iommu: introduce Intel IOMMU (VT-d) emulation

Add support for emulating Intel IOMMU according to the VT-d specification for
the q35 chipset machine. Implement the logics for DMAR (DMA remapping) without
PASID support. The emulation supports register-based invalidation and primary
fault logging.

Signed-off-by: Le Tan <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>


  Commit: d4eb911935640139eef7f1dd5cf9db7141578554
      
https://github.com/qemu/qemu/commit/d4eb911935640139eef7f1dd5cf9db7141578554
  Author: Le Tan <address@hidden>
  Date:   2014-08-28 (Thu, 28 Aug 2014)

  Changed paths:
    M hw/i386/acpi-build.c
    M hw/i386/acpi-defs.h

  Log Message:
  -----------
  intel-iommu: add DMAR table to ACPI tables

Expose Intel IOMMU to the BIOS. If object of TYPE_INTEL_IOMMU_DEVICE exists,
add DMAR table to ACPI RSDT table. For now the DMAR table indicates that there
is only one hardware unit without INTR_REMAP capability on the platform.

Signed-off-by: Le Tan <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>


  Commit: a52a7fdfa7512c9d095f2d5797c3c423dec43dbc
      
https://github.com/qemu/qemu/commit/a52a7fdfa7512c9d095f2d5797c3c423dec43dbc
  Author: Le Tan <address@hidden>
  Date:   2014-08-28 (Thu, 28 Aug 2014)

  Changed paths:
    M hw/core/machine.c
    M hw/pci-host/q35.c
    M include/hw/boards.h
    M include/hw/pci-host/q35.h
    M qemu-options.hx
    M vl.c

  Log Message:
  -----------
  intel-iommu: add Intel IOMMU emulation to q35 and add a machine option 
"iommu" as a switch

Add Intel IOMMU emulation to q35 chipset and expose it to the guest.
1. Add a machine option. Users can use "-machine iommu=on|off" in the command
line to enable/disable Intel IOMMU. The default is off.
2. Accroding to the machine option, q35 will initialize the Intel IOMMU and
use pci_setup_iommu() to setup q35_host_dma_iommu() as the IOMMU function for
the pci bus.
3. q35_host_dma_iommu() will return different address space according to the
bus_num and devfn of the device.

Signed-off-by: Le Tan <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>


  Commit: ac40aa1540baffb4984c80822da618ebb3180a4d
      
https://github.com/qemu/qemu/commit/ac40aa1540baffb4984c80822da618ebb3180a4d
  Author: Le Tan <address@hidden>
  Date:   2014-08-28 (Thu, 28 Aug 2014)

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

  Log Message:
  -----------
  intel-iommu: fix coding style issues around in q35.c and machine.c

Fix coding style issues around in hw/pci-host/q35.c and hw/core/machine.c.

Signed-off-by: Le Tan <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>


  Commit: ed7b8fbcfb888716c850c8f908f5b5329de46d7c
      
https://github.com/qemu/qemu/commit/ed7b8fbcfb888716c850c8f908f5b5329de46d7c
  Author: Le Tan <address@hidden>
  Date:   2014-08-28 (Thu, 28 Aug 2014)

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

  Log Message:
  -----------
  intel-iommu: add supports for queued invalidation interface

Add supports for queued invalidation interface, an expended invalidation
interface with extended capabilities.

Signed-off-by: Le Tan <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>


  Commit: d92fa2dc6e42e8bd8470e69d85141176f98feaea
      
https://github.com/qemu/qemu/commit/d92fa2dc6e42e8bd8470e69d85141176f98feaea
  Author: Le Tan <address@hidden>
  Date:   2014-08-28 (Thu, 28 Aug 2014)

  Changed paths:
    M hw/i386/intel_iommu.c
    M hw/i386/intel_iommu_internal.h
    M hw/pci-host/q35.c
    M include/hw/i386/intel_iommu.h

  Log Message:
  -----------
  intel-iommu: add context-cache to cache context-entry

Add context-cache to cache context-entry encountered on a page-walk. Each
VTDAddressSpace has a member of VTDContextCacheEntry which represents an entry
in the context-cache. Since devices with different bus_num and devfn have their
respective VTDAddressSpace, this will be a good way to reference the cached
entries.
Each VTDContextCacheEntry will have a context_cache_gen and the cached entry
is valid only when context_cache_gen equals IntelIOMMUState.context_cache_gen.

Signed-off-by: Le Tan <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>


  Commit: b5a280c00840f4ebc2f40afb4f74e37e34d19f7c
      
https://github.com/qemu/qemu/commit/b5a280c00840f4ebc2f40afb4f74e37e34d19f7c
  Author: Le Tan <address@hidden>
  Date:   2014-08-28 (Thu, 28 Aug 2014)

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

  Log Message:
  -----------
  intel-iommu: add IOTLB using hash table

Add IOTLB to cache information about the translation of input-addresses. IOTLB
use a GHashTable as cache. The key of the hash table is the logical-OR of gfn
and source id after left-shifting.

Signed-off-by: Le Tan <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>


  Commit: 2d2507ef23d2a28eaeea5507ff4ec68657f1792f
      
https://github.com/qemu/qemu/commit/2d2507ef23d2a28eaeea5507ff4ec68657f1792f
  Author: Michael S. Tsirkin <address@hidden>
  Date:   2014-09-02 (Tue, 02 Sep 2014)

  Changed paths:
    M hw/net/vhost_net.c

  Log Message:
  -----------
  vhost_net: cleanup start/stop condition

Checking vhost device internal state in vhost_net looks like
a layering violation since vhost_net does not
set this flag: it is set and tested by vhost.c.
There seems to be no reason to check this:
caller in virtio net uses its own flag,
vhost_started, to ensure vhost is started/stopped
as appropriate.

Signed-off-by: Michael S. Tsirkin <address@hidden>
Reviewed-by: Amos Kong <address@hidden>


  Commit: fc8342f7589f0ef026cfebf8d6e5eab88323c7cf
      
https://github.com/qemu/qemu/commit/fc8342f7589f0ef026cfebf8d6e5eab88323c7cf
  Author: Gonglei <address@hidden>
  Date:   2014-09-02 (Tue, 02 Sep 2014)

  Changed paths:
    M hw/pci-bridge/ioh3420.h

  Log Message:
  -----------
  ioh3420: remove unused ioh3420_init() declaration

commit 0f9b1771ccc65873a8376c81200a437aa58c2f6d
    ioh3420: Remove obsoleted, unused ioh3420_init function
removed the implementation of ioh3420_init

Drop the declaration from the header file as well.

Signed-off-by: Gonglei <address@hidden>
Reviewed-by: Knut Omang <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>


  Commit: 0187c7989a5cedd4f88bba76839cc9c44fb3fc81
      
https://github.com/qemu/qemu/commit/0187c7989a5cedd4f88bba76839cc9c44fb3fc81
  Author: Michael S. Tsirkin <address@hidden>
  Date:   2014-09-02 (Tue, 02 Sep 2014)

  Changed paths:
    M hw/net/virtio-net.c

  Log Message:
  -----------
  virtio-net: don't run bh on vm stopped

commit 783e7706937fe15523b609b545587a028a2bdd03
    virtio-net: stop/start bh when appropriate

is incomplete: BH might execute within the same main loop iteration but
after vmstop, so in theory, we might trigger an assertion.
I was unable to reproduce this in practice,
but it seems clear enough that the potential is there, so worth fixing.

Cc: address@hidden
Reported-by: Stefan Hajnoczi <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>


  Commit: d7efb7e08e5edaac23b0dc824f72c3f353447c39
      
https://github.com/qemu/qemu/commit/d7efb7e08e5edaac23b0dc824f72c3f353447c39
  Author: Knut Omang <address@hidden>
  Date:   2014-09-02 (Tue, 02 Sep 2014)

  Changed paths:
    M hw/pci/pci.c

  Log Message:
  -----------
  pci: avoid losing config updates to MSI/MSIX cap regs

Since
commit 95d658002401e2e47a5404298ebe9508846e8a39
    msi: Invoke msi/msix_write_config from PCI core
msix config writes are lost, the value written is always 0.

Fix pci_default_write_config to avoid this.

Cc: address@hidden
Signed-off-by: Knut Omang <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>


  Commit: aad4dce934649b3a398396fc2a76f215bb194ea4
      
https://github.com/qemu/qemu/commit/aad4dce934649b3a398396fc2a76f215bb194ea4
  Author: Jason Wang <address@hidden>
  Date:   2014-09-02 (Tue, 02 Sep 2014)

  Changed paths:
    M hw/net/vhost_net.c
    M hw/virtio/vhost.c

  Log Message:
  -----------
  vhost_net: start/stop guest notifiers properly

commit a9f98bb5ebe6fb1869321dcc58e72041ae626ad8 vhost: multiqueue
support changed the order of stopping the device. Previously
vhost_dev_stop would disable backend and only afterwards, unset guest
notifiers. We now unset guest notifiers while vhost is still
active. This can lose interrupts causing guest networking to fail. In
particular, this has been observed during migration.

To adapt this, several other changes are needed:
- remove the hdev->started assertion in vhost.c since we may want to
start the guest notifiers before vhost starts and stop the guest
notifiers after vhost is stopped.
- introduce the vhost_net_set_vq_index() and call it before setting
guest notifiers. This is used to guarantee vhost_net has the correct
virtqueue index when setting guest notifiers.

Cc: address@hidden
Reported-by: "Zhangjie (HZ)" <address@hidden>
Tested-by: William Dauchy <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Jason Wang <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>


  Commit: f2426947decc96bde4f9ea50097dac66a0a48acc
      
https://github.com/qemu/qemu/commit/f2426947decc96bde4f9ea50097dac66a0a48acc
  Author: Peter Maydell <address@hidden>
  Date:   2014-09-02 (Tue, 02 Sep 2014)

  Changed paths:
    M exec.c
    M hw/alpha/typhoon.c
    M hw/core/machine.c
    M hw/i386/Makefile.objs
    M hw/i386/acpi-build.c
    M hw/i386/acpi-defs.h
    A hw/i386/intel_iommu.c
    A hw/i386/intel_iommu_internal.h
    M hw/net/vhost_net.c
    M hw/net/virtio-net.c
    M hw/pci-bridge/ioh3420.h
    M hw/pci-host/apb.c
    M hw/pci-host/q35.c
    M hw/pci/pci.c
    M hw/ppc/spapr_iommu.c
    M hw/virtio/vhost.c
    M include/exec/memory.h
    M include/hw/boards.h
    A include/hw/i386/intel_iommu.h
    M include/hw/pci-host/q35.h
    M qemu-options.hx
    M vl.c

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

pci, pc fixes, features

A bunch of bugfixes - these will make sense for 2.1.1

Initial Intel IOMMU support.

Signed-off-by: Michael S. Tsirkin <address@hidden>

# gpg: Signature made Tue 02 Sep 2014 16:05:04 BST using RSA key ID D28D5469
# gpg: Good signature from "Michael S. Tsirkin <address@hidden>"
# gpg:                 aka "Michael S. Tsirkin <address@hidden>"

* remotes/mst/tags/for_upstream:
  vhost_net: start/stop guest notifiers properly
  pci: avoid losing config updates to MSI/MSIX cap regs
  virtio-net: don't run bh on vm stopped
  ioh3420: remove unused ioh3420_init() declaration
  vhost_net: cleanup start/stop condition
  intel-iommu: add IOTLB using hash table
  intel-iommu: add context-cache to cache context-entry
  intel-iommu: add supports for queued invalidation interface
  intel-iommu: fix coding style issues around in q35.c and machine.c
  intel-iommu: add Intel IOMMU emulation to q35 and add a machine option 
"iommu" as a switch
  intel-iommu: add DMAR table to ACPI tables
  intel-iommu: introduce Intel IOMMU (VT-d) emulation
  iommu: add is_write as a parameter to the translate function of 
MemoryRegionIOMMUOps

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


Compare: https://github.com/qemu/qemu/compare/30eaca3acdf1...f2426947decc

reply via email to

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