On 25 Jun 2014, at 18:44, Paolo Bonzini <pbonz...@redhat.com> 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. Any advice how to fix this?