qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] vhost-user:why region[0] always mmap failed ?
@ 2014-09-17  2:33 Linhaifeng
  2014-10-15 21:28 ` Anshul Makkar
  0 siblings, 1 reply; 3+ messages in thread
From: Linhaifeng @ 2014-09-17  2:33 UTC (permalink / raw)
  To: qemu-devel; +Cc: jerry.lilijun

Hi,

There is two memory regions when receive VHOST_SET_MEM_TABLE message:
region[0]
        gpa = 0x0
        size = 655360
        ua = 0x2aaaaac00000
        offset = 0
region[1]
        gpa = 0xC0000
        size = 2146697216
        ua = 0x2aaaaacc0000
        offset = 786432

region[0] always mmap failed.The user code is :

    for (idx = 0; idx < msg->msg.memory.nregions; idx++) {
        if (msg->fds[idx] > 0) {
            size_t size;
            uint64_t *guest_mem;
            Region *region = &vhost_server->memory.regions[i];

            region->guest_phys_addr = msg->msg.memory.regions[idx].guest_phys_addr;
            region->memory_size = msg->msg.memory.regions[idx].memory_size;
            region->userspace_addr = msg->msg.memory.regions[idx].userspace_addr;
            region->mmap_offset = msg->msg.memory.regions[idx].mmap_offset;
	
            assert(idx < msg->fd_num);
            assert(msg->fds[idx] > 0);

            size = region->memory_size + region->mmap_offset;
            guest_mem = mmap(0, size, PROT_READ | PROT_WRITE, MAP_SHARED, msg->fds[idx], 0);
            if (MAP_FAILED == guest_mem) {
                continue;
            }
            i++;
            guest_mem += (region->mmap_offset / sizeof(*guest_mem));
            region->mmap_addr = (uint64_t)guest_mem;
            vhost_server->memory.nregions++;
        }
    }

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2014-11-01  2:29 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-09-17  2:33 [Qemu-devel] vhost-user:why region[0] always mmap failed ? Linhaifeng
2014-10-15 21:28 ` Anshul Makkar
2014-11-01  2:28   ` Linhaifeng

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).