qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] vhost-user: broken mem regions


From: Damjan Marion (damarion)
Subject: Re: [Qemu-devel] vhost-user: broken mem regions
Date: Thu, 26 Jun 2014 07:44:24 +0000

On 26 Jun 2014, at 09:13, Michael S. Tsirkin <address@hidden> wrote:

> On Wed, Jun 25, 2014 at 09:52:09PM +0000, Damjan Marion (damarion) wrote:
>> 
>> On 25 Jun 2014, at 18:44, Paolo Bonzini <address@hidden> wrote:
>> 
>>>> nregions: 4
>>>> region:
>>>>    gpa = 0x100000000
>>>>    size = 3221225472
>>>>    ua = 0x2aab6ac00000
>>> 
>>> High memory, above 3 gigabytes.
>>> 
>>>> region:
>>>>    gpa = 0xFFFC0000
>>>>    size = 262144
>>>>    ua = 0x7fc13d200000
>>> 
>>> This is the BIOS.  There shouldn't be any FD for this one, it
>>> is not allocated in hugetlbfs.
>>> 
>>>> region:
>>>>    gpa = 0x0
>>>>    size = 655360
>>>>    ua = 0x2aaaaac00000
>>>> region:
>>>>    gpa = 0xC0000
>>>>    size = 3220439040
>>>>    ua = 0x2aaaaacc0000
>>> 
>>> Together, it's the first 3 GB of memory.
>>> 
>>> I understand now what you mean.  Yeah, the format should be changed
>>> to include the offset (why does vhost-user need the ua at all?
>>> perhaps the offset can replace the ua).
>>> 
>>>> BTW Any idea what to do with region 2, it doesn’t look like the one 
>>>> belonging
>>>> to the same place, but qemu_get_ram_fd() returns same FD for it.
>>> 
>>> This must be a bug.  I would have expected qemu_get_ram_fd to return -1
>>> here, so no descriptor should be passed to vhost-user.
>> 
>> Problem is inside qemu_get_ram_block():
>> 
>> 
>>    if (block && addr - block->offset < block->length) {
>>        goto found;
>>    }
>> 
>> this is true if we have > 4G of RAM allocated.
> 
> Hmm I don't get it. Why is it always true for >4G RAM?

This check assumes that guest memory is mapped to RAM block 
without gaps. as BIOS is mapped to guest address space
near 4G this check will return true if block size is bigger than
BIOS address.

> 
>> 
>> Any advice how to fix this?
>> 
>> 




reply via email to

[Prev in Thread] Current Thread [Next in Thread]