hello,I am confused when I read vhost-user source code in qemu.I know vhost-user app shared memory with qemu by mmap,but why it can use fd which is belong to qemu? relative code: qemu code in function vhost_user_set_mem_table fd = memory_region_get_fd(mr); if (fd > 0) { msg.payload.memory.regions[fd_num].userspace_addr = reg->userspace_addr; msg.payload.memory.regions[fd_num].memory_size = reg->memory_size; msg.payload.memory.regions[fd_num].guest_phys_addr = reg->guest_phys_addr; msg.payload.memory.regions[fd_num].mmap_offset = offset; assert(fd_num < VHOST_MEMORY_MAX_NREGIONS); fds[fd_num++] = fd; }
…… DPDK code in vhost_user_set_mem_table mmap_addr = mmap(NULL, mmap_size, PROT_READ | PROT_WRITE, MAP_SHARED | MAP_POPULATE, fd, 0); …… thanks a lot!