Re: [PATCH-for-9.1 v2 0/3] rdma: Remove RDMA subsystem and pvrdma device

2024-03-29 Thread Michael S. Tsirkin
On Thu, Mar 28, 2024 at 02:02:52PM +0100, Philippe Mathieu-Daudé wrote:
> Since v1:
> - split in 3 (Thomas)
> - justify gluster removal


Reviewed-by: Michael S. Tsirkin 

> Philippe Mathieu-Daudé (3):
>   hw/rdma: Remove pvrdma device and rdmacm-mux helper
>   migration: Remove RDMA protocol handling
>   block/gluster: Remove RDMA protocol handling
> 
>  MAINTAINERS   |   17 -
>  docs/about/deprecated.rst |9 -
>  docs/about/removed-features.rst   |4 +
>  docs/devel/migration/main.rst |6 -
>  docs/pvrdma.txt   |  345 --
>  docs/rdma.txt |  420 --
>  docs/system/device-url-syntax.rst.inc |4 +-
>  docs/system/loongarch/virt.rst|2 +-
>  docs/system/qemu-block-drivers.rst.inc|1 -
>  meson.build   |   59 -
>  qapi/machine.json |   17 -
>  qapi/migration.json   |   31 +-
>  qapi/qapi-schema.json |1 -
>  qapi/rdma.json|   38 -
>  contrib/rdmacm-mux/rdmacm-mux.h   |   61 -
>  hw/rdma/rdma_backend.h|  129 -
>  hw/rdma/rdma_backend_defs.h   |   76 -
>  hw/rdma/rdma_rm.h |   97 -
>  hw/rdma/rdma_rm_defs.h|  146 -
>  hw/rdma/rdma_utils.h  |   63 -
>  hw/rdma/trace.h   |1 -
>  hw/rdma/vmw/pvrdma.h  |  144 -
>  hw/rdma/vmw/pvrdma_dev_ring.h |   46 -
>  hw/rdma/vmw/pvrdma_qp_ops.h   |   28 -
>  hw/rdma/vmw/trace.h   |1 -
>  include/hw/rdma/rdma.h|   37 -
>  include/monitor/hmp.h |1 -
>  .../infiniband/hw/vmw_pvrdma/pvrdma_dev_api.h |  685 ---
>  .../infiniband/hw/vmw_pvrdma/pvrdma_verbs.h   |  348 --
>  .../standard-headers/rdma/vmw_pvrdma-abi.h|  310 --
>  migration/migration-stats.h   |6 +-
>  migration/migration.h |9 -
>  migration/options.h   |2 -
>  migration/rdma.h  |   69 -
>  block/gluster.c   |   39 -
>  contrib/rdmacm-mux/main.c |  831 
>  hw/core/machine-qmp-cmds.c|   32 -
>  hw/rdma/rdma.c|   30 -
>  hw/rdma/rdma_backend.c| 1401 --
>  hw/rdma/rdma_rm.c |  812 
>  hw/rdma/rdma_utils.c  |  126 -
>  hw/rdma/vmw/pvrdma_cmd.c  |  815 
>  hw/rdma/vmw/pvrdma_dev_ring.c |  141 -
>  hw/rdma/vmw/pvrdma_main.c |  735 ---
>  hw/rdma/vmw/pvrdma_qp_ops.c   |  298 --
>  migration/migration-stats.c   |5 +-
>  migration/migration.c |   31 -
>  migration/options.c   |   16 -
>  migration/qemu-file.c |1 -
>  migration/ram.c   |   86 +-
>  migration/rdma.c  | 4184 -
>  migration/savevm.c|2 +-
>  monitor/qmp-cmds.c|1 -
>  Kconfig.host  |3 -
>  contrib/rdmacm-mux/meson.build|7 -
>  hmp-commands-info.hx  |   13 -
>  hw/Kconfig|1 -
>  hw/meson.build|1 -
>  hw/rdma/Kconfig   |3 -
>  hw/rdma/meson.build   |   12 -
>  hw/rdma/trace-events  |   31 -
>  hw/rdma/vmw/trace-events  |   17 -
>  meson_options.txt |4 -
>  migration/meson.build |1 -
>  migration/trace-events|   68 +-
>  qapi/meson.build  |1 -
>  qemu-options.hx   |6 -
>  .../org.centos/stream/8/build-environment.yml |1 -
>  .../ci/org.centos/stream/8/x86_64/configure   |3 -
>  scripts/ci/setup/build-environment.yml|4 -
>  scripts/coverity-scan/run-coverity-scan   |2 +-
>  scripts/meson-buildoptions.sh |6 -
>  scripts/update-linux-headers.sh   |   27 -
>  tests/lcitool/projects/qemu.yml   |3 -
>  tests/migration/guestperf/engine.py   |4 +-
>  75 files changed, 20 insertions(+), 12997 deletions(-)
>  delete mode 100644 docs/pvrdma.txt
>  delete mode 100644 docs/rdma.txt
>  delete mode 100644 qapi/rdma.json
>  delete mode 100644 contrib/rdmacm-mux/rdmacm-mux.h
>  delete mode 100644 

