[Xen-devel] [PATCH v6 00/11] error: auto propagated local_err part I

Vladimir Sementsov-Ogievskiy posted 11 patches 30 weeks ago
Only 4 patches received!
include/block/nbd.h                           |   1 +
include/qapi/error.h                          | 113 +++++++++++++-
block/nbd.c                                   |  49 +++---
hw/9pfs/9p-local.c                            |  12 +-
hw/9pfs/9p.c                                  |   1 +
hw/block/dataplane/xen-block.c                |  17 +--
hw/block/pflash_cfi01.c                       |   7 +-
hw/block/pflash_cfi02.c                       |   7 +-
hw/block/xen-block.c                          | 125 +++++++---------
hw/nvram/fw_cfg.c                             |  14 +-
hw/pci-host/xen_igd_pt.c                      |   7 +-
hw/sd/sdhci-pci.c                             |   7 +-
hw/sd/sdhci.c                                 |  21 ++-
hw/sd/ssi-sd.c                                |  26 +++-
hw/tpm/tpm_util.c                             |   7 +-
hw/xen/xen-backend.c                          |   7 +-
hw/xen/xen-bus.c                              | 100 ++++++-------
hw/xen/xen-host-pci-device.c                  |  27 ++--
hw/xen/xen_pt.c                               |  25 ++--
hw/xen/xen_pt_config_init.c                   |  20 +--
nbd/client.c                                  |   5 +
nbd/server.c                                  |   5 +
tpm.c                                         |   7 +-
scripts/coccinelle/auto-propagated-errp.cocci | 139 ++++++++++++++++++
24 files changed, 482 insertions(+), 267 deletions(-)
create mode 100644 scripts/coccinelle/auto-propagated-errp.cocci

[Xen-devel] [PATCH v6 00/11] error: auto propagated local_err part I

Posted by Vladimir Sementsov-Ogievskiy 30 weeks ago
Hi all!

Now, when preparations from
 [RFC v5 000/126] error: auto propagated local_err
 https://lists.gnu.org/archive/html/qemu-devel/2019-10/msg02771.html
 https://src.openvz.org/scm/~vsementsov/qemu.git #tag up-auto-local-err-v5 
, after some iterations, are finally merged, let's proceed with the
rest. Sorry for a big delay on my part.

As a first step, I decided to take subsystems, each of them covered by
one patch, which get r-b/a-b marks by maintainer of the subsystem in v5.

v6 is available at
 https://src.openvz.org/scm/~vsementsov/qemu.git #tag up-auto-local-err-partI-v6 

Changes v5->v6:
01: use errp name for the parameter, add assertion
02: add a lot of text information, drop Eric's r-b.
    no semantic changes.
03: add more comments
    skip functions with pattern error_append_.*_hint in name
    make errp identifier, to match any name of Error ** paramter
    some other improvements
04: only commit message changed,
    keep Philippe's r-b
05: new, manual update for hw/sd/ssi-sd
06: only commit message changed,
    keep Philippe's r-b
07: only commit message changed,
    keep Philippe's r-b
08: local_parse_opts() changed, so patch changed in this
    function, drop a-b mark
    also, indentation fixed, by improvement in coccinelle script
09: only commit message changed,
    keep Stefan's r-b
10: commit message and a bit of context changed, still seems
    valid to keep Eric's r-b
11: add new hunk: hw/pci-host/xen_igd_pt.c, so, drop r-b
    also, indentation fixed, by improvement in coccinelle script

In these series, there is no commit-per-subsystem script, each generated
commit is generated in separate.

Still, generating commands are very similar, and looks like

    sed -n '/^<Subsystem name>$/,/^$/{s/^F: //p}' MAINTAINERS | \
    xargs git ls-files | grep '\.[hc]$' | \
    xargs spatch \
        --sp-file scripts/coccinelle/auto-propagated-errp.cocci \
        --macro-file scripts/cocci-macro-file.h \
        --in-place --no-show-diff --max-width 80

