* [PATCH 0/2] pvg: clean up Kconfig @ 2025-02-20 13:33 Paolo Bonzini 2025-02-20 13:33 ` [PATCH 1/2] pvg: do not enable it on cross-architecture targets Paolo Bonzini 2025-02-20 13:33 ` [PATCH 2/2] pvg: add option to configure it out Paolo Bonzini 0 siblings, 2 replies; 6+ messages in thread From: Paolo Bonzini @ 2025-02-20 13:33 UTC (permalink / raw) To: qemu-devel; +Cc: Phil Dennis-Jordan Do not enable Apple ParavirtualizedGraphics on cross-architecture targets, where it is not supported by the drivers, and add an option to configure it out just like most others external dependencies. Only compile-tested on non-Mac for now, but CI is in progress. Paolo Paolo Bonzini (2): pvg: do not enable it on cross-architecture targets pvg: add option to configure it out meson.build | 16 +++++++++++++--- Kconfig.host | 3 +++ hw/display/Kconfig | 4 ---- hw/display/meson.build | 9 +++------ meson_options.txt | 2 ++ scripts/meson-buildoptions.sh | 3 +++ 6 files changed, 24 insertions(+), 13 deletions(-) -- 2.48.1 ^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH 1/2] pvg: do not enable it on cross-architecture targets 2025-02-20 13:33 [PATCH 0/2] pvg: clean up Kconfig Paolo Bonzini @ 2025-02-20 13:33 ` Paolo Bonzini 2025-02-20 15:19 ` Philippe Mathieu-Daudé 2025-02-20 13:33 ` [PATCH 2/2] pvg: add option to configure it out Paolo Bonzini 1 sibling, 1 reply; 6+ messages in thread From: Paolo Bonzini @ 2025-02-20 13:33 UTC (permalink / raw) To: qemu-devel; +Cc: Phil Dennis-Jordan PVG is not cross-architecture; the PVG guest drivers with x86-64 macOS do not give useful results with the aarch64 macOS host PVG framework, and vice versa. To express this repurpose CONFIG_MAC_PVG, making it true only if the target has the same architecture as the host. Furthermore, remove apple-gfx.m unless one of the devices is actually present. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> --- meson.build | 6 ++++++ Kconfig.host | 3 +++ hw/display/Kconfig | 4 ---- hw/display/meson.build | 9 +++------ 4 files changed, 12 insertions(+), 10 deletions(-) diff --git a/meson.build b/meson.build index 0ee79c664d3..ad2c6b61930 100644 --- a/meson.build +++ b/meson.build @@ -3367,6 +3367,12 @@ foreach target : target_dirs target_kconfig += 'CONFIG_' + config_target['TARGET_ARCH'].to_upper() + '=y' target_kconfig += 'CONFIG_TARGET_BIG_ENDIAN=' + config_target['TARGET_BIG_ENDIAN'] + # PVG is not cross-architecture. Use accelerator_targets as a proxy to + # figure out which target can support PVG on this host + if pvg.found() and target in accelerator_targets.get('CONFIG_HVF', []) + target_kconfig += 'CONFIG_MAC_PVG=y' + endif + config_input = meson.get_external_property(target, 'default') config_devices_mak = target + '-config-devices.mak' config_devices_mak = configure_file( diff --git a/Kconfig.host b/Kconfig.host index 842cbe0d6c5..933425c74b4 100644 --- a/Kconfig.host +++ b/Kconfig.host @@ -61,3 +61,6 @@ config HV_BALLOON_POSSIBLE config HAVE_RUST bool + +config MAC_PVG + bool diff --git a/hw/display/Kconfig b/hw/display/Kconfig index 2b53dfd7d26..1e95ab28ef4 100644 --- a/hw/display/Kconfig +++ b/hw/display/Kconfig @@ -141,10 +141,6 @@ config XLNX_DISPLAYPORT config DM163 bool -config MAC_PVG - bool - default y - config MAC_PVG_MMIO bool depends on MAC_PVG && AARCH64 diff --git a/hw/display/meson.build b/hw/display/meson.build index 94f4f05d36f..b9bdf219103 100644 --- a/hw/display/meson.build +++ b/hw/display/meson.build @@ -61,12 +61,9 @@ system_ss.add(when: 'CONFIG_ARTIST', if_true: files('artist.c')) system_ss.add(when: 'CONFIG_ATI_VGA', if_true: [files('ati.c', 'ati_2d.c', 'ati_dbg.c'), pixman]) -if host_os == 'darwin' - system_ss.add(when: 'CONFIG_MAC_PVG', if_true: [files('apple-gfx.m'), pvg, metal]) - system_ss.add(when: 'CONFIG_MAC_PVG_PCI', if_true: [files('apple-gfx-pci.m'), pvg, metal]) - if cpu == 'aarch64' - system_ss.add(when: 'CONFIG_MAC_PVG_MMIO', if_true: [files('apple-gfx-mmio.m'), pvg, metal]) - endif +if pvg.found() + system_ss.add(when: 'CONFIG_MAC_PVG_PCI', if_true: [files('apple-gfx.m', 'apple-gfx-pci.m'), pvg, metal]) + system_ss.add(when: 'CONFIG_MAC_PVG_MMIO', if_true: [files('apple-gfx.m', 'apple-gfx-mmio.m'), pvg, metal]) endif if config_all_devices.has_key('CONFIG_VIRTIO_GPU') -- 2.48.1 ^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH 1/2] pvg: do not enable it on cross-architecture targets 2025-02-20 13:33 ` [PATCH 1/2] pvg: do not enable it on cross-architecture targets Paolo Bonzini @ 2025-02-20 15:19 ` Philippe Mathieu-Daudé 2025-02-21 17:01 ` Paolo Bonzini 0 siblings, 1 reply; 6+ messages in thread From: Philippe Mathieu-Daudé @ 2025-02-20 15:19 UTC (permalink / raw) To: Paolo Bonzini, qemu-devel; +Cc: Phil Dennis-Jordan On 20/2/25 14:33, Paolo Bonzini wrote: > PVG is not cross-architecture; the PVG guest drivers with x86-64 macOS do not give > useful results with the aarch64 macOS host PVG framework, and vice versa. > To express this repurpose CONFIG_MAC_PVG, making it true only if the target has > the same architecture as the host. Furthermore, remove apple-gfx.m unless > one of the devices is actually present. > > Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> > --- > meson.build | 6 ++++++ > Kconfig.host | 3 +++ > hw/display/Kconfig | 4 ---- > hw/display/meson.build | 9 +++------ > 4 files changed, 12 insertions(+), 10 deletions(-) > > diff --git a/meson.build b/meson.build > index 0ee79c664d3..ad2c6b61930 100644 > --- a/meson.build > +++ b/meson.build > @@ -3367,6 +3367,12 @@ foreach target : target_dirs > target_kconfig += 'CONFIG_' + config_target['TARGET_ARCH'].to_upper() + '=y' > target_kconfig += 'CONFIG_TARGET_BIG_ENDIAN=' + config_target['TARGET_BIG_ENDIAN'] > > + # PVG is not cross-architecture. Use accelerator_targets as a proxy to > + # figure out which target can support PVG on this host > + if pvg.found() and target in accelerator_targets.get('CONFIG_HVF', []) > + target_kconfig += 'CONFIG_MAC_PVG=y' > + endif > + > config_input = meson.get_external_property(target, 'default') > config_devices_mak = target + '-config-devices.mak' > config_devices_mak = configure_file( > diff --git a/Kconfig.host b/Kconfig.host > index 842cbe0d6c5..933425c74b4 100644 > --- a/Kconfig.host > +++ b/Kconfig.host > @@ -61,3 +61,6 @@ config HV_BALLOON_POSSIBLE > > config HAVE_RUST > bool > + > +config MAC_PVG > + bool > diff --git a/hw/display/Kconfig b/hw/display/Kconfig > index 2b53dfd7d26..1e95ab28ef4 100644 > --- a/hw/display/Kconfig > +++ b/hw/display/Kconfig > @@ -141,10 +141,6 @@ config XLNX_DISPLAYPORT > config DM163 > bool > > -config MAC_PVG > - bool > - default y > - > config MAC_PVG_MMIO > bool > depends on MAC_PVG && AARCH64 Hmm what about keeping a MAC_PVG_COMMON instead: -- >8 -- --- a/hw/display/Kconfig +++ b/hw/display/Kconfig @@ -141,15 +141,17 @@ config XLNX_DISPLAYPORT config DM163 bool -config MAC_PVG +config MAC_PVG_COMMON bool - default y + depends on MAC_PVG config MAC_PVG_MMIO bool - depends on MAC_PVG && AARCH64 + depends on AARCH64 + select MAC_PVG_COMMON config MAC_PVG_PCI bool - depends on MAC_PVG && PCI + depends on PCI + select MAC_PVG_COMMON default y if PCI_DEVICES --- > diff --git a/hw/display/meson.build b/hw/display/meson.build > index 94f4f05d36f..b9bdf219103 100644 > --- a/hw/display/meson.build > +++ b/hw/display/meson.build > @@ -61,12 +61,9 @@ system_ss.add(when: 'CONFIG_ARTIST', if_true: files('artist.c')) > > system_ss.add(when: 'CONFIG_ATI_VGA', if_true: [files('ati.c', 'ati_2d.c', 'ati_dbg.c'), pixman]) > > -if host_os == 'darwin' > - system_ss.add(when: 'CONFIG_MAC_PVG', if_true: [files('apple-gfx.m'), pvg, metal]) > - system_ss.add(when: 'CONFIG_MAC_PVG_PCI', if_true: [files('apple-gfx-pci.m'), pvg, metal]) > - if cpu == 'aarch64' > - system_ss.add(when: 'CONFIG_MAC_PVG_MMIO', if_true: [files('apple-gfx-mmio.m'), pvg, metal]) > - endif > +if pvg.found() > + system_ss.add(when: 'CONFIG_MAC_PVG_PCI', if_true: [files('apple-gfx.m', 'apple-gfx-pci.m'), pvg, metal]) > + system_ss.add(when: 'CONFIG_MAC_PVG_MMIO', if_true: [files('apple-gfx.m', 'apple-gfx-mmio.m'), pvg, metal]) > endif Directly using here: -- >8 -- diff --git a/hw/display/meson.build b/hw/display/meson.build index 94f4f05d36f..f636ca0999c 100644 --- a/hw/display/meson.build +++ b/hw/display/meson.build @@ -61,13 +61,9 @@ system_ss.add(when: 'CONFIG_ARTIST', if_true: files('artist.c')) system_ss.add(when: 'CONFIG_ATI_VGA', if_true: [files('ati.c', 'ati_2d.c', 'ati_dbg.c'), pixman]) -if host_os == 'darwin' - system_ss.add(when: 'CONFIG_MAC_PVG', if_true: [files('apple-gfx.m'), pvg, metal]) - system_ss.add(when: 'CONFIG_MAC_PVG_PCI', if_true: [files('apple-gfx-pci.m'), pvg, metal]) - if cpu == 'aarch64' - system_ss.add(when: 'CONFIG_MAC_PVG_MMIO', if_true: [files('apple-gfx-mmio.m'), pvg, metal]) - endif -endif +system_ss.add(when: 'CONFIG_MAC_PVG_COMMON', if_true: [files('apple-gfx.m'), pvg, metal]) +system_ss.add(when: 'CONFIG_MAC_PVG_PCI', if_true: [files('apple-gfx-pci.m'), pvg, metal]) +system_ss.add(when: 'CONFIG_MAC_PVG_MMIO', if_true: [files('apple-gfx-mmio.m'), pvg, metal]) if config_all_devices.has_key('CONFIG_VIRTIO_GPU') virtio_gpu_ss = ss.source_set() --- ? ^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH 1/2] pvg: do not enable it on cross-architecture targets 2025-02-20 15:19 ` Philippe Mathieu-Daudé @ 2025-02-21 17:01 ` Paolo Bonzini 2025-02-24 9:27 ` Philippe Mathieu-Daudé 0 siblings, 1 reply; 6+ messages in thread From: Paolo Bonzini @ 2025-02-21 17:01 UTC (permalink / raw) To: Philippe Mathieu-Daudé, qemu-devel; +Cc: Phil Dennis-Jordan On 2/20/25 16:19, Philippe Mathieu-Daudé wrote: > Hmm what about keeping a MAC_PVG_COMMON instead: > > -- >8 -- > --- a/hw/display/Kconfig > +++ b/hw/display/Kconfig > @@ -141,15 +141,17 @@ config XLNX_DISPLAYPORT > config DM163 > bool > > -config MAC_PVG > +config MAC_PVG_COMMON > bool > - default y > + depends on MAC_PVG > > config MAC_PVG_MMIO > bool > - depends on MAC_PVG && AARCH64 > + depends on AARCH64 It's possible, but the two "depends on MAC_PVG" cannot be removed here, because otherwise MAC_PVG_PCI would be selected by "default y". The only reason to do so, in my opinion, was if one wanted to build pvg as a module, otherwise it's just (a handful) more lines of code with no particular benefit. > -if host_os == 'darwin' > - system_ss.add(when: 'CONFIG_MAC_PVG', if_true: [files('apple- > gfx.m'), pvg, metal]) > - system_ss.add(when: 'CONFIG_MAC_PVG_PCI', if_true: [files('apple- > gfx-pci.m'), pvg, metal]) > - if cpu == 'aarch64' > - system_ss.add(when: 'CONFIG_MAC_PVG_MMIO', if_true: [files('apple- > gfx-mmio.m'), pvg, metal]) > - endif > -endif > +system_ss.add(when: 'CONFIG_MAC_PVG_COMMON', if_true: [files('apple- > gfx.m'), pvg, metal]) > +system_ss.add(when: 'CONFIG_MAC_PVG_PCI', if_true: [files('apple- > gfx-pci.m'), pvg, metal]) > +system_ss.add(when: 'CONFIG_MAC_PVG_MMIO', if_true: [files('apple- > gfx-mmio.m'), pvg, metal]) Removing the "if" is independent of whether you keep CONFIG_MAC_PVG_COMMON. I can squash that in patch 2: -if pvg.found() - system_ss.add(when: 'CONFIG_MAC_PVG_PCI', if_true: [files('apple-gfx.m', 'apple-gfx-pci.m'), pvg]) - system_ss.add(when: 'CONFIG_MAC_PVG_MMIO', if_true: [files('apple-gfx.m', 'apple-gfx-mmio.m'), pvg]) -endif +system_ss.add(when: [pvg, 'CONFIG_MAC_PVG_PCI'], if_true: [files('apple-gfx.m', 'apple-gfx-pci.m')]) +system_ss.add(when: [pvg, 'CONFIG_MAC_PVG_MMIO'], if_true: [files('apple-gfx.m', 'apple-gfx-mmio.m')]) (you need to keep the conditional, whether as "if" or "when:"; otherwise, because Meson cannot know that the .m files will never be built, it complains that you don't have an Objective-C compiler). Paolo ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH 1/2] pvg: do not enable it on cross-architecture targets 2025-02-21 17:01 ` Paolo Bonzini @ 2025-02-24 9:27 ` Philippe Mathieu-Daudé 0 siblings, 0 replies; 6+ messages in thread From: Philippe Mathieu-Daudé @ 2025-02-24 9:27 UTC (permalink / raw) To: Paolo Bonzini, qemu-devel; +Cc: Phil Dennis-Jordan On 21/2/25 18:01, Paolo Bonzini wrote: > On 2/20/25 16:19, Philippe Mathieu-Daudé wrote: >> Hmm what about keeping a MAC_PVG_COMMON instead: >> >> -- >8 -- >> --- a/hw/display/Kconfig >> +++ b/hw/display/Kconfig >> @@ -141,15 +141,17 @@ config XLNX_DISPLAYPORT >> config DM163 >> bool >> >> -config MAC_PVG >> +config MAC_PVG_COMMON >> bool >> - default y >> + depends on MAC_PVG >> >> config MAC_PVG_MMIO >> bool >> - depends on MAC_PVG && AARCH64 >> + depends on AARCH64 > > It's possible, but the two "depends on MAC_PVG" cannot be removed here, > because otherwise MAC_PVG_PCI would be selected by "default y". The > only reason to do so, in my opinion, was if one wanted to build pvg as > a module, otherwise it's just (a handful) more lines of code with no > particular benefit. > >> -if host_os == 'darwin' >> - system_ss.add(when: 'CONFIG_MAC_PVG', if_true: >> [files('apple- gfx.m'), pvg, metal]) >> - system_ss.add(when: 'CONFIG_MAC_PVG_PCI', if_true: >> [files('apple- gfx-pci.m'), pvg, metal]) >> - if cpu == 'aarch64' >> - system_ss.add(when: 'CONFIG_MAC_PVG_MMIO', if_true: >> [files('apple- gfx-mmio.m'), pvg, metal]) >> - endif >> -endif >> +system_ss.add(when: 'CONFIG_MAC_PVG_COMMON', if_true: [files('apple- >> gfx.m'), pvg, metal]) >> +system_ss.add(when: 'CONFIG_MAC_PVG_PCI', if_true: [files('apple- >> gfx-pci.m'), pvg, metal]) >> +system_ss.add(when: 'CONFIG_MAC_PVG_MMIO', if_true: [files('apple- >> gfx-mmio.m'), pvg, metal]) > > Removing the "if" is independent of whether you keep CONFIG_MAC_PVG_COMMON. > I can squash that in patch 2: > > -if pvg.found() > - system_ss.add(when: 'CONFIG_MAC_PVG_PCI', if_true: [files('apple- > gfx.m', 'apple-gfx-pci.m'), pvg]) > - system_ss.add(when: 'CONFIG_MAC_PVG_MMIO', if_true: [files('apple- > gfx.m', 'apple-gfx-mmio.m'), pvg]) > -endif > +system_ss.add(when: [pvg, 'CONFIG_MAC_PVG_PCI'], if_true: > [files('apple-gfx.m', 'apple-gfx-pci.m')]) > +system_ss.add(when: [pvg, 'CONFIG_MAC_PVG_MMIO'], if_true: > [files('apple-gfx.m', 'apple-gfx-mmio.m')]) > > (you need to keep the conditional, whether as "if" or "when:"; otherwise, > because Meson cannot know that the .m files will never be built, it > complains that you don't have an Objective-C compiler). Ah, I haven't thought of that. Series: Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org> ^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH 2/2] pvg: add option to configure it out 2025-02-20 13:33 [PATCH 0/2] pvg: clean up Kconfig Paolo Bonzini 2025-02-20 13:33 ` [PATCH 1/2] pvg: do not enable it on cross-architecture targets Paolo Bonzini @ 2025-02-20 13:33 ` Paolo Bonzini 1 sibling, 0 replies; 6+ messages in thread From: Paolo Bonzini @ 2025-02-20 13:33 UTC (permalink / raw) To: qemu-devel; +Cc: Phil Dennis-Jordan ... and also to require it (--enable-pvg). While at it, unify the dependency() call for pvg and metal, which simplifies the logic a bit. Note that all other Apple frameworks are either required or always-present, therefore do not add them to the summary in the same way as PVG. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> --- meson.build | 8 +++++--- hw/display/meson.build | 4 ++-- meson_options.txt | 2 ++ scripts/meson-buildoptions.sh | 3 +++ 4 files changed, 14 insertions(+), 5 deletions(-) diff --git a/meson.build b/meson.build index ad2c6b61930..ad8e7c1890e 100644 --- a/meson.build +++ b/meson.build @@ -821,7 +821,6 @@ version_res = [] coref = [] iokit = [] pvg = not_found -metal = [] emulator_link_args = [] midl = not_found widl = not_found @@ -843,8 +842,8 @@ elif host_os == 'darwin' coref = dependency('appleframeworks', modules: 'CoreFoundation') iokit = dependency('appleframeworks', modules: 'IOKit', required: false) host_dsosuf = '.dylib' - pvg = dependency('appleframeworks', modules: 'ParavirtualizedGraphics') - metal = dependency('appleframeworks', modules: 'Metal') + pvg = dependency('appleframeworks', modules: ['ParavirtualizedGraphics', 'Metal'], + required: get_option('pvg')) elif host_os == 'sunos' socket = [cc.find_library('socket'), cc.find_library('nsl'), @@ -4846,6 +4847,9 @@ summary_info += {'libdw': libdw} if host_os == 'freebsd' summary_info += {'libinotify-kqueue': inotify} endif +if host_os == 'darwin' + summary_info += {'ParavirtualizedGraphics support': pvg} +endif summary(summary_info, bool_yn: true, section: 'Dependencies') if host_arch == 'unknown' diff --git a/hw/display/meson.build b/hw/display/meson.build index b9bdf219103..9d82fbc9c89 100644 --- a/hw/display/meson.build +++ b/hw/display/meson.build @@ -62,8 +62,8 @@ system_ss.add(when: 'CONFIG_ARTIST', if_true: files('artist.c')) system_ss.add(when: 'CONFIG_ATI_VGA', if_true: [files('ati.c', 'ati_2d.c', 'ati_dbg.c'), pixman]) if pvg.found() - system_ss.add(when: 'CONFIG_MAC_PVG_PCI', if_true: [files('apple-gfx.m', 'apple-gfx-pci.m'), pvg, metal]) - system_ss.add(when: 'CONFIG_MAC_PVG_MMIO', if_true: [files('apple-gfx.m', 'apple-gfx-mmio.m'), pvg, metal]) + system_ss.add(when: 'CONFIG_MAC_PVG_PCI', if_true: [files('apple-gfx.m', 'apple-gfx-pci.m'), pvg]) + system_ss.add(when: 'CONFIG_MAC_PVG_MMIO', if_true: [files('apple-gfx.m', 'apple-gfx-mmio.m'), pvg]) endif if config_all_devices.has_key('CONFIG_VIRTIO_GPU') diff --git a/meson_options.txt b/meson_options.txt index 5eeaf3eee5c..59d973bca00 100644 --- a/meson_options.txt +++ b/meson_options.txt @@ -198,6 +198,8 @@ option('lzfse', type : 'feature', value : 'auto', description: 'lzfse support for DMG images') option('lzo', type : 'feature', value : 'auto', description: 'lzo compression support') +option('pvg', type: 'feature', value: 'auto', + description: 'macOS paravirtualized graphics support') option('rbd', type : 'feature', value : 'auto', description: 'Ceph block device driver') option('opengl', type : 'feature', value : 'auto', diff --git a/scripts/meson-buildoptions.sh b/scripts/meson-buildoptions.sh index a8066aab037..3e8e00852b2 100644 --- a/scripts/meson-buildoptions.sh +++ b/scripts/meson-buildoptions.sh @@ -168,6 +168,7 @@ meson_options_help() { printf "%s\n" ' pixman pixman support' printf "%s\n" ' plugins TCG plugins via shared library loading' printf "%s\n" ' png PNG support with libpng' + printf "%s\n" ' pvg macOS paravirtualized graphics support' printf "%s\n" ' qatzip QATzip compression support' printf "%s\n" ' qcow1 qcow1 image format support' printf "%s\n" ' qed qed image format support' @@ -436,6 +437,8 @@ _meson_option_parse() { --enable-png) printf "%s" -Dpng=enabled ;; --disable-png) printf "%s" -Dpng=disabled ;; --prefix=*) quote_sh "-Dprefix=$2" ;; + --enable-pvg) printf "%s" -Dpvg=enabled ;; + --disable-pvg) printf "%s" -Dpvg=disabled ;; --enable-qatzip) printf "%s" -Dqatzip=enabled ;; --disable-qatzip) printf "%s" -Dqatzip=disabled ;; --enable-qcow1) printf "%s" -Dqcow1=enabled ;; -- 2.48.1 ^ permalink raw reply related [flat|nested] 6+ messages in thread
end of thread, other threads:[~2025-02-24 9:28 UTC | newest] Thread overview: 6+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2025-02-20 13:33 [PATCH 0/2] pvg: clean up Kconfig Paolo Bonzini 2025-02-20 13:33 ` [PATCH 1/2] pvg: do not enable it on cross-architecture targets Paolo Bonzini 2025-02-20 15:19 ` Philippe Mathieu-Daudé 2025-02-21 17:01 ` Paolo Bonzini 2025-02-24 9:27 ` Philippe Mathieu-Daudé 2025-02-20 13:33 ` [PATCH 2/2] pvg: add option to configure it out Paolo Bonzini
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.