Re: [libvirt PATCH 0/6] ci: clang on linux and more parallelism

2020-08-01 Thread Neal Gompa
On Fri, Jul 31, 2020 at 11:15 AM Ján Tomko  wrote:
>
> Run clang tests on Fedora Rawhide, Centos 8 and Debian 10.
>
> Specify needs: for everything to prevent pointless waiting.
>
> https://gitlab.com/jano.tomko/libvirt/-/pipelines/173023075
>
> Ján Tomko (6):
>   ci: refresh Dockerfiles
>   ci: refresh Dockerfiles
>   ci: add clang jobs
>   ci: run Cirrus-based builds sooner
>   ci: specify containter dependencies for all the jobs
>   ci: run container jobs right away
>
>  .gitlab-ci.yml| 76 +++
>  ci/containers/libvirt-centos-7.Dockerfile |  2 +-
>  ci/containers/libvirt-centos-8.Dockerfile |  2 +-
>  .../libvirt-centos-stream.Dockerfile  |  2 +-
>  ...libvirt-debian-10-cross-aarch64.Dockerfile |  2 +-
>  .../libvirt-debian-10-cross-armv6l.Dockerfile |  3 +-
>  .../libvirt-debian-10-cross-armv7l.Dockerfile |  3 +-
>  .../libvirt-debian-10-cross-i686.Dockerfile   |  2 +-
>  .../libvirt-debian-10-cross-mips.Dockerfile   |  2 +-
>  ...ibvirt-debian-10-cross-mips64el.Dockerfile |  2 +-
>  .../libvirt-debian-10-cross-mipsel.Dockerfile |  2 +-
>  ...libvirt-debian-10-cross-ppc64le.Dockerfile |  2 +-
>  .../libvirt-debian-10-cross-s390x.Dockerfile  |  2 +-
>  ci/containers/libvirt-debian-10.Dockerfile|  2 +-
>  ...ibvirt-debian-sid-cross-aarch64.Dockerfile |  2 +-
>  ...libvirt-debian-sid-cross-armv6l.Dockerfile |  3 +-
>  ...libvirt-debian-sid-cross-armv7l.Dockerfile |  3 +-
>  .../libvirt-debian-sid-cross-i686.Dockerfile  |  2 +-
>  ...bvirt-debian-sid-cross-mips64el.Dockerfile |  2 +-
>  ...libvirt-debian-sid-cross-mipsel.Dockerfile |  3 +-
>  ...ibvirt-debian-sid-cross-ppc64le.Dockerfile |  2 +-
>  .../libvirt-debian-sid-cross-s390x.Dockerfile |  2 +-
>  ci/containers/libvirt-debian-sid.Dockerfile   |  2 +-
>  ci/containers/libvirt-fedora-31.Dockerfile|  2 +-
>  ci/containers/libvirt-fedora-32.Dockerfile|  2 +-
>  ...rt-fedora-rawhide-cross-mingw32.Dockerfile |  1 +
>  ...rt-fedora-rawhide-cross-mingw64.Dockerfile |  1 +
>  .../libvirt-fedora-rawhide.Dockerfile |  2 +-
>  ci/containers/libvirt-opensuse-151.Dockerfile |  2 +-
>  ci/containers/libvirt-ubuntu-1804.Dockerfile  |  2 +-
>  ci/containers/libvirt-ubuntu-2004.Dockerfile  |  2 +-
>  31 files changed, 111 insertions(+), 28 deletions(-)
>
> --
> 2.26.2
>

LGTM.

Reviewed-by: Neal Gompa 

-- 
真実はいつも一つ!/ Always, there's only one truth!




Re: [PATCH for 6.6.0] NEWS: Document changes for upcoming release