Note, that in each generated commit, generation command is the only
text, indented by 8 spaces in 'git log -1' output, so, to regenerate all
commits (for example, after rebase, or change in coccinelle script), you
may use the following command:

git rebase -x "sh -c \"git show --pretty= --name-only | xargs git checkout HEAD^ -- ; git reset; git log -1 | grep '^        ' | sh\"" HEAD~7

Which will start automated interactive rebase for generated patches,
which will stop if generated patch changed
(you may do git commit --amend to apply updated generated changes).

Note:
  git show --pretty= --name-only   - lists files, changed in HEAD
  git log -1 | grep '^        ' | sh   - rerun generation command of HEAD


Check for compilation of changed .c files
git rebase -x "sh -c \"git show --pretty= --name-only | sed -n 's/\.c$/.o/p' | xargs make -j9\"" HEAD~7
  

Vladimir Sementsov-Ogievskiy (11):
  qapi/error: add (Error **errp) cleaning APIs
  error: auto propagated local_err
  scripts: add coccinelle script to use auto propagated errp
  hw/sd/ssi-sd: fix error handling in ssi_sd_realize
  SD (Secure Card): introduce ERRP_AUTO_PROPAGATE
  pflash: introduce ERRP_AUTO_PROPAGATE
  fw_cfg: introduce ERRP_AUTO_PROPAGATE
  virtio-9p: introduce ERRP_AUTO_PROPAGATE
  TPM: introduce ERRP_AUTO_PROPAGATE
  nbd: introduce ERRP_AUTO_PROPAGATE
  xen: introduce ERRP_AUTO_PROPAGATE

 include/block/nbd.h                           |   1 +
 include/qapi/error.h                          | 113 +++++++++++++-
 block/nbd.c                                   |  49 +++---
 hw/9pfs/9p-local.c                            |  12 +-
 hw/9pfs/9p.c                                  |   1 +
 hw/block/dataplane/xen-block.c                |  17 +--
 hw/block/pflash_cfi01.c                       |   7 +-
 hw/block/pflash_cfi02.c                       |   7 +-
 hw/block/xen-block.c                          | 125 +++++++---------
 hw/nvram/fw_cfg.c                             |  14 +-
 hw/pci-host/xen_igd_pt.c                      |   7 +-
 hw/sd/sdhci-pci.c                             |   7 +-
 hw/sd/sdhci.c                                 |  21 ++-
 hw/sd/ssi-sd.c                                |  26 +++-
 hw/tpm/tpm_util.c                             |   7 +-
 hw/xen/xen-backend.c                          |   7 +-
 hw/xen/xen-bus.c                              | 100 ++++++-------
 hw/xen/xen-host-pci-device.c                  |  27 ++--
 hw/xen/xen_pt.c                               |  25 ++--
 hw/xen/xen_pt_config_init.c                   |  20 +--
 nbd/client.c                                  |   5 +
 nbd/server.c                                  |   5 +
 tpm.c                                         |   7 +-
 scripts/coccinelle/auto-propagated-errp.cocci | 139 ++++++++++++++++++
 24 files changed, 482 insertions(+), 267 deletions(-)
 create mode 100644 scripts/coccinelle/auto-propagated-errp.cocci

CC: Cornelia Huck <cohuck@redhat.com>
CC: Eric Blake <eblake@redhat.com>
CC: Kevin Wolf <kwolf@redhat.com>
CC: Max Reitz <mreitz@redhat.com>
CC: Greg Kurz <groug@kaod.org>
CC: Stefan Hajnoczi <stefanha@redhat.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Anthony Perard <anthony.perard@citrix.com>
CC: Paul Durrant <paul@xen.org>
CC: "Philippe Mathieu-Daudé" <philmd@redhat.com>
CC: Laszlo Ersek <lersek@redhat.com>
CC: Gerd Hoffmann <kraxel@redhat.com>
CC: Stefan Berger <stefanb@linux.ibm.com>
CC: Markus Armbruster <armbru@redhat.com>
CC: Michael Roth <mdroth@linux.vnet.ibm.com>
CC: qemu-block@nongnu.org
CC: xen-devel@lists.xenproject.org

