diff mbox

configure: Add --disable-kvm-options

Message ID 1344898189-5842-1-git-send-email-crobinso@redhat.com (mailing list archive)
State New, archived
Headers show

Commit Message

Cole Robinson Aug. 13, 2012, 10:49 p.m. UTC
In Fedora, our qemu package is based on qemu-kvm, and we go to convoluted
lengths to provide a qemu-kvm binary with KVM on by default, but all
qemu-system-* with KVM off by default (using ./configure --disable-kvm)

For qemu-system*, what we really want is upstream qemu symantics of TCG
by default, but the opt in option for KVM. CONFIG_KVM_OPTIONS fits the
bill, so let's expose it through ./configure. This will also simplify
our packaging for non-x86 KVM.

Signed-off-by: Cole Robinson <crobinso@redhat.com>
---
 configure | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

Comments

riegamaths@gmail.com Aug. 14, 2012, 3:33 a.m. UTC | #1
2012/8/14 Cole Robinson <crobinso@redhat.com>:
> In Fedora, our qemu package is based on qemu-kvm, and we go to convoluted
> lengths to provide a qemu-kvm binary with KVM on by default, but all
> qemu-system-* with KVM off by default (using ./configure --disable-kvm)
>
> For qemu-system*, what we really want is upstream qemu symantics of TCG
> by default, but the opt in option for KVM. CONFIG_KVM_OPTIONS fits the
> bill, so let's expose it through ./configure. This will also simplify
> our packaging for non-x86 KVM.
>
> Signed-off-by: Cole Robinson <crobinso@redhat.com>
> ---
>  configure | 11 ++++++++++-
>  1 file changed, 10 insertions(+), 1 deletion(-)
>
> diff --git a/configure b/configure
> index 6b66d34..8f4d9e3 100755
> --- a/configure
> +++ b/configure
> @@ -189,6 +189,7 @@ guest_base=""
>  uname_release=""
>  mixemu="no"
>  kvm_cap_device_assignment="yes"
> +kvmoptions="yes"
>  aix="no"
>  blobs="yes"
>  pkgversion=" ($(kvm_version))"
> @@ -707,6 +708,8 @@ for opt do
>    ;;
>    --enable-kvm) kvm="yes"
>    ;;
> +  --disable-kvm-options) kvmoptions="no"
> +  ;;
>    --disable-tcg-interpreter) tcg_interpreter="no"
>    ;;
>    --enable-tcg-interpreter) tcg_interpreter="yes"
> @@ -1071,6 +1074,8 @@ echo "  --enable-bluez           enable bluez stack connectivity"
>  echo "  --disable-slirp          disable SLIRP userspace network connectivity"
>  echo "  --disable-kvm            disable KVM acceleration support"
>  echo "  --enable-kvm             enable KVM acceleration support"
> +echo "  --disable-kvm-options    if KVM is enabled, default to KVM=off, and"
> +echo "                           remove non-upstream cli options"
>  echo "  --enable-tcg-interpreter enable TCG with bytecode interpreter (TCI)"
>  echo "  --disable-kvm-device-assignment  disable KVM device assignment support"
>  echo "  --enable-kvm-device-assignment   enable KVM device assignment support"
> @@ -3101,6 +3106,7 @@ echo "Install blobs     $blobs"
>  echo "KVM support       $kvm"
>  echo "TCG interpreter   $tcg_interpreter"
>  echo "KVM device assig. $kvm_cap_device_assignment"
> +echo "KVM CLI options   $kvmoptions"
>  echo "fdt support       $fdt"
>  echo "preadv support    $preadv"
>  echo "fdatasync         $fdatasync"
> @@ -3818,7 +3824,10 @@ case "$target_arch2" in
>        \( "$target_arch2" = "x86_64" -a "$cpu" = "i386"   \) -o \
>        \( "$target_arch2" = "i386"   -a "$cpu" = "x86_64" \) \) ; then
>        echo "CONFIG_KVM=y" >> $config_target_mak
> -      echo "CONFIG_KVM_OPTIONS=y" >> $config_host_mak
> +
> +      if test "$kvmoptions" = "yes" ; then
> +        echo "CONFIG_KVM_OPTIONS=y" >> $config_host_mak
> +      fi
>        if test "$vhost_net" = "yes" ; then
>          echo "CONFIG_VHOST_NET=y" >> $config_target_mak
>        fi
> --
> 1.7.11.2
>
> --

