qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Paolo Bonzini <pbonzini@redhat.com>
To: "Peter Maydell" <peter.maydell@linaro.org>,
	"QEMU Developers" <qemu-devel@nongnu.org>,
	"Lluís Vilanova" <vilanova@ac.upc.edu>
Subject: Re: [Qemu-devel] [PATCH 00/15] Clean up cpu-ldst ld/st memory accessors
Date: Thu, 15 Jan 2015 21:01:39 +0100	[thread overview]
Message-ID: <54B81CA3.6040300@redhat.com> (raw)
In-Reply-To: <87oapzdfm2.fsf@fimbulvetr.bsc.es>



On 15/01/2015 20:10, Lluís Vilanova wrote:
> Peter Maydell writes:
> 
>> On 15 January 2015 at 15:32, Lluís Vilanova <vilanova@ac.upc.edu> wrote:
>>> I haven't reviewed the patches, but that's a much appreciated cleanup! I was
>>> also trying to make sense of all the variants while implementing guest memory
>>> access tracing
> 
>> I drew the following terrible ASCII art diagram of the remaining
>> memory access functions...
>> (pastebin link for those without fixed-width mail clients:
>> http://pastebin.ubuntu.com/9757219/ )
> 
>> If anybody feels they can rearrange it into something less
>> confusing do feel free :-)
> 
> Technically, I did not rearrange it :)
> 
>   http://pastebin.ubuntu.com/9757456/
> 
> PS: some info from the original is missing

Removing even more info, ld/st_*_phys is just an optimized version of
address_space_rw/read/write, so we can merge them and get to something
readable...

Paolo


# dot -T pdf -o qemu-mem.pdf qemu-mem.dot
digraph QEMU {
  mr [label="MemoryRegion callbacks"];
  host_mem   [label="ld/st_*_p, memcpy, etc.\n(host memory)"];
  io_mem_mem [label="io_mem_read/write"];
  io_mem     [label="io_read/write*"];
  as_mem     [label="address_space_rw/read/write\nld/st_*_phys"];
  helper_mem [label="helper_ld_*"];
  cpu_phys_mem [label="cpu_physical_memory_rw"];
  cpu_phys_rom [label="cpu_physical_memory_write_rom"];
  dma_mem      [label="dma_memory_rw"];
  cpu_mem      [label="cpu_ld/st_*"];
  tcg          [label="Generated TCG code"];
  cpu_phys_mem_debug [label="cpu_physical_memory_rw_debug"];

  io_mem_mem -> mr;

  io_mem -> io_mem_mem;

  as_mem -> io_mem_mem;
  as_mem -> host_mem;

  helper_mem -> io_mem;
  helper_mem -> host_mem;

  cpu_phys_mem -> as_mem;
  cpu_phys_rom -> host_mem;

  dma_mem -> as_mem;

  cpu_mem -> helper_mem;
  cpu_mem -> host_mem;

  tcg -> helper_mem;
  tcg -> host_mem;

  cpu_phys_mem_debug -> cpu_phys_mem;
  cpu_phys_mem_debug -> cpu_phys_rom;
}

  reply	other threads:[~2015-01-15 20:01 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-01-15 15:01 [Qemu-devel] [PATCH 00/15] Clean up cpu-ldst ld/st memory accessors Peter Maydell
2015-01-15 15:01 ` [Qemu-devel] [PATCH 01/15] cpu_ldst.h: Remove unused ldul_ macros Peter Maydell
2015-01-15 15:01 ` [Qemu-devel] [PATCH 02/15] monitor.c: Use ld*_p() instead of ld*_raw() Peter Maydell
2015-01-15 15:54   ` Alex Bennée
2015-01-15 15:01 ` [Qemu-devel] [PATCH 03/15] target-sparc: Don't use {ld, st}*_raw functions Peter Maydell
2015-01-15 15:55   ` Alex Bennée
2015-01-15 15:01 ` [Qemu-devel] [PATCH 04/15] linux-user/elfload.c: Don't use _raw accessor functions Peter Maydell
2015-01-15 15:56   ` Alex Bennée
2015-01-15 15:01 ` [Qemu-devel] [PATCH 05/15] bsd-user/elfload.c: Don't use ldl() or ldq_raw() Peter Maydell
2015-01-15 15:57   ` Alex Bennée
2015-01-15 15:01 ` [Qemu-devel] [PATCH 06/15] linux-user/vm86.c: Use cpu_ldl_data &c rather than plain ldl &c Peter Maydell
2015-01-15 15:58   ` Alex Bennée
2015-01-15 15:01 ` [Qemu-devel] [PATCH 07/15] linux-user/main.c (m68k): Use get_user_u16 rather than lduw in cpu_loop Peter Maydell
2015-01-15 16:03   ` Alex Bennée
2015-01-15 15:01 ` [Qemu-devel] [PATCH 08/15] target-mips: Don't use _raw load/store accessors Peter Maydell
2015-01-19  9:05   ` Alex Bennée
2015-01-19 10:29     ` Peter Maydell
2015-01-19 15:09       ` Alex Bennée
2015-01-15 15:01 ` [Qemu-devel] [PATCH 09/15] cpu_ldst.h: Drop unused ld/st*_kernel defines Peter Maydell
2015-01-19  9:09   ` Alex Bennée
2015-01-15 15:01 ` [Qemu-devel] [PATCH 10/15] cpu_ldst.h: Remove unused very short ld*/st* defines Peter Maydell
2015-01-19  9:09   ` Alex Bennée
2015-01-15 15:01 ` [Qemu-devel] [PATCH 11/15] cpu_ldst.h: Use inline functions for usermode cpu_ld/st accessors Peter Maydell
2015-01-15 15:01 ` [Qemu-devel] [PATCH 12/15] cpu_ldst_template.h: Use ld*_p directly rather than via ld*_raw macros Peter Maydell
2015-01-15 15:01 ` [Qemu-devel] [PATCH 13/15] cpu_ldst.h: Drop unused _raw macros, saddr() and laddr() Peter Maydell
2015-01-15 15:01 ` [Qemu-devel] [PATCH 14/15] cpu_ldst_template.h: Drop unused cpu_ldfq/stfq/ldfl/stfl accessors Peter Maydell
2015-01-15 15:01 ` [Qemu-devel] [PATCH 15/15] cpu_ldst.h, cpu-all.h, bswap.h: Update documentation on ld/st accessors Peter Maydell
2015-01-15 15:32 ` [Qemu-devel] [PATCH 00/15] Clean up cpu-ldst ld/st memory accessors Lluís Vilanova
2015-01-15 18:24   ` Peter Maydell
2015-01-15 19:10     ` Lluís Vilanova
2015-01-15 20:01       ` Paolo Bonzini [this message]
2015-01-16 18:50 ` Richard Henderson

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=54B81CA3.6040300@redhat.com \
    --to=pbonzini@redhat.com \
    --cc=peter.maydell@linaro.org \
    --cc=qemu-devel@nongnu.org \
    --cc=vilanova@ac.upc.edu \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).