Re: [libvirt PATCH] conf: ensure only one vgpu has ramfb enabled

2022-05-02 Thread Martin Kletzander

On Fri, Apr 29, 2022 at 04:04:21PM -0500, Jonathon Jongsma wrote:

Validate the domain configuration to ensure that if there are more than
one vgpu assigned to a domain, only one of them has 'ramfb' enabled.

This was never a supported configuration. QEMU failed confusingly when
attempting to start a domain with this configuration. This change
attempts to provide better information about the error.

https://bugzilla.redhat.com/show_bug.cgi?id=2079760

Signed-off-by: Jonathon Jongsma 


Reviewed-by: Martin Kletzander 


signature.asc
Description: PGP signature


Re: [libvirt PATCH 2/2] tests: don't set G_DEBUG=fatal-warnings on macOS

2022-05-02 Thread Martin Kletzander

On Fri, Apr 29, 2022 at 01:05:42AM -0700, Andrea Bolognani wrote:

On Thu, Apr 28, 2022 at 05:55:41PM +0100, Daniel P. Berrangé wrote:

On Thu, Apr 28, 2022 at 08:33:46AM -0700, Andrea Bolognani wrote:
> In other words, the current implementation of g_poll() on macOS
> doesn't follow the contract defined by GLib itself. It seems to me
> that this is a (fairly serious) bug in the library, no?

It is significant, but long standing. GLib actually had this behaviour
forever on macOS, but it regressed when Meson was introduced, until
the recent fix.

The question is whether efficiency trumps API semantics. Normally I'm
heavily biased towards API semantics, but poll is a performance
critical API, so it isn't so easy to declare we must workaround all
the quirks.

I filed a bug to raise the subject for discussion though

  https://gitlab.gnome.org/GNOME/glib/-/issues/2644


That's an excellent bug report! Thanks for spending time on it, and
let's see where the upstream discussion leads :)



Just so I don't sway the potential discussion in the issue to the wrong
way, I'll ask here.  Since BROKEN_POLL is used due to poll() on OS/X not
behaving correctly with fds=NULL, nfds=0 [0], wouldn't it be possible to
"fix" at least the internal calls to g_poll() which are done when
running the main loop since they always have at least one FD (the
eventfd used to signal the main loop [1])?  I know it would not fix the
problem, but it would at least workaround the part that is used the
most, I presume.

Martin

[0] https://gitlab.gnome.org/GNOME/glib/-/blob/main/glib/gpoll.c#L59
[1] this is a presumption I did not find in the code, but I've seen in
gdb and strace


signature.asc
Description: PGP signature


Release of libvirt-8.3.0

2022-05-02 Thread Jiri Denemark
The 8.3.0 release of both libvirt and libvirt-python is tagged and
signed tarballs and source RPMs are available at

https://libvirt.org/sources/
https://libvirt.org/sources/python/

Thanks everybody who helped with this release by sending patches,
reviewing, testing, or providing feedback. Your work is greatly
appreciated.

* Removed features

  * qemu: Remove support for QEMU < 3.1

In accordance with our platform support policy, the oldest supported QEMU
version is now bumped from 2.11 to 3.1.

* New features

  * qemu: Introduce support for virtio-iommu

This IOMMU device can be used with both Q35 and ARM virt guests.

Enjoy.

Jirka



[PATCH] hw/nvme: deprecate the use-intel-id compatibility parameter

2022-05-02 Thread Klaus Jensen
From: Klaus Jensen 

