linuxppc-dev.lists.ozlabs.org archive mirror
 help / color / mirror / Atom feed
From: "Luis R. Rodriguez" <mcgrof@kernel.org>
To: Andy Lutomirski <luto@amacapital.net>
Cc: Daniel Wagner <daniel.wagner@bmw-carit.de>,
	"Luis R. Rodriguez" <mcgrof@kernel.org>,
	Linus Torvalds <torvalds@linux-foundation.org>,
	Jiri Kosina <jkosina@suse.cz>,
	Johannes Berg <johannes@sipsolutions.net>,
	Jouni Malinen <j@w1.fi>,
	Seth Forshee <seth.forshee@canonical.com>,
	Tom Gundersen <teg@jklm.no>, Kay Sievers <kay@vrfy.org>,
	Bjorn Andersson <bjorn.andersson@linaro.org>,
	Daniel Wagner <wagi@monom.org>,
	"Rafael J. Wysocki" <rjw@rjwysocki.net>,
	"Herbert, Marc" <marc.herbert@intel.com>,
	Daniel Vetter <daniel.vetter@ffwll.ch>,
	Rob Landley <rob@landley.net>,
	Mimi Zohar <zohar@linux.vnet.ibm.com>,
	Felix Fietkau <nbd@nbd.name>,
	David Woodhouse <dwmw2@infradead.org>,
	Roman Pen <r.peniaev@gmail.com>,
	Ming Lei <ming.lei@canonical.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Michal Marek <mmarek@suse.com>,
	Greg KH <gregkh@linuxfoundation.org>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	Vikram Mulukutla <markivx@codeaurora.org>,
	Stephen Boyd <stephen.boyd@linaro.org>,
	Mark Brown <broonie@kernel.org>, Takashi Iwai <tiwai@suse.de>,
	Christian Lamparter <chunkeey@googlemail.com>,
	Hauke Mehrtens <hauke@hauke-m.de>,
	Josh Boyer <jwboyer@fedoraproject.org>,
	Dmitry Torokhov <dmitry.torokhov@gmail.com>,
	Jiri Slaby <jslaby@suse.com>,
	Wu Fengguang <fengguang.wu@intel.com>,
	Richard Purdie <rpurdie@rpsys.net>, Jeff Mahoney <jeffm@suse.com>,
	Jacek Anaszewski <j.anaszewski@samsung.com>,
	Abhay_Salunke@dell.com, Julia Lawall <Julia.Lawall@lip6.fr>,
	Gilles.Muller@lip6.fr, nicolas.palix@imag.fr,
	David Howells <dhowells@redhat.com>,
	Alessandro Rubini <rubini@gnudd.com>,
	Kevin Cernekee <cernekee@gmail.com>,
	Kees Cook <keescook@chromium.org>,
	Jonathan Corbet <corbet@lwn.net>,
	Thierry Martinez <martinez@nsup.org>,
	linux-serial <linux-serial@vger.kernel.org>,
	"open list:DOCUMENTATION" <linux-doc@vger.kernel.org>,
	linuxppc-dev <linuxppc-dev@lists.ozlabs.org>,
	Josh Triplett <josh@joshtriplett.org>,
	Harald Hoyer <harald@redhat.com>
Subject: Re: [RFC] fs: add userspace critical mounts event support
Date: Tue, 29 Nov 2016 22:54:28 +0100	[thread overview]
Message-ID: <20161129215428.GK1402@wotan.suse.de> (raw)
In-Reply-To: <CALCETrVtuiKaJ+z3hSLGYs3robuORJv+N5Z19t0XUzUNynqZDA@mail.gmail.com>

