All of lore.kernel.org
 help / color / mirror / Atom feed
From: Greg KH <greg@kroah.com>
To: Matthew Wilcox <willy@linux.intel.com>
Cc: linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: NVM Mapping API
Date: Tue, 15 May 2012 10:46:39 -0700	[thread overview]
Message-ID: <20120515174639.GA31752@kroah.com> (raw)
In-Reply-To: <20120515133450.GD22985@linux.intel.com>

On Tue, May 15, 2012 at 09:34:51AM -0400, Matthew Wilcox wrote:
> 
> There are a number of interesting non-volatile memory (NVM) technologies
> being developed.  Some of them promise DRAM-comparable latencies and
> bandwidths.  At Intel, we've been thinking about various ways to present
> those to software.  This is a first draft of an API that supports the
> operations we see as necessary.  Patches can follow easily enough once
> we've settled on an API.
> 
> We think the appropriate way to present directly addressable NVM to
> in-kernel users is through a filesystem.  Different technologies may want
> to use different filesystems, or maybe some forms of directly addressable
> NVM will want to use the same filesystem as each other.
> 
> For mapping regions of NVM into the kernel address space, we think we need
> map, unmap, protect and sync operations; see kerneldoc for them below.
> We also think we need read and write operations (to copy to/from DRAM).
> The kernel_read() function already exists, and I don't think it would
> be unreasonable to add its kernel_write() counterpart.
> 
> We aren't yet proposing a mechanism for carving up the NVM into regions.
> vfs_truncate() seems like a reasonable API for resizing an NVM region.
> filp_open() also seems reasonable for turning a name into a file pointer.
> 
> What we'd really like is for people to think about how they might use
> fast NVM inside the kernel.  There's likely to be a lot of it (at least in
> servers); all the technologies are promising cheaper per-bit prices than
> DRAM, so it's likely to be sold in larger capacities than DRAM is today.
> 
> Caching is one obvious use (be it FS-Cache, Bcache, Flashcache or
> something else), but I bet there are more radical things we can do
> with it.  What if we stored the inode cache in it?  Would booting with
> a hot inode cache improve boot times?  How about storing the tree of
> 'struct devices' in it so we don't have to rescan the busses at startup?

Rescanning the busses at startup are required anyway, as devices can be
added and removed when the power is off, and I would be amazed if that
is actually taking any measurable time.  Do you have any numbers for
this for different busses?

What about pramfs for the nvram?  I have a recent copy of the patches,
and I think they are clean enough for acceptance, there was no
complaints the last time it was suggested.  Can you use that for this
type of hardware?

thanks,

greg k-h

  reply	other threads:[~2012-05-15 17:46 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-05-15 13:34 NVM Mapping API Matthew Wilcox
2012-05-15 17:46 ` Greg KH [this message]
2012-05-16 15:57   ` Matthew Wilcox
2012-05-18 12:07     ` Marco Stornelli
2012-05-15 23:02 ` Andy Lutomirski
2012-05-16 16:02   ` Matthew Wilcox
2012-05-31 17:53     ` Andy Lutomirski
2012-05-16  6:24 ` Vyacheslav Dubeyko
2012-05-16 16:10   ` Matthew Wilcox
2012-05-17  9:06     ` Vyacheslav Dubeyko
2012-05-16 21:58   ` Benjamin LaHaise
2012-05-17 19:06     ` Matthew Wilcox
2012-05-16  9:52 ` James Bottomley
2012-05-16 17:35   ` Matthew Wilcox
2012-05-16 19:58     ` Christian Stroetmann
2012-05-19 22:19       ` Christian Stroetmann
2012-05-17  9:54     ` James Bottomley
2012-05-17 18:59       ` Matthew Wilcox
2012-05-18  9:03         ` James Bottomley
2012-05-18 10:13           ` Boaz Harrosh
2012-05-18 14:49           ` Matthew Wilcox
2012-05-18 15:08             ` Alan Cox
2012-05-18 15:31             ` James Bottomley
2012-05-18 17:19               ` Matthew Wilcox
2012-05-16 13:04 ` Boaz Harrosh
2012-05-16 18:33   ` Matthew Wilcox
2012-05-18  9:33 ` 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=20120515174639.GA31752@kroah.com \
    --to=greg@kroah.com \
    --cc=linux-fsdevel@vger.kernel.org \
    --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.