Please CC this patch to the qemu mailing list, :-)
Jan Kiszka Aug. 14, 2012, 7:48 a.m. UTC | #2
On 2012-08-14 00:49, Cole Robinson wrote:
> In Fedora, our qemu package is based on qemu-kvm, and we go to convoluted
> lengths to provide a qemu-kvm binary with KVM on by default, but all
> qemu-system-* with KVM off by default (using ./configure --disable-kvm)
> 
> For qemu-system*, what we really want is upstream qemu symantics of TCG
> by default, but the opt in option for KVM. CONFIG_KVM_OPTIONS fits the
> bill, so let's expose it through ./configure. This will also simplify
> our packaging for non-x86 KVM.

I personally do not care about qemu-kvm anymore and will likely stop
contributing to it once device assignment is merged. So I have no real
opinion on this patch. But as we are discussing this in another thread
right now [1], I rather wonder what are the requirements for Fedora to
finally switch to QEMU upstream.

Jan

[1] http://thread.gmane.org/gmane.comp.emulators.kvm.devel/96170--
Marcelo Tosatti Aug. 15, 2012, 1:40 a.m. UTC | #3
On Mon, Aug 13, 2012 at 06:49:49PM -0400, Cole Robinson wrote:
> In Fedora, our qemu package is based on qemu-kvm, and we go to convoluted
> lengths to provide a qemu-kvm binary with KVM on by default, but all
> qemu-system-* with KVM off by default (using ./configure --disable-kvm)
> 
> For qemu-system*, what we really want is upstream qemu symantics of TCG
> by default, but the opt in option for KVM. CONFIG_KVM_OPTIONS fits the
> bill, so let's expose it through ./configure. This will also simplify
> our packaging for non-x86 KVM.
> 
> Signed-off-by: Cole Robinson <crobinso@redhat.com>

This is another deviation from upstream QEMU included in qemu-kvm, which
means someone else can use/rely on this option. While the goal is to
kill qemu-kvm.

Please carry it in the RPM, it should not be much trouble do that.

>  configure | 11 ++++++++++-
>  1 file changed, 10 insertions(+), 1 deletion(-)
> 
> diff --git a/configure b/configure
> index 6b66d34..8f4d9e3 100755
> --- a/configure
> +++ b/configure
> @@ -189,6 +189,7 @@ guest_base=""
>  uname_release=""
>  mixemu="no"
>  kvm_cap_device_assignment="yes"
> +kvmoptions="yes"
>  aix="no"
>  blobs="yes"
>  pkgversion=" ($(kvm_version))"
> @@ -707,6 +708,8 @@ for opt do
>    ;;
>    --enable-kvm) kvm="yes"
>    ;;
> +  --disable-kvm-options) kvmoptions="no"
> +  ;;
>    --disable-tcg-interpreter) tcg_interpreter="no"
>    ;;
>    --enable-tcg-interpreter) tcg_interpreter="yes"
> @@ -1071,6 +1074,8 @@ echo "  --enable-bluez           enable bluez stack connectivity"
>  echo "  --disable-slirp          disable SLIRP userspace network connectivity"
>  echo "  --disable-kvm            disable KVM acceleration support"
>  echo "  --enable-kvm             enable KVM acceleration support"
> +echo "  --disable-kvm-options    if KVM is enabled, default to KVM=off, and"
> +echo "                           remove non-upstream cli options"
>  echo "  --enable-tcg-interpreter enable TCG with bytecode interpreter (TCI)"
>  echo "  --disable-kvm-device-assignment  disable KVM device assignment support"
>  echo "  --enable-kvm-device-assignment   enable KVM device assignment support"
> @@ -3101,6 +3106,7 @@ echo "Install blobs     $blobs"
>  echo "KVM support       $kvm"
>  echo "TCG interpreter   $tcg_interpreter"
>  echo "KVM device assig. $kvm_cap_device_assignment"
> +echo "KVM CLI options   $kvmoptions"
>  echo "fdt support       $fdt"
>  echo "preadv support    $preadv"
>  echo "fdatasync         $fdatasync"
> @@ -3818,7 +3824,10 @@ case "$target_arch2" in
>        \( "$target_arch2" = "x86_64" -a "$cpu" = "i386"   \) -o \
>        \( "$target_arch2" = "i386"   -a "$cpu" = "x86_64" \) \) ; then
>        echo "CONFIG_KVM=y" >> $config_target_mak
> -      echo "CONFIG_KVM_OPTIONS=y" >> $config_host_mak
> +
> +      if test "$kvmoptions" = "yes" ; then
> +        echo "CONFIG_KVM_OPTIONS=y" >> $config_host_mak
> +      fi
>        if test "$vhost_net" = "yes" ; then
>          echo "CONFIG_VHOST_NET=y" >> $config_target_mak
>        fi
> -- 
> 1.7.11.2
> 
> --
> To unsubscribe from this list: send the line "unsubscribe kvm" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Cole Robinson Aug. 15, 2012, 1:41 p.m. UTC | #4
On 08/14/2012 09:40 PM, Marcelo Tosatti wrote:
> On Mon, Aug 13, 2012 at 06:49:49PM -0400, Cole Robinson wrote:
>> In Fedora, our qemu package is based on qemu-kvm, and we go to convoluted
>> lengths to provide a qemu-kvm binary with KVM on by default, but all
>> qemu-system-* with KVM off by default (using ./configure --disable-kvm)
>>
>> For qemu-system*, what we really want is upstream qemu symantics of TCG
>> by default, but the opt in option for KVM. CONFIG_KVM_OPTIONS fits the
>> bill, so let's expose it through ./configure. This will also simplify
>> our packaging for non-x86 KVM.
>>
>> Signed-off-by: Cole Robinson <crobinso@redhat.com>
> 
> This is another deviation from upstream QEMU included in qemu-kvm, which
> means someone else can use/rely on this option. While the goal is to
> kill qemu-kvm.
> 
> Please carry it in the RPM, it should not be much trouble do that.
> 

