From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:34142) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aj3Xr-0004lE-AF for qemu-devel@nongnu.org; Thu, 24 Mar 2016 07:35:23 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aj3Xn-0003vH-57 for qemu-devel@nongnu.org; Thu, 24 Mar 2016 07:35:19 -0400 Received: from mx1.redhat.com ([209.132.183.28]:55598) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aj3Xm-0003uU-WB for qemu-devel@nongnu.org; Thu, 24 Mar 2016 07:35:15 -0400 References: <1458768723-89242-1-git-send-email-dingel@linux.vnet.ibm.com> From: Paolo Bonzini Message-ID: <56F3D0EE.4050000@redhat.com> Date: Thu, 24 Mar 2016 12:35:10 +0100 MIME-Version: 1.0 In-Reply-To: <1458768723-89242-1-git-send-email-dingel@linux.vnet.ibm.com> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH] exec.c: Ensure right alignment also for file backed ram List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Dominik Dingel , qemu-devel@nongnu.org Cc: Halil Pasic , Richard Henderson , Peter Crosthwaite On 23/03/2016 22:32, Dominik Dingel wrote: > - page_size = qemu_fd_getpagesize(fd); > - block->mr->align = page_size; > + alignment = MAX(qemu_fd_getpagesize(fd), QEMU_VMALLOC_ALIGN); > + block->mr->align = alignment; > > - if (memory < page_size) { > + if (memory < alignment) { > error_setg(errp, "memory size 0x" RAM_ADDR_FMT " must be equal to " > - "or larger than page size 0x%" PRIx64, > - memory, page_size); > + "or larger than needed alignment 0x%" PRIx64, > + memory, alignment); > goto error; > } Why is this part necessary? On x86 you can have 1 megabyte of RAM, but QEMU_VMALLOC_ALIGN is 2MB. Paolo > - memory = ROUND_UP(memory, page_size); > + memory = ROUND_UP(memory, alignment); >