From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from [140.186.70.92] (port=37654 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1OanqK-0007gx-Tb for qemu-devel@nongnu.org; Mon, 19 Jul 2010 06:45:06 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.69) (envelope-from ) id 1OanqJ-0000Ab-ML for qemu-devel@nongnu.org; Mon, 19 Jul 2010 06:45:04 -0400 Received: from mx1.redhat.com ([209.132.183.28]:1027) by eggs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1OanqJ-0000AP-FW for qemu-devel@nongnu.org; Mon, 19 Jul 2010 06:45:03 -0400 Date: Mon, 19 Jul 2010 13:45:00 +0300 From: Gleb Natapov Message-ID: <20100719104500.GS4689@redhat.com> References: <20100717133930.GC19767@amd.home.annexia.org> <20100719101504.GA5216@amd.home.annexia.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20100719101504.GA5216@amd.home.annexia.org> Subject: [Qemu-devel] Re: [PATCH 0/2 version 2] fw_cfg: Implement fast "DMA"-type operation for rapidly copying in kernel, initrd [etc] into the guest List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: "Richard W.M. Jones" Cc: qemu-devel@nongnu.org, agraf@suse.de On Mon, Jul 19, 2010 at 11:15:04AM +0100, Richard W.M. Jones wrote: > > This is the second version of the patch. > > We don't use the word "blit" any more, instead this is replaced with > "DMA", even though it's not quite like a DMA operation on physical > hardware. > You ignored the whole discussion above. Calling things DMA will not make them so. You haven't event implemented Alexander's suggestion to poll for DMA completion which will at lease make the interface to the guest palatable. > The guest writes the physical address and size to two 32 bit fw_cfg > variables. Then when the guest issues an ordinary read operation with > the extra FW_CFG_DMA flag set, instead of returning a single byte, > qemu "DMA"s the requested data into the guest memory. > > The guest shouldn't be able to request a dma_size larger than the > amount of data in the entry. The patch checks this and adjusts > dma_size. > > The guest might select a dma_addr which does not correspond to > physical memory (or dma_addr + dma_size). Reading the code it seems > to be that cpu_physical_memory_write catches this case and will > abort() (so the guest is only harming itself). However I'd quite like > an expert opinion on this ... > > Rich. > > -- > Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones > virt-top is 'top' for virtual machines. Tiny program with many > powerful monitoring features, net stats, disk stats, logging, etc. > http://et.redhat.com/~rjones/virt-top -- Gleb.