All of lore.kernel.org
 help / color / mirror / Atom feed
From: Miklos Szeredi <miklos@szeredi.hu>
To: Lennart Poettering <mzxreary@0pointer.de>
Cc: Ian Kent <raven@themaw.net>, David Howells <dhowells@redhat.com>,
	Christian Brauner <christian.brauner@ubuntu.com>,
	Linus Torvalds <torvalds@linux-foundation.org>,
	Al Viro <viro@zeniv.linux.org.uk>,
	dray@redhat.com, Karel Zak <kzak@redhat.com>,
	Miklos Szeredi <mszeredi@redhat.com>,
	Steven Whitehouse <swhiteho@redhat.com>,
	Jeff Layton <jlayton@redhat.com>,
	andres@anarazel.de, keyrings@vger.kernel.org,
	linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org,
	Aleksa Sarai <cyphar@cyphar.com>
Subject: Re: Upcoming: Notifications, FS notifications and fsinfo()
Date: Mon, 06 Apr 2020 09:22:31 +0000	[thread overview]
Message-ID: <CAJfpegudLD8F-25k-k=9G96JKB+5Y=xFT=ZMwiBkNTwkjMDumA@mail.gmail.com> (raw)
In-Reply-To: <20200403150143.GA34800@gardel-login>

On Fri, Apr 3, 2020 at 5:01 PM Lennart Poettering <mzxreary@0pointer.de> wrote:
>
> On Fr, 03.04.20 13:48, Miklos Szeredi (miklos@szeredi.hu) wrote:
>
> > > > Does that make any sense?
> > >
> > > When all mounts in the init mount namespace are unmounted and all
> > > remaining processes killed we switch root back to the initrd, so that
> > > even the root fs can be unmounted, and then we disassemble any backing
> > > complex storage if there is, i.e. lvm, luks, raid, …
> >
> > I think it could be done the other way round, much simpler:
> >
> >  - switch back to initrd
> >  - umount root, keeping the tree intact (UMOUNT_DETACHED)
> >  - kill all remaining processes, wait for all to exit
>
> Nah. What I wrote above is drastically simplified. It's IRL more
> complex. Specific services need to be killed between certain mounts
> are unmounted, since they are a backend for another mount. NFS, or
> FUSE or stuff like that usually has some processes backing them
> around, and we need to stop the mounts they provide before these
> services, and then the mounts these services reside on after that, and
> so on. It's a complex dependency tree of stuff that needs to be done
> in order, so that we can deal with arbitrarily nested mounts, storage
> subsystems, and backing services.

That still doesn't explain why you need to keep track of all mounts in
the system.

If you are aware of the dependency, then you need to keep track of
that particular mount. If not, then why?

What I'm starting to see is that there's a fundamental conflict
between how systemd people want to deal with new mounts and how some
other people want to use mounts (i.e. tens of thousands of mounts in
an automount map).

I'm really curious how much the mount notification ring + per mount
query (any implementation) can help that use case.

> Anyway, this all works fine in systemd, the dependency logic is
> there. We want a more efficient way to watch mounts, that's
> all. Subscribing and constantly reparsing /proc/self/mountinfo is
> awful, that's all.

I'm not sure that is all.   To handle storms of tens of thousands of
mounts, my guess is that the fundamental way of dealing with these
changes will need to be updated in systemd.

Thanks,
Miklos

WARNING: multiple messages have this Message-ID (diff)
From: Miklos Szeredi <miklos@szeredi.hu>
To: Lennart Poettering <mzxreary@0pointer.de>
Cc: Ian Kent <raven@themaw.net>, David Howells <dhowells@redhat.com>,
	Christian Brauner <christian.brauner@ubuntu.com>,
	Linus Torvalds <torvalds@linux-foundation.org>,
	Al Viro <viro@zeniv.linux.org.uk>,
	dray@redhat.com, Karel Zak <kzak@redhat.com>,
	Miklos Szeredi <mszeredi@redhat.com>,
	Steven Whitehouse <swhiteho@redhat.com>,
	Jeff Layton <jlayton@redhat.com>,
	andres@anarazel.de, keyrings@vger.kernel.org,
	linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org,
	Aleksa Sarai <cyphar@cyphar.com>
Subject: Re: Upcoming: Notifications, FS notifications and fsinfo()
Date: Mon, 6 Apr 2020 11:22:31 +0200	[thread overview]
Message-ID: <CAJfpegudLD8F-25k-k=9G96JKB+5Y=xFT=ZMwiBkNTwkjMDumA@mail.gmail.com> (raw)
In-Reply-To: <20200403150143.GA34800@gardel-login>

