From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:51980) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Y8wbm-0005l8-Or for qemu-devel@nongnu.org; Wed, 07 Jan 2015 14:49:35 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Y8wbl-000076-59 for qemu-devel@nongnu.org; Wed, 07 Jan 2015 14:49:34 -0500 Received: from mail.kernel.org ([198.145.29.136]:52711) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Y8wbl-00006p-0P for qemu-devel@nongnu.org; Wed, 07 Jan 2015 14:49:33 -0500 Date: Wed, 7 Jan 2015 21:49:26 +0200 From: "Michael S. Tsirkin" Message-ID: <1420660083-9961-9-git-send-email-mst@redhat.com> References: <1420660083-9961-1-git-send-email-mst@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1420660083-9961-1-git-send-email-mst@redhat.com> Subject: [Qemu-devel] [PATCH v3 8/8] qemu_ram_resize: document assumptions List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: Amit Shah , pbonzini@redhat.com, imammedo@redhat.com, dgilbert@redhat.com, Juan Quintela Document that when using qemu_ram_resize for anything mapped into guest address space, it's the job of the resize function to update guest visible state. Signed-off-by: Michael S. Tsirkin --- exec.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/exec.c b/exec.c index 71af138..58ac6d6 100644 --- a/exec.c +++ b/exec.c @@ -1301,6 +1301,13 @@ static int memory_try_enable_merging(void *addr, size_t len) return qemu_madvise(addr, len, QEMU_MADV_MERGEABLE); } +/* Only legal before guest might have detected the memory size: e.g. on + * incoming migration, or right after reset. + * + * As memory core doesn't know how is memory accessed, it is up to + * resize callback to update device state and/or add assertions to detect + * misuse, if necessary. + */ int qemu_ram_resize(ram_addr_t base, ram_addr_t newsize, Error **errp) { RAMBlock *block = find_ram_block(base); -- MST