|
From: | Anthony Liguori |
Subject: | Re: [Qemu-devel] Re: [PATCH] Make page_find() return 0 for too-large addresses |
Date: | Fri, 12 Sep 2008 16:27:30 -0500 |
User-agent: | Thunderbird 2.0.0.16 (X11/20080723) |
Eduardo Habkost wrote:
On Fri, Sep 12, 2008 at 05:14:06PM -0300, Eduardo Habkost wrote:On Fri, Sep 12, 2008 at 02:50:33PM -0500, Anthony Liguori wrote:Eduardo Habkost wrote:On some cases, such as under KVM, tb_invalidate_phys_page_range() may be called for large addresses, when qemu is configured to more than 4GB of RAM. On these cases, qemu was crashing because it was using an index too large for l1_map[], that supports only 32-bit addresses when compiling without CONFIG_USER_ONLY.<snip>
So... are you building with kqemu enabled? If so, TARGET_PHYS_ADDR_SPACE_BITS will be 32. So I don't think this sort of work-around is correct. A better solution would be to validate ram_size against TARGET_PHYS_ADDR_SPACE_BITS.
To put it another way, if you have kqemu enabled (at build time), you cannot use > ~4GB of memory for the guest.
Regards, Anthony Liguori
[Prev in Thread] | Current Thread | [Next in Thread] |