2020-08-01 Thread Neal Gompa
On Fri, Jul 31, 2020 at 10:53 AM Michal Privoznik  wrote:
>
> In contrast with other releases, this time NEWS is pretty much
> updated. I've identified only a couple of features/bug fixes
> worth mentioning that were not mentioned yet.
>
> Signed-off-by: Michal Privoznik 
> ---
>  NEWS.rst | 32 
>  1 file changed, 32 insertions(+)
>
> diff --git a/NEWS.rst b/NEWS.rst
> index 1314f3e698..d97ca501dc 100644
> --- a/NEWS.rst
> +++ b/NEWS.rst
> @@ -24,6 +24,12 @@ v6.6.0 (unreleased)
>  MAC addresses that would generate a new one if they were in its OUI
>  (00:0c:29).
>
> +  * conf: add control over COW for storage pool directories
> +
> +The storage pool code now attempts to disable COW by default on btrfs, 
> but
> +management applications may wish to override this behaviour. This is now
> +possible via new ``cow`` element.
> +
>  * **Improvements**
>
>* esx: Change the NIC limit for recent virtualHW versions
> @@ -41,6 +47,14 @@ v6.6.0 (unreleased)
>  The event can now be used also for block copy destinations by using the
>  index of the  image.
>
> +  * qemu: consider available CPUs in ``vcpupin/emulatorpin`` output
> +
> +This patch changes the default bitmap of ``vcpupin`` and ``emulatorpin``,
> +in the case of domains with static vcpu placement, all available CPUs
> +instead of all possible CPUs are returned making these APIs consistent 
> with
> +the behavior of ``vcpuinfo``.
> +
> +
>  * **Bug fixes**
>
>* virdevmapper: Don't use libdevmapper to obtain dependencies
> @@ -61,6 +75,24 @@ v6.6.0 (unreleased)
>  Starting from libvirt-6.5 an active layer block commit or a block copy 
> could
>  fail if the same destination was used more than once.
>
> +  * qemu: Don't change ownership of restore file
> +
> +When restoring a domain from a file, Libvirt no longer changes its 
> ownership.
> +
> +  * qemu: Set SPAPR TPM default to 2.0 and prevent 1.2 choice
> +
> +The firmware (SLOF) on QEMU for ppc64 does not support TPM 1.2, so 
> prevent
> +the choice of TPM 1.2 when the SPAPR device model is chosen and use a
> +default of '2.0' (TPM 2) for the backend.
> +
> +  * qemu: Do not set ``//cpu/@migratable`` for running domains
> +
> +Libvirt release of 6.4.0 started to fill the default value for
> +``//cpu/@migratable`` attribute according to QEMU support. However, 
> active
> +domains either have the migratable attribute already set or they were
> +started with older Libvirt which doesn't support the attribute.
> +
> +
>  v6.5.0 (2020-07-03)
>  ===
>
> --
> 2.26.2
>

Looks great! Thank you for doing this. :)

Reviewed-by: Neal Gompa 

-- 
真実はいつも一つ!/ Always, there's only one truth!




[PATCH v5 2/2] bhyve: support 'isa' controller for LPC

2020-08-01 Thread Roman Bogorodskiy
Support modeling of the 'isa' controller for bhyve. User can manually
define any PCI slot for the 'isa' controller, including PCI slot 1,
but other devices are not allowed to use this address.

When domain configuration requires the 'isa' controller to be present,
automatically add it on domain post-parse stage.

Now, as this controller is always available when needed, it's not
necessary to implicitly add it to the bhyve command line, so remove
bhyveBuildLPCArgStr().

Also, make bhyveDomainDefNeedsISAController() static as it's no longer
used outside of bhyve_domain.c.

As more than one ISA controller is not supported by bhyve,
and multiple controllers with the same index are forbidden,
so forbid ISA controllers with non-zero index for bhyve.