Works for me, thanks.

- Cole

--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/configure b/configure
index 6b66d34..8f4d9e3 100755
--- a/configure
+++ b/configure
@@ -189,6 +189,7 @@  guest_base=""
 uname_release=""
 mixemu="no"
 kvm_cap_device_assignment="yes"
+kvmoptions="yes"
 aix="no"
 blobs="yes"
 pkgversion=" ($(kvm_version))"
@@ -707,6 +708,8 @@  for opt do
   ;;
   --enable-kvm) kvm="yes"
   ;;
+  --disable-kvm-options) kvmoptions="no"
+  ;;
   --disable-tcg-interpreter) tcg_interpreter="no"
   ;;
   --enable-tcg-interpreter) tcg_interpreter="yes"
@@ -1071,6 +1074,8 @@  echo "  --enable-bluez           enable bluez stack connectivity"
 echo "  --disable-slirp          disable SLIRP userspace network connectivity"
 echo "  --disable-kvm            disable KVM acceleration support"
 echo "  --enable-kvm             enable KVM acceleration support"
+echo "  --disable-kvm-options    if KVM is enabled, default to KVM=off, and"
+echo "                           remove non-upstream cli options"
 echo "  --enable-tcg-interpreter enable TCG with bytecode interpreter (TCI)"
 echo "  --disable-kvm-device-assignment  disable KVM device assignment support"
 echo "  --enable-kvm-device-assignment   enable KVM device assignment support"
@@ -3101,6 +3106,7 @@  echo "Install blobs     $blobs"
 echo "KVM support       $kvm"
 echo "TCG interpreter   $tcg_interpreter"
 echo "KVM device assig. $kvm_cap_device_assignment"
+echo "KVM CLI options   $kvmoptions"
 echo "fdt support       $fdt"
 echo "preadv support    $preadv"
 echo "fdatasync         $fdatasync"
@@ -3818,7 +3824,10 @@  case "$target_arch2" in
       \( "$target_arch2" = "x86_64" -a "$cpu" = "i386"   \) -o \
       \( "$target_arch2" = "i386"   -a "$cpu" = "x86_64" \) \) ; then
       echo "CONFIG_KVM=y" >> $config_target_mak
-      echo "CONFIG_KVM_OPTIONS=y" >> $config_host_mak
+
+      if test "$kvmoptions" = "yes" ; then
+        echo "CONFIG_KVM_OPTIONS=y" >> $config_host_mak
+      fi
       if test "$vhost_net" = "yes" ; then
         echo "CONFIG_VHOST_NET=y" >> $config_target_mak
       fi