Re: [LSF/MM TOPIC] [ATTEND] Persistent memory
From: Howard Chu <hidden>
Date: 2014-01-21 07:38:25
Also in:
linux-fsdevel
Andy Lutomirski wrote:
On 01/16/2014 08:17 PM, Howard Chu wrote:quoted
Andy Lutomirski wrote:quoted
I'm interested in a persistent memory track. There seems to be plenty of other emails about this, but here's my take:I'm also interested in this track. I'm not up on FS development these days, the last time I wrote filesystem code was nearly 20 years ago. But persistent memory is a topic near and dear to my heart, and of great relevance to my current pet project, the LMDB memory-mapped database. In a previous era I also developed block device drivers for battery-backed external DRAM disks. (My ideal would have been systems where all of RAM was persistent. I suppose we can just about get there with mobile phones and tablets these days.) In the context of database engines, I'm interested in leveraging persistent memory for write-back caching and how user level code can be made aware of it. (If all your cache is persistent and guaranteed to eventually reach stable store then you never need to fsync() a transaction.)Hmm. Presumably that would work by actually allocating cache pages in persistent memory. I don't think that anything like the current XIP interfaces can do that, but it's certainly an interesting thought for (complicated) future work. This might not be pretty in conjunction with something like my writethrough mapping idea -- read(2) and write(2) would be fine (well, write(2) might need to use streaming loads), but mmap users who weren't expecting it might have truly awful performance. That especially includes things like databases that aren't expecting this behavior.
At the moment all I can suggest is a new mmap() flag, e.g. MAP_PERSISTENT. Not sure how a user or app should discover that it's supported though.
--Andyquoted
quoted
First, I'm not an FS expert. I've never written an FS, touched an on-disk (or on-persistent-memory) FS format. I have, however, mucked with some low-level x86 details, and I'm a heavy abuser of the Linux page cache. I'm an upcoming user of persistent memory -- I have some (in the form if NV-DIMMs) and I have an application (HFT and a memory-backed database thing) that I'll port to run on pmfs or ext4 w/ XIP once everything is ready. I'm also interested in some of the implementation details. For this stuff to be reliable on anything resembling commodity hardware, there will be some caching issues to deal with. For example, I think it would be handy to run things like pmfs on top of write-through mappings. This is currently barely supportable (and only using mtrrs), but it's not terribly complicated (on new enough hardware) to support real write-through PAT entries. I've written an i2c-imc driver (currently in limbo on the i2c list), which will likely be used for control operations on NV-DIMMs plugged into Intel-based server boards. In principle, I could even bring a working NV-DIMM system to the summit -- it's nearby, and this thing isn't *that* large :) --Andy -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
-- -- Howard Chu CTO, Symas Corp. http://www.symas.com Director, Highland Sun http://highlandsun.com/hyc/ Chief Architect, OpenLDAP http://www.openldap.org/project/ -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>