From: Greg KH <greg@kroah.com>
To: Alan Cox <alan@lxorguk.ukuu.org.uk>
Cc: Matthew Wilcox <willy@linux.intel.com>, linux-kernel@vger.kernel.org
Subject: Re: [REVIEW] NVM Express driver
Date: Fri, 4 Mar 2011 14:10:34 -0800 [thread overview]
Message-ID: <20110304221034.GD25574@kroah.com> (raw)
In-Reply-To: <20110304215915.18199ce1@lxorguk.ukuu.org.uk>
On Fri, Mar 04, 2011 at 09:59:15PM +0000, Alan Cox wrote:
> > And non-automated loading of firmware as well. Dell uses this for
> > updating their BIOSes just fine, with a userspace tool that initiates
> > the loading of the firmware.
>
> Try using the Dell tool with namespaces.
Heck, try using _any_ tool that talks to sysfs with namespaces, don't
try to claim that this driver using its own custom firmware loader is a
solution to the namespace/sysfs issue please. That's very disingenuous.
> > How does Dell do it?
>
> How do most other apps do it.
They write to the sysfs file with the firmware when they feel like it.
> > So, what could be changed in the current firmware interface to fix this
> > problem in a manner which would solve these perceived issues?
>
> I'm not sure it can. The basis of the interface is driver requests
> firmware. That is done by using a pathname which in a namespaced
> environment isn't global and has races
Of course, but those races don't show up in real systems, right?
> (Several things break quite spectacularly if you request_firmware while
> updating a package, but of course nobody considered such details even for
> automatic stuff in many cases. Really there is some locking needed).
I've never heard of this race before as you usually do firmware upload
either at boot time, or when a user specifically asks for it. Neither
of those times is when packages are usually getting updated.
> For manual updating of a block of firmware the interface most stuff wants
> is
>
> copy_from_user()
>
> or if you wanted to wrap it up nicely
>
> x = vmalloc_from_user(void __user *ptr, ssize_t len);
>
> The app knows which firmware it is talking about and can inspect and
> compare it while holding an open file handle on the deivce. That protects
> against hotplug races and getting the wrong device second access, and
> ensures that the firmware, device and userspace are all talking about
> exactly the same thing.
But you do get this type of buffer from the firware interface to your
driver today, right?
> It would nice to say "its an obscure corner case that will just error",
> but far too much hardware still gets semi permanently (or permanently)
> converted into junk if you goof a permanent flash firmware update.
One would hope that the hardware was a bit more resiliant than that, but
I know how hardware is designed :(
Still, I don't want this to all of a sudden be "open season" for every
individual driver deciding to want to create an ioctl call for firmware
updating just because the authors don't like the existing in-kernel
interface. Please fix up the in-kernel one instead to meet your needs.
thanks,
greg k-h
next prev parent reply other threads:[~2011-03-04 22:11 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-03-03 20:47 [REVIEW] NVM Express driver Matthew Wilcox
2011-03-03 21:13 ` Greg KH
2011-03-03 21:41 ` Matthew Wilcox
2011-03-03 21:51 ` Greg KH
2011-03-03 22:07 ` Matthew Wilcox
2011-03-03 22:22 ` Greg KH
2011-03-04 2:25 ` Andy Lutomirski
2011-03-04 9:02 ` el es
2011-03-04 21:29 ` Greg KH
2011-03-04 12:43 ` Alan Cox
2011-03-04 21:28 ` Greg KH
2011-03-04 21:59 ` Alan Cox
2011-03-04 22:10 ` Greg KH [this message]
2011-03-04 22:33 ` Alan Cox
2011-03-04 23:10 ` Greg KH
2011-03-05 10:28 ` Alan Cox
2011-03-04 12:52 ` Mark Brown
2011-03-03 21:33 ` Randy Dunlap
2011-03-04 13:06 ` Christoph Hellwig
2011-03-04 14:46 ` Matthew Wilcox
2011-03-11 22:29 ` Andi Kleen
2011-03-12 5:51 ` Matthew Wilcox
2011-03-13 17:14 ` Andi Kleen
2011-03-13 17:14 ` Andi Kleen
2011-03-13 18:24 ` Arnd Bergmann
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=20110304221034.GD25574@kroah.com \
--to=greg@kroah.com \
--cc=alan@lxorguk.ukuu.org.uk \
--cc=linux-kernel@vger.kernel.org \
--cc=willy@linux.intel.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 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.