-- 
2.21.0


_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

Re: [Xen-devel] [PATCH v6 00/11] error: auto propagated local_err part I

Posted by Vladimir Sementsov-Ogievskiy 27 weeks ago
Markus, what about this? Should I respin?

10.01.2020 22:41, Vladimir Sementsov-Ogievskiy wrote:
> Hi all!
> 
> Now, when preparations from
>   [RFC v5 000/126] error: auto propagated local_err
>   https://lists.gnu.org/archive/html/qemu-devel/2019-10/msg02771.html
>   https://src.openvz.org/scm/~vsementsov/qemu.git #tag up-auto-local-err-v5
> , after some iterations, are finally merged, let's proceed with the
> rest. Sorry for a big delay on my part.
> 
> As a first step, I decided to take subsystems, each of them covered by
> one patch, which get r-b/a-b marks by maintainer of the subsystem in v5.
> 
> v6 is available at
>   https://src.openvz.org/scm/~vsementsov/qemu.git #tag up-auto-local-err-partI-v6
> 
> Changes v5->v6:
> 01: use errp name for the parameter, add assertion
> 02: add a lot of text information, drop Eric's r-b.
>      no semantic changes.
> 03: add more comments
>      skip functions with pattern error_append_.*_hint in name
>      make errp identifier, to match any name of Error ** paramter
>      some other improvements
> 04: only commit message changed,
>      keep Philippe's r-b
> 05: new, manual update for hw/sd/ssi-sd
> 06: only commit message changed,
>      keep Philippe's r-b
> 07: only commit message changed,
>      keep Philippe's r-b
> 08: local_parse_opts() changed, so patch changed in this
>      function, drop a-b mark
>      also, indentation fixed, by improvement in coccinelle script
> 09: only commit message changed,
>      keep Stefan's r-b
> 10: commit message and a bit of context changed, still seems
>      valid to keep Eric's r-b
> 11: add new hunk: hw/pci-host/xen_igd_pt.c, so, drop r-b
>      also, indentation fixed, by improvement in coccinelle script
> 
> In these series, there is no commit-per-subsystem script, each generated
> commit is generated in separate.
> 
> Still, generating commands are very similar, and looks like
> 
>      sed -n '/^<Subsystem name>$/,/^$/{s/^F: //p}' MAINTAINERS | \
>      xargs git ls-files | grep '\.[hc]$' | \
>      xargs spatch \
>          --sp-file scripts/coccinelle/auto-propagated-errp.cocci \
>          --macro-file scripts/cocci-macro-file.h \
>          --in-place --no-show-diff --max-width 80
> 
> Note, that in each generated commit, generation command is the only
> text, indented by 8 spaces in 'git log -1' output, so, to regenerate all
> commits (for example, after rebase, or change in coccinelle script), you
> may use the following command:
> 
> git rebase -x "sh -c \"git show --pretty= --name-only | xargs git checkout HEAD^ -- ; git reset; git log -1 | grep '^        ' | sh\"" HEAD~7
> 
> Which will start automated interactive rebase for generated patches,
> which will stop if generated patch changed
> (you may do git commit --amend to apply updated generated changes).
> 
> Note:
>    git show --pretty= --name-only   - lists files, changed in HEAD
>    git log -1 | grep '^        ' | sh   - rerun generation command of HEAD
> 
> 
> Check for compilation of changed .c files
> git rebase -x "sh -c \"git show --pretty= --name-only | sed -n 's/\.c$/.o/p' | xargs make -j9\"" HEAD~7
>    
> 
> Vladimir Sementsov-Ogievskiy (11):
>    qapi/error: add (Error **errp) cleaning APIs
>    error: auto propagated local_err
>    scripts: add coccinelle script to use auto propagated errp
>    hw/sd/ssi-sd: fix error handling in ssi_sd_realize
>    SD (Secure Card): introduce ERRP_AUTO_PROPAGATE
>    pflash: introduce ERRP_AUTO_PROPAGATE
>    fw_cfg: introduce ERRP_AUTO_PROPAGATE
>    virtio-9p: introduce ERRP_AUTO_PROPAGATE
>    TPM: introduce ERRP_AUTO_PROPAGATE
>    nbd: introduce ERRP_AUTO_PROPAGATE
>    xen: introduce ERRP_AUTO_PROPAGATE
> 
>   include/block/nbd.h                           |   1 +
>   include/qapi/error.h                          | 113 +++++++++++++-
>   block/nbd.c                                   |  49 +++---
>   hw/9pfs/9p-local.c                            |  12 +-
>   hw/9pfs/9p.c                                  |   1 +
>   hw/block/dataplane/xen-block.c                |  17 +--
>   hw/block/pflash_cfi01.c                       |   7 +-
>   hw/block/pflash_cfi02.c                       |   7 +-
>   hw/block/xen-block.c                          | 125 +++++++---------
>   hw/nvram/fw_cfg.c                             |  14 +-
>   hw/pci-host/xen_igd_pt.c                      |   7 +-
>   hw/sd/sdhci-pci.c                             |   7 +-
>   hw/sd/sdhci.c                                 |  21 ++-
>   hw/sd/ssi-sd.c                                |  26 +++-
>   hw/tpm/tpm_util.c                             |   7 +-
>   hw/xen/xen-backend.c                          |   7 +-
>   hw/xen/xen-bus.c                              | 100 ++++++-------
>   hw/xen/xen-host-pci-device.c                  |  27 ++--
>   hw/xen/xen_pt.c                               |  25 ++--
>   hw/xen/xen_pt_config_init.c                   |  20 +--
>   nbd/client.c                                  |   5 +
>   nbd/server.c                                  |   5 +
>   tpm.c                                         |   7 +-
>   scripts/coccinelle/auto-propagated-errp.cocci | 139 ++++++++++++++++++
>   24 files changed, 482 insertions(+), 267 deletions(-)
>   create mode 100644 scripts/coccinelle/auto-propagated-errp.cocci
> 
> CC: Cornelia Huck <cohuck@redhat.com>
> CC: Eric Blake <eblake@redhat.com>
> CC: Kevin Wolf <kwolf@redhat.com>
> CC: Max Reitz <mreitz@redhat.com>
> CC: Greg Kurz <groug@kaod.org>
> CC: Stefan Hajnoczi <stefanha@redhat.com>
> CC: Stefano Stabellini <sstabellini@kernel.org>
> CC: Anthony Perard <anthony.perard@citrix.com>
> CC: Paul Durrant <paul@xen.org>
> CC: "Philippe Mathieu-Daudé" <philmd@redhat.com>
> CC: Laszlo Ersek <lersek@redhat.com>
> CC: Gerd Hoffmann <kraxel@redhat.com>
> CC: Stefan Berger <stefanb@linux.ibm.com>
> CC: Markus Armbruster <armbru@redhat.com>
> CC: Michael Roth <mdroth@linux.vnet.ibm.com>
> CC: qemu-block@nongnu.org
> CC: xen-devel@lists.xenproject.org
> 