On Fri, Apr 3, 2020 at 5:01 PM Lennart Poettering <mzxreary@0pointer.de> wrote:
>
> On Fr, 03.04.20 13:48, Miklos Szeredi (miklos@szeredi.hu) wrote:
>
> > > > Does that make any sense?
> > >
> > > When all mounts in the init mount namespace are unmounted and all
> > > remaining processes killed we switch root back to the initrd, so that
> > > even the root fs can be unmounted, and then we disassemble any backing
> > > complex storage if there is, i.e. lvm, luks, raid, …
> >
> > I think it could be done the other way round, much simpler:
> >
> >  - switch back to initrd
> >  - umount root, keeping the tree intact (UMOUNT_DETACHED)
> >  - kill all remaining processes, wait for all to exit
>
> Nah. What I wrote above is drastically simplified. It's IRL more
> complex. Specific services need to be killed between certain mounts
> are unmounted, since they are a backend for another mount. NFS, or
> FUSE or stuff like that usually has some processes backing them
> around, and we need to stop the mounts they provide before these
> services, and then the mounts these services reside on after that, and
> so on. It's a complex dependency tree of stuff that needs to be done
> in order, so that we can deal with arbitrarily nested mounts, storage
> subsystems, and backing services.

That still doesn't explain why you need to keep track of all mounts in
the system.

If you are aware of the dependency, then you need to keep track of
that particular mount. If not, then why?

What I'm starting to see is that there's a fundamental conflict
between how systemd people want to deal with new mounts and how some
other people want to use mounts (i.e. tens of thousands of mounts in
an automount map).

I'm really curious how much the mount notification ring + per mount
query (any implementation) can help that use case.

> Anyway, this all works fine in systemd, the dependency logic is
> there. We want a more efficient way to watch mounts, that's
> all. Subscribing and constantly reparsing /proc/self/mountinfo is
> awful, that's all.

I'm not sure that is all.   To handle storms of tens of thousands of
mounts, my guess is that the fundamental way of dealing with these
changes will need to be updated in systemd.

Thanks,
Miklos

  reply	other threads:[~2020-04-06  9:22 UTC|newest]