Signed-off-by: Roman Bogorodskiy 
---
 src/bhyve/bhyve_command.c | 27 +++---
 src/bhyve/bhyve_device.c  | 23 +---
 src/bhyve/bhyve_domain.c  | 25 +++--
 src/bhyve/bhyve_domain.h  |  2 --
 ...ml2argv-addr-isa-controller-on-slot-1.args | 10 ++
 ...2argv-addr-isa-controller-on-slot-1.ldargs |  3 ++
 ...xml2argv-addr-isa-controller-on-slot-1.xml | 26 ++
 ...l2argv-addr-isa-controller-on-slot-31.args | 10 ++
 ...argv-addr-isa-controller-on-slot-31.ldargs |  3 ++
 ...ml2argv-addr-isa-controller-on-slot-31.xml | 26 ++
 ...argv-addr-non-isa-controller-on-slot-1.xml | 23 
 .../bhyvexml2argv-console.args|  2 +-
 .../bhyvexml2argv-isa-controller.args | 10 ++
 .../bhyvexml2argv-isa-controller.ldargs   |  3 ++
 .../bhyvexml2argv-isa-controller.xml  | 24 +
 ...bhyvexml2argv-isa-multiple-controllers.xml | 25 +
 .../bhyvexml2argv-serial-grub-nocons.args |  2 +-
 .../bhyvexml2argv-serial-grub.args|  2 +-
 .../bhyvexml2argv-serial.args |  2 +-
 .../bhyvexml2argvdata/bhyvexml2argv-uefi.args |  4 +--
 .../bhyvexml2argv-vnc-autoport.args   |  4 +--
 .../bhyvexml2argv-vnc-vgaconf-io.args |  4 +--
 .../bhyvexml2argv-vnc-vgaconf-off.args|  4 +--
 .../bhyvexml2argv-vnc-vgaconf-on.args |  4 +--
 .../bhyvexml2argvdata/bhyvexml2argv-vnc.args  |  4 +--
 tests/bhyvexml2argvtest.c |  5 +++
 ...l2xmlout-addr-isa-controller-on-slot-1.xml | 36 +++
 ...2xmlout-addr-isa-controller-on-slot-31.xml | 36 +++
 .../bhyvexml2xmlout-console.xml   |  3 ++
 .../bhyvexml2xmlout-isa-controller.xml| 36 +++
 .../bhyvexml2xmlout-serial-grub-nocons.xml|  3 ++
 .../bhyvexml2xmlout-serial-grub.xml   |  3 ++
 .../bhyvexml2xmlout-serial.xml|  3 ++
 .../bhyvexml2xmlout-vnc-autoport.xml  |  3 ++
 .../bhyvexml2xmlout-vnc-vgaconf-io.xml|  3 ++
 .../bhyvexml2xmlout-vnc-vgaconf-off.xml   |  3 ++
 .../bhyvexml2xmlout-vnc-vgaconf-on.xml|  3 ++
 .../bhyvexml2xmlout-vnc.xml   |  3 ++
 tests/bhyvexml2xmltest.c  |  3 ++
 39 files changed, 378 insertions(+), 37 deletions(-)
 create mode 100644 
tests/bhyvexml2argvdata/bhyvexml2argv-addr-isa-controller-on-slot-1.args
 create mode 100644 
tests/bhyvexml2argvdata/bhyvexml2argv-addr-isa-controller-on-slot-1.ldargs
 create mode 100644 
tests/bhyvexml2argvdata/bhyvexml2argv-addr-isa-controller-on-slot-1.xml
 create mode 100644 
tests/bhyvexml2argvdata/bhyvexml2argv-addr-isa-controller-on-slot-31.args
 create mode 100644 
tests/bhyvexml2argvdata/bhyvexml2argv-addr-isa-controller-on-slot-31.ldargs
 create mode 100644 
tests/bhyvexml2argvdata/bhyvexml2argv-addr-isa-controller-on-slot-31.xml
 create mode 100644 
tests/bhyvexml2argvdata/bhyvexml2argv-addr-non-isa-controller-on-slot-1.xml
 create mode 100644 tests/bhyvexml2argvdata/bhyvexml2argv-isa-controller.args
 create mode 100644 tests/bhyvexml2argvdata/bhyvexml2argv-isa-controller.ldargs
 create mode 100644 tests/bhyvexml2argvdata/bhyvexml2argv-isa-controller.xml
 create mode 100644 
tests/bhyvexml2argvdata/bhyvexml2argv-isa-multiple-controllers.xml
 create mode 100644 
tests/bhyvexml2xmloutdata/bhyvexml2xmlout-addr-isa-controller-on-slot-1.xml
 create mode 100644 
tests/bhyvexml2xmloutdata/bhyvexml2xmlout-addr-isa-controller-on-slot-31.xml
 create mode 100644 tests/bhyvexml2xmloutdata/bhyvexml2xmlout-isa-controller.xml

