All of lore.kernel.org
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH 00/22] Memory/IOMMU patches, part 2: unassigned access detection
@ 2013-05-24 17:05 Paolo Bonzini
  2013-05-24 17:05 ` [Qemu-devel] [PATCH 01/22] exec: eliminate io_mem_ram Paolo Bonzini
                   ` (22 more replies)
  0 siblings, 23 replies; 24+ messages in thread
From: Paolo Bonzini @ 2013-05-24 17:05 UTC (permalink / raw)
  To: qemu-devel; +Cc: peter.maydell

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

^ permalink raw reply	[flat|nested] 24+ messages in thread

end of thread, other threads:[~2013-05-24 22:06 UTC | newest]

Thread overview: 24+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-05-24 17:05 [Qemu-devel] [PATCH 00/22] Memory/IOMMU patches, part 2: unassigned access detection Paolo Bonzini
2013-05-24 17:05 ` [Qemu-devel] [PATCH 01/22] exec: eliminate io_mem_ram Paolo Bonzini
2013-05-24 17:05 ` [Qemu-devel] [PATCH 02/22] exec: drop useless #if Paolo Bonzini
2013-05-24 17:05 ` [Qemu-devel] [PATCH 03/22] cputlb: simplify tlb_set_page Paolo Bonzini
2013-05-24 17:05 ` [Qemu-devel] [PATCH 04/22] exec: make io_mem_unassigned private Paolo Bonzini
2013-05-24 17:05 ` [Qemu-devel] [PATCH 05/22] exec: do not use error_mem_read Paolo Bonzini
2013-05-24 17:05 ` [Qemu-devel] [PATCH 06/22] memory: dispatch unassigned accesses based on .valid.accepts Paolo Bonzini
2013-05-24 17:05 ` [Qemu-devel] [PATCH 07/22] memory: add address_space_translate Paolo Bonzini
2013-05-24 17:05 ` [Qemu-devel] [PATCH 08/22] memory: move unassigned_mem_ops to memory.c Paolo Bonzini
2013-05-24 17:05 ` [Qemu-devel] [PATCH 09/22] memory: assign MemoryRegionOps to all regions Paolo Bonzini
2013-05-24 17:05 ` [Qemu-devel] [PATCH 10/22] exec: expect mr->ops to be initialized for ROM Paolo Bonzini
2013-05-24 17:05 ` [Qemu-devel] [PATCH 11/22] exec: introduce memory_access_is_direct Paolo Bonzini
2013-05-24 17:05 ` [Qemu-devel] [PATCH 12/22] exec: introduce memory_access_size Paolo Bonzini
2013-05-24 17:05 ` [Qemu-devel] [PATCH 13/22] memory: export memory_region_access_valid to exec.c Paolo Bonzini
2013-05-24 17:05 ` [Qemu-devel] [PATCH 14/22] exec: implement .valid.accepts for subpages Paolo Bonzini
2013-05-24 17:05 ` [Qemu-devel] [PATCH 15/22] memory: add address_space_access_valid Paolo Bonzini
2013-05-24 17:05 ` [Qemu-devel] [PATCH 16/22] memory: accept mismatching sizes in memory_region_access_valid Paolo Bonzini
2013-05-24 17:05 ` [Qemu-devel] [PATCH 17/22] memory: add big endian support to access_with_adjusted_size Paolo Bonzini
2013-05-24 17:05 ` [Qemu-devel] [PATCH 18/22] memory: split accesses even when the old MMIO callbacks are used Paolo Bonzini
2013-05-24 17:05 ` [Qemu-devel] [PATCH 19/22] memory: correctly handle endian-swapped 64-bit accesses Paolo Bonzini
2013-05-24 17:05 ` [Qemu-devel] [PATCH 20/22] exec: just use io_mem_read/io_mem_write for 8-byte I/O accesses Paolo Bonzini
2013-05-24 17:05 ` [Qemu-devel] [PATCH 21/22] memory: propagate errors on I/O dispatch Paolo Bonzini
2013-05-24 17:05 ` [Qemu-devel] [PATCH 22/22] memory: add return value to address_space_rw/read/write Paolo Bonzini
2013-05-24 22:06 ` [Qemu-devel] [PATCH 00/22] Memory/IOMMU patches, part 2: unassigned access detection Richard Henderson

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.