mbox series

[PULL,00/12] migration queue

Message ID 20201102195657.219501-1-dgilbert@redhat.com
Headers show
Series migration queue | expand

Message

Dr. David Alan Gilbert Nov. 2, 2020, 7:56 p.m. UTC
From: "Dr. David Alan Gilbert" <dgilbert@redhat.com>

The following changes since commit b139d11ae198aba0e009daddf7a3370ce84b2d09:

  Merge remote-tracking branch 'remotes/aperard/tags/pull-xen-20201102' into staging (2020-11-02 16:05:47 +0000)

are available in the Git repository at:

  git://github.com/dagrh/qemu.git tags/pull-migration-20201102a

for you to fetch changes up to af1bb3fe7f146fafdaadb479975ca2b53b49df40:

  tests/acceptance: Add virtiofs_submounts.py (2020-11-02 19:23:48 +0000)

----------------------------------------------------------------
Migration and virtiofs fixes 2020-11-02

Fixes for postcopy migration test hang
A seccomp crash for virtiofsd on some !x86
Help message and minor CID fix

And another crack at Max's set.

Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>

----------------------------------------------------------------
Dr. David Alan Gilbert (1):
      virtiofsd: Seccomp: Add 'send' for syslog

Jiachen Zhang (1):
      virtiofsd: Fix the help message of posix lock

Max Reitz (7):
      virtiofsd: Check FUSE_SUBMOUNTS
      virtiofsd: Add attr_flags to fuse_entry_param
      meson.build: Check for statx()
      virtiofsd: Add mount ID to the lo_inode key
      virtiofsd: Announce sub-mount points
      tests/acceptance/boot_linux: Accept SSH pubkey
      tests/acceptance: Add virtiofs_submounts.py

Peter Xu (2):
      migration: Unify reset of last_rb on destination node when recover
      migration: Postpone the kick of the fault thread after recover

Philippe Mathieu-Daudé (1):
      tools/virtiofsd: Check vu_init() return value (CID 1435958)

 meson.build                                        |  16 +
 migration/postcopy-ram.c                           |   2 -
 migration/savevm.c                                 |  17 +-
 tests/acceptance/boot_linux.py                     |  13 +-
 tests/acceptance/virtiofs_submounts.py             | 321 +++++++++++++++++++++
 .../virtiofs_submounts.py.data/cleanup.sh          |  46 +++
 .../virtiofs_submounts.py.data/guest-cleanup.sh    |  30 ++
 .../acceptance/virtiofs_submounts.py.data/guest.sh | 138 +++++++++
 .../acceptance/virtiofs_submounts.py.data/host.sh  | 127 ++++++++
 tools/virtiofsd/fuse_common.h                      |   7 +
 tools/virtiofsd/fuse_lowlevel.c                    |   5 +
 tools/virtiofsd/fuse_lowlevel.h                    |   5 +
 tools/virtiofsd/fuse_virtio.c                      |   7 +-
 tools/virtiofsd/helper.c                           |   3 +-
 tools/virtiofsd/passthrough_ll.c                   | 117 +++++++-
 tools/virtiofsd/passthrough_seccomp.c              |   2 +
 16 files changed, 832 insertions(+), 24 deletions(-)
 create mode 100644 tests/acceptance/virtiofs_submounts.py
 create mode 100644 tests/acceptance/virtiofs_submounts.py.data/cleanup.sh
 create mode 100644 tests/acceptance/virtiofs_submounts.py.data/guest-cleanup.sh
 create mode 100644 tests/acceptance/virtiofs_submounts.py.data/guest.sh
 create mode 100644 tests/acceptance/virtiofs_submounts.py.data/host.sh

Comments

Max Reitz Nov. 3, 2020, 10:24 a.m. UTC | #1
On 02.11.20 20:56, Dr. David Alan Gilbert (git) wrote:
> From: Max Reitz <mreitz@redhat.com>

> 

> Whenever we encounter a directory with an st_dev or mount ID that

> differs from that of its parent, we set the FUSE_ATTR_SUBMOUNT flag so

> the guest can create a submount for it.

> 

> We only need to do so in lo_do_lookup().  The following functions return

> a fuse_attr object:

> - lo_create(), though fuse_reply_create(): Calls lo_do_lookup().

> - lo_lookup(), though fuse_reply_entry(): Calls lo_do_lookup().

> - lo_mknod_symlink(), through fuse_reply_entry(): Calls lo_do_lookup().

> - lo_link(), through fuse_reply_entry(): Creating a link cannot create a

>   submount, so there is no need to check for it.

> - lo_getattr(), through fuse_reply_attr(): Announcing submounts when the

>   node is first detected (at lookup) is sufficient.  We do not need to

>   return the submount attribute later.

> - lo_do_readdir(), through fuse_add_direntry_plus(): Calls

>   lo_do_lookup().

> 

> Make announcing submounts optional, so submounts are only announced to

> the guest with the announce_submounts option.  Some users may prefer the

> current behavior, so that the guest learns nothing about the host mount

> structure.

> 

> (announce_submounts is force-disabled when the guest does not present

> the FUSE_SUBMOUNTS capability, or when there is no statx().)

> 

> Signed-off-by: Max Reitz <mreitz@redhat.com>

> Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>

> Message-Id: <20201102161859.156603-6-mreitz@redhat.com>

> Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>

> ---

>  tools/virtiofsd/helper.c         |  1 +

>  tools/virtiofsd/passthrough_ll.c | 22 ++++++++++++++++++++++

>  2 files changed, 23 insertions(+)