-- 
Best regards,
Vladimir

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

Re: [PATCH v6 00/11] error: auto propagated local_err part I

Posted by Markus Armbruster 27 weeks ago
Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com> writes:

> Markus, what about this? Should I respin?

I still haven't looked at this, must be frustrating for you, sorry!
I've been under water ever since my Christmas vacation...  If you rather
want me to look at a v7 that addresses the review comments from others,
then go ahead and respin.


Re: [Xen-devel] [PATCH v6 00/11] error: auto propagated local_err part I

Posted by no-reply@patchew.org 30 weeks ago
Patchew URL: https://patchew.org/QEMU/20200110194158.14190-1-vsementsov@virtuozzo.com/



Hi,

This series seems to have some coding style problems. See output below for
more information:

Subject: [Xen-devel] [PATCH v6 00/11] error: auto propagated local_err part I
Type: series
Message-id: 20200110194158.14190-1-vsementsov@virtuozzo.com

=== TEST SCRIPT BEGIN ===
#!/bin/bash
git rev-parse base > /dev/null || exit 0
git config --local diff.renamelimit 0
git config --local diff.renames True
git config --local diff.algorithm histogram
./scripts/checkpatch.pl --mailback base..
=== TEST SCRIPT END ===

Switched to a new branch 'test'
fee0dd2 xen: introduce ERRP_AUTO_PROPAGATE
9074b45 nbd: introduce ERRP_AUTO_PROPAGATE
05632cb TPM: introduce ERRP_AUTO_PROPAGATE
2a019cd virtio-9p: introduce ERRP_AUTO_PROPAGATE
b4e0525 fw_cfg: introduce ERRP_AUTO_PROPAGATE
3a69800 pflash: introduce ERRP_AUTO_PROPAGATE
f4ac870 SD (Secure Card): introduce ERRP_AUTO_PROPAGATE
29fbc1d hw/sd/ssi-sd: fix error handling in ssi_sd_realize
6ebc57a scripts: add coccinelle script to use auto propagated errp
477b9ec error: auto propagated local_err
0c38914 qapi/error: add (Error **errp) cleaning APIs

