mbox

[PULL,v2,00/27] Block patches

Message ID 20210204154327.386529-1-stefanha@redhat.com (mailing list archive)
State New, archived
Headers show

Pull-request

https://gitlab.com/stefanha/qemu.git tags/block-pull-request

Message

Stefan Hajnoczi Feb. 4, 2021, 3:43 p.m. UTC
The following changes since commit db754f8ccaf2f073c9aed46a4389e9c0c2080399:

  Merge remote-tracking branch 'remotes/rth-gitlab/tags/pull-tcg-20210202' into staging (2021-02-03 19:35:57 +0000)

are available in the Git repository at:

  https://gitlab.com/stefanha/qemu.git tags/block-pull-request

for you to fetch changes up to abe42229db7b87caa11b3c02835ebf9d384e0bd4:

  docs: fix Parallels Image "dirty bitmap" section (2021-02-04 15:17:10 +0000)

----------------------------------------------------------------
Pull request

v2:
 * Rebase to resolve memory_region_init_ram_from_file() conflict due to the new
   offset argument that was added in qemu.git/master in the meantime [Peter]

----------------------------------------------------------------

Denis V. Lunev (1):
  docs: fix Parallels Image "dirty bitmap" section

Elena Ufimtseva (8):
  multi-process: add configure and usage information
  io: add qio_channel_writev_full_all helper
  io: add qio_channel_readv_full_all_eof & qio_channel_readv_full_all
    helpers
  multi-process: define MPQemuMsg format and transmission functions
  multi-process: introduce proxy object
  multi-process: add proxy communication functions
  multi-process: Forward PCI config space acceses to the remote process
  multi-process: perform device reset in the remote process

Jagannathan Raman (11):
  memory: alloc RAM from file at offset
  multi-process: Add config option for multi-process QEMU
  multi-process: setup PCI host bridge for remote device
  multi-process: setup a machine object for remote device process
  multi-process: Initialize message handler in remote device
  multi-process: Associate fd of a PCIDevice with its object
  multi-process: setup memory manager for remote device
  multi-process: PCI BAR read/write handling for proxy & remote
    endpoints
  multi-process: Synchronize remote memory
  multi-process: create IOHUB object to handle irq
  multi-process: Retrieve PCI info from remote process

John G Johnson (1):
  multi-process: add the concept description to
    docs/devel/qemu-multiprocess

