From: Andy Lutomirski Subject: Re: NVM Mapping API Date: Tue, 15 May 2012 16:02:01 -0700 Message-ID: <4FB2E069.7060703@amacapital.net> References: <20120515133450.GD22985@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Cc: linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org To: Matthew Wilcox Return-path: In-Reply-To: <20120515133450.GD22985@linux.intel.com> Sender: linux-kernel-owner@vger.kernel.org List-Id: linux-fsdevel.vger.kernel.org On 05/15/2012 06:34 AM, 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. > 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? > I would love to use this from userspace. If I could carve out a little piece of NVM as a file (or whatever) and mmap it, I could do all kinds of fun things with that. It would be nice if it had well-defined, or at least configurable or discoverable, caching properties (e.g. WB, WT, WC, UC, etc.). (Even better would be a way to make a clone of an fd that only allows mmap, but that's a mostly unrelated issue.) --Andy