From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45708) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YBqbz-00056z-RD for qemu-devel@nongnu.org; Thu, 15 Jan 2015 15:01:49 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1YBqbw-0004K4-LF for qemu-devel@nongnu.org; Thu, 15 Jan 2015 15:01:47 -0500 Received: from mail-wg0-x22b.google.com ([2a00:1450:400c:c00::22b]:42245) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YBqbw-0004K0-Dz for qemu-devel@nongnu.org; Thu, 15 Jan 2015 15:01:44 -0500 Received: by mail-wg0-f43.google.com with SMTP id k14so16999904wgh.2 for ; Thu, 15 Jan 2015 12:01:43 -0800 (PST) Sender: Paolo Bonzini Message-ID: <54B81CA3.6040300@redhat.com> Date: Thu, 15 Jan 2015 21:01:39 +0100 From: Paolo Bonzini MIME-Version: 1.0 References: <1421334118-3287-1-git-send-email-peter.maydell@linaro.org> <87r3uwf4al.fsf@fimbulvetr.bsc.es> <87oapzdfm2.fsf@fimbulvetr.bsc.es> In-Reply-To: <87oapzdfm2.fsf@fimbulvetr.bsc.es> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Subject: Re: [Qemu-devel] [PATCH 00/15] Clean up cpu-ldst ld/st memory accessors List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Peter Maydell , QEMU Developers , =?UTF-8?B?TGx1w61zIFZpbGFub3Zh?= On 15/01/2015 20:10, Lluís Vilanova wrote: > Peter Maydell writes: > >> On 15 January 2015 at 15:32, Lluís Vilanova 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; }