From patchwork Mon Aug 28 01:56:41 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: =?UTF-8?q?Sergio=20Andr=C3=A9s=20G=C3=B3mez=20Del=20Real?= X-Patchwork-Id: 9924037 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 928B760380 for ; Mon, 28 Aug 2017 01:58:44 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 836F92850F for ; Mon, 28 Aug 2017 01:58:44 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 70DEE28646; Mon, 28 Aug 2017 01:58:44 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.8 required=2.0 tests=BAYES_00, DKIM_ADSP_CUSTOM_MED, DKIM_SIGNED, FREEMAIL_FROM, RCVD_IN_DNSWL_HI, T_DKIM_INVALID autolearn=ham version=3.3.1 Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id D74BB2850F for ; Mon, 28 Aug 2017 01:58:43 +0000 (UTC) Received: from localhost ([::1]:36496 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dm9K6-0004oN-Uf for patchwork-qemu-devel@patchwork.kernel.org; Sun, 27 Aug 2017 21:58:42 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:41971) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dm9Im-0004mb-IW for qemu-devel@nongnu.org; Sun, 27 Aug 2017 21:57:21 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dm9Il-0000uy-Bm for qemu-devel@nongnu.org; Sun, 27 Aug 2017 21:57:20 -0400 Received: from mail-ua0-x243.google.com ([2607:f8b0:400c:c08::243]:36116) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1dm9Il-0000ug-6A for qemu-devel@nongnu.org; Sun, 27 Aug 2017 21:57:19 -0400 Received: by mail-ua0-x243.google.com with SMTP id b3so2018467uag.3 for ; Sun, 27 Aug 2017 18:57:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=740RUQDnxsmUGuDcVpC5CnaRezzoAHAhR18tTVk7po8=; b=dgNFbgwuXYbYYc4eg3zfr1fZkWPyc6qkkJJY37zKTkqofI80e5mYmPW8yNAe48t9nh u4w3L+RZZTlx0QYKfeTfIqPr1ceq+RFwZaFZT/I4D4tatTHOiZYXyI6IzWrcwQLyiWed 4HMQ8zEhh+Ld9OOMQ5ldNFEgsXBJrnxyPgm+hTkfHvBAEiJz3nraqM4cIKlfsDnEHmiw giOhHmiu7xPS3rSLJ89ZSwOviH18ccjkHaB1Tp3F8TK3ff2+zRrRgb2upYKvQhiw6mZM NU84Z8eioo3yGgGYauY3BqeCFvzFEfCdB5OlQ239Ru2Rk+Xk1TcVbbwp8mxH9QkcoPaW Mn/Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=740RUQDnxsmUGuDcVpC5CnaRezzoAHAhR18tTVk7po8=; b=sTBbgew+vMgEQimS3bw0eMLctdlgkvZfsGyKYHesHxgtw5uyUheq1IOMQ9gQ0BJPGT kU89l83+i1QxW5gVokwh/DEDBCWABNbNAXVq8+Z8JZkXmHqi/cej4ttw8l6wNL1R8t3r 0H+YpVZzT91EQz5+Sg/oT1w/OuwB3zXEBojLR/CFBV5HXjD5RCtB3Vx5thgkKH71hTuU HlosEKGRpvSfFEhmfhv8BHUGpyypSZq2Tu5kWzjBI3zqtJOJp5rlc1c3BNPLUk65vCNG 3EIOAkcDhcyk6BHGPpieRt+0bkt06YrOOUAW3zwdBggMBlzRkDX3aoojVtlerq604g3d KEGg== X-Gm-Message-State: AHYfb5izKF4qzzEbjRnPZFtFFQShsgZ/fd6J2maEt1DGJ+IjXEbxzVc7 XXtVL+3/vlAcCtRN X-Received: by 10.159.50.16 with SMTP id x16mr3576800uad.20.1503885438223; Sun, 27 Aug 2017 18:57:18 -0700 (PDT) Received: from localhost.localdomain ([191.109.6.191]) by smtp.gmail.com with ESMTPSA id y12sm2696824uad.22.2017.08.27.18.57.16 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 27 Aug 2017 18:57:17 -0700 (PDT) From: Sergio Andres Gomez Del Real X-Google-Original-From: Sergio Andres Gomez Del Real To: qemu-devel@nongnu.org Date: Sun, 27 Aug 2017 20:56:41 -0500 Message-Id: <20170828015654.2530-2-Sergio.G.DelReal@gmail.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20170828015654.2530-1-Sergio.G.DelReal@gmail.com> References: <20170828015654.2530-1-Sergio.G.DelReal@gmail.com> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:400c:c08::243 Subject: [Qemu-devel] [PATCH 01/14] hvf: add support for Hypervisor.framework in the configure script X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Sergio Andres Gomez Del Real Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" X-Virus-Scanned: ClamAV using ClamSMTP This patch adds to the configure script the code to support the --enable-hvf argument. If the OS is Darwin, it checks for presence of HVF in the system. The patch also adds strings related to HVF in the file qemu-options.hx Signed-off-by: Sergio Andres Gomez Del Real Reviewed-by: Stefan Hajnoczi --- configure | 32 ++++++++++++++++++++++++++++++++ qemu-options.hx | 20 +++++++++++++++----- 2 files changed, 47 insertions(+), 5 deletions(-) diff --git a/configure b/configure index dd73cce62f..d9126462a1 100755 --- a/configure +++ b/configure @@ -309,6 +309,7 @@ vhost_vsock="no" vhost_user="" kvm="no" hax="no" +hvf="no" rdma="" gprof="no" debug_tcg="no" @@ -727,6 +728,7 @@ Darwin) bsd="yes" darwin="yes" hax="yes" + hvf="yes" LDFLAGS_SHARED="-bundle -undefined dynamic_lookup" if [ "$cpu" = "x86_64" ] ; then QEMU_CFLAGS="-arch x86_64 $QEMU_CFLAGS" @@ -1027,6 +1029,10 @@ for opt do ;; --enable-hax) hax="yes" ;; + --disable-hvf) hvf="no" + ;; + --enable-hvf) hvf="yes" + ;; --disable-tcg-interpreter) tcg_interpreter="no" ;; --enable-tcg-interpreter) tcg_interpreter="yes" @@ -1499,6 +1505,7 @@ disabled with --disable-FEATURE, default is enabled if available: bluez bluez stack connectivity kvm KVM acceleration support hax HAX acceleration support + hvf Hypervisor.framework acceleration support rdma RDMA-based migration support vde support for vde network netmap support for netmap network @@ -4900,6 +4907,21 @@ then fi +################################################# +# Check to see if we have the Hypervisor framework +if [ "$darwin" == "yes" ] ; then + cat > $TMPC << EOF +#include +int main() { return 0;} +EOF + if ! compile_object ""; then + hvf='no' + else + hvf='yes' + LDFLAGS="-framework Hypervisor $LDFLAGS" + fi +fi + ################################################# # Sparc implicitly links with --relax, which is # incompatible with -r, so --no-relax should be @@ -5356,6 +5378,7 @@ if test "$tcg" = "yes" ; then echo "TCG debug enabled $debug_tcg" echo "TCG interpreter $tcg_interpreter" fi +echo "HVF support $hvf" echo "RDMA support $rdma" echo "fdt support $fdt" echo "preadv support $preadv" @@ -6388,6 +6411,15 @@ fi if supported_hax_target $target; then echo "CONFIG_HAX=y" >> $config_target_mak fi +if test "$hvf" = "yes" ; then + if test "$target_softmmu" = "yes" ; then + case "$target_name" in + i386|x86_64) + echo "CONFIG_HVF=y" >> $config_target_mak + ;; + esac + fi +fi if test "$target_bigendian" = "yes" ; then echo "TARGET_WORDS_BIGENDIAN=y" >> $config_target_mak fi diff --git a/qemu-options.hx b/qemu-options.hx index 9f6e2adfff..841d75cf6c 100644 --- a/qemu-options.hx +++ b/qemu-options.hx @@ -31,7 +31,7 @@ DEF("machine", HAS_ARG, QEMU_OPTION_machine, \ "-machine [type=]name[,prop[=value][,...]]\n" " selects emulated machine ('-machine help' for list)\n" " property accel=accel1[:accel2[:...]] selects accelerator\n" - " supported accelerators are kvm, xen, hax or tcg (default: tcg)\n" + " supported accelerators are kvm, xen, hax, hvf or tcg (default: tcg)\n" " kernel_irqchip=on|off|split controls accelerated irqchip support (default=off)\n" " vmport=on|off|auto controls emulation of vmport (default: auto)\n" " kvm_shadow_mem=size of KVM shadow MMU in bytes\n" @@ -66,7 +66,7 @@ Supported machine properties are: @table @option @item accel=@var{accels1}[:@var{accels2}[:...]] This is used to enable an accelerator. Depending on the target architecture, -kvm, xen, hax or tcg can be available. By default, tcg is used. If there is +kvm, xen, hax, hvf or tcg can be available. By default, tcg is used. If there is more than one accelerator specified, the next one is used if the previous one fails to initialize. @item kernel_irqchip=on|off @@ -120,13 +120,13 @@ ETEXI DEF("accel", HAS_ARG, QEMU_OPTION_accel, "-accel [accel=]accelerator[,thread=single|multi]\n" - " select accelerator (kvm, xen, hax or tcg; use 'help' for a list)\n" - " thread=single|multi (enable multi-threaded TCG)\n", QEMU_ARCH_ALL) + " select accelerator (kvm, xen, hax, hvf or tcg; use 'help' for a list)\n" + " thread=single|multi (enable multi-threaded TCG)", QEMU_ARCH_ALL) STEXI @item -accel @var{name}[,prop=@var{value}[,...]] @findex -accel This is used to enable an accelerator. Depending on the target architecture, -kvm, xen, hax or tcg can be available. By default, tcg is used. If there is +kvm, xen, hax, hvf or tcg can be available. By default, tcg is used. If there is more than one accelerator specified, the next one is used if the previous one fails to initialize. @table @option @@ -3619,6 +3619,16 @@ applicable to MAC and Windows platform, and thus does not conflict with KVM. ETEXI +DEF("enable-hvf", 0, QEMU_OPTION_enable_hvf, \ + "-enable-hvf enable Hypervisor.framework virtualization support\n", QEMU_ARCH_I386) +STEXI +@item -enable-hvf +@findex -enable-hvf +Enable Hypervisor.framework support. This option is only available if +HVF support is enabled when compiling. HVF is only applicable to MAC +platform, and thus does not conflict with KVM. +ETEXI + DEF("xen-domid", HAS_ARG, QEMU_OPTION_xen_domid, "-xen-domid id specify xen guest domain id\n", QEMU_ARCH_ALL) DEF("xen-create", 0, QEMU_OPTION_xen_create,