Re: [PATCH for-9.0] docs/about: Mark the iaspc machine type as deprecated

2024-03-29 Thread Bernhard Beschow


Am 28. März 2024 14:09:52 UTC schrieb Mark Cave-Ayland 
:
>On 27/03/2024 07:09, Gerd Hoffmann wrote:
>
>> On Tue, Mar 26, 2024 at 01:30:48PM +, Mark Cave-Ayland wrote:
>>> Heh I've actually been using isapc over the past couple of weeks to fire up
>>> some old programs in a Windows 3 VM :)
>> 
>> I'm wondering why these use cases can't simply use the 'pc' machine
>> type?
>> 
>> The early pci chipsets of the 90-ies have been designed in a
>> backward-compatible manner, with devices such as the IDE controller
>> being mapped to the standard ISA ioports.  So even an historic OS which
>> does not know what PCI is can run on that hardware, by simply talking to
>> devices using the standard ISA io ports ...
>
>Hmmm that's a fair point: I think the pc machine has a PCI-ISA bridge 
>included, so ISA devices can be plugged in as needed. The reason I ended up on 
>that configuration was because I ended up chasing down a regression, and 
>wanted to quickly eliminate things such as ACPI.

In theory you could pass `-M acpi=off` to not instantiate the PIIX4 ACPI 
function, essentially turning the Frankenstein-PIIX4 SB into a PIIX3. However, 
this also removes SMI registers used by SeaBIOS to handle SMM setup which may 
create unwanted side effects. On a real PIIX3, these registers are located in 
the ISA function. I wonder if it made sense to implement that for greater 
compatibility.

What do you think? Gerd, what do you think w.r.t. SeaBIOS?

Best regards,
Bernhard

>
>
>ATB,
>
>Mark.
>
>
___
Devel mailing list -- devel@lists.libvirt.org
To unsubscribe send an email to devel-le...@lists.libvirt.org


Re: [PATCH-for-9.0 v2] hw/i386/pc: Deprecate 64-bit CPUs on ISA-only PC machine

2024-03-29 Thread Philippe Mathieu-Daudé

On 28/3/24 16:39, Thomas Huth wrote:

On 28/03/2024 16.12, Mark Cave-Ayland wrote:

On 27/03/2024 16:54, Philippe Mathieu-Daudé wrote:


Per Daniel suggestion [*]:

  > isapc could arguably be restricted to just 32-bit CPU models,
  > because we should not need it to support any feature that didn't
  > exist prior to circa 1995. eg refuse to start with isapc, if 'lm'
  > is present in the CPU model for example.