On Wed, Nov 09, 2016 at 03:21:07AM -0800, Andy Lutomirski wrote:
> On Wed, Nov 9, 2016 at 1:13 AM, Daniel Wagner
> <daniel.wagner@bmw-carit.de> wrote:
> > [CC: added Harald]
> >
> > As Harald pointed out over a beer yesterday evening, there is at least
> > one more reason why UMH isn't obsolete. The ordering of the firmware loading
> > might be of important. Say you want to greet the user with a splash screen
> > really early on, the graphic card firmware should be loaded first. Also the
> > automotive world has this fancy requirement that rear camera must be on the
> > screen within 2 seconds. So controlling the firmware loading order is of
> > importance (e.g. also do not overcommit the I/O bandwith not so important
> > firmwares). A user space helper is able to prioritize the request
> > accordingly the use case.
> 
> That seems like a valid problem, but I don't think that UMH adequately
> solves it.  Sure, loading firmware in the right order avoids a >2sec
> delay due to firmware loading, but what happens when you have a slow
> USB device that *doesn't* need firmware plugged in to your car's shiny
> USB port when you start the car?
> 
> It seems to me that this use case requires explicit control over
> device probing and, if that gets added, you get your firmware ordering
> for free (just probe the important devices first).

In theory this is correct, the problem comes with the flexibility we have
created with pivot_root() and friends (another is mount on /lib/firmware) which
enables system integrators to pick and choose the "real rootfs" to be a few
layers away from the first fs picked up by the kernel. In providing this
flexibility we did not envision nor have devised signals to enable a
deterministic lookup due to the requirements such lookups might have --
in this case the requirements are that direct fs is ready and kosher
all the paths possible for firmware are ready. As you can imagine first race is
not only an issue for firmware but a generic issue.

The generic race on the fs lookup requires a fs availability event, and
addressing fs suspend. I'll note that the race on init is addressed today
*only* by the firmware UMH (its UMH is kobject uevent and optionally a custom
binary) by using the UMH lock. During a cleanup by Daniel recently I
realized it was bogus to use the UMH of the UMH was not used, turns out
this would still expose the direct FS lookup to a race though. This
begs the question if the UMH lock either be removed / shared with the
other kernel UMHs or a generic solution provided for direct fs lookup
with some requirements specified.

This is all a mess so I've documented each component and issues / ideas
we've discussed so far separately, the firmware UMH (which we should
probably rebrand to firmware kobject uevent helper to avoid confusion)
[0], the real kernel usermode helper [1], the new common kernel file
loader [2]

[0] https://kernelnewbies.org/KernelProjects/firmware-class-enhancements
[1] https://kernelnewbies.org/KernelProjects/usermode-helper-enhancements
[2] https://kernelnewbies.org/KernelProjects/common-kernel-loader

  Luis

  parent reply	other threads:[~2016-11-29 21:54 UTC|newest]

