From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:42132) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YummR-0001I4-Vr for qemu-devel@nongnu.org; Tue, 19 May 2015 15:02:20 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1YummO-0001HI-GB for qemu-devel@nongnu.org; Tue, 19 May 2015 15:02:19 -0400 Received: from mx1.redhat.com ([209.132.183.28]:40793) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YummO-0001HE-BE for qemu-devel@nongnu.org; Tue, 19 May 2015 15:02:16 -0400 Date: Tue, 19 May 2015 20:02:11 +0100 From: "Dr. David Alan Gilbert" Message-ID: <20150519190210.GJ2127@work-vm> References: <1429545445-28216-1-git-send-email-dgilbert@redhat.com> <1429545445-28216-5-git-send-email-dgilbert@redhat.com> <555B80DE.5030403@linux.vnet.ibm.com> <20150519184409.GF2127@work-vm> <555B87B6.9010701@linux.vnet.ibm.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <555B87B6.9010701@linux.vnet.ibm.com> Subject: Re: [Qemu-devel] [PATCH 04/10] Translate offsets to destination address space List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: "Michael R. Hines" Cc: amit.shah@redhat.com, arei.gonglei@huawei.com, mrhines@us.ibm.com, qemu-devel@nongnu.org, quintela@redhat.com * Michael R. Hines (mrhines@linux.vnet.ibm.com) wrote: > On 05/19/2015 01:44 PM, Dr. David Alan Gilbert wrote: > >* Michael R. Hines (mrhines@linux.vnet.ibm.com) wrote: > >>On 04/20/2015 10:57 AM, Dr. David Alan Gilbert (git) wrote: > >>>From: "Dr. David Alan Gilbert" > >>> > >>>The 'offset' field in RDMACompress and 'current_addr' field > >>>in RDMARegister are commented as being offsets within a particular > >>>RAMBlock, however they appear to actually be offsets within the > >>>ram_addr_t space. > >>> > >>>The code currently assumes that the offsets on the source/destination > >>>match, this change removes the need for the assumption for these > >>>structures by translating the addresses into the ram_addr_t space of > >>>the destination host. > >>I don't understand fully: If the offsets are not the same, then > >>why would the RAMBlocks be the same? If a RAMBlock > >>is hot-plugged on one side, shouldn't an identical one be > >>hotplugged on the other side, including the offset into ram_addr_t? > >If a RAMBlock is hotplugged on the source, it's normally passed in on > >the command line at startup on the destination, not hotplugged. > > > >This difference in order of allocation of the RAMBlocks can cause > >the allocation of space in ram_addr_t to be different. > > > >In addition changes between qemu versions as to the order in which > >devices are initialised can cause differences in the allocation in ram_addr_t. > > > >Indeed the allocation algorithm isn't very deterministic, I think it looks > >for the smallest gap that will fit for the allocation. > >Also, lets say that you hot plugged 6 devices, and hot unplugged 5, > >then migrated; on the destination you only see one of them, not the history > >of the other allocations that had to be performed. > > I see ---- so until now, I just got "lucky" that the RAMBlocks were > in the same order with the same offsets =). Yep. Dave -- Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK