From mboxrd@z Thu Jan 1 00:00:00 1970 From: linhaifeng Subject: Re: [PATCH v3 2/7] vhost: get guest/host physical address mappings Date: Tue, 29 Nov 2016 21:14:44 +0800 Message-ID: <583D7F44.3050908@huawei.com> References: <1474604007-5221-1-git-send-email-yuanhan.liu@linux.intel.com> <1475998080-4644-1-git-send-email-yuanhan.liu@linux.intel.com> <1475998080-4644-3-git-send-email-yuanhan.liu@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="gbk" Content-Transfer-Encoding: 8bit To: Return-path: Received: from szxga02-in.huawei.com (szxga02-in.huawei.com [119.145.14.65]) by dpdk.org (Postfix) with ESMTP id 1CEBA106A for ; Tue, 29 Nov 2016 14:17:35 +0100 (CET) In-Reply-To: <1475998080-4644-3-git-send-email-yuanhan.liu@linux.intel.com> List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" ÔÚ 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;