From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([140.186.70.92]:58127) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QHEBm-0004XW-DD for qemu-devel@nongnu.org; Tue, 03 May 2011 07:54:54 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1QHEBl-0005iv-GR for qemu-devel@nongnu.org; Tue, 03 May 2011 07:54:50 -0400 Received: from cantor2.suse.de ([195.135.220.15]:55913 helo=mx2.suse.de) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QHEBl-0005ib-BB for qemu-devel@nongnu.org; Tue, 03 May 2011 07:54:49 -0400 From: Alexander Graf Date: Tue, 3 May 2011 13:54:46 +0200 Message-Id: <1304423686-18909-2-git-send-email-agraf@suse.de> In-Reply-To: <1304423686-18909-1-git-send-email-agraf@suse.de> References: <1304423686-18909-1-git-send-email-agraf@suse.de> Subject: [Qemu-devel] [PATCH] kvm: ppc: warn user on PAGE_SIZE mismatch List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: QEMU-devel Developers Cc: Scott Wood On PPC, the default PAGE_SIZE is 64kb. Unfortunately, the hardware alignments don't match here: There are RAM and MMIO regions within a single page when it's 64kb in size. So the only way out for now is to tell the user that he should use 4k PAGE_SIZE. This patch gives the user a hint on that, telling him that failing to register a prefix slot is most likely to be caused by mismatching PAGE_SIZE. This way it's also more future-proof, as bigger PAGE_SIZE can easily be supported by other machines then, as long as they stick to 64kb granularities. Signed-off-by: Alexander Graf --- kvm-all.c | 5 +++++ 1 files changed, 5 insertions(+), 0 deletions(-) diff --git a/kvm-all.c b/kvm-all.c index d92c20e..a30865e 100644 --- a/kvm-all.c +++ b/kvm-all.c @@ -590,6 +590,11 @@ static void kvm_set_phys_mem(target_phys_addr_t start_addr, ram_addr_t size, if (err) { fprintf(stderr, "%s: error registering prefix slot: %s\n", __func__, strerror(-err)); +#ifdef TARGET_PPC + fprintf(stderr, "%s: This is probably because your kernel's " \ + "PAGE_SIZE is too big. Please try to use 4k " \ + "PAGE_SIZE!\n", __func__); +#endif abort(); } } -- 1.6.0.2