Thread overview: 52+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <1466117661-22075-1-git-send-email-mcgrof@kernel.org>
2016-06-16 22:54 ` [PATCH v2 2/5] firmware: annotate thou shalt not request fw on init or probe Luis R. Rodriguez
2016-08-24  6:55   ` Daniel Vetter
2016-08-24 20:39     ` Luis R. Rodriguez
2016-08-25 11:05       ` Daniel Vetter
2016-08-25 19:41         ` Luis R. Rodriguez
2016-08-25 20:10           ` Daniel Vetter
2016-08-25 20:25             ` Luis R. Rodriguez
2016-08-25 20:30           ` Dmitry Torokhov
2016-09-02 23:59           ` Luis R. Rodriguez
2016-09-03  0:20             ` [RFC] fs: add userspace critical mounts event support Luis R. Rodriguez
2016-09-03  4:11               ` Linus Torvalds
2016-09-03  4:20                 ` Dmitry Torokhov
2016-09-03  4:41                   ` Linus Torvalds
2016-09-03 17:49                     ` Dmitry Torokhov
2016-09-03 18:01                       ` Linus Torvalds
2016-09-03 18:10                         ` Dmitry Torokhov
2016-09-06 21:52                           ` Luis R. Rodriguez
2016-09-06 22:28                             ` Bjorn Andersson
2016-09-06 23:14                               ` Luis R. Rodriguez
2016-09-24  1:37                           ` Herbert, Marc
2016-09-24 17:41                             ` Dmitry Torokhov
2016-10-05  0:00                               ` Luis R. Rodriguez
2016-10-05  0:12                                 ` Linus Torvalds
2016-10-05  0:24                                   ` Luis R. Rodriguez
2016-10-05  0:32                                     ` Linus Torvalds
2016-10-05 17:38                                       ` Luis R. Rodriguez
2016-10-05  1:48                                   ` Josh Triplett
2016-10-05  1:58                                     ` Linus Torvalds
2016-09-06 17:46                 ` Bjorn Andersson
2016-09-06 18:32                   ` Linus Torvalds
2016-09-06 21:11                     ` Bjorn Andersson
2016-09-06 21:50                       ` Linus Torvalds
2016-09-06 23:04                         ` Luis R. Rodriguez
2016-09-06 22:32                     ` Luis R. Rodriguez
2016-09-14  2:38               ` Rob Landley
2016-10-05 18:00                 ` Luis R. Rodriguez
2016-10-05 18:08                   ` Linus Torvalds
2016-10-05 19:46                     ` Luis R. Rodriguez
2016-11-08 22:47                       ` Luis R. Rodriguez
2016-11-09  9:13                         ` Daniel Wagner
2016-11-09 11:21                           ` Andy Lutomirski
2016-11-09 23:53                             ` Luis R. Rodriguez
2016-11-29 21:54                             ` Luis R. Rodriguez [this message]
2016-11-09 23:40                         ` Luis R. Rodriguez
2016-11-15  9:28                         ` Johannes Berg
2016-11-29 21:10                           ` Tom Gundersen
2016-11-29 21:37                             ` Luis R. Rodriguez
2016-11-30  8:18                               ` Johannes Berg
     [not found] ` <1471999507-913-1-git-send-email-mcgrof@kernel.org>
2016-08-24  0:45   ` [PATCH v3 2/5] firmware: annotate thou shalt not request fw on init or probe mcgrof
2016-08-24  8:17     ` Gabriel Paubert
2016-09-02 18:26       ` Luis R. Rodriguez
     [not found]   ` <1473208930-6835-1-git-send-email-mcgrof@kernel.org>
2016-09-07  0:42     ` [PATCH v4 " Luis R. Rodriguez

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=20161129215428.GK1402@wotan.suse.de \
    --to=mcgrof@kernel.org \
    --cc=Abhay_Salunke@dell.com \
    --cc=Gilles.Muller@lip6.fr \
    --cc=Julia.Lawall@lip6.fr \
    --cc=akpm@linux-foundation.org \
    --cc=bjorn.andersson@linaro.org \
    --cc=broonie@kernel.org \
    --cc=cernekee@gmail.com \
    --cc=chunkeey@googlemail.com \
    --cc=corbet@lwn.net \
    --cc=daniel.vetter@ffwll.ch \
    --cc=daniel.wagner@bmw-carit.de \
    --cc=dhowells@redhat.com \
    --cc=dmitry.torokhov@gmail.com \
    --cc=dwmw2@infradead.org \
    --cc=fengguang.wu@intel.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=harald@redhat.com \
    --cc=hauke@hauke-m.de \
    --cc=j.anaszewski@samsung.com \
    --cc=j@w1.fi \
    --cc=jeffm@suse.com \
    --cc=jkosina@suse.cz \
    --cc=johannes@sipsolutions.net \
    --cc=josh@joshtriplett.org \
    --cc=jslaby@suse.com \
    --cc=jwboyer@fedoraproject.org \
    --cc=kay@vrfy.org \
    --cc=keescook@chromium.org \
    --cc=linux-doc@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-serial@vger.kernel.org \
    --cc=linuxppc-dev@lists.ozlabs.org \
    --cc=luto@amacapital.net \
    --cc=marc.herbert@intel.com \
    --cc=markivx@codeaurora.org \
    --cc=martinez@nsup.org \
    --cc=ming.lei@canonical.com \
    --cc=mmarek@suse.com \
    --cc=nbd@nbd.name \
    --cc=nicolas.palix@imag.fr \
    --cc=r.peniaev@gmail.com \
    --cc=rjw@rjwysocki.net \
    --cc=rob@landley.net \
    --cc=rpurdie@rpsys.net \
    --cc=rubini@gnudd.com \
    --cc=seth.forshee@canonical.com \
    --cc=stephen.boyd@linaro.org \
    --cc=teg@jklm.no \
    --cc=tiwai@suse.de \
    --cc=torvalds@linux-foundation.org \
    --cc=wagi@monom.org \
    --cc=zohar@linux.vnet.ibm.com \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).