diff --git a/src/bhyve/bhyve_command.c b/src/bhyve/bhyve_command.c
index 22d0b24ec4..2a3e10d649 100644
--- a/src/bhyve/bhyve_command.c
+++ b/src/bhyve/bhyve_command.c
@@ -329,7 +329,8 @@ bhyveBuildControllerArgStr(const virDomainDef *def,
virDomainControllerDefPtr controller,
bhyveConnPtr driver,
virCommandPtr cmd,
-   unsigned *nusbcontrollers)
+   unsigned *nusbcontrollers,
+   unsigned *nisacontrollers)
 {
 switch 

[PATCH v5 1/2] conf: add 'isa' controller type

2020-08-01 Thread Roman Bogorodskiy
Introduce 'isa' controller type. In domain XML it looks this way:

...

  

...

Currently, this is needed for the bhyve driver to allow choosing a
specific PCI address for that. In bhyve, this controller is used to
attach serial ports and a boot ROM.

Signed-off-by: Roman Bogorodskiy 
---
 docs/formatdomain.html.in  | 6 +++---
 docs/schemas/domaincommon.rng  | 6 ++
 src/conf/domain_conf.c | 9 +
 src/conf/domain_conf.h | 8 
 src/qemu/qemu_command.c| 1 +
 src/qemu/qemu_domain.c | 1 +
 src/qemu/qemu_domain_address.c | 1 +
 src/qemu/qemu_validate.c   | 1 +
 src/vbox/vbox_common.c | 1 +
 9 files changed, 31 insertions(+), 3 deletions(-)

diff --git a/docs/formatdomain.html.in b/docs/formatdomain.html.in
index 6b67a09bb3..f70e5abab8 100644
--- a/docs/formatdomain.html.in
+++ b/docs/formatdomain.html.in
@@ -4706,9 +4706,9 @@
 
 
   Each controller has a mandatory attribute type,
-  which must be one of 'ide', 'fdc', 'scsi', 'sata', 'usb',
-  'ccid', 'virtio-serial' or 'pci', and a mandatory
-  attribute index which is the decimal integer
+  which must be one of 'ide', 'fdc', 'scsi', 'sata', 'usb', 'ccid', 
'virtio-serial',
+  'xenbus', 'pci', or 'isa' (since 6.7.0),
+  and a mandatory attribute index which is the decimal integer
   describing in which order the bus controller is encountered (for
   use in controller attributes of
   address elements).
diff --git a/docs/schemas/domaincommon.rng b/docs/schemas/domaincommon.rng
index 8cbbd7e6e9..11793a5ef5 100644
--- a/docs/schemas/domaincommon.rng
+++ b/docs/schemas/domaincommon.rng
@@ -2416,6 +2416,12 @@
   
 
   
+  
+  
+
+  isa
+
+  
   
   
 
diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index 386b04b5b8..44b7a524ec 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -399,6 +399,7 @@ VIR_ENUM_IMPL(virDomainController,
   "usb",
   "pci",
   "xenbus",
+  "isa",
 );
 
 VIR_ENUM_IMPL(virDomainControllerModelPCI,
@@ -444,6 +445,9 @@ VIR_ENUM_IMPL(virDomainControllerModelSCSI,
   "virtio-non-transitional",
 );
 
+VIR_ENUM_IMPL(virDomainControllerModelISA, 
VIR_DOMAIN_CONTROLLER_MODEL_ISA_LAST,
+);
+
 VIR_ENUM_IMPL(virDomainControllerModelUSB,
   VIR_DOMAIN_CONTROLLER_MODEL_USB_LAST,
   "piix3-uhci",
@@ -2318,6 +2322,7 @@ virDomainControllerDefNew(virDomainControllerType type)
 case VIR_DOMAIN_CONTROLLER_TYPE_SCSI:
 case VIR_DOMAIN_CONTROLLER_TYPE_SATA:
 case VIR_DOMAIN_CONTROLLER_TYPE_CCID:
+case VIR_DOMAIN_CONTROLLER_TYPE_ISA:
 case VIR_DOMAIN_CONTROLLER_TYPE_LAST:
 break;
 }
@@ -10994,6 +10999,8 @@ virDomainControllerModelTypeFromString(const 
virDomainControllerDef *def,
 return virDomainControllerModelIDETypeFromString(model);
 else if (def->type == VIR_DOMAIN_CONTROLLER_TYPE_VIRTIO_SERIAL)
 return virDomainControllerModelVirtioSerialTypeFromString(model);
+else if (def->type == VIR_DOMAIN_CONTROLLER_TYPE_ISA)
+return virDomainControllerModelISATypeFromString(model);
 
 return -1;
 }
@@ -11013,6 +11020,8 @@ 
virDomainControllerModelTypeToString(virDomainControllerDefPtr def,
 return virDomainControllerModelIDETypeToString(model);
 else if (def->type == VIR_DOMAIN_CONTROLLER_TYPE_VIRTIO_SERIAL)
 return virDomainControllerModelVirtioSerialTypeToString(model);
+else if (def->type == VIR_DOMAIN_CONTROLLER_TYPE_ISA)
+return virDomainControllerModelISATypeToString(model);
 
 return NULL;
 }
diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h
index 6e9da298b4..e193cf9c5f 100644
--- a/src/conf/domain_conf.h
+++ b/src/conf/domain_conf.h
@@ -595,6 +595,7 @@ typedef enum {
 VIR_DOMAIN_CONTROLLER_TYPE_USB,
 VIR_DOMAIN_CONTROLLER_TYPE_PCI,
 VIR_DOMAIN_CONTROLLER_TYPE_XENBUS,
+VIR_DOMAIN_CONTROLLER_TYPE_ISA,
 
 VIR_DOMAIN_CONTROLLER_TYPE_LAST
 } virDomainControllerType;
@@ -686,6 +687,12 @@ typedef enum {
 VIR_DOMAIN_CONTROLLER_MODEL_VIRTIO_SERIAL_LAST
 } virDomainControllerModelVirtioSerial;
 
+typedef enum {
+VIR_DOMAIN_CONTROLLER_MODEL_ISA_DEFAULT = -1,
+
+VIR_DOMAIN_CONTROLLER_MODEL_ISA_LAST
+} virDomainControllerModelISA;
+
 #define IS_USB2_CONTROLLER(ctrl) \
 (((ctrl)->type == VIR_DOMAIN_CONTROLLER_TYPE_USB) && \
  ((ctrl)->model == VIR_DOMAIN_CONTROLLER_MODEL_USB_ICH9_EHCI1 || \
@@ -3558,6 +3565,7 @@ VIR_ENUM_DECL(virDomainControllerModelSCSI);
 VIR_ENUM_DECL(virDomainControllerModelUSB);
 VIR_ENUM_DECL(virDomainControllerModelIDE);
 VIR_ENUM_DECL(virDomainControllerModelVirtioSerial);
+VIR_ENUM_DECL(virDomainControllerModelISA);
 VIR_ENUM_DECL(virDomainFS);
 VIR_ENUM_DECL(virDomainFSDriver);
 VIR_ENUM_DECL(virDomainFSAccessMode);
diff --git 

[PATCH v5 0/2] bhyve: support 'isa' controller for LPC

2020-08-01 Thread Roman Bogorodskiy
Changes from v4:

 - Document 'isa' controller type in docs/formatdomain.html.in.
   While here, add 'xenbus' which was also missing.

Roman Bogorodskiy (2):
  conf: add 'isa' controller type
  bhyve: support 'isa' controller for LPC

 docs/formatdomain.html.in |  6 ++--
 docs/schemas/domaincommon.rng |  6 
 src/bhyve/bhyve_command.c | 27 +++---
 src/bhyve/bhyve_device.c  | 23 +---
 src/bhyve/bhyve_domain.c  | 25 +++--
 src/bhyve/bhyve_domain.h  |  2 --
 src/conf/domain_conf.c|  9 +
 src/conf/domain_conf.h|  8 +
 src/qemu/qemu_command.c   |  1 +
 src/qemu/qemu_domain.c|  1 +
 src/qemu/qemu_domain_address.c|  1 +
 src/qemu/qemu_validate.c  |  1 +
 src/vbox/vbox_common.c|  1 +
 ...ml2argv-addr-isa-controller-on-slot-1.args | 10 ++
 ...2argv-addr-isa-controller-on-slot-1.ldargs |  3 ++
 ...xml2argv-addr-isa-controller-on-slot-1.xml | 26 ++
 ...l2argv-addr-isa-controller-on-slot-31.args | 10 ++
 ...argv-addr-isa-controller-on-slot-31.ldargs |  3 ++
 ...ml2argv-addr-isa-controller-on-slot-31.xml | 26 ++
 ...argv-addr-non-isa-controller-on-slot-1.xml | 23 
 .../bhyvexml2argv-console.args|  2 +-
 .../bhyvexml2argv-isa-controller.args | 10 ++
 .../bhyvexml2argv-isa-controller.ldargs   |  3 ++
 .../bhyvexml2argv-isa-controller.xml  | 24 +
 ...bhyvexml2argv-isa-multiple-controllers.xml | 25 +
 .../bhyvexml2argv-serial-grub-nocons.args |  2 +-
 .../bhyvexml2argv-serial-grub.args|  2 +-
 .../bhyvexml2argv-serial.args |  2 +-
 .../bhyvexml2argvdata/bhyvexml2argv-uefi.args |  4 +--
 .../bhyvexml2argv-vnc-autoport.args   |  4 +--
 .../bhyvexml2argv-vnc-vgaconf-io.args |  4 +--
 .../bhyvexml2argv-vnc-vgaconf-off.args|  4 +--
 .../bhyvexml2argv-vnc-vgaconf-on.args |  4 +--
 .../bhyvexml2argvdata/bhyvexml2argv-vnc.args  |  4 +--
 tests/bhyvexml2argvtest.c |  5 +++
 ...l2xmlout-addr-isa-controller-on-slot-1.xml | 36 +++
 ...2xmlout-addr-isa-controller-on-slot-31.xml | 36 +++
 .../bhyvexml2xmlout-console.xml   |  3 ++
 .../bhyvexml2xmlout-isa-controller.xml| 36 +++
 .../bhyvexml2xmlout-serial-grub-nocons.xml|  3 ++
 .../bhyvexml2xmlout-serial-grub.xml   |  3 ++
 .../bhyvexml2xmlout-serial.xml|  3 ++
 .../bhyvexml2xmlout-vnc-autoport.xml  |  3 ++
 .../bhyvexml2xmlout-vnc-vgaconf-io.xml|  3 ++
 .../bhyvexml2xmlout-vnc-vgaconf-off.xml   |  3 ++
 .../bhyvexml2xmlout-vnc-vgaconf-on.xml|  3 ++
 .../bhyvexml2xmlout-vnc.xml   |  3 ++
 tests/bhyvexml2xmltest.c  |  3 ++
 48 files changed, 409 insertions(+), 40 deletions(-)
 create mode 100644 
tests/bhyvexml2argvdata/bhyvexml2argv-addr-isa-controller-on-slot-1.args
 create mode 100644 
tests/bhyvexml2argvdata/bhyvexml2argv-addr-isa-controller-on-slot-1.ldargs
 create mode 100644 
tests/bhyvexml2argvdata/bhyvexml2argv-addr-isa-controller-on-slot-1.xml
 create mode 100644 
tests/bhyvexml2argvdata/bhyvexml2argv-addr-isa-controller-on-slot-31.args
 create mode 100644 
tests/bhyvexml2argvdata/bhyvexml2argv-addr-isa-controller-on-slot-31.ldargs
 create mode 100644 
tests/bhyvexml2argvdata/bhyvexml2argv-addr-isa-controller-on-slot-31.xml
 create mode 100644 
tests/bhyvexml2argvdata/bhyvexml2argv-addr-non-isa-controller-on-slot-1.xml
 create mode 100644 tests/bhyvexml2argvdata/bhyvexml2argv-isa-controller.args
 create mode 100644 tests/bhyvexml2argvdata/bhyvexml2argv-isa-controller.ldargs
 create mode 100644 tests/bhyvexml2argvdata/bhyvexml2argv-isa-controller.xml
 create mode 100644 
tests/bhyvexml2argvdata/bhyvexml2argv-isa-multiple-controllers.xml
 create mode 100644 
tests/bhyvexml2xmloutdata/bhyvexml2xmlout-addr-isa-controller-on-slot-1.xml
 create mode 100644 
tests/bhyvexml2xmloutdata/bhyvexml2xmlout-addr-isa-controller-on-slot-31.xml
 create mode 100644 tests/bhyvexml2xmloutdata/bhyvexml2xmlout-isa-controller.xml

-- 
2.27.0