Since version 5.2 commit 6eb7a071292a ("hw/block/nvme: change controller
pci id"), the emulated NVMe controller has defaulted to a non-Intel PCI
identifier.

Deprecate the compatibility parameter so we can get rid of it once and
for all.

Signed-off-by: Klaus Jensen 
---
 docs/about/deprecated.rst | 8 
 1 file changed, 8 insertions(+)

diff --git a/docs/about/deprecated.rst b/docs/about/deprecated.rst
index 896e5a97abbd..450f945ac25f 100644
--- a/docs/about/deprecated.rst
+++ b/docs/about/deprecated.rst
@@ -356,6 +356,14 @@ contains native support for this feature and thus use of 
the option
 ROM approach is obsolete. The native SeaBIOS support can be activated
 by using ``-machine graphics=off``.
 
+``-device nvme,use-intel-id=on|off`` (since 7.1)
+
+
+The ``nvme`` device originally used a PCI Vendor/Device Identifier combination
+from Intel that was not properly allocated. Since version 5.2, the controller
+has used a properly allocated identifier. Deprecate the ``use-intel-id``
+machine compatibility parameter.
+
 
 Block device options
 
-- 
2.35.1



[PATCH v2 2/5] hw/nvme: do not auto-generate eui64

2022-05-02 Thread Klaus Jensen
From: Klaus Jensen 

We cannot provide auto-generated unique or persistent namespace
identifiers (EUI64, NGUID, UUID) easily. Since 6.1, namespaces have been
assigned a generated EUI64 of the form "52:54:00:".
This is will be unique within a QEMU instance, but not globally.

Revert that this is assigned automatically and immediately deprecate the
compatibility parameter. Users can opt-in to this with the
`eui64-default=on` device parameter or set it explicitly with
`eui64=UINT64`.

Cc: libvir-list@redhat.com
Signed-off-by: Klaus Jensen 
---
 docs/about/deprecated.rst | 7 +++
 hw/core/machine.c | 4 +++-
 hw/nvme/ns.c  | 2 +-
 3 files changed, 11 insertions(+), 2 deletions(-)

diff --git a/docs/about/deprecated.rst b/docs/about/deprecated.rst
index 896e5a97abbd..c65faa5ab4ad 100644
--- a/docs/about/deprecated.rst
+++ b/docs/about/deprecated.rst
@@ -356,6 +356,13 @@ contains native support for this feature and thus use of 
the option
 ROM approach is obsolete. The native SeaBIOS support can be activated
 by using ``-machine graphics=off``.
 
+``-device nvme-ns,eui64-default=on|off`` (since 7.1)
+
+
+In QEMU versions 6.1, 6.2 and 7.0, the ``nvme-ns`` generates an EUI-64
+identifer that is not globally unique. If an EUI-64 identifer is required, the
+user must set it explicitly using the ``nvme-ns`` device parameter ``eui64``.
+
 
 Block device options
 
diff --git a/hw/core/machine.c b/hw/core/machine.c
index cb9bbc844d24..1e2108d95f11 100644
--- a/hw/core/machine.c
+++ b/hw/core/machine.c
@@ -37,7 +37,9 @@
 #include "hw/virtio/virtio.h"
 #include "hw/virtio/virtio-pci.h"
 
-GlobalProperty hw_compat_7_0[] = {};
+GlobalProperty hw_compat_7_0[] = {
+{ "nvme-ns", "eui64-default", "on"},
+};
 const size_t hw_compat_7_0_len = G_N_ELEMENTS(hw_compat_7_0);
 
 GlobalProperty hw_compat_6_2[] = {
diff --git a/hw/nvme/ns.c b/hw/nvme/ns.c
index af6504fad2d8..06a04131f192 100644
--- a/hw/nvme/ns.c
+++ b/hw/nvme/ns.c
@@ -641,7 +641,7 @@ static Property nvme_ns_props[] = {
 DEFINE_PROP_SIZE("zoned.zrwas", NvmeNamespace, params.zrwas, 0),
 DEFINE_PROP_SIZE("zoned.zrwafg", NvmeNamespace, params.zrwafg, -1),
 DEFINE_PROP_BOOL("eui64-default", NvmeNamespace, params.eui64_default,
- true),
+ false),
 DEFINE_PROP_END_OF_LIST(),
 };
 
-- 
2.35.1



Re: [libvirt PATCH v3 00/16] Add QEMU "-display dbus" support

2022-05-02 Thread Marc-André Lureau
Hi

On Wed, Dec 22, 2021 at 11:45 PM  wrote:

> From: Marc-André Lureau 
>
> Hi,
>
> This series implements supports for the uQEMU "-display dbus" support, that
> landed earlier this week for 7.0.
>
> By default, libvirt will start a private VM bus (sharing and reusing the
> existing "vmstate" VM bus & code).
>
> The feature set should cover the needs to replace Spice as local client of
> choice,
> including 3daccel/dmabuf, audio, clipboard sharing, usb redirection, and
> arbitrary
> chardev/channels (for serial etc).
>
> The test Gtk4 client is also in progress, currently in development at
> https://gitlab.com/marcandre.lureau/qemu-display/. A few dependencies,
> such as
> zbus, require an upcoming release. virt-viewer & boxes will need a port to
> Gtk4
> to make use of the shared widget.
>
> Comments welcome, as we can still adjust the QEMU side etc.
>

4 months later, the QEMU bits are now in the last release. This series has
certainly bit rot. Could someone give it a review before I attempt rebasing?

thanks


>
> thanks
>
> v3: after QEMU 7.0 dev cycle opening and merge
>  - rebased
>  - add 7.0 x86-64 capabilities (instead of tweaking 6.2)
>  - fix version annotations
>
> Marc-André Lureau (16):
>   qemu: add chardev-vdagent capability check
>   qemu: add -display dbus capability check
>   qemucapabilitiestest: Add x64 test data for the qemu-7.0 development
> cycle
>   conf: add 
>   qemu: start the D-Bus daemon for the display
>   qemu: add -display dbus support
>   virsh: refactor/split cmdDomDisplay()
>   virsh: report the D-Bus bus URI for domdisplay
>   conf: add  support
>   qemu: add audio type 'dbus'
>   conf: add dbus 
>   qemu: add dbus clipboard sharing
>   conf: add 
>   qemu: add -chardev dbus support
>   qemu: add usbredir type 'dbus'
>   docs: document  type dbus
>
>  NEWS.rst  | 7 +-
>  docs/formatdomain.rst |43 +-
>  docs/schemas/basictypes.rng   | 7 +
>  docs/schemas/domaincommon.rng |71 +
>  src/bhyve/bhyve_command.c | 1 +
>  src/conf/domain_conf.c|   141 +-
>  src/conf/domain_conf.h|15 +
>  src/conf/domain_validate.c|41 +-
>  src/libxl/libxl_conf.c| 1 +
>  src/qemu/qemu_capabilities.c  | 8 +
>  src/qemu/qemu_capabilities.h  | 4 +
>  src/qemu/qemu_command.c   |77 +-
>  src/qemu/qemu_domain.c| 1 +
>  src/qemu/qemu_driver.c|10 +-
>  src/qemu/qemu_extdevice.c |13 +
>  src/qemu/qemu_hotplug.c   | 1 +
>  src/qemu/qemu_monitor_json.c  |10 +
>  src/qemu/qemu_process.c   |41 +-
>  src/qemu/qemu_validate.c  |33 +
>  src/security/security_dac.c   | 2 +
>  src/vmx/vmx.c | 1 +
>  .../domaincapsdata/qemu_7.0.0-q35.x86_64.xml  |   231 +
>  .../domaincapsdata/qemu_7.0.0-tcg.x86_64.xml  |   237 +
>  tests/domaincapsdata/qemu_7.0.0.x86_64.xml|   231 +
>  .../caps_6.1.0.x86_64.xml | 1 +
>  .../caps_6.2.0.aarch64.xml| 1 +
>  .../caps_6.2.0.x86_64.xml | 1 +
>  .../caps_7.0.0.x86_64.replies | 37335 
>  .../caps_7.0.0.x86_64.xml |  3720 ++
>  .../graphics-dbus-address.args|30 +
>  .../graphics-dbus-address.xml |35 +
>  .../qemuxml2argvdata/graphics-dbus-audio.args |33 +
>  .../qemuxml2argvdata/graphics-dbus-audio.xml  |45 +
>  .../graphics-dbus-chardev.args|32 +
>  .../graphics-dbus-chardev.xml |43 +
>  .../graphics-dbus-clipboard.args  |31 +
>  .../graphics-dbus-clipboard.xml   |35 +
>  tests/qemuxml2argvdata/graphics-dbus-p2p.args |30 +
>  tests/qemuxml2argvdata/graphics-dbus-p2p.xml  |33 +
>  .../graphics-dbus-usbredir.args   |34 +
>  .../graphics-dbus-usbredir.xml|30 +
>  tests/qemuxml2argvdata/graphics-dbus.args |30 +
>  tests/qemuxml2argvdata/graphics-dbus.xml  |33 +
>  tests/qemuxml2argvtest.c  |22 +
>  .../graphics-dbus-address.xml | 1 +
>  .../graphics-dbus-audio.xml   | 1 +
>  .../graphics-dbus-chardev.xml | 1 +
>  .../graphics-dbus-clipboard.xml   | 1 +
>  .../qemuxml2xmloutdata/graphics-dbus-p2p.xml  | 1 +
>  tests/qemuxml2xmloutdata/graphics-dbus.xml| 1 +
>  tests/qemuxml2xmltest.c   |20 +
>  tools/virsh-domain.c  |   366 +-
>  52 files changed, 42981 insertions(+), 192 deletions(-)
>  create mode 100644