[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 00/22] Memory/IOMMU patches, part 2: unassigned acce
From: |
Paolo Bonzini |
Subject: |
[Qemu-devel] [PATCH 00/22] Memory/IOMMU patches, part 2: unassigned access detection |
Date: |
Fri, 24 May 2013 19:05:35 +0200 |
This is part 2 of the memory/IOMMU patches. These reorganize the
handling of unassigned accesses so that they are propagated as
errors during I/O dispatch. In the end, a return value is added to
address_space_rw/read/write. This is particularly useful when an IOMMU
is available, because it lets devices detect faulting accesses.
Compared to v1, there is no special casing of the "unassigned" dummy
section and subpages are handled correctly. Most of the patches are new.
The updated full series, including the IOMMU and ref/unref patches, is
available at refs/heads/iommu on my github repository.
Paolo
Paolo Bonzini (22):
exec: eliminate io_mem_ram
exec: drop useless #if
cputlb: simplify tlb_set_page
exec: make io_mem_unassigned private
exec: do not use error_mem_read
memory: dispatch unassigned accesses based on .valid.accepts
memory: add address_space_translate
memory: move unassigned_mem_ops to memory.c
memory: assign MemoryRegionOps to all regions
exec: expect mr->ops to be initialized for ROM
exec: introduce memory_access_is_direct
exec: introduce memory_access_size
memory: export memory_region_access_valid to exec.c
exec: implement .valid.accepts for subpages
memory: add address_space_access_valid
memory: accept mismatching sizes in memory_region_access_valid
memory: add big endian support to access_with_adjusted_size
memory: split accesses even when the old MMIO callbacks are used
memory: correctly handle endian-swapped 64-bit accesses
exec: just use io_mem_read/io_mem_write for 8-byte I/O accesses
memory: propagate errors on I/O dispatch
memory: add return value to address_space_rw/read/write
cputlb.c | 31 ++-
dma-helpers.c | 5 +
exec.c | 412 ++++++++++++++++++++--------------------
include/exec/cpu-common.h | 2 -
include/exec/cputlb.h | 12 +-
include/exec/exec-all.h | 6 +-
include/exec/memory-internal.h | 5 +
include/exec/memory.h | 58 ++++--
include/exec/softmmu_template.h | 36 +---
include/sysemu/dma.h | 3 +-
memory.c | 215 +++++++++++++--------
translate-all.c | 6 +-
12 files changed, 419 insertions(+), 372 deletions(-)
--
1.8.1.4
- [Qemu-devel] [PATCH 00/22] Memory/IOMMU patches, part 2: unassigned access detection,
Paolo Bonzini <=
- [Qemu-devel] [PATCH 02/22] exec: drop useless #if, Paolo Bonzini, 2013/05/24
- [Qemu-devel] [PATCH 01/22] exec: eliminate io_mem_ram, Paolo Bonzini, 2013/05/24
- [Qemu-devel] [PATCH 03/22] cputlb: simplify tlb_set_page, Paolo Bonzini, 2013/05/24
- [Qemu-devel] [PATCH 04/22] exec: make io_mem_unassigned private, Paolo Bonzini, 2013/05/24
- [Qemu-devel] [PATCH 05/22] exec: do not use error_mem_read, Paolo Bonzini, 2013/05/24
- [Qemu-devel] [PATCH 06/22] memory: dispatch unassigned accesses based on .valid.accepts, Paolo Bonzini, 2013/05/24
- [Qemu-devel] [PATCH 08/22] memory: move unassigned_mem_ops to memory.c, Paolo Bonzini, 2013/05/24
- [Qemu-devel] [PATCH 07/22] memory: add address_space_translate, Paolo Bonzini, 2013/05/24
- [Qemu-devel] [PATCH 09/22] memory: assign MemoryRegionOps to all regions, Paolo Bonzini, 2013/05/24
- [Qemu-devel] [PATCH 11/22] exec: introduce memory_access_is_direct, Paolo Bonzini, 2013/05/24