Stefan Hajnoczi (6):
  .github: point Repo Lockdown bot to GitLab repo
  gitmodules: use GitLab repos instead of qemu.org
  gitlab-ci: remove redundant GitLab repo URL command
  docs: update README to use GitLab repo URLs
  pc-bios: update mirror URLs to GitLab
  get_maintainer: update repo URL to GitLab

 MAINTAINERS                               |  24 +
 README.rst                                |   4 +-
 docs/devel/index.rst                      |   1 +
 docs/devel/multi-process.rst              | 966 ++++++++++++++++++++++
 docs/system/index.rst                     |   1 +
 docs/system/multi-process.rst             |  64 ++
 docs/interop/parallels.txt                |   2 +-
 configure                                 |  10 +
 meson.build                               |   5 +-
 hw/remote/trace.h                         |   1 +
 include/exec/memory.h                     |   2 +
 include/exec/ram_addr.h                   |   4 +-
 include/hw/pci-host/remote.h              |  30 +
 include/hw/pci/pci_ids.h                  |   3 +
 include/hw/remote/iohub.h                 |  42 +
 include/hw/remote/machine.h               |  38 +
 include/hw/remote/memory.h                |  19 +
 include/hw/remote/mpqemu-link.h           |  99 +++
 include/hw/remote/proxy-memory-listener.h |  28 +
 include/hw/remote/proxy.h                 |  48 ++
 include/io/channel.h                      |  78 ++
 include/qemu/mmap-alloc.h                 |   4 +-
 include/sysemu/iothread.h                 |   6 +
 backends/hostmem-memfd.c                  |   2 +-
 hw/misc/ivshmem.c                         |   3 +-
 hw/pci-host/remote.c                      |  75 ++
 hw/remote/iohub.c                         | 119 +++
 hw/remote/machine.c                       |  80 ++
 hw/remote/memory.c                        |  65 ++
 hw/remote/message.c                       | 230 ++++++
 hw/remote/mpqemu-link.c                   | 267 ++++++
 hw/remote/proxy-memory-listener.c         | 227 +++++
 hw/remote/proxy.c                         | 379 +++++++++
 hw/remote/remote-obj.c                    | 203 +++++
 io/channel.c                              | 116 ++-
 iothread.c                                |   6 +
 softmmu/memory.c                          |   3 +-
 softmmu/physmem.c                         |  12 +-
 util/mmap-alloc.c                         |   8 +-
 util/oslib-posix.c                        |   2 +-
 .github/lockdown.yml                      |   8 +-
 .gitlab-ci.yml                            |   1 -
 .gitmodules                               |  44 +-
 Kconfig.host                              |   4 +
 hw/Kconfig                                |   1 +
 hw/meson.build                            |   1 +
 hw/pci-host/Kconfig                       |   3 +
 hw/pci-host/meson.build                   |   1 +
 hw/remote/Kconfig                         |   4 +
 hw/remote/meson.build                     |  13 +
 hw/remote/trace-events                    |   4 +
 pc-bios/README                            |   4 +-
 scripts/get_maintainer.pl                 |   2 +-
 53 files changed, 3296 insertions(+), 70 deletions(-)
 create mode 100644 docs/devel/multi-process.rst
 create mode 100644 docs/system/multi-process.rst
 create mode 100644 hw/remote/trace.h
 create mode 100644 include/hw/pci-host/remote.h
 create mode 100644 include/hw/remote/iohub.h
 create mode 100644 include/hw/remote/machine.h
 create mode 100644 include/hw/remote/memory.h
 create mode 100644 include/hw/remote/mpqemu-link.h
 create mode 100644 include/hw/remote/proxy-memory-listener.h
 create mode 100644 include/hw/remote/proxy.h
 create mode 100644 hw/pci-host/remote.c
 create mode 100644 hw/remote/iohub.c
 create mode 100644 hw/remote/machine.c
 create mode 100644 hw/remote/memory.c
 create mode 100644 hw/remote/message.c
 create mode 100644 hw/remote/mpqemu-link.c
 create mode 100644 hw/remote/proxy-memory-listener.c
 create mode 100644 hw/remote/proxy.c
 create mode 100644 hw/remote/remote-obj.c
 create mode 100644 hw/remote/Kconfig
 create mode 100644 hw/remote/meson.build
 create mode 100644 hw/remote/trace-events

Comments

Peter Maydell Feb. 4, 2021, 5:35 p.m. UTC | #1
On Thu, 4 Feb 2021 at 15:43, Stefan Hajnoczi <stefanha@redhat.com> wrote:
>
> The following changes since commit db754f8ccaf2f073c9aed46a4389e9c0c2080399:
>
>   Merge remote-tracking branch 'remotes/rth-gitlab/tags/pull-tcg-20210202' into staging (2021-02-03 19:35:57 +0000)
>
> are available in the Git repository at:
>
>   https://gitlab.com/stefanha/qemu.git tags/block-pull-request
>
> for you to fetch changes up to abe42229db7b87caa11b3c02835ebf9d384e0bd4:
>
>   docs: fix Parallels Image "dirty bitmap" section (2021-02-04 15:17:10 +0000)
>
> ----------------------------------------------------------------
> Pull request
>
> v2:
>  * Rebase to resolve memory_region_init_ram_from_file() conflict due to the new
>    offset argument that was added in qemu.git/master in the meantime [Peter]
>
> ----------------------------------------------------------------

Fails to compile, clang:

../../hw/remote/mpqemu-link.c:40:29: error: suggest braces around
initialization of subobject [-Werror,-Wmissing-braces]
    struct iovec send[2] = {0};
                            ^
                            {}


Don't use {0}, use {} -- the former may be the C standard thing,
but the latter is the one all our supported compilers accept
without complaint. (cf eg commit 039d4e3df0).

