From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by dpdk.org (Postfix) with ESMTP id 601B35A26 for ; Fri, 27 Mar 2015 14:20:11 +0100 (CET) Received: from orsmga003.jf.intel.com ([10.7.209.27]) by orsmga103.jf.intel.com with ESMTP; 27 Mar 2015 06:20:10 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.11,478,1422950400"; d="scan'208";a="547239531" Received: from irvmail001.ir.intel.com ([163.33.26.43]) by orsmga003.jf.intel.com with ESMTP; 27 Mar 2015 06:20:10 -0700 Received: from sivswdev02.ir.intel.com (sivswdev02.ir.intel.com [10.237.217.46]) by irvmail001.ir.intel.com (8.14.3/8.13.6/MailSET/Hub) with ESMTP id t2RDK8uA018985; Fri, 27 Mar 2015 13:20:08 GMT Received: from sivswdev02.ir.intel.com (localhost [127.0.0.1]) by sivswdev02.ir.intel.com with ESMTP id t2RDK89k000714; Fri, 27 Mar 2015 13:20:08 GMT Received: (from jmcnam2x@localhost) by sivswdev02.ir.intel.com with id t2RDK8hK000708; Fri, 27 Mar 2015 13:20:08 GMT From: John McNamara To: dev@dpdk.org Date: Fri, 27 Mar 2015 13:20:06 +0000 Message-Id: <1427462406-677-1-git-send-email-john.mcnamara@intel.com> X-Mailer: git-send-email 1.7.4.1 In-Reply-To: <1425286674-17495-1-git-send-email-changchun.ouyang@intel.com> References: <1425286674-17495-1-git-send-email-changchun.ouyang@intel.com> Subject: [dpdk-dev] [PATCH v4] doc: Update doc for vhost sample X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 27 Mar 2015 13:20:12 -0000 From: Ouyang Changchun Added some documentation on common issues for the vhost sample app and how to resolve them. Signed-off-by: Changchun Ouyang Signed-off-by: John McNamara --- doc/guides/sample_app_ug/vhost.rst | 58 ++++++++++++++++++++++++++++++++------ 1 file changed, 50 insertions(+), 8 deletions(-) diff --git a/doc/guides/sample_app_ug/vhost.rst b/doc/guides/sample_app_ug/vhost.rst index 4a6d434..7e333cf 100644 --- a/doc/guides/sample_app_ug/vhost.rst +++ b/doc/guides/sample_app_ug/vhost.rst @@ -1,3 +1,4 @@ + .. BSD LICENSE Copyright(c) 2010-2014 Intel Corporation. All rights reserved. All rights reserved. @@ -640,19 +641,60 @@ To call the QEMU wrapper automatically from libvirt, the following configuration Common Issues ~~~~~~~~~~~~~ -**QEMU failing to allocate memory on hugetlbfs.** +* QEMU failing to allocate memory on hugetlbfs, with an error like the following:: -file_ram_alloc: can't mmap RAM pages: Cannot allocate memory + file_ram_alloc: can't mmap RAM pages: Cannot allocate memory -When running QEMU the above error implies that it has failed to allocate memory for the Virtual Machine on the hugetlbfs. -This is typically due to insufficient hugepages being free to support the allocation request. -The number of free hugepages can be checked as follows: + When running QEMU the above error indicates that it has failed to allocate memory for the Virtual Machine on + the hugetlbfs. This is typically due to insufficient hugepages being free to support the allocation request. + The number of free hugepages can be checked as follows: -.. code-block:: console + .. code-block:: console + + cat /sys/kernel/mm/hugepages/hugepages-/nr_hugepages + + The command above indicates how many hugepages are free to support QEMU's allocation request. + +* User space VHOST when the guest has 2MB sized huge pages: + + The guest may have 2MB or 1GB sized huge pages. The user space VHOST should work properly in both cases. + +* User space VHOST will not work with QEMU without the ``-mem-prealloc`` option: + + The current implementation works properly only when the guest memory is pre-allocated, so it is required to + use a QEMU version (e.g. 1.6) which supports ``-mem-prealloc``. The ``-mem-prealloc`` option must be + specified explicitly in the QEMU command line. + +* User space VHOST will not work with a QEMU version without shared memory mapping: + + As shared memory mapping is mandatory for user space VHOST to work properly with the guest, user space VHOST + needs access to the shared memory from the guest to receive and transmit packets. It is important to make sure + the QEMU version supports shared memory mapping. + +* Issues with ``virsh destroy`` not destroying the VM: + + Using libvirt ``virsh create`` the ``qemu-wrap.py`` spawns a new process to run ``qemu-kvm``. This impacts the behavior + of ``virsh destroy`` which kills the process running ``qemu-wrap.py`` without actually destroying the VM (it leaves + the ``qemu-kvm`` process running): + + This following patch should fix this issue: + http://dpdk.org/ml/archives/dev/2014-June/003607.html + +* In an Ubuntu environment, QEMU fails to start a new guest normally with user space VHOST due to not being able + to allocate huge pages for the new guest: + + The solution for this issue is to add ``-boot c`` into the QEMU command line to make sure the huge pages are + allocated properly and then the guest should start normally. + + Use ``cat /proc/meminfo`` to check if there is any changes in the value of ``HugePages_Total`` and ``HugePages_Free`` + after the guest startup. + +* Log message: ``eventfd_link: module verification failed: signature and/or required key missing - tainting kernel``: - user@target:cat /sys/kernel/mm/hugepages/hugepages- / nr_hugepages + This log message may be ignored. The message occurs due to the kernel module ``eventfd_link``, which is not a standard + Linux module but which is necessary for the user space VHOST current implementation (CUSE-based) to communicate with + the guest. -The command above indicates how many hugepages are free to support QEMU's allocation request. Running DPDK in the Virtual Machine ----------------------------------- -- V4: Fixed typos and syntax. V3: Fixed indentation issue that prevented PDFs from building. 1.8.1.4