linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/4] Allow persistent memory to be used like normal RAM
@ 2019-01-16 18:18 Dave Hansen
  2019-01-16 18:19 ` [PATCH 1/4] mm/resource: return real error codes from walk failures Dave Hansen
                   ` (4 more replies)
  0 siblings, 5 replies; 35+ messages in thread
From: Dave Hansen @ 2019-01-16 18:18 UTC (permalink / raw)
  To: dave
  Cc: Dave Hansen, dan.j.williams, dave.jiang, zwisler, vishal.l.verma,
	thomas.lendacky, akpm, mhocko, linux-nvdimm, linux-kernel,
	linux-mm, ying.huang, fengguang.wu, bp, bhelgaas, baiyaowei,
	tiwai

I would like to get this queued up to get merged.  Since most of the
churn is in the nvdimm code, and it also depends on some refactoring
that only exists in the nvdimm tree, it seems like putting it in *via*
the nvdimm tree is the best path.

But, this series makes non-trivial changes to the "resource" code and
memory hotplug.  I'd really like to get some acks from folks on the
first three patches which affect those areas.

Borislav and Bjorn, you seem to be the most active in the resource code.

Michal, I'd really appreciate at look at all of this from a mem hotplug
perspective.

Note: these are based on commit d2f33c19644 in:

	git://git.kernel.org/pub/scm/linux/kernel/git/djbw/nvdimm.git libnvdimm-pending

Changes since v1:
 * Now based on git://git.kernel.org/pub/scm/linux/kernel/git/djbw/nvdimm.git
 * Use binding/unbinding from "dax bus" code
 * Move over to a "dax bus" driver from being an nvdimm driver

--

Persistent memory is cool.  But, currently, you have to rewrite
your applications to use it.  Wouldn't it be cool if you could
just have it show up in your system like normal RAM and get to
it like a slow blob of memory?  Well... have I got the patch
series for you!

This series adds a new "driver" to which pmem devices can be
attached.  Once attached, the memory "owned" by the device is
hot-added to the kernel and managed like any other memory.  On
systems with an HMAT (a new ACPI table), each socket (roughly)
will have a separate NUMA node for its persistent memory so
this newly-added memory can be selected by its unique NUMA
node.

Here's how I set up a system to test this thing:

1. Boot qemu with lots of memory: "-m 4096", for instance
2. Reserve 512MB of physical memory.  Reserving a spot a 2GB
   physical seems to work: memmap=512M!0x0000000080000000
   This will end up looking like a pmem device at boot.
3. When booted, convert fsdax device to "device dax":
	ndctl create-namespace -fe namespace0.0 -m dax
4. See patch 4 for instructions on binding the kmem driver
   to a device.
5. Now, online the new memory sections.  Perhaps:

grep ^MemTotal /proc/meminfo
for f in `grep -vl online /sys/devices/system/memory/*/state`; do
	echo $f: `cat $f`
	echo online_movable > $f
	grep ^MemTotal /proc/meminfo
done

Cc: Dan Williams <dan.j.williams@intel.com>
Cc: Dave Jiang <dave.jiang@intel.com>
Cc: Ross Zwisler <zwisler@kernel.org>
Cc: Vishal Verma <vishal.l.verma@intel.com>
Cc: Tom Lendacky <thomas.lendacky@amd.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Michal Hocko <mhocko@suse.com>
Cc: linux-nvdimm@lists.01.org
Cc: linux-kernel@vger.kernel.org
Cc: linux-mm@kvack.org
Cc: Huang Ying <ying.huang@intel.com>
Cc: Fengguang Wu <fengguang.wu@intel.com>
Cc: Borislav Petkov <bp@suse.de>
Cc: Bjorn Helgaas <bhelgaas@google.com>
Cc: Yaowei Bai <baiyaowei@cmss.chinamobile.com>
Cc: Takashi Iwai <tiwai@suse.de>

^ permalink raw reply	[flat|nested] 35+ messages in thread

end of thread, other threads:[~2019-01-23 20:15 UTC | newest]

Thread overview: 35+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-01-16 18:18 [PATCH 0/4] Allow persistent memory to be used like normal RAM Dave Hansen
2019-01-16 18:19 ` [PATCH 1/4] mm/resource: return real error codes from walk failures Dave Hansen
2019-01-16 20:38   ` Bjorn Helgaas
2019-01-16 18:19 ` [PATCH 2/4] mm/memory-hotplug: allow memory resources to be children Dave Hansen
2019-01-16 19:16   ` Jerome Glisse
2019-01-16 23:01     ` Dave Hansen
2019-01-16 23:38       ` Jerome Glisse
2019-01-23 20:03         ` Dave Hansen
2019-01-23 20:15           ` Jerome Glisse
2019-01-18 19:58     ` Dave Hansen
2019-01-18 20:26       ` Jerome Glisse
2019-01-23 17:05   ` Michal Hocko
2019-01-16 18:19 ` [PATCH 3/4] dax/kmem: let walk_system_ram_range() search child resources Dave Hansen
2019-01-16 18:19 ` [PATCH 4/4] dax: "Hotplug" persistent memory for use like normal RAM Dave Hansen
2019-01-16 21:16   ` Bjorn Helgaas
2019-01-16 21:40     ` Dave Hansen
2019-01-16 21:44       ` Bjorn Helgaas
2019-01-16 22:06       ` Dan Williams
2019-01-16 21:53     ` Dave Hansen
2019-01-16 21:59       ` Bjorn Helgaas
2019-01-16 21:31   ` Dan Williams
2019-01-17  5:21   ` Du, Fan
2019-01-17 16:56     ` Dan Williams
2019-01-17  8:19   ` Yanmin Zhang
2019-01-17 15:17     ` Dave Hansen
2019-01-18  7:47       ` Yanmin Zhang
2019-01-18 15:20         ` Dave Hansen
2019-01-17 16:29 ` [PATCH 0/4] Allow persistent memory to be used " Jeff Moyer
2019-01-17 16:47   ` Keith Busch
2019-01-17 17:20     ` Jeff Moyer
2019-01-17 19:34       ` Keith Busch
2019-01-17 21:57         ` Jeff Moyer
2019-01-18 11:48       ` Fengguang Wu
2019-01-17 16:50   ` Dan Williams
2019-01-17 22:43   ` Dave Hansen

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).