All of lore.kernel.org
 help / color / mirror / Atom feed
From: Cleber Rosa <crosa@redhat.com>
To: Wainer dos Santos Moschetta <wainersm@redhat.com>, qemu-devel@nongnu.org
Cc: "Fam Zheng" <fam@euphon.net>,
	"Eduardo Habkost" <ehabkost@redhat.com>,
	"Stefan Markovic" <smarkovic@wavecomp.com>,
	"Alex Bennée" <alex.bennee@linaro.org>,
	"Cornelia Huck" <cohuck@redhat.com>,
	"Aleksandar Rikalo" <arikalo@wavecomp.com>,
	qemu-s390x@nongnu.org,
	"Aleksandar Markovic" <amarkovic@wavecomp.com>,
	"Caio Carrara" <ccarrara@redhat.com>,
	"Philippe Mathieu-Daudé" <philmd@redhat.com>,
	"Aurelien Jarno" <aurelien@aurel32.net>
Subject: Re: [Qemu-devel] [PATCH 11/18] scripts/qemu.py: support adding a console with the default serial device
Date: Thu, 31 Jan 2019 15:05:41 -0500	[thread overview]
Message-ID: <944fac42-efc4-b762-2d06-1e84dc063f4d@redhat.com> (raw)
In-Reply-To: <dca0df17-749f-a94a-c036-4b60b4814a46@redhat.com>



On 1/31/19 1:49 PM, Wainer dos Santos Moschetta wrote:
> Hi Cleber,
> 
> me again. :)
> 
> On 01/17/2019 04:56 PM, Cleber Rosa wrote:
>> The set_console() utility function traditionally adds a device either
>> based on the explicitly given device type, or based on the machine type,
>> a known good type of device.
>>
>> But, for a number of machine types, it may be impossible or
>> inconvenient to add the devices my means of "-device" command line
>> options, and then it may better to just use the "-serial" option and
>> let QEMU itself, based on the machine type, set the device
>> accordingly.
>>
>> To achieve that, the behavior of set_console() now flags the intention
>> to add a console device on launch(), and if no explicit device type is
>> given, and there's no definition on CONSOLE_DEV_TYPES, the "-serial"
>> is going to be added to the QEMU command line, instead of raising
>> exceptions.
>>
>> Signed-off-by: Cleber Rosa <crosa@redhat.com>
>> ---
>>   scripts/qemu.py | 28 +++++++++++++++-------------
>>   1 file changed, 15 insertions(+), 13 deletions(-)
>>
>> diff --git a/scripts/qemu.py b/scripts/qemu.py
>> index ec3567d4e2..88e1608b42 100644
>> --- a/scripts/qemu.py
>> +++ b/scripts/qemu.py
>> @@ -121,6 +121,7 @@ class QEMUMachine(object):
>>           self._temp_dir = None
>>           self._launched = False
>>           self._machine = None
>> +        self._console_set = False
>>           self._console_device_type = None
>>           self._console_address = None
>>           self._console_socket = None
>> @@ -240,13 +241,17 @@ class QEMUMachine(object):
>>                   '-display', 'none', '-vga', 'none']
>>           if self._machine is not None:
>>               args.extend(['-machine', self._machine])
>> -        if self._console_device_type is not None:
>> +        if self._console_set:
>>               self._console_address = os.path.join(self._temp_dir,
>>                                                    self._name +
>> "-console.sock")
>>               chardev = ('socket,id=console,path=%s,server,nowait' %
>>                          self._console_address)
>> -            device = '%s,chardev=console' % self._console_device_type
>> -            args.extend(['-chardev', chardev, '-device', device])
>> +            args.extend(['-chardev', chardev])
>> +            if self._console_device_type is None:
>> +                args.extend(['-serial', 'chardev:console'])
>> +            else:
>> +                device = '%s,chardev=console' %
>> self._console_device_type
>> +                args.extend(['-device', device])
>>           return args
>>         def _pre_launch(self):
>> @@ -479,23 +484,20 @@ class QEMUMachine(object):
>>           machine launch time, as it depends on the temporary directory
>>           to be created.
>>   -        @param device_type: the device type, such as "isa-serial"
>> +        @param device_type: the device type, such as "isa-serial".  If
>> +                            None is given (the default value) a "-serial
>> +                            chardev:console" command line argument will
>> +                            be used instead, resorting to the machine's
>> +                            default device type.
> 
> Shouldn't you mention it will look for device type on CONSOLE_DEV_TYPES
> if device_type is None and machine is not None?
> 

Yes, you're right.  How about this:

...
        @param device_type: the device type, such as "isa-serial".  If
                            None is given (the default value) a "-serial
                            chardev:console" command line argument will
                            be used instead, resorting to the machine's
                            default device type, if a machine type is set,
                            and a matching entry exists on
