[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] Re: [PATCH] Make page_find() return 0 for too-large add
From: |
Glauber Costa |
Subject: |
Re: [Qemu-devel] Re: [PATCH] Make page_find() return 0 for too-large addresses |
Date: |
Mon, 15 Sep 2008 10:08:24 -0300 |
User-agent: |
Mutt/1.5.18 (2008-05-17) |
On Fri, Sep 12, 2008 at 04:27:30PM -0500, Anthony Liguori wrote:
> 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.
I can be very wrong here, but page_find() does not seem to limit our ability to
run guests if > 4GB, as it is only concerned about the code translation layer.
Differently from phys_page_find(), that does manage physical memory, and even
presented problems about it in the past.
>
> Regards,
>
> Anthony Liguori
>