====== Persistent Memory ====== ===== Participants ===== * Leonardo Marmol * Mohammad Chowdhary * Muminul Islam * Raju Rangaswami ===== Project Goals ===== Using Byte-addressable persistent memory in systems. ===== User Level Library ===== * [[ULL|Dedicated page for the user space library]] ===== Kernel Support ===== TODO: link to dedicated page ===== Related Literature ===== * Better I/O Through Byte-Addressable, Persistent Memory (BPFS) {{:internal:projects:persistent-memory:sosp09.pdf|}} * NV-Heaps: Making Persistent Objects Fast and Safe with Next-Generation, Non-Volatile Memories {{:internal:projects:persistent-memory:asplos2011_nvheaps.pdf|}} * Mnemosyne: Lightweight Persistent Memory {{:internal:projects:persistent-memory:mnemosyne-asplos2011.pdf|}} * Linux kernel support to exploit phase change memory {{:internal:projects:persistent-memory:ols2010-pages-217-224.pdf|}} * [[http://www.intel.com/content/www/us/en/processors/architectures-software-developer-manuals.html| Intel® 64 and IA-32 Architectures Software Developer’s Manual ]] ===== Meetings ===== * 07/13/15: Ata/Leo: Paper discussions {{{{internal:projects:persistent-memory:pm071315.mp3|mp3}} * 07/02/15: Ata: Reviewer comments from HotStorage submission {{{{internal:projects:persistent-memory:pm070215.mp3|mp3}} * 06/23/15: TBD {{{{internal:projects:persistent-memory:pm063015.mp3|mp3}} * 06/23/15: (Leo) Paper abstract + Optimizing CoW snapshot/current versions {{{{internal:projects:persistent-memory:pm062315.mp3|mp3}} * 06/19/15: (Ata) Solution review + updates {{{{internal:projects:persistent-memory:pm061915.mp3|mp3}} * 06/16/15: (Leo) pmLib and language-port updates {{{{internal:projects:persistent-memory:pm061615b.mp3|mp3}} * 06/16/15: (Ata) IPI design updates {{{{internal:projects:persistent-memory:pm061615.mp3|mp3}} * 06/12/15: Intel call -- plans for compiler work (beyond Cheng) {{{{internal:projects:persistent-memory:pm061215b.mp3|mp3}} * 06/12/15: Ata -- IPI implementation updates {{{{internal:projects:persistent-memory:pm061215.mp3|mp3}} * 06/09/15: Ata -- brief brainstorming {{{{internal:projects:persistent-memory:pm060915a.mp3|mp3}} * 06/09/15: Leo -- new data, alternate directions for intern, and plans for writing {{{{internal:projects:persistent-memory:pm060915b.mp3|mp3}} * 06/02/15: TBD {{{{internal:projects:persistent-memory:pm060215.mp3|mp3}} * 05/22/15: IPI sync design improvements {{{{internal:projects:persistent-memory:pm052215.mp3|mp3}} * 05/22/15: IPI sync design improvements {{{{internal:projects:persistent-memory:pm052215.mp3|mp3}} * 05/15/15: Design for sync using IPI -- updates {{{{internal:projects:persistent-memory:pm051515.mp3|mp3}} * 05/08/15: Region system -- sync design using IPI {{{{internal:projects:persistent-memory:pm050815.mp3|mp3}} * 05/05/15: Ata paper writing -- comparison with failure-atomic sync and design for atomic pmsync {{{{internal:projects:persistent-memory:pm050515.mp3|mp3}} * 04/25/15: Atomicity for pmsync in region system {{{{internal:projects:persistent-memory:pm042515.mp3|mp3}} * 04/24/15: Addressing comments from HotStorage'15 submission {{{{internal:projects:persistent-memory:pm042415.mp3|mp3}} * 04/17/15: Intel call {{{{internal:projects:persistent-memory:pm041715.mp3|mp3}} * 04/14/15: Updates {{{{internal:projects:persistent-memory:pm041415.mp3|mp3}} * 04/03/15: Call with Youfeng: Plans for replacing page #s with persistent pointers {{{{internal:projects:persistent-memory:pm040315.mp3|mp3}} * 04/02/15: Call with Dulloor: Setting up / Using PMEP node {{{{internal:projects:persistent-memory:pm040215.mp3|mp3}} * 03/31/15: pmLib paper (intro outline) {{{{internal:projects:persistent-memory:pm033115.mp3|mp3}} * 03/27/15: pmLib delete discussion {{{{internal:projects:persistent-memory:pm032715.mp3|mp3}} * 03/24/15: region system and pmLib updates {{{{internal:projects:persistent-memory:pm032415.mp3|mp3}} * 03/20/15: Intel meeting - SQLite integration discussion and next steps {{{{internal:projects:persistent-memory:pm032015.mp3|mp3}} * 03/16/15: HotStorage submission discussion {{{{internal:projects:persistent-memory:pm031615.mp3|mp3}} * 03/09/15: Ata: HotStorage'15 Motivation discussion {{{{internal:projects:persistent-memory:pm030915.mp3|mp3}} * 03/06/15: Intel meeting {{{{internal:projects:persistent-memory:pm030615.mp3|mp3}} * 03/05/15: HotStorage paper plans {{{{internal:projects:persistent-memory:pm030315.mp3|mp3}} * 03/03/15: HotStorage paper plans {{{{internal:projects:persistent-memory:pm030315.mp3|mp3}} * 02/27/15: Ata - motivation; Leo: next steps; Daniel: update {{{{internal:projects:persistent-memory:pm022715.mp3|mp3}} * 02/24/15: TBD {{{{internal:projects:persistent-memory:pm022415.mp3|mp3}} * 02/13/15: TBD {{{{internal:projects:persistent-memory:pm021315.mp3|mp3}} * 02/10/15: TBD {{{{internal:projects:persistent-memory:pm021015.mp3|mp3}} * 02/03/15: TBD {{{{internal:projects:persistent-memory:pm020315.mp3|mp3}} * 01/27/15: TBD {{{{internal:projects:persistent-memory:pm012715.mp3|mp3}} * 01/22/15: Ata -- introduction discussion {{{{internal:projects:persistent-memory:pm012215.mp3|mp3}} * 01/20/15: Leo -- updates on closure {{{{internal:projects:persistent-memory:pm012015.mp3|mp3}} * 01/13/15: General updates overall {{{{internal:projects:persistent-memory:pm011315.mp3|mp3}} * 01/08/15: Updates after break {{{{internal:projects:persistent-memory:pm010815.mp3|mp3}} * 12/19/14: Ata: brainstorming on paper {{{{internal:projects:persistent-memory:pm121914.mp3|mp3}} * 12/16/14: Ata on paper and Leo on closure design {{{{internal:projects:persistent-memory:pm121614.mp3|mp3}} * 12/09/14: Updates Ata and Daniel. Leo discusses new design {{{{internal:projects:persistent-memory:pm120914.mp3|mp3}} * 12/02/14: New Intel Instructions + PM latency emulation discussion {{{{internal:projects:persistent-memory:pm120214.mp3|mp3}} * 11/25/14: Closure implementation updates {{{{internal:projects:persistent-memory:pm112514.mp3|mp3}} * 11/18/14: Updates from Ata, Leo {{{{internal:projects:persistent-memory:pm111814.mp3|mp3}} * 11/11/14: Leo development/writing {{{{internal:projects:persistent-memory:pm111114.mp3|mp3}} * 11/04/14: Ata related-work table, Daniel HyperSim/PMEP, Leo updates {{{{internal:projects:persistent-memory:pm110414.mp3|mp3}} * 10/31/14: Ata paper storyline and writing tasks {{{{internal:projects:persistent-memory:pm103114.mp3|mp3}} * 10/28/14: Updates {{{{internal:projects:persistent-memory:pm102814.mp3|mp3}} * 10/21/14: Updates {{{{internal:projects:persistent-memory:pm102114.mp3|mp3}} * 10/14/14: Testing pmLib; Experiments for region system; pmLib updates; {{{{internal:projects:persistent-memory:pm101414.mp3|mp3}} * 10/14/14: Testing pmLib; Experiments for region system; pmLib updates; {{{{internal:projects:persistent-memory:pm101414.mp3|mp3}} * 10/07/14: Status review and next steps {{{{internal:projects:persistent-memory:pm100714.mp3|mp3}} * 09/09/14: Pmlib / Cmake updates {{{{internal:projects:persistent-memory:pm090914.mp3|mp3}} * 09/02/14: Pmlib updates {{{{internal:projects:persistent-memory:pm090214.mp3|mp3}} * 08/26/14: New directions for pmlib paper {{{{internal:projects:persistent-memory:pm082614.mp3|mp3}} * 08/19/14: Correctness discussion revisiting the Yat conditions {{{{internal:projects:persistent-memory:pm081914.mp3|mp3}} * 08/12/14: Cmake update; Yat paper brief discussion; Next steps for Leo {{{{internal:projects:persistent-memory:pm081214.mp3|mp3}} * 08/05/14: (Leo) Daniel's tasks and project task prioritization {{{{internal:projects:persistent-memory:pm080514.mp3|mp3}} * 07/29/14: (Leo) Project Tasks? {{{{internal:projects:persistent-memory:pm072914.mp3|mp3}} * 07/22/14: (Leo) Optimizations vs correctness/implementation {{{{internal:projects:persistent-memory:pm072214.mp3|mp3}} * 07/15/14: (Leo,Daniel) Daniel's next steps and plans for motivating pointer optimization {{{{internal:projects:persistent-memory:pm071514.mp3|mp3}} * 07/01/14: (Leo) Code/design review; next steps for code review/update {{{{internal:projects:persistent-memory:pm070114.mp3|mp3}} * 06/24/14: (Leo,Daniel) Tasks for Daniel; Reviewing persistence/consistency of metadata {{{{internal:projects:persistent-memory:pm062414.mp3|mp3}} * 06/06/14: (Ata/Russell) Updates and plans for paper writing {{{{internal:projects:persistent-memory:pm060614.mp3|mp3}} * 05/08/14: (Leo) Current data on PM Library {{{{internal:projects:persistent-memory:pm050814b.mp3|mp3}} * 05/08/14: (Ata/Russell) Current data on Region Manager {{{{internal:projects:persistent-memory:pm050814.mp3|mp3}} * 04/22/14: (Ata) Paper motivation and comparision with PMFS {{{{internal:projects:persistent-memory:pm042214.mp3|mp3}} * 04/15/14: (Ata/Russell) Paper outline review {{{{internal:projects:persistent-memory:pm041514.mp3|mp3}} * 04/08/14: (Ata/Russell) Paper story discussion {{{{internal:projects:persistent-memory:pm040814.mp3|mp3}} * 04/03/14: (Leo) Brainstorming Intel and SoftPM projects {{{{internal:projects:persistent-memory:pm040314.mp3|mp3}} * 03/28/14: (Russell) Algorithms for pmsync and CoW fault handling {{{{internal:projects:persistent-memory:pm032814.mp3|mp3}} * 03/25/14: (Ata/Russell) Paper outline discussion {{{{internal:projects:persistent-memory:pm032514.mp3|mp3}} * 03/20/14: (Ata/Russell) Paper outline discussion {{{{internal:projects:persistent-memory:pm032014.mp3|mp3}} * 03/18/14: (Ata/Russell) Updates on implementation {{{{internal:projects:persistent-memory:pm031814.mp3|mp3}} * 03/06/14: (Ata/Russell) HotStorage paper -- initial discussion {{{{internal:projects:persistent-memory:pm030614.mp3|mp3}} * 02/25/14: (Ata/Russell) Internal design details for CoW and memory allocator {{{{internal:projects:persistent-memory:pm022514.mp3|mp3}} * 02/11/14: (Ata/Russell) memory allocator implemented -- needs testing; write-protection for CoW has issues {{{{internal:projects:persistent-memory:pm021114.mp3|mp3}} * 02/04/14: (Ata/Russell) pmmap implemented -- needs further testing; persistence remains {{{{internal:projects:persistent-memory:pm020414.mp3|mp3}} * 01/09/14: (Leo) Break updates and Intel Presentation Discussion {{{{internal:projects:persistent-memory:pm010914.mp3|mp3}} * 01/07/14: (Ata/Russell) Break updates {{{{internal:projects:persistent-memory:pm010714.mp3|mp3}} * 12/23/13: (Ata/Russell) Brief design discussion {{{{internal:projects:persistent-memory:pm122313.mp3|mp3}} * 12/13/13: (Ata/Russell) Reviewing metadata consistency issues {{{{internal:projects:persistent-memory:pm121313.mp3|mp3}} * 12/13/13: (Leo) Status update {{{{internal:projects:persistent-memory:pm121313a.mp3|mp3}} * 12/04/13: SoftPM eval updates and detailed design discussion (Part 1) of NVM region system {{{{internal:projects:persistent-memory:pm120413.mp3|mp3}} * 11/22/13: SoftPM for NVM design discussion {{{{internal:projects:persistent-memory:pm112213.mp3|mp3}} * 11/20/13: Design alternatives for metadata indexing, SoftPM pointer fixing / restore / static mapping etc. {{{{internal:projects:persistent-memory:pm112013.mp3|mp3}} * 11/13/13: Brief updates {{{{internal:projects:persistent-memory:pm111313.mp3|mp3}} * 11/06/13: open/create initial review, softpm initial review {{{{internal:projects:persistent-memory:pm110613.mp3|mp3}} * 10/30/13: Updates {{{{internal:projects:persistent-memory:pm103013.mp3|mp3}} * 10/23/13: Updates {{{{internal:projects:persistent-memory:pm102313.mp3|mp3}} * 10/18/13: SoftPM design discussion for PMFS and Region System {{{{internal:projects:persistent-memory:pm101813.mp3|mp3}} * 10/16/13: Updates on page allocation; SoftPM overview {{{{internal:projects:persistent-memory:pm101613.mp3|mp3}} * 10/09/13: Updates on page allocation; persistence implementation {{{{internal:projects:persistent-memory:pm100913.mp3|mp3}} * 10/02/13: Custom allocation, mapping, free-space bitmap {{{{internal:projects:persistent-memory:pm100213.mp3|mp3}} * 09/25/13: New NVM ZONE created and tested, need to implement custom page allocator, SoftPM + PMFS intergration discussion {{{{internal:projects:persistent-memory:pm092513.mp3|mp3}} * 09/18/13: Updates on ZONES implementation, code inspection, Updates on PMFS install attempt {{{{internal:projects:persistent-memory:pm091813.mp3|mp3}} * 09/11/13: Updates on ZONES, plan for library implementation {{{{internal:projects:persistent-memory:pm091113.mp3|mp3}} * 09/04/13: Discussion of library design using SoftPM, use of Linux ZONES {{{{internal:projects:persistent-memory:pm090413.mp3|mp3}} * 08/28/13: Discussion continued: How to export and manage DRAM as NVRAM inside OS {{{{internal:projects:persistent-memory:pm082813.mp3|mp3}} * 08/21/13: How to export and manage DRAM as NVRAM inside OS {{{{internal:projects:persistent-memory:pm082113.mp3|mp3}} * 08/14/13: Syscall shells done; pmsync details for implementaiton {{{{internal:projects:persistent-memory:pm081413.mp3|mp3}} * 08/07/13: Brief discussion on pmsync/hw-support and syscall implementation update {{{{internal:projects:persistent-memory:pm080713.mp3|mp3}} * 07/31/13: Data structures and function design mostly stable {{{{internal:projects:persistent-memory:pm073113.mp3|mp3}} * 07/24/13: Review of updated design document and feedback {{{{internal:projects:persistent-memory:pm072413.mp3|mp3}} * 07/17/13: Detailed design review and feedback {{{{internal:projects:persistent-memory:pm071713.mp3|mp3}} * 07/10/13: Initial design discussion (partial) {{{{internal:projects:persistent-memory:pm071013.mp3|mp3}} * 07/03/13: Reviewing assumptions and direction with Ata, Muminul {{{{internal:projects:persistent-memory:pm070313.mp3|mp3}} * 04/29/13: Evaluation plan /summer plan review {{{{internal:projects:persistent-memory:pm042913.mp3|mp3}} * 04/18/13: Full paper initial discussion; evaluation of use cases 1 and 2 {{{{internal:projects:persistent-memory:pm041813.mp3|mp3}} * 03/09/13: NVM stack review, paper direction and organization, paper writing tasks {{{{internal:projects:persistent-memory:pm030913.mp3|mp3}} * 03/07/13: Input from Nisha and Swami on paper message, writing tasks {{{{internal:projects:persistent-memory:pm030713b.mp3|mp3}} * 03/07/13: Two paper messages (file vs. memory) {{{{internal:projects:persistent-memory:pm030713a.mp3|mp3}} * 02/25/13: Discussing paper abstract and outline, core messages {{{{internal:projects:persistent-memory:pm022513.mp3|mp3}} * 02/21/13: HotStorage'13 paper story-line brainstorming (solution for absolute pointers) {{{{internal:projects:persistent-memory:pm022113.mp3|mp3}} * 02/18/13: HotStorage'13 paper planning (story-line, outline) {{{{internal:projects:persistent-memory:pm021813.mp3|mp3}} * 12/05/12: Initial ideas (session 2) {{{{internal:projects:persistent-memory:pm120512.mp3|mp3}} * 12/04/12: Initial ideas (session 1) {{{{internal:projects:persistent-memory:pm120412.mp3|mp3}} ===== Intel Calls ===== * 04/25/14: Intel Monthly Call: Brainstorming synergies between Language and Library (SoftPM) based approaches {{{{internal:projects:persistent-memory:intel042514.mp3|mp3}} * 09/13/13: Intel Call {{{{internal:projects:persistent-memory:intel091313.mp3|mp3}}