All of lore.kernel.org
 help / color / mirror / Atom feed
From: Cleber Rosa <crosa@redhat.com>
To: qemu-devel@nongnu.org, Peter Maydell <peter.maydell@linaro.org>
Cc: "Fam Zheng" <fam@euphon.net>, "Beraldo Leal" <bleal@redhat.com>,
	"Alex Bennée" <alex.bennee@linaro.org>,
	"Fabien Chouteau" <chouteau@adacore.com>,
	"KONRAD Frederic" <frederic.konrad@adacore.com>,
	qemu-ppc@nongnu.org,
	"Wainer dos Santos Moschetta" <wainersm@redhat.com>,
	"Willian Rampazzo" <wrampazz@redhat.com>,
	"Cleber Rosa" <crosa@redhat.com>,
	"Hervé Poussineau" <hpoussin@reactos.org>,
	"Aleksandar Rikalo" <aleksandar.rikalo@rt-rk.com>,
	"Philippe Mathieu-Daudé" <philmd@redhat.com>,
	"Aurelien Jarno" <aurelien@aurel32.net>,
	"Eduardo Habkost" <ehabkost@redhat.com>
Subject: [PULL 12/15] python/qemu: accel: Add list_accel() method
Date: Tue, 17 Dec 2019 00:15:18 -0500	[thread overview]
Message-ID: <20191217051521.1239-13-crosa@redhat.com> (raw)
In-Reply-To: <20191217051521.1239-1-crosa@redhat.com>

From: Wainer dos Santos Moschetta <wainersm@redhat.com>

Since commit cbe6d6365a48 the command `qemu -accel help` returns
the list of accelerators enabled in the QEMU binary. This adds
the list_accel() method which return that same list.

Signed-off-by: Wainer dos Santos Moschetta <wainersm@redhat.com>
Message-Id: <20191216191438.93418-3-wainersm@redhat.com>
Reviewed-by: Cleber Rosa <crosa@redhat.com>
Tested-by: Cleber Rosa <crosa@redhat.com>
Signed-off-by: Cleber Rosa <crosa@redhat.com>
---
 python/qemu/accel.py | 23 +++++++++++++++++++++++
 1 file changed, 23 insertions(+)

diff --git a/python/qemu/accel.py b/python/qemu/accel.py
index cbeac10dd1..7395cee793 100644
--- a/python/qemu/accel.py
+++ b/python/qemu/accel.py
@@ -14,7 +14,11 @@ accelerators.
 # the COPYING file in the top-level directory.
 #
 
+import logging
 import os
+import subprocess
+
+LOG = logging.getLogger(__name__)
 
 # Mapping host architecture to any additional architectures it can
 # support which often includes its 32 bit cousin.
@@ -23,6 +27,25 @@ ADDITIONAL_ARCHES = {
     "aarch64" : "armhf"
 }
 
+def list_accel(qemu_bin):
+    """
+    List accelerators enabled in the QEMU binary.
+
+    @param qemu_bin (str): path to the QEMU binary.
+    @raise Exception: if failed to run `qemu -accel help`
+    @return a list of accelerator names.
+    """
+    if not qemu_bin:
+        return []
+    try:
+        out = subprocess.check_output([qemu_bin, '-accel', 'help'],
+                                      universal_newlines=True)
+    except:
+        LOG.debug("Failed to get the list of accelerators in %s", qemu_bin)
+        raise
+    # Skip the first line which is the header.
+    return [acc.strip() for acc in out.splitlines()[1:]]
+
 def kvm_available(target_arch=None):
     host_arch = os.uname()[4]
     if target_arch and target_arch != host_arch:
-- 
2.21.0



  parent reply	other threads:[~2019-12-17  6:00 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-12-17  5:15 [PULL 00/15] Python queue 2019-12-17 Cleber Rosa
2019-12-17  5:15 ` [PULL 01/15] tests/boot_linux_console: Fetch assets from Debian snapshot archives Cleber Rosa
2019-12-17  5:15 ` [PULL 02/15] Revert "Acceptance test: cancel test if m68k kernel packages goes missing" Cleber Rosa
2019-12-17  5:15 ` [PULL 03/15] analyze-migration.py: fix find() type error Cleber Rosa
2019-12-17  5:15 ` [PULL 04/15] analyze-migration.py: replace numpy with python 3.2 Cleber Rosa
2019-12-17  5:15 ` [PULL 05/15] python/qemu: Add set_qmp_monitor() to QEMUMachine Cleber Rosa
2019-12-17  5:15 ` [PULL 06/15] tests/acceptance: Makes linux_initrd and empty_cpu_model use QEMUMachine Cleber Rosa
2019-12-17  5:15 ` [PULL 07/15] Acceptance test x86_cpu_model_versions: use default vm Cleber Rosa
2019-12-17  5:15 ` [PULL 08/15] Acceptance tests: introduce utility method for tags unique vals Cleber Rosa
2019-12-17  5:15 ` [PULL 09/15] Acceptance tests: use avocado tags for machine type Cleber Rosa
2019-12-17  5:15 ` [PULL 10/15] Acceptance tests: use relative location for tests Cleber Rosa
2019-12-17  5:15 ` [PULL 11/15] python/qemu: Move kvm_available() to its own module Cleber Rosa
2019-12-17  5:15 ` Cleber Rosa [this message]
2019-12-17  5:15 ` [PULL 13/15] python/qemu: accel: Strengthen kvm_available() checks Cleber Rosa
2019-12-17  5:15 ` [PULL 14/15] python/qemu: accel: Add tcg_available() method Cleber Rosa
2019-12-17  5:15 ` [PULL 15/15] python/qemu: Remove unneeded imports in __init__ Cleber Rosa
2019-12-17 15:27 ` [PULL 00/15] Python queue 2019-12-17 Peter Maydell

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20191217051521.1239-13-crosa@redhat.com \
    --to=crosa@redhat.com \
    --cc=aleksandar.rikalo@rt-rk.com \
    --cc=alex.bennee@linaro.org \
    --cc=aurelien@aurel32.net \
    --cc=bleal@redhat.com \
    --cc=chouteau@adacore.com \
    --cc=ehabkost@redhat.com \
    --cc=fam@euphon.net \
    --cc=frederic.konrad@adacore.com \
    --cc=hpoussin@reactos.org \
    --cc=peter.maydell@linaro.org \
    --cc=philmd@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=qemu-ppc@nongnu.org \
    --cc=wainersm@redhat.com \
    --cc=wrampazz@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.