[kvm-unit-tests,v3,3/3] arm/run: introduce usingkvm var and use it
diff mbox

Message ID 1436369020-22489-4-git-send-email-alex.bennee@linaro.org
State New
Headers show

Commit Message

Alex Bennée July 8, 2015, 3:23 p.m. UTC
This makes the script a little cleaner by only checking for KVM support
in one place. If KVM isn't available we can fall back to TCG emulation
and echo the fact to the screen rather than let QEMU complain.

Signed-off-by: Alex Bennée <alex.bennee@linaro.org>

---
v2
  - rm redundant M= statement
v3
  - make usingkvm use "yes"
  - merge patches 3/4 into one
---
 arm/run | 18 ++++++++++++++++--
 1 file changed, 16 insertions(+), 2 deletions(-)

Comments

Andrew Jones July 8, 2015, 3:37 p.m. UTC | #1
On Wed, Jul 08, 2015 at 04:23:40PM +0100, Alex Bennée wrote:
> This makes the script a little cleaner by only checking for KVM support
> in one place. If KVM isn't available we can fall back to TCG emulation
> and echo the fact to the screen rather than let QEMU complain.
> 
> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
> 
> ---
> v2
>   - rm redundant M= statement
> v3
>   - make usingkvm use "yes"
>   - merge patches 3/4 into one
> ---
>  arm/run | 18 ++++++++++++++++--
>  1 file changed, 16 insertions(+), 2 deletions(-)
> 
> diff --git a/arm/run b/arm/run
> index 6b42a2e..cf6e902 100755
> --- a/arm/run
> +++ b/arm/run
> @@ -8,6 +8,15 @@ fi
>  source config.mak
>  processor="$PROCESSOR"
>  
> +# Default to using KVM if available and on the right ARM host
> +if [ -c /dev/kvm ]; then
> +	if [ "$HOST" = "arm" ] && [ "$ARCH" = "arm" ]; then
> +		usingkvm=yes
> +	elif [ "$HOST" = "aarch64" ]; then
> +		usingkvm=yes
> +	fi
> +fi
> +
>  qemu="${QEMU:-qemu-system-$ARCH_NAME}"
>  qpath=$(which $qemu 2>/dev/null)
>  
> @@ -22,6 +31,12 @@ if ! $qemu -machine '?' 2>&1 | grep 'ARM Virtual Machine' > /dev/null; then
>  fi
>  
>  M='-machine virt'
> +if [ "$usingkvm" = "yes" ]; then
> +	M+=",accel=kvm"
double quotes here

> +else
> +	echo "Running with TCG"
> +	M+=',accel=tcg'
single here

> +fi

but it doesn't matter

>  
>  if ! $qemu $M -device '?' 2>&1 | grep virtconsole > /dev/null; then
>  	echo "$qpath doesn't support virtio-console for chr-testdev. Exiting."
> @@ -34,12 +49,11 @@ if $qemu $M -chardev testdev,id=id -initrd . 2>&1 \
>  	exit 2
>  fi
>  
> -M='-machine virt,accel=kvm:tcg'
>  chr_testdev='-device virtio-serial-device'
>  chr_testdev+=' -device virtconsole,chardev=ctd -chardev testdev,id=ctd'
>  
>  # arm64 must use '-cpu host' with kvm
> -if [ "$(arch)" = "aarch64" ] && [ "$ARCH" = "arm64" ] && [ -c /dev/kvm ]; then
> +if [ "$usingkvm" = "yes" ] && [ "$ARCH" = "arm64" ]; then
>  	processor="host"
>  fi
>  
> -- 
> 2.4.5

Reviewed-by: Andrew Jones <drjones@redhat.com>

Thanks,
drew
> 
> --
> 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

Patch
diff mbox

diff --git a/arm/run b/arm/run
index 6b42a2e..cf6e902 100755
--- a/arm/run
+++ b/arm/run
@@ -8,6 +8,15 @@  fi
 source config.mak
 processor="$PROCESSOR"
 
+# Default to using KVM if available and on the right ARM host
+if [ -c /dev/kvm ]; then
+	if [ "$HOST" = "arm" ] && [ "$ARCH" = "arm" ]; then
+		usingkvm=yes
+	elif [ "$HOST" = "aarch64" ]; then
+		usingkvm=yes
+	fi
+fi
+
 qemu="${QEMU:-qemu-system-$ARCH_NAME}"
 qpath=$(which $qemu 2>/dev/null)
 
@@ -22,6 +31,12 @@  if ! $qemu -machine '?' 2>&1 | grep 'ARM Virtual Machine' > /dev/null; then
 fi
 
 M='-machine virt'
+if [ "$usingkvm" = "yes" ]; then
+	M+=",accel=kvm"
+else
+	echo "Running with TCG"
+	M+=',accel=tcg'
+fi
 
 if ! $qemu $M -device '?' 2>&1 | grep virtconsole > /dev/null; then
 	echo "$qpath doesn't support virtio-console for chr-testdev. Exiting."
@@ -34,12 +49,11 @@  if $qemu $M -chardev testdev,id=id -initrd . 2>&1 \
 	exit 2
 fi
 
-M='-machine virt,accel=kvm:tcg'
 chr_testdev='-device virtio-serial-device'
 chr_testdev+=' -device virtconsole,chardev=ctd -chardev testdev,id=ctd'
 
 # arm64 must use '-cpu host' with kvm
-if [ "$(arch)" = "aarch64" ] && [ "$ARCH" = "arm64" ] && [ -c /dev/kvm ]; then
+if [ "$usingkvm" = "yes" ] && [ "$ARCH" = "arm64" ]; then
 	processor="host"
 fi