On Wed, Jun 25, 2014 at 09:52:09PM +0000, Damjan Marion (damarion) wrote: > > 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.
Hmm I don't get it. Why is it always true for >4G RAM? > > Any advice how to fix this? > >