[dpdk-dev] [PATCH v3 2/7] vhost: get guest/host physical address mappings
linhaifeng
haifeng.lin at huawei.com
Tue Nov 29 14:14:44 CET 2016
在 2016/10/9 15:27, Yuanhan Liu 写道:
> +static void
> +add_guest_pages(struct virtio_net *dev, struct virtio_memory_region *reg,
> + uint64_t page_size)
> +{
> + uint64_t reg_size = reg->size;
> + uint64_t host_user_addr = reg->host_user_addr;
> + uint64_t guest_phys_addr = reg->guest_phys_addr;
> + uint64_t host_phys_addr;
> + uint64_t size;
> +
> + host_phys_addr = rte_mem_virt2phy((void *)(uintptr_t)host_user_addr);
> + size = page_size - (guest_phys_addr & (page_size - 1));
> + size = RTE_MIN(size, reg_size);
Have you use 1G hugepage to create a VM with 25G memory?
When I try, vhost crashed, use below code fixed:
- size = page_size - (guest_phys_addr & (page_size - 1));
- size = RTE_MIN(size, reg_size);
+ size = reg_size % page_size;
More information about the dev
mailing list