=== OUTPUT BEGIN ===
1/11 Checking commit 0c389147591a (qapi/error: add (Error **errp) cleaning APIs)
2/11 Checking commit 477b9ec03898 (error: auto propagated local_err)
ERROR: Macros with multiple statements should be enclosed in a do - while loop
#138: FILE: include/qapi/error.h:428:
+#define ERRP_AUTO_PROPAGATE()                                  \
+    g_auto(ErrorPropagator) _auto_errp_prop = {.errp = errp};  \
+    errp = ((errp == NULL || *errp == error_fatal)             \
+            ? &_auto_errp_prop.local_err : errp)

total: 1 errors, 0 warnings, 102 lines checked

Patch 2/11 has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.

3/11 Checking commit 6ebc57a94cf0 (scripts: add coccinelle script to use auto propagated errp)
WARNING: added, moved or deleted file(s), does MAINTAINERS need updating?
#25: 
new file mode 100644

total: 0 errors, 1 warnings, 148 lines checked

Patch 3/11 has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
4/11 Checking commit 29fbc1d61eb1 (hw/sd/ssi-sd: fix error handling in ssi_sd_realize)
5/11 Checking commit f4ac87065f2c (SD (Secure Card): introduce ERRP_AUTO_PROPAGATE)
6/11 Checking commit 3a69800331a4 (pflash: introduce ERRP_AUTO_PROPAGATE)
7/11 Checking commit b4e0525d3dcf (fw_cfg: introduce ERRP_AUTO_PROPAGATE)
8/11 Checking commit 2a019cd1f992 (virtio-9p: introduce ERRP_AUTO_PROPAGATE)
9/11 Checking commit 05632cbe2d39 (TPM: introduce ERRP_AUTO_PROPAGATE)
10/11 Checking commit 9074b450cb34 (nbd: introduce ERRP_AUTO_PROPAGATE)
11/11 Checking commit fee0dd26ea0b (xen: introduce ERRP_AUTO_PROPAGATE)
=== OUTPUT END ===

Test command exited with code: 1


The full log is available at
http://patchew.org/logs/20200110194158.14190-1-vsementsov@virtuozzo.com/testing.checkpatch/?type=message.
---
Email generated automatically by Patchew [https://patchew.org/].
Please send your feedback to patchew-devel@redhat.com