Thread overview: 199+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-03-30 13:58 Upcoming: Notifications, FS notifications and fsinfo() David Howells
2020-03-30 13:58 ` David Howells
2020-03-30 14:31 ` [GIT PULL] General notification queue and key notifications David Howells
2020-03-30 14:31   ` David Howells
2020-03-31  6:51   ` Stephen Rothwell
2020-03-31  6:51     ` Stephen Rothwell
2020-06-02 15:55   ` David Howells
2020-06-02 15:55     ` David Howells
2020-06-03  2:15     ` Ian Kent
2020-06-03  2:15       ` Ian Kent
2020-06-08  0:49       ` Ian Kent
2020-06-08  0:49         ` Ian Kent
2020-06-10  9:56     ` Christian Brauner
2020-06-10  9:56       ` Christian Brauner
2020-06-10 11:12     ` Karel Zak
2020-06-10 11:12       ` Karel Zak
2020-06-12 21:32       ` Linus Torvalds
2020-06-12 21:32         ` Linus Torvalds
2020-06-12 22:01       ` Linus Torvalds
2020-06-12 22:01         ` Linus Torvalds
2020-06-13 13:04       ` David Howells
2020-06-13 13:04         ` David Howells
2020-06-13 16:47         ` Linus Torvalds
2020-06-13 16:47           ` Linus Torvalds
2020-06-13 17:03           ` Linus Torvalds
2020-06-13 17:03             ` Linus Torvalds
2020-06-13 19:22         ` Miklos Szeredi
2020-06-13 19:22           ` Miklos Szeredi
2020-06-13 13:24       ` David Howells
2020-06-13 13:24         ` David Howells
2020-06-13 18:00     ` pr-tracker-bot
2020-06-13 18:00       ` pr-tracker-bot
2020-06-17  1:15     ` Williams, Dan J
2020-06-17  1:15       ` Williams, Dan J
2020-06-17  1:15       ` Williams, Dan J
2020-06-23 23:38       ` Dan Williams
2020-06-23 23:38         ` Dan Williams
2020-06-23 23:38         ` Dan Williams
2020-06-24  0:55       ` David Howells
2020-06-24  0:55         ` David Howells
2020-06-24  0:55         ` David Howells
2020-06-24  1:03         ` Dan Williams
2020-06-24  1:03           ` Dan Williams
2020-06-24  1:03           ` Dan Williams
2020-06-24  1:17         ` David Howells
2020-06-24  1:17           ` David Howells
2020-06-24  1:17           ` David Howells
2020-03-30 14:36 ` [GIT PULL] Mount and superblock notifications David Howells
2020-03-30 14:36   ` David Howells
2020-04-04 21:13   ` Linus Torvalds
2020-04-04 21:13     ` Linus Torvalds
2020-04-05 22:52     ` Andres Freund
2020-04-05 22:52       ` Andres Freund
2020-03-30 14:43 ` [GIT PULL] fsinfo: Filesystem information query David Howells
2020-03-30 14:43   ` David Howells
2020-03-30 20:28 ` Upcoming: Notifications, FS notifications and fsinfo() Miklos Szeredi
2020-03-30 20:28   ` Miklos Szeredi
2020-03-31  9:21   ` Karel Zak
2020-03-31  9:21     ` Karel Zak
2020-03-30 21:17 ` Christian Brauner
2020-03-30 21:17   ` Christian Brauner
2020-03-31  5:11   ` Miklos Szeredi
2020-03-31  5:11     ` Miklos Szeredi
2020-03-31  8:15     ` Christian Brauner
2020-03-31  8:15       ` Christian Brauner
2020-03-31  8:34       ` Miklos Szeredi
2020-03-31  8:34         ` Miklos Szeredi
2020-03-31  8:34     ` Karel Zak
2020-03-31  8:34       ` Karel Zak
2020-03-31  8:56       ` Miklos Szeredi
2020-03-31  8:56         ` Miklos Szeredi
2020-03-31  9:49         ` Karel Zak
2020-03-31  9:49           ` Karel Zak
2020-03-31 12:25         ` Lennart Poettering
2020-03-31 12:25           ` Lennart Poettering
2020-03-31 15:10           ` Miklos Szeredi
2020-03-31 15:10             ` Miklos Szeredi
2020-03-31 15:24             ` Lennart Poettering
2020-03-31 15:24               ` Lennart Poettering
2020-03-31 21:56         ` David Howells
2020-03-31 21:56           ` David Howells
2020-03-31 21:54     ` David Howells
2020-03-31 21:54       ` David Howells
2020-04-01  8:43       ` Karel Zak
2020-04-01  8:43         ` Karel Zak
2020-03-31  7:22   ` Lennart Poettering
2020-03-31  7:22     ` Lennart Poettering
2020-03-31 17:31 ` David Howells
2020-03-31 17:31   ` David Howells
2020-03-31 19:42   ` Miklos Szeredi
2020-03-31 19:42     ` Miklos Szeredi
2020-03-31 19:47   ` David Howells
2020-03-31 19:47     ` David Howells
2020-03-31 21:14   ` David Howells
2020-03-31 21:14     ` David Howells
2020-03-31 21:23   ` David Howells
2020-03-31 21:23     ` David Howells
2020-03-31 21:52 ` David Howells
2020-03-31 21:52   ` David Howells
2020-04-01  9:04   ` Karel Zak
2020-04-01  9:04     ` Karel Zak
2020-04-01 13:34     ` Miklos Szeredi
2020-04-01 13:34       ` Miklos Szeredi
2020-04-01 13:55     ` David Howells
2020-04-01 13:55       ` David Howells
2020-04-01 13:58     ` David Howells
2020-04-01 13:58       ` David Howells
2020-04-01 15:25       ` Miklos Szeredi
2020-04-01 15:25         ` Miklos Szeredi
2020-04-03  9:11         ` Karel Zak
2020-04-03  9:11           ` Karel Zak
2020-04-01 16:01       ` David Howells
2020-04-01 16:01         ` David Howells
2020-04-01 16:30         ` Miklos Szeredi
2020-04-01 16:30           ` Miklos Szeredi
2020-04-02 15:22         ` David Howells
2020-04-02 15:22           ` David Howells
2020-04-02 15:24           ` Miklos Szeredi
2020-04-02 15:24             ` Miklos Szeredi
2020-04-02 15:42           ` David Howells
2020-04-02 15:42             ` David Howells
2020-04-02 15:24         ` David Howells
2020-04-02 15:24           ` David Howells
2020-04-01 14:41   ` Lennart Poettering
2020-04-01 14:41     ` Lennart Poettering
2020-04-01 15:33     ` Miklos Szeredi
2020-04-01 15:33       ` Miklos Szeredi
2020-04-01 16:06     ` David Howells
2020-04-01 16:06       ` David Howells
2020-04-01 16:40       ` Miklos Szeredi
2020-04-01 16:40         ` Miklos Szeredi
2020-04-02  2:52         ` Ian Kent
2020-04-02  2:52           ` Ian Kent
2020-04-02 13:52           ` Miklos Szeredi
2020-04-02 13:52             ` Miklos Szeredi
2020-04-02 14:36             ` Lennart Poettering
2020-04-02 14:36               ` Lennart Poettering
2020-04-02 15:22               ` Miklos Szeredi
2020-04-02 15:22                 ` Miklos Szeredi
2020-04-02 15:28                 ` Lennart Poettering
2020-04-02 15:28                   ` Lennart Poettering
2020-04-02 15:35                   ` Miklos Szeredi
2020-04-02 15:35                     ` Miklos Szeredi
2020-04-02 15:50                     ` Lennart Poettering
2020-04-02 15:50                       ` Lennart Poettering
2020-04-02 17:20                       ` Miklos Szeredi
2020-04-02 17:20                         ` Miklos Szeredi
2020-04-03 11:08                         ` Lennart Poettering
2020-04-03 11:08                           ` Lennart Poettering
2020-04-03 11:48                           ` Miklos Szeredi
2020-04-03 11:48                             ` Miklos Szeredi
2020-04-03 15:01                             ` Lennart Poettering
2020-04-03 15:01                               ` Lennart Poettering
2020-04-06  9:22                               ` Miklos Szeredi [this message]
2020-04-06  9:22                                 ` Miklos Szeredi
2020-04-06 17:29                                 ` Lennart Poettering
2020-04-06 17:29                                   ` Lennart Poettering
2020-04-07  2:21                                   ` Ian Kent
2020-04-07  2:21                                     ` Ian Kent
2020-04-07 13:59                                     ` Miklos Szeredi
2020-04-07 13:59                                       ` Miklos Szeredi
2020-04-07 15:53                                       ` Lennart Poettering
2020-04-07 15:53                                         ` Lennart Poettering
2020-04-07 16:06                                         ` Miklos Szeredi
2020-04-07 16:06                                           ` Miklos Szeredi
2020-04-02 15:51                 ` David Howells
2020-04-02 15:51                   ` David Howells
2020-04-02 15:56                 ` David Howells
2020-04-02 15:56                   ` David Howells
2020-04-03  1:44             ` Ian Kent
2020-04-03  1:44               ` Ian Kent
2020-04-03 11:11               ` Lennart Poettering
2020-04-03 11:11                 ` Lennart Poettering
2020-04-03 11:38                 ` Miklos Szeredi
2020-04-03 11:38                   ` Miklos Szeredi
2020-04-03 12:05                   ` Richard Weinberger
2020-04-03 12:05                     ` Richard Weinberger
2020-04-03 15:12                   ` Lennart Poettering
2020-04-03 15:12                     ` Lennart Poettering
2020-04-03 20:30                     ` J. Bruce Fields
2020-04-03 20:30                       ` J. Bruce Fields
2020-04-06  8:35                       ` Miklos Szeredi
2020-04-06  8:35                         ` Miklos Szeredi
2020-04-06 16:07                         ` J. Bruce Fields
2020-04-06 16:07                           ` J. Bruce Fields
2020-04-06  9:17                       ` Karel Zak
2020-04-06  9:17                         ` Karel Zak
2020-04-06 16:34                         ` Linus Torvalds
2020-04-06 16:34                           ` Linus Torvalds
2020-04-06 18:46                           ` J. Bruce Fields
2020-04-06 18:46                             ` J. Bruce Fields
2020-04-06 18:48                           ` Lennart Poettering
2020-04-06 18:48                             ` Lennart Poettering
2020-04-08  3:36                             ` Linus Torvalds
2020-04-08  3:36                               ` Linus Torvalds
2020-04-03 15:36                   ` David Howells
2020-04-03 15:36                     ` David Howells
2020-04-03 15:41                     ` Lennart Poettering
2020-04-03 15:41                       ` Lennart Poettering

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='CAJfpegudLD8F-25k-k=9G96JKB+5Y=xFT=ZMwiBkNTwkjMDumA@mail.gmail.com' \
    --to=miklos@szeredi.hu \
    --cc=andres@anarazel.de \
    --cc=christian.brauner@ubuntu.com \
    --cc=cyphar@cyphar.com \
    --cc=dhowells@redhat.com \
    --cc=dray@redhat.com \
    --cc=jlayton@redhat.com \
    --cc=keyrings@vger.kernel.org \
    --cc=kzak@redhat.com \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mszeredi@redhat.com \
    --cc=mzxreary@0pointer.de \
    --cc=raven@themaw.net \
    --cc=swhiteho@redhat.com \
    --cc=torvalds@linux-foundation.org \
    --cc=viro@zeniv.linux.org.uk \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.