Display a warning when such CPU is used:

   $ qemu-system-x86_64 -monitor stdio -S -M isapc -cpu Westmere
   qemu-system-x86_64: warning: Use of 64-bit CPU 'Westmere' is 
deprecated on the ISA-only PC machine

   QEMU 8.2.91 monitor - type 'help' for more information
   (qemu) q

   $ qemu-system-x86_64 -monitor stdio -S -M isapc -cpu athlon
   QEMU 8.2.91 monitor - type 'help' for more information
   (qemu) q

[*] https://lore.kernel.org/qemu-devel/zgqks4rpmst5x...@redhat.com/

Suggested-by: Daniel P. Berrangé 
Signed-off-by: Philippe Mathieu-Daudé 
---
  docs/about/deprecated.rst |  7 +++
  include/hw/i386/pc.h  |  1 +
  hw/i386/pc_piix.c | 14 ++
  3 files changed, 22 insertions(+)

diff --git a/docs/about/deprecated.rst b/docs/about/deprecated.rst
index 7b548519b5..345c35507f 100644
--- a/docs/about/deprecated.rst
+++ b/docs/about/deprecated.rst
@@ -208,6 +208,13 @@ is no longer packaged in any distro making it 
harder to run the

  ``check-tcg`` tests. Unless we can improve the testing situation there
  is a chance the code will bitrot without anyone noticing.
+64-bit (x86_64) CPUs on the ``isapc`` machine (since 9.0)
+'
+
+The ``isapc`` machine aims to emulate old PC machine without PCI was
+generalized, so hardware available around 1995, before 64-bit intel
+CPUs were produced.
+
  System emulator machines
  
diff --git a/include/hw/i386/pc.h b/include/hw/i386/pc.h
index 27a68071d7..2d202b9549 100644
--- a/include/hw/i386/pc.h
+++ b/include/hw/i386/pc.h
@@ -96,6 +96,7 @@ struct PCMachineClass {
  const char *default_south_bridge;
  /* Compat options: */
+    bool deprecate_64bit_cpu; /* Specific to the 'isapc' machine */
  /* Default CPU model version.  See 
x86_cpu_set_default_version(). */

  int default_cpu_version;
diff --git a/hw/i386/pc_piix.c b/hw/i386/pc_piix.c
index 18ba076609..2e5b2efc33 100644
--- a/hw/i386/pc_piix.c
+++ b/hw/i386/pc_piix.c
@@ -182,7 +182,20 @@ static void pc_init1(MachineState *machine, 
const char *pci_type)

  }
  pc_machine_init_sgx_epc(pcms);
+
  x86_cpus_init(x86ms, pcmc->default_cpu_version);
