mbox series

[v2,00/22] qapi: Kill 'qapi/qmp/qerror.h' for good

Message ID 20231005045041.52649-1-philmd@linaro.org
Headers show
Series qapi: Kill 'qapi/qmp/qerror.h' for good | expand

Message

Philippe Mathieu-Daudé Oct. 5, 2023, 4:50 a.m. UTC
Since v1:
- Fixed checkpatch warnings (Juan)
- Added R-b tags
- New patch for 'vcpu_dirty_limit'

Hi,

This is kind of a selfish series. I'm really tired to grep
and read this comment from 2015 in qapi/qmp/qerror.h:
      /*
       * These macros will go away, please don't use
       * in new code, and do not add new ones!
       */

Besides, these definitions are still added in recent code
(see for example commit 09f9ec9913 from June 2023). So
let's finish with this 8 years old technical debt.

Overall it took me 3h: 1h to find the correct Coccinelle
doc about Python use and read it again [*], then 1h to
adapt the script for each patch, rest is testing and
writing comments, so the scripts used could be used as
reference later.

Regards,

Phil.

[*] https://www.lrz.de/services/compute/courses/x_lecturenotes/hspc1w19.pdf

Philippe Mathieu-Daudé (22):
  qapi: Inline and remove QERR_BUS_NO_HOTPLUG definition
  qapi: Inline and remove QERR_DEVICE_HAS_NO_MEDIUM definition
  qapi: Inline and remove QERR_DEVICE_IN_USE definition
  qapi: Inline and remove QERR_DEVICE_NO_HOTPLUG definition
  qapi: Inline QERR_INVALID_PARAMETER definition (constant parameter)
  qapi: Inline and remove QERR_INVALID_PARAMETER definition
  qapi: Inline QERR_INVALID_PARAMETER_TYPE definition (constant param)
  qapi: Inline QERR_INVALID_PARAMETER_TYPE definition (constant value)
  qapi: Inline and remove QERR_INVALID_PARAMETER_TYPE definition
  qapi: Correct error message for 'vcpu_dirty_limit' parameter
  qapi: Inline QERR_INVALID_PARAMETER_VALUE definition (constant value)
  qapi: Inline QERR_INVALID_PARAMETER_VALUE definition (constant param)
  qapi: Inline and remove QERR_INVALID_PARAMETER_VALUE definition
  qapi: Inline and remove QERR_IO_ERROR definition
  qapi: Inline and remove QERR_MIGRATION_ACTIVE definition
  qapi: Inline QERR_MISSING_PARAMETER definition (constant parameter)
  qapi: Inline and remove QERR_MISSING_PARAMETER definition
  qapi: Inline and remove QERR_PROPERTY_VALUE_BAD definition
  qapi: Inline and remove QERR_PROPERTY_VALUE_OUT_OF_RANGE definition
  qapi: Inline and remove QERR_QGA_COMMAND_FAILED  definition
  RFC qapi: Inline and remove QERR_UNSUPPORTED definition
  qapi: Remove 'qapi/qmp/qerror.h' header

 qga/qapi-schema.json             |   5 +-
 include/qapi/qmp/qerror.h        |  62 -------------------
 backends/cryptodev-vhost-user.c  |   5 +-
 backends/dbus-vmstate.c          |   3 +-
 backends/rng-egd.c               |   5 +-
 backends/rng-random.c            |   4 +-
 block/gluster.c                  |  22 +++----
 block/monitor/block-hmp-cmds.c   |   7 +--
 block/quorum.c                   |   4 +-
 block/snapshot.c                 |   5 +-
 block/vmdk.c                     |   9 ++-
 blockdev.c                       |  16 +++--
 blockjob.c                       |   4 +-
 chardev/char-fe.c                |   3 +-
 chardev/char.c                   |   4 +-
 dump/dump.c                      |  11 ++--
 dump/win_dump.c                  |   5 +-
 hw/core/qdev-properties-system.c |   6 +-
 hw/core/qdev-properties.c        |   3 +-
 hw/core/qdev.c                   |   4 +-
 hw/intc/openpic.c                |   4 +-
 hw/ppc/spapr_pci.c               |   5 +-
 hw/usb/redirect.c                |   7 +--
 migration/migration.c            |   7 +--
 migration/options.c              | 102 +++++++++++++------------------
 migration/page_cache.c           |   9 ++-
 migration/ram.c                  |   5 +-
 migration/savevm.c               |   7 +--
 monitor/fds.c                    |   9 ++-
 monitor/hmp-cmds.c               |   3 +-
 monitor/qmp-cmds.c               |   4 +-
 net/filter-buffer.c              |   4 +-
 net/filter.c                     |   8 +--
 net/net.c                        |  10 ++-
 qapi/opts-visitor.c              |  12 ++--
 qapi/qapi-forward-visitor.c      |   3 +-
 qapi/qapi-util.c                 |   4 +-
 qapi/qapi-visit-core.c           |   5 +-
 qapi/qobject-input-visitor.c     |  53 ++++++++--------
 qapi/string-input-visitor.c      |  27 ++++----
 qga/commands-bsd.c               |   9 ++-
 qga/commands-posix.c             |  47 +++++++-------
 qga/commands-win32.c             |  65 ++++++++++----------
 qga/commands.c                   |  10 +--
 qom/object.c                     |  16 +++--
 qom/object_interfaces.c          |   3 +-
 qom/qom-qmp-cmds.c               |   8 +--
 softmmu/balloon.c                |   3 +-
 softmmu/cpus.c                   |   8 +--
 softmmu/qdev-monitor.c           |  24 ++++----
 softmmu/rtc.c                    |   1 -
 softmmu/tpm.c                    |   8 +--
 softmmu/vl.c                     |   5 +-
 target/arm/arm-qmp-cmds.c        |   4 +-
 target/i386/cpu.c                |  15 +++--
 target/s390x/cpu_models_sysemu.c |   4 +-
 ui/input-barrier.c               |   3 +-
 ui/ui-qmp-cmds.c                 |   7 +--
 util/block-helpers.c             |   4 +-
 util/qemu-option.c               |  21 +++----
 scripts/qapi/visit.py            |   5 +-
 61 files changed, 308 insertions(+), 437 deletions(-)
 delete mode 100644 include/qapi/qmp/qerror.h

Comments

Markus Armbruster Oct. 5, 2023, 9:26 a.m. UTC | #1
Philippe Mathieu-Daudé <philmd@linaro.org> writes:

> Since v1:
> - Fixed checkpatch warnings (Juan)
> - Added R-b tags
> - New patch for 'vcpu_dirty_limit'
>
> Hi,
>
> This is kind of a selfish series. I'm really tired to grep
> and read this comment from 2015 in qapi/qmp/qerror.h:
>       /*
>        * These macros will go away, please don't use
>        * in new code, and do not add new ones!
>        */
>
> Besides, these definitions are still added in recent code
> (see for example commit 09f9ec9913 from June 2023). So
> let's finish with this 8 years old technical debt.

Gee, a late birthday present for me!  Thank you!

> Overall it took me 3h: 1h to find the correct Coccinelle
> doc about Python use and read it again [*], then 1h to
> adapt the script for each patch, rest is testing and
> writing comments, so the scripts used could be used as
> reference later.

By the time you're done, it'll likely be 6h or more...
Markus Armbruster Oct. 20, 2023, 1:15 p.m. UTC | #2
Your patches are sane, the problem is they made me look at the code they
patch, much of which is not fine.  Let's chat off list to figure out how
to best get your patches merged.