[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-commits] [qemu/qemu] 4bb571: pci/pcie: don't assume cap id 0 is re
From: |
GitHub |
Subject: |
[Qemu-commits] [qemu/qemu] 4bb571: pci/pcie: don't assume cap id 0 is reserved |
Date: |
Mon, 20 Feb 2017 04:00:12 -0800 |
Branch: refs/heads/master
Home: https://github.com/qemu/qemu
Commit: 4bb571d857d973d9308d9fdb1f48d983d6639bd4
https://github.com/qemu/qemu/commit/4bb571d857d973d9308d9fdb1f48d983d6639bd4
Author: Michael S. Tsirkin <address@hidden>
Date: 2017-02-17 (Fri, 17 Feb 2017)
Changed paths:
M hw/pci/pcie.c
Log Message:
-----------
pci/pcie: don't assume cap id 0 is reserved
VFIO actually wants to create a capability with ID == 0.
This is done to make guest drivers skip the given capability.
pcie_add_capability then trips up on this capability
when looking for end of capability list.
To support this use-case, it's easy enough to switch to
e.g. 0xffffffff for these comparisons - we can be sure
it will never match a 16-bit capability ID.
Signed-off-by: Michael S. Tsirkin <address@hidden>
Reviewed-by: Peter Xu <address@hidden>
Reviewed-by: Alex Williamson <address@hidden>
Commit: 0793169870f376bc9959b7d81df48ab4a90dcceb
https://github.com/qemu/qemu/commit/0793169870f376bc9959b7d81df48ab4a90dcceb
Author: Fam Zheng <address@hidden>
Date: 2017-02-17 (Fri, 17 Feb 2017)
Changed paths:
M hw/block/dataplane/virtio-blk.c
M hw/block/virtio-blk.c
M hw/scsi/virtio-scsi-dataplane.c
M hw/scsi/virtio-scsi.c
M hw/virtio/virtio.c
M include/hw/virtio/virtio-blk.h
M include/hw/virtio/virtio-scsi.h
M include/hw/virtio/virtio.h
Log Message:
-----------
virtio: Report real progress in VQ aio poll handler
In virtio_queue_host_notifier_aio_poll, not all "!virtio_queue_empty()"
cases are making true progress.
Currently the offending one is virtio-scsi event queue, whose handler
does nothing if no event is pending. As a result aio_poll() will spin on
the "non-empty" VQ and take 100% host CPU.
Fix this by reporting actual progress from virtio queue aio handlers.
Reported-by: Ed Swierk <address@hidden>
Signed-off-by: Fam Zheng <address@hidden>
Tested-by: Ed Swierk <address@hidden>
Reviewed-by: Stefan Hajnoczi <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>
Commit: 79c0f397feaea37992500eafd933e301c2306410
https://github.com/qemu/qemu/commit/79c0f397feaea37992500eafd933e301c2306410
Author: Haozhong Zhang <address@hidden>
Date: 2017-02-17 (Fri, 17 Feb 2017)
Changed paths:
A docs/nvdimm.txt
Log Message:
-----------
docs: add document to explain the usage of vNVDIMM
Signed-off-by: Haozhong Zhang <address@hidden>
Reviewed-by: Xiao Guangrong <address@hidden>
Reviewed-by: Stefan Hajnoczi <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>
Commit: 1d8280c18f96f0cd96d1e7acd62f7250c4da1a84
https://github.com/qemu/qemu/commit/1d8280c18f96f0cd96d1e7acd62f7250c4da1a84
Author: Paolo Bonzini <address@hidden>
Date: 2017-02-17 (Fri, 17 Feb 2017)
Changed paths:
M memory.c
Log Message:
-----------
memory: make memory_listener_unregister idempotent
Make it easy to unregister a MemoryListener without tracking whether it
had been registered before.
Signed-off-by: Paolo Bonzini <address@hidden>
Reviewed-by: Philippe Mathieu-Daudé <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>
Commit: e6a830d6eba6ed116a0b4ef5577ca0b46edf4c67
https://github.com/qemu/qemu/commit/e6a830d6eba6ed116a0b4ef5577ca0b46edf4c67
Author: Paolo Bonzini <address@hidden>
Date: 2017-02-17 (Fri, 17 Feb 2017)
Changed paths:
M include/hw/virtio/virtio-access.h
Log Message:
-----------
virtio: add virtio_*_phys_cached
Reviewed-by: Stefan Hajnoczi <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>
Commit: 9796d0ac8fb0a8d522afd409cb25a607eae61617
https://github.com/qemu/qemu/commit/9796d0ac8fb0a8d522afd409cb25a607eae61617
Author: Paolo Bonzini <address@hidden>
Date: 2017-02-17 (Fri, 17 Feb 2017)
Changed paths:
M hw/virtio/virtio.c
Log Message:
-----------
virtio: use address_space_map/unmap to access descriptors
This makes little difference, but it makes the code change smaller
for the next patch that introduces MemoryRegionCache. This is
because map/unmap are similar to MemoryRegionCache init/destroy.
Reviewed-by: Stefan Hajnoczi <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>
Commit: 91047df38dffa80222179f63fbb74c1dfefa25ed
https://github.com/qemu/qemu/commit/91047df38dffa80222179f63fbb74c1dfefa25ed
Author: Paolo Bonzini <address@hidden>
Date: 2017-02-17 (Fri, 17 Feb 2017)
Changed paths:
M exec.c
Log Message:
-----------
exec: make address_space_cache_destroy idempotent
Clear cache->mr so that address_space_cache_destroy does nothing
the second time it is called.
Reviewed-by: Stefan Hajnoczi <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>
Reviewed-by: Philippe Mathieu-Daudé <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>
Commit: 5eba0404b98294906134c06519c272bfb5f50453
https://github.com/qemu/qemu/commit/5eba0404b98294906134c06519c272bfb5f50453
Author: Paolo Bonzini <address@hidden>
Date: 2017-02-17 (Fri, 17 Feb 2017)
Changed paths:
M hw/virtio/virtio.c
M include/exec/memory.h
Log Message:
-----------
virtio: use MemoryRegionCache to access descriptors
For now, the cache is created on every virtqueue_pop. Later on,
direct descriptors will be able to reuse it.
Reviewed-by: Stefan Hajnoczi <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>
Commit: c611c76417f52b335ecaab01c61743e3b705eb7c
https://github.com/qemu/qemu/commit/c611c76417f52b335ecaab01c61743e3b705eb7c
Author: Paolo Bonzini <address@hidden>
Date: 2017-02-17 (Fri, 17 Feb 2017)
Changed paths:
M hw/virtio/virtio.c
M include/hw/virtio/virtio.h
Log Message:
-----------
virtio: add MemoryListener to cache ring translations
The cached translations are RCU-protected to allow efficient use
when processing virtqueues.
Reviewed-by: Stefan Hajnoczi <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>
Commit: 991976f751c98c79bd174f0cd48250ac2120d04c
https://github.com/qemu/qemu/commit/991976f751c98c79bd174f0cd48250ac2120d04c
Author: Paolo Bonzini <address@hidden>
Date: 2017-02-17 (Fri, 17 Feb 2017)
Changed paths:
M hw/virtio/virtio.c
Log Message:
-----------
virtio: use VRingMemoryRegionCaches for descriptor ring
Reviewed-by: Stefan Hajnoczi <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>
Commit: ca0176ad8368668c5ad2b428361652e05984e930
https://github.com/qemu/qemu/commit/ca0176ad8368668c5ad2b428361652e05984e930
Author: Paolo Bonzini <address@hidden>
Date: 2017-02-17 (Fri, 17 Feb 2017)
Changed paths:
M hw/virtio/virtio.c
Log Message:
-----------
virtio: check for vring setup in virtio_queue_update_used_idx
If the vring has not been set up, it is not necessary for vring_used_idx
to do anything (as is already the case when the caller is virtio_load).
This is harmless for now, but it will be a problem when the
MemoryRegionCache has not been set up.
Signed-off-by: Paolo Bonzini <address@hidden>
Reviewed-by: Philippe Mathieu-Daudé <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>
Commit: 97cd965c070152bc626c7507df9fb356bbe1cd81
https://github.com/qemu/qemu/commit/97cd965c070152bc626c7507df9fb356bbe1cd81
Author: Paolo Bonzini <address@hidden>
Date: 2017-02-17 (Fri, 17 Feb 2017)
Changed paths:
M hw/net/virtio-net.c
M hw/virtio/virtio.c
Log Message:
-----------
virtio: use VRingMemoryRegionCaches for avail and used rings
The virtio-net change is necessary because it uses virtqueue_fill
and virtqueue_flush instead of the more convenient virtqueue_push.
Reviewed-by: Stefan Hajnoczi <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>
Commit: b4b9862b536f41fcdf6ad193a306a852c5b5b71a
https://github.com/qemu/qemu/commit/b4b9862b536f41fcdf6ad193a306a852c5b5b71a
Author: Michael S. Tsirkin <address@hidden>
Date: 2017-02-17 (Fri, 17 Feb 2017)
Changed paths:
M hw/virtio/virtio.c
Log Message:
-----------
virtio: Fix no interrupt when not creating msi controller
For ARM virt machine, if we use virt-2.7 which will not create ITS node,
the virtio-net can not recieve interrupts so it can't get ip address
through dhcp.
This fixes commit 83d768b(virtio: set ISR on dataplane notifications).
Signed-off-by: Shannon Zhao <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>
Commit: d4e9b75aa03d3f0e08fa431998764d7f72d78a48
https://github.com/qemu/qemu/commit/d4e9b75aa03d3f0e08fa431998764d7f72d78a48
Author: Peter Xu <address@hidden>
Date: 2017-02-17 (Fri, 17 Feb 2017)
Changed paths:
M hw/pci/pcie.c
Log Message:
-----------
pcie: simplify pcie_add_capability()
When we add PCIe extended capabilities, we should be following the rule
that we add the head extended cap (at offset 0x100) first, then the rest
of them. Meanwhile, we are always adding new capability bits at the end
of the list. Here the "next" looks meaningless in all cases since it
should always be zero (along with the "header").
Simplify the function a bit, and it looks more readable now.
Signed-off-by: Peter Xu <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>
Commit: 3213835720f0b79ea60ead8e81f356695a446d1d
https://github.com/qemu/qemu/commit/3213835720f0b79ea60ead8e81f356695a446d1d
Author: Peter Xu <address@hidden>
Date: 2017-02-17 (Fri, 17 Feb 2017)
Changed paths:
M hw/vfio/common.c
M hw/vfio/trace-events
Log Message:
-----------
vfio: trace map/unmap for notify as well
We traces its range, but we don't know whether it's a MAP/UNMAP. Let's
dump it as well.
Acked-by: Alex Williamson <address@hidden>
Reviewed-by: David Gibson <address@hidden>
Signed-off-by: Peter Xu <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>
Commit: 4a4b88fbe1a95e80a2e29830e69e1deded407fc1
https://github.com/qemu/qemu/commit/4a4b88fbe1a95e80a2e29830e69e1deded407fc1
Author: Peter Xu <address@hidden>
Date: 2017-02-17 (Fri, 17 Feb 2017)
Changed paths:
M hw/vfio/common.c
Log Message:
-----------
vfio: introduce vfio_get_vaddr()
A cleanup for vfio_iommu_map_notify(). Now we will fetch vaddr even if
the operation is unmap, but it won't hurt much.
One thing to mention is that we need the RCU read lock to protect the
whole translation and map/unmap procedure.
Acked-by: Alex Williamson <address@hidden>
Reviewed-by: David Gibson <address@hidden>
Signed-off-by: Peter Xu <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>
Commit: dfbd90e5b9b772b1c5a52bad9f6dbabb385a7dc2
https://github.com/qemu/qemu/commit/dfbd90e5b9b772b1c5a52bad9f6dbabb385a7dc2
Author: Peter Xu <address@hidden>
Date: 2017-02-17 (Fri, 17 Feb 2017)
Changed paths:
M hw/vfio/common.c
Log Message:
-----------
vfio: allow to notify unmap for very large region
Linux vfio driver supports to do VFIO_IOMMU_UNMAP_DMA for a very big
region. This can be leveraged by QEMU IOMMU implementation to cleanup
existing page mappings for an entire iova address space (by notifying
with an IOTLB with extremely huge addr_mask). However current
vfio_iommu_map_notify() does not allow that. It make sure that all the
translated address in IOTLB is falling into RAM range.
The check makes sense, but it should only be a sensible checker for
mapping operations, and mean little for unmap operations.
This patch moves this check into map logic only, so that we'll get
faster unmap handling (no need to translate again), and also we can then
better support unmapping a very big region when it covers non-ram ranges
or even not-existing ranges.
Acked-by: Alex Williamson <address@hidden>
Signed-off-by: Peter Xu <address@hidden>
Reviewed-by: David Gibson <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>
Commit: 3b40f0e53c2ebfcec8aabab7e91c11c5bd441ac0
https://github.com/qemu/qemu/commit/3b40f0e53c2ebfcec8aabab7e91c11c5bd441ac0
Author: Aviv Ben-David <address@hidden>
Date: 2017-02-17 (Fri, 17 Feb 2017)
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 "caching-mode" option
This capability asks the guest to invalidate cache before each map operation.
We can use this invalidation to trap map operations in the hypervisor.
Signed-off-by: Aviv Ben-David <address@hidden>
[peterx: using "caching-mode" instead of "cache-mode" to align with spec]
[peterx: re-write the subject to make it short and clear]
Reviewed-by: Jason Wang <address@hidden>
Signed-off-by: Peter Xu <address@hidden>
Signed-off-by: Aviv Ben-David <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>
Commit: 046ab7e9beea6abdcc016556f82d7075e4ff0155
https://github.com/qemu/qemu/commit/046ab7e9beea6abdcc016556f82d7075e4ff0155
Author: Peter Xu <address@hidden>
Date: 2017-02-17 (Fri, 17 Feb 2017)
Changed paths:
M hw/i386/intel_iommu.c
Log Message:
-----------
intel_iommu: simplify irq region translation
Now we have a standalone memory region for MSI, all the irq region
requests should be redirected there. Cleaning up the block with an
assertion instead.
Reviewed-by: Jason Wang <address@hidden>
Signed-off-by: Peter Xu <address@hidden>
Reviewed-by: David Gibson <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>
Commit: 6e9055641b7a02131a7879369bcd1fe6c8ccb503
https://github.com/qemu/qemu/commit/6e9055641b7a02131a7879369bcd1fe6c8ccb503
Author: Peter Xu <address@hidden>
Date: 2017-02-17 (Fri, 17 Feb 2017)
Changed paths:
M hw/i386/intel_iommu.c
Log Message:
-----------
intel_iommu: renaming gpa to iova where proper
There are lots of places in current intel_iommu.c codes that named
"iova" as "gpa". It is really confusing to use a name "gpa" in these
places (which is very easily to be understood as "Guest Physical
Address", while it's not). To make the codes (much) easier to be read, I
decided to do this once and for all.
No functional change is made. Only literal ones.
Reviewed-by: Jason Wang <address@hidden>
Signed-off-by: Peter Xu <address@hidden>
Reviewed-by: David Gibson <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>
Commit: bc535e59c4ec7d98a8011a3ffb6580fa04b7745c
https://github.com/qemu/qemu/commit/bc535e59c4ec7d98a8011a3ffb6580fa04b7745c
Author: Peter Xu <address@hidden>
Date: 2017-02-17 (Fri, 17 Feb 2017)
Changed paths:
M hw/i386/intel_iommu.c
M hw/i386/trace-events
Log Message:
-----------
intel_iommu: convert dbg macros to traces for inv
VT-d codes are still using static DEBUG_INTEL_IOMMU macro. That's not
good, and we should end the day when we need to recompile the code
before getting useful debugging information for vt-d. Time to switch to
the trace system. This is the first patch to do it.
Signed-off-by: Peter Xu <address@hidden>
Reviewed-by: Jason Wang <address@hidden>
Reviewed-by: David Gibson <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>
Commit: 6c441e1d613a1f91a53bd215f2ed1f9559194f21
https://github.com/qemu/qemu/commit/6c441e1d613a1f91a53bd215f2ed1f9559194f21
Author: Peter Xu <address@hidden>
Date: 2017-02-17 (Fri, 17 Feb 2017)
Changed paths:
M hw/i386/intel_iommu.c
M hw/i386/trace-events
Log Message:
-----------
intel_iommu: convert dbg macros to trace for trans
Another patch to convert the DPRINTF() stuffs. This patch focuses on the
address translation path and caching.
Signed-off-by: Peter Xu <address@hidden>
Reviewed-by: Jason Wang <address@hidden>
Reviewed-by: David Gibson <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>
Commit: 7e58326ad7e79b8c5dbcc6f24e9dc1523d84c11b
https://github.com/qemu/qemu/commit/7e58326ad7e79b8c5dbcc6f24e9dc1523d84c11b
Author: Peter Xu <address@hidden>
Date: 2017-02-17 (Fri, 17 Feb 2017)
Changed paths:
M hw/i386/intel_iommu.c
Log Message:
-----------
intel_iommu: vtd_slpt_level_shift check level
This helps in debugging incorrect level passed in.
Reviewed-by: Jason Wang <address@hidden>
Signed-off-by: Peter Xu <address@hidden>
Reviewed-by: David Gibson <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>
Commit: d514cfd763b271b4e97a9fc6adaabc8fd50084ab
https://github.com/qemu/qemu/commit/d514cfd763b271b4e97a9fc6adaabc8fd50084ab
Author: Peter Maydell <address@hidden>
Date: 2017-02-20 (Mon, 20 Feb 2017)
Changed paths:
A docs/nvdimm.txt
M exec.c
M hw/block/dataplane/virtio-blk.c
M hw/block/virtio-blk.c
M hw/i386/intel_iommu.c
M hw/i386/intel_iommu_internal.h
M hw/i386/trace-events
M hw/net/virtio-net.c
M hw/pci/pcie.c
M hw/scsi/virtio-scsi-dataplane.c
M hw/scsi/virtio-scsi.c
M hw/vfio/common.c
M hw/vfio/trace-events
M hw/virtio/virtio.c
M include/exec/memory.h
M include/hw/i386/intel_iommu.h
M include/hw/virtio/virtio-access.h
M include/hw/virtio/virtio-blk.h
M include/hw/virtio/virtio-scsi.h
M include/hw/virtio/virtio.h
M memory.c
Log Message:
-----------
Merge remote-tracking branch 'remotes/mst/tags/for_upstream' into staging
virtio, pci: fixes, features
virtio is using region caches for performance
iommu support for IOTLBs
misc fixes
Signed-off-by: Michael S. Tsirkin <address@hidden>
# gpg: Signature made Fri 17 Feb 2017 19:53:02 GMT
# gpg: using RSA key 0x281F0DB8D28D5469
# gpg: Good signature from "Michael S. Tsirkin <address@hidden>"
# gpg: aka "Michael S. Tsirkin <address@hidden>"
# 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: (23 commits)
intel_iommu: vtd_slpt_level_shift check level
intel_iommu: convert dbg macros to trace for trans
intel_iommu: convert dbg macros to traces for inv
intel_iommu: renaming gpa to iova where proper
intel_iommu: simplify irq region translation
intel_iommu: add "caching-mode" option
vfio: allow to notify unmap for very large region
vfio: introduce vfio_get_vaddr()
vfio: trace map/unmap for notify as well
pcie: simplify pcie_add_capability()
virtio: Fix no interrupt when not creating msi controller
virtio: use VRingMemoryRegionCaches for avail and used rings
virtio: check for vring setup in virtio_queue_update_used_idx
virtio: use VRingMemoryRegionCaches for descriptor ring
virtio: add MemoryListener to cache ring translations
virtio: use MemoryRegionCache to access descriptors
exec: make address_space_cache_destroy idempotent
virtio: use address_space_map/unmap to access descriptors
virtio: add virtio_*_phys_cached
memory: make memory_listener_unregister idempotent
...
Signed-off-by: Peter Maydell <address@hidden>
Compare: https://github.com/qemu/qemu/compare/ad584d37f2a8...d514cfd763b2
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Qemu-commits] [qemu/qemu] 4bb571: pci/pcie: don't assume cap id 0 is reserved,
GitHub <=