+    if (pcmc->deprecate_64bit_cpu) {
+    X86CPU *cpu = X86_CPU(first_cpu);
+
+    if (cpu->env.features[FEAT_8000_0001_EDX] & CPUID_EXT2_LM) {
+    const char *cpu_type = 
object_get_typename(OBJECT(first_cpu));
+    int cpu_len = strlen(cpu_type) - 
strlen(X86_CPU_TYPE_SUFFIX);

+
+    warn_report("Use of 64-bit CPU '%.*s' is deprecated"
+    " on the ISA-only PC machine",
+    cpu_len, cpu_type);
+    }
+    }
  if (kvm_enabled()) {
  kvmclock_create(pcmc->kvmclock_create_always);
@@ -918,6 +931,7 @@ static void isapc_machine_options(MachineClass *m)
  pcmc->gigabyte_align = false;
  pcmc->smbios_legacy_mode = true;
  pcmc->has_reserved_memory = false;
+    pcmc->deprecate_64bit_cpu = true;
  m->default_nic = "ne2k_isa";
  m->default_cpu_type = X86_CPU_TYPE_NAME("486");
  m->no_parallel = !module_object_class_by_name(TYPE_ISA_PARALLEL);


The logic around checking CPUID_EXT2_LM looks good to me. Slightly 
curious as to whether people feel updating PCMachineClass is 
necessary, or you can simply do qdev_get_machine() and use 
object_dynamic_cast() to see if the machine matches 
MACHINE_NAME("isapc") and warn that way?


Why don't you simply pass it as a parameter from pc_init_isa() instead? 
Or do the whole check in pc_init_isa() instead?


Because the CPU isn't instantiated so we can't check the CPUID_EXT2_LM
feature :/
___
Devel mailing list -- devel@lists.libvirt.org
To unsubscribe send an email to devel-le...@lists.libvirt.org


Re: [PATCH-for-9.1 v2 2/3] migration: Remove RDMA protocol handling

2024-03-29 Thread Philippe Mathieu-Daudé

Hi Zhijian,

On 29/3/24 02:53, Zhijian Li (Fujitsu) wrote:



On 28/03/2024 23:01, Peter Xu wrote:

On Thu, Mar 28, 2024 at 11:18:04AM -0300, Fabiano Rosas wrote:

Philippe Mathieu-Daudé  writes:


The whole RDMA subsystem was deprecated in commit e9a54265f5
("hw/rdma: Deprecate the pvrdma device and the rdma subsystem")
released in v8.2.

Remove:
   - RDMA handling from migration
   - dependencies on libibumad, libibverbs and librdmacm

Keep the RAM_SAVE_FLAG_HOOK definition since it might appears
in old migration streams.

Cc: Peter Xu 
Cc: Li Zhijian 
Acked-by: Fabiano Rosas 
Signed-off-by: Philippe Mathieu-Daudé 


Just to be clear, because people raised the point in the last version,
the first link in the deprecation commit links to a thread comprising
entirely of rdma migration patches. I don't see any ambiguity on whether
the deprecation was intended to include migration. There's even an ack
from Juan.


Yes I remember that's the plan.



So on the basis of not reverting the previous maintainer's decision, my
Ack stands here.

We also had pretty obvious bugs ([1], [2]) in the past that would have
been caught if we had any kind of testing for the feature, so I can't
even say this thing works currently.

@Peter Xu, @Li Zhijian, what are your thoughts on this?


Generally I definitely agree with such a removal sooner or later, as that's
how deprecation works, and even after Juan's left I'm not aware of any
other new RDMA users.  Personally, I'd slightly prefer postponing it one
more release which might help a bit of our downstream maintenance, however
I assume that's not a blocker either, as I think we can also manage it.

IMHO it's more important to know whether there are still users and whether
they would still like to see it around. That's also one thing I notice that
e9a54265f533f didn't yet get acks from RDMA users that we are aware, even
if they're rare. According to [2] it could be that such user may only rely
on the release versions of QEMU when it broke things.

So I'm copying Yu too (while Zhijian is already in the loop), just in case
someone would like to stand up and speak.



I admit RDMA migration was lack of testing(unit/CI test), which led to the a few
obvious bugs being noticed too late.
However I was a bit surprised when I saw the removal of the RDMA migration. I 
wasn't
aware that this feature has not been marked as deprecated(at least there is no
prompt to end-user).



IMHO it's more important to know whether there are still users and whether
they would still like to see it around.


Agree.
I didn't immediately express my opinion in V1 because I'm also consulting our
customers for this feature in the future.

Personally, I agree with Perter's idea that "I'd slightly prefer postponing it 
one
more release which might help a bit of our downstream maintenance"


Do you mind posting a deprecation patch to clarify the situation?

Thanks,

Phil.



Thanks
Zhijian



Thanks,



1- https://lore.kernel.org/r/20230920090412.726725-1-lizhij...@fujitsu.com
2- 
https://lore.kernel.org/r/cahecvy7hxswn4ow_kog+q+tn6f_kmeichevz1qgm-fbxbpp...@mail.gmail.com


___
Devel mailing list -- devel@lists.libvirt.org
To unsubscribe send an email to devel-le...@lists.libvirt.org


Re: [PATCH-for-9.1 v2 2/3] migration: Remove RDMA protocol handling

2024-03-29 Thread Zhijian Li (Fujitsu)


On 28/03/2024 23:01, Peter Xu wrote:
> On Thu, Mar 28, 2024 at 11:18:04AM -0300, Fabiano Rosas wrote:
>> Philippe Mathieu-Daudé  writes:
>>
>>> The whole RDMA subsystem was deprecated in commit e9a54265f5
>>> ("hw/rdma: Deprecate the pvrdma device and the rdma subsystem")
>>> released in v8.2.
>>>
>>> Remove:
>>>   - RDMA handling from migration
>>>   - dependencies on libibumad, libibverbs and librdmacm
>>>
>>> Keep the RAM_SAVE_FLAG_HOOK definition since it might appears
>>> in old migration streams.
>>>
>>> Cc: Peter Xu 
>>> Cc: Li Zhijian 
>>> Acked-by: Fabiano Rosas 
>>> Signed-off-by: Philippe Mathieu-Daudé 
>>
>> Just to be clear, because people raised the point in the last version,
>> the first link in the deprecation commit links to a thread comprising
>> entirely of rdma migration patches. I don't see any ambiguity on whether
>> the deprecation was intended to include migration. There's even an ack
>> from Juan.
> 
> Yes I remember that's the plan.
> 
>>
>> So on the basis of not reverting the previous maintainer's decision, my
>> Ack stands here.
>>
>> We also had pretty obvious bugs ([1], [2]) in the past that would have
>> been caught if we had any kind of testing for the feature, so I can't
>> even say this thing works currently.
>>
>> @Peter Xu, @Li Zhijian, what are your thoughts on this?
> 
> Generally I definitely agree with such a removal sooner or later, as that's
> how deprecation works, and even after Juan's left I'm not aware of any
> other new RDMA users.  Personally, I'd slightly prefer postponing it one
> more release which might help a bit of our downstream maintenance, however
> I assume that's not a blocker either, as I think we can also manage it.
> 
> IMHO it's more important to know whether there are still users and whether
> they would still like to see it around. That's also one thing I notice that
> e9a54265f533f didn't yet get acks from RDMA users that we are aware, even
> if they're rare. According to [2] it could be that such user may only rely
> on the release versions of QEMU when it broke things.
> 
> So I'm copying Yu too (while Zhijian is already in the loop), just in case
> someone would like to stand up and speak.


I admit RDMA migration was lack of testing(unit/CI test), which led to the a few
obvious bugs being noticed too late.
However I was a bit surprised when I saw the removal of the RDMA migration. I 
wasn't
aware that this feature has not been marked as deprecated(at least there is no
prompt to end-user).


> IMHO it's more important to know whether there are still users and whether
> they would still like to see it around.

Agree.
I didn't immediately express my opinion in V1 because I'm also consulting our
customers for this feature in the future.

Personally, I agree with Perter's idea that "I'd slightly prefer postponing it 
one
more release which might help a bit of our downstream maintenance"

Thanks
Zhijian

> 
> Thanks,
> 
>>
>> 1- https://lore.kernel.org/r/20230920090412.726725-1-lizhij...@fujitsu.com
>> 2- 
>> https://lore.kernel.org/r/cahecvy7hxswn4ow_kog+q+tn6f_kmeichevz1qgm-fbxbpp...@mail.gmail.com
>>
> 
___
Devel mailing list -- devel@lists.libvirt.org
To unsubscribe send an email to devel-le...@lists.libvirt.org


Re: [PATCH-for-9.1 v2 2/3] migration: Remove RDMA protocol handling

2024-03-29 Thread Daniel P . Berrangé
On Fri, Mar 29, 2024 at 11:28:54AM +0100, Philippe Mathieu-Daudé wrote:
> Hi Zhijian,
> 
> On 29/3/24 02:53, Zhijian Li (Fujitsu) wrote:
> > 
> > 
> > On 28/03/2024 23:01, Peter Xu wrote:
> > > On Thu, Mar 28, 2024 at 11:18:04AM -0300, Fabiano Rosas wrote:
> > > > Philippe Mathieu-Daudé  writes:
> > > > 
> > > > > The whole RDMA subsystem was deprecated in commit e9a54265f5
> > > > > ("hw/rdma: Deprecate the pvrdma device and the rdma subsystem")
> > > > > released in v8.2.
> > > > > 
> > > > > Remove:
> > > > >- RDMA handling from migration
> > > > >- dependencies on libibumad, libibverbs and librdmacm
> > > > > 
> > > > > Keep the RAM_SAVE_FLAG_HOOK definition since it might appears
> > > > > in old migration streams.
> > > > > 
> > > > > Cc: Peter Xu 
> > > > > Cc: Li Zhijian 
> > > > > Acked-by: Fabiano Rosas 
> > > > > Signed-off-by: Philippe Mathieu-Daudé 
> > > > 
> > > > Just to be clear, because people raised the point in the last version,
> > > > the first link in the deprecation commit links to a thread comprising
> > > > entirely of rdma migration patches. I don't see any ambiguity on whether
> > > > the deprecation was intended to include migration. There's even an ack
> > > > from Juan.
> > > 
> > > Yes I remember that's the plan.
> > > 
> > > > 
> > > > So on the basis of not reverting the previous maintainer's decision, my
> > > > Ack stands here.
> > > > 
> > > > We also had pretty obvious bugs ([1], [2]) in the past that would have
> > > > been caught if we had any kind of testing for the feature, so I can't
> > > > even say this thing works currently.
> > > > 
> > > > @Peter Xu, @Li Zhijian, what are your thoughts on this?
> > > 
> > > Generally I definitely agree with such a removal sooner or later, as 
> > > that's
> > > how deprecation works, and even after Juan's left I'm not aware of any
> > > other new RDMA users.  Personally, I'd slightly prefer postponing it one
> > > more release which might help a bit of our downstream maintenance, however
> > > I assume that's not a blocker either, as I think we can also manage it.
> > > 
> > > IMHO it's more important to know whether there are still users and whether
> > > they would still like to see it around. That's also one thing I notice 
> > > that
> > > e9a54265f533f didn't yet get acks from RDMA users that we are aware, even
> > > if they're rare. According to [2] it could be that such user may only rely
> > > on the release versions of QEMU when it broke things.
> > > 
> > > So I'm copying Yu too (while Zhijian is already in the loop), just in case
> > > someone would like to stand up and speak.
> > 
> > 
> > I admit RDMA migration was lack of testing(unit/CI test), which led to the 
> > a few
> > obvious bugs being noticed too late.
> > However I was a bit surprised when I saw the removal of the RDMA migration. 
> > I wasn't
> > aware that this feature has not been marked as deprecated(at least there is 
> > no
> > prompt to end-user).
> > 
> > 
> > > IMHO it's more important to know whether there are still users and whether
> > > they would still like to see it around.
> > 
> > Agree.
> > I didn't immediately express my opinion in V1 because I'm also consulting 
> > our
> > customers for this feature in the future.
> > 
> > Personally, I agree with Perter's idea that "I'd slightly prefer postponing 
> > it one
> > more release which might help a bit of our downstream maintenance"
> 
> Do you mind posting a deprecation patch to clarify the situation?

The key thing the first deprecation patch missed was that it failed
to issue a warning message when RDMA migration was actually used.

With regards,
Daniel
-- 
|: https://berrange.com  -o-https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org -o-https://fstop138.berrange.com :|
|: https://entangle-photo.org-o-https://www.instagram.com/dberrange :|
___
Devel mailing list -- devel@lists.libvirt.org
To unsubscribe send an email to devel-le...@lists.libvirt.org