thanks
-- PMM
Elena Ufimtseva Feb. 4, 2021, 6:49 p.m. UTC | #2
On Thu, Feb 04, 2021 at 05:35:31PM +0000, Peter Maydell wrote:
> On Thu, 4 Feb 2021 at 15:43, Stefan Hajnoczi <stefanha@redhat.com> wrote:
> >
> > The following changes since commit db754f8ccaf2f073c9aed46a4389e9c0c2080399:
> >
> >   Merge remote-tracking branch 'remotes/rth-gitlab/tags/pull-tcg-20210202' into staging (2021-02-03 19:35:57 +0000)
> >
> > are available in the Git repository at:
> >
> >   https://gitlab.com/stefanha/qemu.git tags/block-pull-request
> >
> > for you to fetch changes up to abe42229db7b87caa11b3c02835ebf9d384e0bd4:
> >
> >   docs: fix Parallels Image "dirty bitmap" section (2021-02-04 15:17:10 +0000)
> >
> > ----------------------------------------------------------------
> > Pull request
> >
> > v2:
> >  * Rebase to resolve memory_region_init_ram_from_file() conflict due to the new
> >    offset argument that was added in qemu.git/master in the meantime [Peter]
> >
> > ----------------------------------------------------------------
> 
> Fails to compile, clang:
> 
> ../../hw/remote/mpqemu-link.c:40:29: error: suggest braces around
> initialization of subobject [-Werror,-Wmissing-braces]
>     struct iovec send[2] = {0};
>                             ^
>                             {}

Stefan, should we make changes for the patch?
Please let us know.

Thanks,

Elena
> 
> 
> Don't use {0}, use {} -- the former may be the C standard thing,
> but the latter is the one all our supported compilers accept
> without complaint. (cf eg commit 039d4e3df0).
> 
> thanks
> -- PMM
Stefan Hajnoczi Feb. 5, 2021, 4:18 p.m. UTC | #3
On Thu, Feb 04, 2021 at 10:49:26AM -0800, elena wrote:
> On Thu, Feb 04, 2021 at 05:35:31PM +0000, Peter Maydell wrote:
> > On Thu, 4 Feb 2021 at 15:43, Stefan Hajnoczi <stefanha@redhat.com> wrote:
> > >
> > > The following changes since commit db754f8ccaf2f073c9aed46a4389e9c0c2080399:
> > >
> > >   Merge remote-tracking branch 'remotes/rth-gitlab/tags/pull-tcg-20210202' into staging (2021-02-03 19:35:57 +0000)
> > >
> > > are available in the Git repository at:
> > >
> > >   https://gitlab.com/stefanha/qemu.git tags/block-pull-request
> > >
> > > for you to fetch changes up to abe42229db7b87caa11b3c02835ebf9d384e0bd4:
> > >
> > >   docs: fix Parallels Image "dirty bitmap" section (2021-02-04 15:17:10 +0000)
> > >
> > > ----------------------------------------------------------------
> > > Pull request
> > >
> > > v2:
> > >  * Rebase to resolve memory_region_init_ram_from_file() conflict due to the new
> > >    offset argument that was added in qemu.git/master in the meantime [Peter]
> > >
> > > ----------------------------------------------------------------
> > 
> > Fails to compile, clang:
> > 
> > ../../hw/remote/mpqemu-link.c:40:29: error: suggest braces around
> > initialization of subobject [-Werror,-Wmissing-braces]
> >     struct iovec send[2] = {0};
> >                             ^
> >                             {}
> 
> Stefan, should we make changes for the patch?

I'll send another revision of this pull request since it's a trivial
fix.

Thanks,
Stefan
Stefan Hajnoczi Feb. 5, 2021, 4:21 p.m. UTC | #4
On Thu, Feb 04, 2021 at 05:35:31PM +0000, Peter Maydell wrote:
> On Thu, 4 Feb 2021 at 15:43, Stefan Hajnoczi <stefanha@redhat.com> wrote:
> >
> > The following changes since commit db754f8ccaf2f073c9aed46a4389e9c0c2080399:
> >
> >   Merge remote-tracking branch 'remotes/rth-gitlab/tags/pull-tcg-20210202' into staging (2021-02-03 19:35:57 +0000)
> >
> > are available in the Git repository at:
> >
> >   https://gitlab.com/stefanha/qemu.git tags/block-pull-request
> >
> > for you to fetch changes up to abe42229db7b87caa11b3c02835ebf9d384e0bd4:
> >
> >   docs: fix Parallels Image "dirty bitmap" section (2021-02-04 15:17:10 +0000)
> >
> > ----------------------------------------------------------------
> > Pull request
> >
> > v2:
> >  * Rebase to resolve memory_region_init_ram_from_file() conflict due to the new
> >    offset argument that was added in qemu.git/master in the meantime [Peter]
> >
> > ----------------------------------------------------------------
> 
> Fails to compile, clang:
> 
> ../../hw/remote/mpqemu-link.c:40:29: error: suggest braces around
> initialization of subobject [-Werror,-Wmissing-braces]
>     struct iovec send[2] = {0};
>                             ^
>                             {}
> 
> 
> Don't use {0}, use {} -- the former may be the C standard thing,
> but the latter is the one all our supported compilers accept
> without complaint. (cf eg commit 039d4e3df0).

