qemu-devel.nongnu.org archive mirror
 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; 25+ 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] 25+ messages in thread
* [Qemu-devel] [PULL 00/22] Memory/IOMMU patches, part 2: unassigned access detection
@ 2013-05-30 21:03 Paolo Bonzini
  2013-05-30 21:03 ` [Qemu-devel] [PATCH 05/22] exec: do not use error_mem_read Paolo Bonzini
  0 siblings, 1 reply; 25+ messages in thread
From: Paolo Bonzini @ 2013-05-30 21:03 UTC (permalink / raw)
  To: qemu-devel

Anthony,

the following changes since commit 6a4e17711442849bf2cc731ccddef5a2a2d92d29:

  Remove Sun4c, Sun4d and a few CPUs (2013-05-26 11:37:58 +0000)

are available in the git repository at:
  git://github.com/bonzini/qemu.git iommu-for-anthony

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.

All patches were reviewed by rth.

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                          |  415 +++++++++++++++++++--------------------
 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, 422 insertions(+), 372 deletions(-)
-- 
1.7.4.1

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

end of thread, other threads:[~2013-05-30 21:04 UTC | newest]

Thread overview: 25+ 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
  -- strict thread matches above, loose matches on Subject: below --
2013-05-30 21:03 [Qemu-devel] [PULL " Paolo Bonzini
2013-05-30 21:03 ` [Qemu-devel] [PATCH 05/22] exec: do not use error_mem_read Paolo Bonzini

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).