From: "Luis R. Rodriguez" <mcgrof@kernel.org>
To: "Herbert, Marc" <marc.herbert@intel.com>
Cc: "Luis R. Rodriguez" <mcgrof@kernel.org>,
Linus Torvalds <torvalds@linux-foundation.org>,
Bjorn Andersson <bjorn.andersson@linaro.org>,
Daniel Vetter <daniel.vetter@ffwll.ch>,
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>,
Johannes Berg <johannes@sipsolutions.net>,
Christian Lamparter <chunkeey@googlemail.com>,
Hauke Mehrtens <hauke@hauke-m.de>, Jeff Mahoney <jeffm@suse.com>
Subject: Re: [RFC] fs: add userspace critical mounts event support
Date: Wed, 5 Oct 2016 01:28:04 +0200 [thread overview]
Message-ID: <20161004232804.GX3296@wotan.suse.de> (raw)
In-Reply-To: <1324e12e-add0-4acd-3bb0-bf283ed0114c@intel.com>
On Fri, Sep 23, 2016 at 07:51:41PM -0700, Herbert, Marc wrote:
> On 06/09/2016 16:04, Luis R. Rodriguez wrote:
> > They claim that without it there is the race between /lib/firmware
> > being ready and driver asking for the firmware.
>
> Hope it's understood by now.
>
> > I was told there were quite a bit of out-of-tree hacks to address
> > this without using the usermode helper,
>
> There are:
> https://chromium-review.googlesource.com/#/c/354089/
> wait until SYSTEM_RUNNING before loading DMC firmware.
Jeesh. Good thing its not merged yet upstream, but indeed
I can understand why out of tree kernels are picking these
sorts of solutions up in the meantime.
> > the goal of this patch was to create the discussion needed to a
> > proper resolution to this.
>
> Sincere thanks.
>
> >>> On Tue 06 Sep 11:32 PDT 2016, Linus Torvalds wrote:
> >>>
> >>>> On Tue, Sep 6, 2016 at 10:46 AM, Bjorn Andersson
> >>>> Nobody has actually answered the "why don't we just tie the
> >>>> firmware and module together" question.
> >>>
> >>> The answer to this depends on the details of the suggestion; but
> >>> generally there's a much stronger bond between the kernel and the
> >>> driver than between the driver and the firmware in my cases.
>
> Indeed.
>
> The i915 DMC firmware is an interesting example. First of all it’s
> _optional_! It’s critical for battery-powered systems but the i915
> driver works without it.
You obviously may want to upgrade firmware too, and a driver may
want to provide support for a series of old and new firmware.
An alternative idea hinted to me recently was a new system call for
drivers that need firmware early, so we'd have system call deal with
loading *both* the module and firmware -- but indeed optional firmware is one
possible issue that throws a wrench into this. We can surely add a flags
option but not yet sure if that alone would suffice for most of our needs.
You may need code to generate the firmware name dynamically as well, so a
system call would only be useful for a few cases where firmware requirement
information can be inferred by userspace by just looking at the module object.
> Dan wrote:
> > Plus all gpu drivers which need firmware. And yes we must load them
> > at probe because people are generally pissed when they boot their
> > machine and the screen goes black.
Thanks for the clarification BTW.
> > On top of that a lot of people
> > want their gpu drivers to be built-in, but can't ship the firmware
> > blobs in the kernel image because gpl. Yep, there's a bit a
> > contradiction there ...
>
> Eppur si muove:
> 1) As Dan just wrote, users expect the screen to light up as soon as they
> press the power button so the i915 driver is built-in
> 2) ... yet they’ll never notice the nanojoules of battery loss caused
> by the DMC firmware being on a filesystem and loaded a tiny bit later.
>
> SoCs and platforms have become some new kind of distributed systems
> where other processors run their own, specific software/OS/firmware.
> From this perspective the kernel plays a role similar to a boot server;
> and choke point. Granted: booting various and heterogeneous
> distributed systems doesn’t look like a simple problem to solve
> generically. Yet at the moment the kernel doesn’t help by not
> even supporting something as basic as being told when the files it’s
> (unfortunately) in charge to deploy to other nodes become available and
> ready to deploy.
When you consider the problem more from a directed acyclic graph point of view
you soon realize the issue is really about the *need* for certain files upon
driver load and the lack of of semantics for a deterministic assurance that
when we look for files its a valid hunt. What you describe in terms of
SoCs is just that the complexity of the DAG increases considerably.
> It can’t be assumed that the driver and the firmware are two parts of
> the same software piece whereas they actually run on two different
> processors, are most likely developed and validated by completely
> different teams and released on different lifecycles. Especially in
> the Linux case.
>
> I hope this distributed systems analogy captures the essence of the
> examples and rationales detailed elsewhere in this thread.
You also need to upgrade firmware, and users should be able to opt-in
for firmware, and pick any firmware, or roll back to older versions
as they see fit.
Luis
next prev parent reply other threads:[~2016-10-04 23:28 UTC|newest]
Thread overview: 80+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-06-16 22:54 [PATCH v2 0/5] firmware: add SmPL grammar to avoid issues Luis R. Rodriguez
2016-06-16 22:54 ` [PATCH v2 1/5] MAINTAINERS: extend firmware_class maintainer list Luis R. Rodriguez
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
[not found] ` <CA+55aFz4q5peXAeY9h8o3he7R=wXrBSYkOjMM9TehOw=pPoS+Q@mail.gmail.com>
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-24 2:51 ` Herbert, Marc
2016-10-04 23:28 ` Luis R. Rodriguez [this message]
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 23:40 ` Luis R. Rodriguez
2016-11-15 9:28 ` Johannes Berg
2016-06-16 22:54 ` [PATCH v2 3/5] firmware: update usermode helper docs and add SmPL report Luis R. Rodriguez
2016-06-16 22:54 ` [PATCH v2 4/5] firmware: add usermode helper DECLARE_FW_LOADER_USER() annotation Luis R. Rodriguez
2016-06-16 22:54 ` [PATCH v2 5/5] firmware: fix fw cache to avoid usermode helper on suspend Luis R. Rodriguez
2016-07-07 0:56 ` [PATCH v2 0/5] firmware: add SmPL grammar to avoid issues Luis R. Rodriguez
2016-07-13 21:47 ` Luis R. Rodriguez
2016-07-28 0:41 ` Luis R. Rodriguez
2016-08-03 14:50 ` Luis R. Rodriguez
2016-08-03 15:04 ` Greg KH
2016-08-03 17:06 ` Luis R. Rodriguez
2016-08-03 19:32 ` Greg KH
2016-08-03 19:46 ` Luis R. Rodriguez
2016-07-13 23:52 ` Fengguang Wu
2016-07-14 2:15 ` Luis R. Rodriguez
2016-07-14 2:23 ` Fengguang Wu
2016-07-14 3:08 ` Luis R. Rodriguez
2016-07-14 3:35 ` Fengguang Wu
2016-08-24 0:45 ` [PATCH v3 " mcgrof
2016-08-24 0:45 ` [PATCH v3 1/5] MAINTAINERS: extend firmware_class maintainer list mcgrof
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
2016-08-24 0:45 ` [PATCH v3 3/5] firmware: update usermode helper docs and add SmPL report mcgrof
2016-08-24 0:45 ` [PATCH v3 4/5] firmware: add usermode helper DECLARE_FW_LOADER_USER() annotation mcgrof
2016-08-24 0:45 ` [PATCH v3 5/5] firmware: fix fw cache to avoid usermode helper on suspend mcgrof
2016-08-31 7:03 ` Daniel Wagner
2016-09-02 18:13 ` Luis R. Rodriguez
2016-09-07 0:42 ` [PATCH v4 0/5] firmware: add SmPL grammar to avoid issues Luis R. Rodriguez
2016-09-07 0:42 ` [PATCH v4 1/5] MAINTAINERS: extend firmware_class maintainer list Luis R. Rodriguez
2016-09-07 6:43 ` Greg KH
2016-09-08 14:58 ` Luis R. Rodriguez
2016-09-08 15:25 ` Ming Lei
2016-09-07 0:42 ` [PATCH v4 2/5] firmware: annotate thou shalt not request fw on init or probe Luis R. Rodriguez
2016-09-07 0:42 ` [PATCH v4 3/5] firmware: update usermode helper docs and add SmPL report Luis R. Rodriguez
2016-09-07 0:42 ` [PATCH v4 4/5] firmware: add usermode helper DECLARE_FW_LOADER_USER() annotation Luis R. Rodriguez
2016-09-07 0:42 ` [PATCH v4 5/5] firmware: fix fw cache to avoid usermode helper on suspend 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=20161004232804.GX3296@wotan.suse.de \
--to=mcgrof@kernel.org \
--cc=akpm@linux-foundation.org \
--cc=bjorn.andersson@linaro.org \
--cc=broonie@kernel.org \
--cc=chunkeey@googlemail.com \
--cc=daniel.vetter@ffwll.ch \
--cc=dwmw2@infradead.org \
--cc=gregkh@linuxfoundation.org \
--cc=hauke@hauke-m.de \
--cc=jeffm@suse.com \
--cc=johannes@sipsolutions.net \
--cc=linux-kernel@vger.kernel.org \
--cc=marc.herbert@intel.com \
--cc=markivx@codeaurora.org \
--cc=ming.lei@canonical.com \
--cc=mmarek@suse.com \
--cc=nbd@nbd.name \
--cc=r.peniaev@gmail.com \
--cc=stephen.boyd@linaro.org \
--cc=tiwai@suse.de \
--cc=torvalds@linux-foundation.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).