Thanks, I update the patch in question.

It looks like the GitLab CI doesn't include a clang version that
produces this error because the pipeline passed for me:
https://gitlab.com/stefanha/qemu/-/pipelines/251524779

Is there something clang-specific you want to check in the CI? Maybe
clang 3.4, the oldest version supported according to ./configure?

Stefan
Peter Maydell Feb. 5, 2021, 4:23 p.m. UTC | #5
On Fri, 5 Feb 2021 at 16:21, Stefan Hajnoczi <stefanha@redhat.com> wrote:
> Thanks, I update the patch in question.
>
> It looks like the GitLab CI doesn't include a clang version that
> produces this error because the pipeline passed for me:
> https://gitlab.com/stefanha/qemu/-/pipelines/251524779
>
> Is there something clang-specific you want to check in the CI? Maybe
> clang 3.4, the oldest version supported according to ./configure?

Would probably be nice I guess. My ad-hoc builds use clang 6,
which is what tripped up here.

thanks
-- PMM
Thomas Huth Feb. 5, 2021, 4:52 p.m. UTC | #6
On 05/02/2021 17.23, Peter Maydell wrote:
> On Fri, 5 Feb 2021 at 16:21, Stefan Hajnoczi <stefanha@redhat.com> wrote:
>> Thanks, I update the patch in question.
>>
>> It looks like the GitLab CI doesn't include a clang version that
>> produces this error because the pipeline passed for me:
>> https://gitlab.com/stefanha/qemu/-/pipelines/251524779
>>
>> Is there something clang-specific you want to check in the CI? Maybe
>> clang 3.4, the oldest version supported according to ./configure?
> 
> Would probably be nice I guess. My ad-hoc builds use clang 6,
> which is what tripped up here.

We should maybe discuss first whether we can bump the minimum version of 
Clang that we would like to support. I once picked Clang 3.4 since that was 
available in EPEL for RHEL7, but I think there were newer versions of Clang 
available in RHEL7 via other repos later, so 3.4 is likely really just way 
too old now...

According to https://developers.redhat.com/HW/ClangLLVM-RHEL-7 there was at 
least Clang 7.0 available on RHEL7. Debian stable seems to have at least 
7.0, too, according to repology.org. Ubuntu 18.04 seems to have version 6, 
but later ones are available via updates? Anyway, I think we could at least 
bump the minimum version to 6.0 nowadays...

  Thomas
Daniel P. Berrangé Feb. 5, 2021, 4:58 p.m. UTC | #7
On Fri, Feb 05, 2021 at 05:52:59PM +0100, Thomas Huth wrote:
> On 05/02/2021 17.23, Peter Maydell wrote:
> > On Fri, 5 Feb 2021 at 16:21, Stefan Hajnoczi <stefanha@redhat.com> wrote:
> > > Thanks, I update the patch in question.
> > > 
> > > It looks like the GitLab CI doesn't include a clang version that
> > > produces this error because the pipeline passed for me:
> > > https://gitlab.com/stefanha/qemu/-/pipelines/251524779
> > > 
> > > Is there something clang-specific you want to check in the CI? Maybe
> > > clang 3.4, the oldest version supported according to ./configure?
> > 
> > Would probably be nice I guess. My ad-hoc builds use clang 6,
> > which is what tripped up here.
> 
> We should maybe discuss first whether we can bump the minimum version of
> Clang that we would like to support. I once picked Clang 3.4 since that was
> available in EPEL for RHEL7, but I think there were newer versions of Clang
> available in RHEL7 via other repos later, so 3.4 is likely really just way
> too old now...
> 
> According to https://developers.redhat.com/HW/ClangLLVM-RHEL-7 there was at
> least Clang 7.0 available on RHEL7. Debian stable seems to have at least
> 7.0, too, according to repology.org. Ubuntu 18.04 seems to have version 6,
> but later ones are available via updates? Anyway, I think we could at least
> bump the minimum version to 6.0 nowadays...

Per our support matrix, this is the last dev cycle where we need to
care about RHEL-7, as RHEL-7 will be past the 2 year cutoff in
the QEMU 6.1 cycle.

Furthermore given that CLang was only ever an EPEL package, not a
core part of the distro, I think we are justified in just ignoring
RHEL-7 already for purpose of choosing CLang min version.

Regards,
Daniel