> diff --git a/tools/virtiofsd/passthrough_ll.c b/tools/virtiofsd/passthrough_ll.c

[...]

> index 34d107975f..ec1008bceb 100644

> --- a/tools/virtiofsd/passthrough_ll.c

> +++ b/tools/virtiofsd/passthrough_ll.c


[...]

> @@ -601,6 +604,20 @@ static void lo_init(void *userdata, struct fuse_conn_info *conn)


[...]

> +#ifndef CONFIG_STATX

> +    if (lo->announce_submounts) {

> +        fuse_log(FUSE_LOG_WARNING, "lo_init: Cannot announce submounts, there "

> +                 "is no statx()\n");

> +        lo->announce_submounts = false;

> +    }

> +#endif


When reviewing this series, Miklos noted today that this warning is
wrong (we can still announce submounts even without statx()), and we
concluded that we should probably drop it and the
“lo->announce_submounts = false” assignment (i.e. this whole block).

I don’t think that needs to stop this pull request, though, we can
easily fix it on top.

Max
Dr. David Alan Gilbert Nov. 3, 2020, 10:29 a.m. UTC | #2
* Max Reitz (mreitz@redhat.com) wrote:
> On 02.11.20 20:56, Dr. David Alan Gilbert (git) wrote:

> > From: Max Reitz <mreitz@redhat.com>

> > 

> > Whenever we encounter a directory with an st_dev or mount ID that

> > differs from that of its parent, we set the FUSE_ATTR_SUBMOUNT flag so

> > the guest can create a submount for it.

> > 

> > We only need to do so in lo_do_lookup().  The following functions return

> > a fuse_attr object:

> > - lo_create(), though fuse_reply_create(): Calls lo_do_lookup().

> > - lo_lookup(), though fuse_reply_entry(): Calls lo_do_lookup().

> > - lo_mknod_symlink(), through fuse_reply_entry(): Calls lo_do_lookup().

> > - lo_link(), through fuse_reply_entry(): Creating a link cannot create a

> >   submount, so there is no need to check for it.

> > - lo_getattr(), through fuse_reply_attr(): Announcing submounts when the

> >   node is first detected (at lookup) is sufficient.  We do not need to

> >   return the submount attribute later.

> > - lo_do_readdir(), through fuse_add_direntry_plus(): Calls

> >   lo_do_lookup().

> > 

> > Make announcing submounts optional, so submounts are only announced to

> > the guest with the announce_submounts option.  Some users may prefer the

> > current behavior, so that the guest learns nothing about the host mount

> > structure.

> > 

> > (announce_submounts is force-disabled when the guest does not present

> > the FUSE_SUBMOUNTS capability, or when there is no statx().)

> > 

> > Signed-off-by: Max Reitz <mreitz@redhat.com>

> > Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>

> > Message-Id: <20201102161859.156603-6-mreitz@redhat.com>

> > Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>

> > ---

> >  tools/virtiofsd/helper.c         |  1 +

> >  tools/virtiofsd/passthrough_ll.c | 22 ++++++++++++++++++++++

> >  2 files changed, 23 insertions(+)

> 

> > diff --git a/tools/virtiofsd/passthrough_ll.c b/tools/virtiofsd/passthrough_ll.c

> [...]

> 

> > index 34d107975f..ec1008bceb 100644

> > --- a/tools/virtiofsd/passthrough_ll.c

> > +++ b/tools/virtiofsd/passthrough_ll.c

> 

> [...]

> 

> > @@ -601,6 +604,20 @@ static void lo_init(void *userdata, struct fuse_conn_info *conn)

> 

> [...]

> 

> > +#ifndef CONFIG_STATX

> > +    if (lo->announce_submounts) {

> > +        fuse_log(FUSE_LOG_WARNING, "lo_init: Cannot announce submounts, there "

> > +                 "is no statx()\n");

> > +        lo->announce_submounts = false;

> > +    }

> > +#endif

> 

> When reviewing this series, Miklos noted today that this warning is

> wrong (we can still announce submounts even without statx()), and we

> concluded that we should probably drop it and the

> “lo->announce_submounts = false” assignment (i.e. this whole block).

> 

> I don’t think that needs to stop this pull request, though, we can

> easily fix it on top.


That's OK, send me a follow up patch to fix the warning; that's a minor.

Dave

> Max

-- 
Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK
Peter Maydell Nov. 3, 2020, 10:37 a.m. UTC | #3
On Mon, 2 Nov 2020 at 20:00, Dr. David Alan Gilbert (git)
<dgilbert@redhat.com> wrote:
>

> From: "Dr. David Alan Gilbert" <dgilbert@redhat.com>

>

> The following changes since commit b139d11ae198aba0e009daddf7a3370ce84b2d09:

>

>   Merge remote-tracking branch 'remotes/aperard/tags/pull-xen-20201102' into staging (2020-11-02 16:05:47 +0000)

>

> are available in the Git repository at:

>

>   git://github.com/dagrh/qemu.git tags/pull-migration-20201102a

>

> for you to fetch changes up to af1bb3fe7f146fafdaadb479975ca2b53b49df40:

>

>   tests/acceptance: Add virtiofs_submounts.py (2020-11-02 19:23:48 +0000)

>

> ----------------------------------------------------------------

> Migration and virtiofs fixes 2020-11-02

>

> Fixes for postcopy migration test hang

> A seccomp crash for virtiofsd on some !x86

> Help message and minor CID fix

>

> And another crack at Max's set.

>

> Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>

>


Applied, thanks.

Please update the changelog at https://wiki.qemu.org/ChangeLog/5.2
for any user-visible changes.

-- PMM