CONSOLE_DEV_TYPES.

...

> The description on set_console()'s docstring is out-of-sync with current
> implementation too.
> 

Good catch!  I'm rewriting that as:

...

        This is a convenience method that will either use the provided
        device type, of if not given, it will use the device type set
        on CONSOLE_DEV_TYPES if a machine type is set, and a matching
        entry exists on CONSOLE_DEV_TYPES.

...

How does it sound?

Thanks!
- Cleber.

> - Wainer
> 
>>           @raises: QEMUMachineAddDeviceError if the device type is not
>> given
>>                    and can not be determined.
>>           """
>> -        if device_type is None:
>> -            if self._machine is None:
>> -                raise QEMUMachineAddDeviceError("Can not add a
>> console device:"
>> -                                                " QEMU instance
>> without a "
>> -                                                "defined machine type")
>> +        self._console_set = True
>> +        if device_type is None and self._machine is not None:
>>               for regex, device in CONSOLE_DEV_TYPES.items():
>>                   if re.match(regex, self._machine):
>>                       device_type = device
>>                       break
>> -            if device_type is None:
>> -                raise QEMUMachineAddDeviceError("Can not add a
>> console device:"
>> -                                                " no matching console
>> device "
>> -                                                "type definition")
>>           self._console_device_type = device_type
>>         @property
> 
> 

  reply	other threads:[~2019-01-31 20:05 UTC|newest]

Thread overview: 94+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-01-17 18:56 [Qemu-devel] [PATCH 00/18] Acceptance Tests: target architecture support Cleber Rosa
2019-01-17 18:56 ` [Qemu-devel] [PATCH 01/18] scripts/qemu.py: log QEMU launch command line Cleber Rosa
2019-01-21 20:19   ` Caio Carrara
2019-01-22  9:47   ` Philippe Mathieu-Daudé
2019-01-22 11:17   ` Alex Bennée
2019-01-17 18:56 ` [Qemu-devel] [PATCH 02/18] Acceptance tests: show avocado test execution by default Cleber Rosa
2019-01-21 20:20   ` Caio Carrara
2019-01-22  9:50   ` Philippe Mathieu-Daudé
2019-01-22 11:19   ` Alex Bennée
2019-01-17 18:56 ` [Qemu-devel] [PATCH 03/18] Acceptance tests: improve docstring on pick_default_qemu_bin() Cleber Rosa
2019-01-21 20:20   ` Caio Carrara
2019-01-17 18:56 ` [Qemu-devel] [PATCH 04/18] Acceptance tests: fix doc reference to avocado_qemu directory Cleber Rosa
2019-01-21 20:21   ` Caio Carrara
2019-01-22  9:51   ` Philippe Mathieu-Daudé
2019-01-17 18:56 ` [Qemu-devel] [PATCH 05/18] Acceptance tests: introduce arch parameter and attribute Cleber Rosa
2019-01-18 14:28   ` Caio Carrara
2019-01-22  9:54     ` Philippe Mathieu-Daudé
2019-01-30 21:49     ` Cleber Rosa
2019-01-30 21:59     ` Cleber Rosa
2019-01-31 13:55   ` Wainer dos Santos Moschetta
2019-01-31 19:01     ` Cleber Rosa
2019-01-17 18:56 ` [Qemu-devel] [PATCH 06/18] Acceptance tests: use "arch:" tag to filter target specific tests Cleber Rosa
2019-01-18 10:38   ` Cornelia Huck
2019-01-30 22:15     ` Cleber Rosa
2019-01-21 20:24   ` Caio Carrara
2019-01-17 18:56 ` [Qemu-devel] [PATCH 07/18] Acceptance tests: look for target architecture in test tags first Cleber Rosa
2019-01-21 20:25   ` Caio Carrara
2019-01-17 18:56 ` [Qemu-devel] [PATCH 08/18] Boot Linux Console Test: rename the x86_64 after the arch and machine Cleber Rosa
2019-01-21 20:26   ` Caio Carrara
2019-01-22  9:56   ` Philippe Mathieu-Daudé
2019-01-17 18:56 ` [Qemu-devel] [PATCH 09/18] Boot Linux Console Test: update the x86_64 kernel Cleber Rosa
2019-01-21 20:27   ` Caio Carrara
2019-01-17 18:56 ` [Qemu-devel] [PATCH 10/18] Boot Linux Console Test: refactor the console watcher into utility method Cleber Rosa
2019-01-21 20:28   ` Caio Carrara
2019-01-22 10:06   ` Philippe Mathieu-Daudé
2019-01-31  0:17     ` Cleber Rosa
2019-01-31 17:46   ` Wainer dos Santos Moschetta
2019-01-31 19:29     ` Cleber Rosa
2019-01-17 18:56 ` [Qemu-devel] [PATCH 11/18] scripts/qemu.py: support adding a console with the default serial device Cleber Rosa
2019-01-21 20:29   ` Caio Carrara
2019-01-31 18:49   ` Wainer dos Santos Moschetta
2019-01-31 20:05     ` Cleber Rosa [this message]
2019-01-17 18:56 ` [Qemu-devel] [PATCH 12/18] Boot Linux Console Test: add a test for mips + malta Cleber Rosa
2019-01-21 20:30   ` Caio Carrara
2019-01-22 10:16   ` Philippe Mathieu-Daudé
2019-01-31  0:27     ` Cleber Rosa
2019-01-17 18:56 ` [Qemu-devel] [PATCH 13/18] Boot Linux Console Test: add a test for mips64el " Cleber Rosa
2019-01-21 20:31   ` Caio Carrara
2019-01-22 10:19   ` Philippe Mathieu-Daudé
2019-01-31  1:26     ` Cleber Rosa
2019-01-31 10:24       ` Philippe Mathieu-Daudé
2019-01-22 10:57   ` Philippe Mathieu-Daudé
2019-01-31  1:34     ` Cleber Rosa
2019-01-31 10:26       ` Philippe Mathieu-Daudé
2019-01-31 15:06         ` Cleber Rosa
2019-01-31 18:14   ` Wainer dos Santos Moschetta
2019-01-31 20:11     ` Cleber Rosa
2019-01-17 18:56 ` [Qemu-devel] [PATCH 14/18] Boot Linux Console Test: add a test for ppc64 + pseries Cleber Rosa
2019-01-21 20:32   ` Caio Carrara
2019-01-22 16:07   ` Alex Bennée
2019-01-31  2:37     ` Cleber Rosa
2019-01-31 10:23       ` Philippe Mathieu-Daudé
2019-01-17 18:56 ` [Qemu-devel] [PATCH 15/18] Boot Linux Console Test: add a test for aarch64 + virt Cleber Rosa
2019-01-21 20:32   ` Caio Carrara
2019-01-31 20:02   ` Wainer dos Santos Moschetta
2019-01-31 20:21     ` Cleber Rosa
2019-01-31 21:26       ` Cleber Rosa
2019-02-01 16:10         ` Cleber Rosa
2019-06-07  3:26           ` Eduardo Habkost
2019-06-07  3:42             ` Eduardo Habkost
2019-06-07 15:44               ` Cleber Rosa
2019-06-07 18:58                 ` Eduardo Habkost
2019-06-10  8:53                   ` Daniel P. Berrangé
2019-06-10 16:50                     ` Cleber Rosa
2019-06-07  7:41             ` Laszlo Ersek
2019-06-07 15:33             ` Cleber Rosa
2019-01-17 18:56 ` [Qemu-devel] [PATCH 16/18] Boot Linux Console Test: add a test for arm " Cleber Rosa
2019-01-21 20:33   ` Caio Carrara
2019-01-17 18:56 ` [Qemu-devel] [PATCH 17/18] Boot Linux Console Test: add a test for s390x + s390-ccw-virtio Cleber Rosa
2019-01-18  8:58   ` Cornelia Huck
2019-01-18 13:45     ` Cleber Rosa
2019-01-21 20:34   ` Caio Carrara
2019-01-17 18:56 ` [Qemu-devel] [PATCH 18/18] Boot Linux Console Test: add a test for alpha + clipper Cleber Rosa
2019-01-21 20:34   ` Caio Carrara
2019-01-22 10:52   ` Philippe Mathieu-Daudé
2019-01-31  2:53     ` Cleber Rosa
2019-01-31 10:30       ` Philippe Mathieu-Daudé
2019-01-31 20:23         ` Cleber Rosa
2019-01-21 22:15 ` [Qemu-devel] [PATCH 00/18] Acceptance Tests: target architecture support Aleksandar Markovic
2019-01-22 10:48   ` Philippe Mathieu-Daudé
2019-01-31 15:01     ` Cleber Rosa
2019-02-01  5:32       ` Aleksandar Markovic
2019-02-01 16:17         ` Cleber Rosa
2019-01-31 18:09 ` no-reply

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=944fac42-efc4-b762-2d06-1e84dc063f4d@redhat.com \
    --to=crosa@redhat.com \
    --cc=alex.bennee@linaro.org \
    --cc=amarkovic@wavecomp.com \
    --cc=arikalo@wavecomp.com \
    --cc=aurelien@aurel32.net \
    --cc=ccarrara@redhat.com \
    --cc=cohuck@redhat.com \
    --cc=ehabkost@redhat.com \
    --cc=fam@euphon.net \
    --cc=philmd@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=qemu-s390x@nongnu.org \
    --cc=smarkovic@wavecomp.com \
    --cc=wainersm@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.