On 04.04.2019 15:23, Nikolay Shirokovskiy wrote:
On 14.02.2019 14:32, Ján Tomko wrote:
> v2:
https://www.redhat.com/archives/libvir-list/2019-February/msg00293.html
> v3:
> * dropped the pointless isa-prefix
> * use DO_TEST_CAPS_LATEST
> * trimmed the XML
> * compiles with gcc
> * only make irq optional
> * autofill iobase
>
> Ján Tomko (3):
> qemu: introduce qemuDomainChrSerialTargetModel
> qemu: make irq optional when formatting the ISA address
> qemu: autoadd iobase to debugcon chardev
>
> Nikolay Shirokovskiy (2):
> conf: add debugcon chardev guest interface
> qemu: implement debugcon chardev
>
> docs/formatdomain.html.in | 3 +-
> docs/schemas/domaincommon.rng | 1 +
> src/conf/domain_conf.c | 5 ++++
> src/conf/domain_conf.h | 1 +
> src/qemu/qemu_command.c | 25 +++++++++++++---
> src/qemu/qemu_domain.c | 12 ++++++++
> .../isa-serial-debugcon.x86_64-latest.args | 30 +++++++++++++++++++
> .../qemuxml2argvdata/isa-serial-debugcon.xml | 21 +++++++++++++
> tests/qemuxml2argvtest.c | 1 +
> .../isa-serial-debugcon.xml | 30 +++++++++++++++++++
> tests/qemuxml2xmltest.c | 2 ++
> 11 files changed, 126 insertions(+), 5 deletions(-)
> create mode 100644 tests/qemuxml2argvdata/isa-serial-debugcon.x86_64-latest.args
> create mode 100644 tests/qemuxml2argvdata/isa-serial-debugcon.xml
> create mode 100644 tests/qemuxml2xmloutdata/isa-serial-debugcon.xml
>
I forget to mention that there is still an issue with console alias that need to be
addressed:
https://www.redhat.com/archives/libvir-list/2019-February/msg00608.html
I could send it.
Next patch fixes the issue by inserting extra serial if the first one is debugcon.
diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index b2dd281..1d69c88 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -4394,7 +4394,8 @@ virDomainDefAddConsoleCompat(virDomainDefPtr def)
(def->consoles[0]->targetType == VIR_DOMAIN_CHR_CONSOLE_TARGET_TYPE_SERIAL
||
def->consoles[0]->targetType == VIR_DOMAIN_CHR_CONSOLE_TARGET_TYPE_NONE))
{
- /* If there isn't a corresponding serial port:
+ /* If there isn't a corresponding serial port or the first serial port
+ * is used for debugcon:
* - create one and set, the console to be an alias for it
*
* If there is a corresponding serial port:
@@ -4404,8 +4405,11 @@ virDomainDefAddConsoleCompat(virDomainDefPtr def)
*/
/* create the serial port definition from the console definition */
- if (def->nserials == 0) {
- if (VIR_APPEND_ELEMENT(def->serials,
+ if (def->nserials == 0 ||
+ (def->serials[0]->targetType == VIR_DOMAIN_CHR_SERIAL_TARGET_TYPE_ISA
&&
+ def->serials[0]->targetModel ==
VIR_DOMAIN_CHR_SERIAL_TARGET_MODEL_DEBUGCON)) {
+ if (VIR_INSERT_ELEMENT(def->serials,
+ 0,
def->nserials,
def->consoles[0]) < 0)
return -1;