linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/3 v5] e820: Fix handling of NvDIMM chips
@ 2015-03-05 10:16 Boaz Harrosh
  2015-03-05 10:20 ` [PATCH 1/3] e820: Don't let unknown DIMM type come out BUSY Boaz Harrosh
                   ` (4 more replies)
  0 siblings, 5 replies; 43+ messages in thread
From: Boaz Harrosh @ 2015-03-05 10:16 UTC (permalink / raw)
  To: Ingo Molnar, x86, linux-kernel, Roger C. Pao, Dan Williams,
	Thomas Gleixner, linux-nvdimm, H. Peter Anvin, Matthew Wilcox,
	Andy Lutomirski, Christoph Hellwig
  Cc: Ross Zwisler

Hi

[v5]
* [PATCH 2/3] Added the add_taint(TAINT_FIRMWARE_WORKAROUND,...)
   and changed the printed message as requested
* Use IORESOURCE_MEM_WARN bit from the mem specific bit range
  (not 64bit only anymore, only works with memory resources)
* Fix user visible typo reserved-unkown => reserved-unknown &&
	unkown-12 => unknown-12
* Select [PATCH 3A/3] (over [PATCH 3B/3])
* ...
* Also posting RFC of pmem as reference

[v2]
* Added warning at bring up about unknown type
* Added an extra patch to warn-print in request_resource
* changed name from NvDIMM-12 => unknown-12
  I wish we would reconsider this. So we need to suffer until some unknown
  future when ACPI decides to reuse type-12. When this happens we can fix
  it then, NO?
* Now based on 4.0-rc1

[v1]
There is a deficiency in current e820.c handling where unknown new memory-chip
types come up as a BUSY resource when some other driver (like pmem) tries to
call request_mem_region_exclusive() on that resource. Even though, actually
there is nothing using it.
>From inspecting the code and the history of e820.c it looks like a BUG.

In any way this is a problem for the new type-12 NvDIMM memory chips that
are circulating around. (It is estimated that there are already 100ds of
thousands NvDIMM chips in active use)

The patches below first fixes the above problem for any future type
memory, so external drivers can access these mem chips.

I then also add the NvDIMM type-12 memory constant so it comes up
nice in dprints and at /proc/iomem

Just as before all these chips are very much usable with the pmem
driver. This lets us remove the hack for type-12 NvDIMMs that ignores
the return code from request_mem_region_exclusive() in pmem.c.

For all the pmem people. I maintain a tree with these patches
and latest pmem code here:
	git://git.open-osd.org/pmem.git (pmem branch)
	[web-view:http://git.open-osd.org/gitweb.cgi?p=pmem.git;a=summary]

List of patches:
 [PATCH 1/3] e820: Don't let unknown DIMM type come out BUSY
	The main fix

 [PATCH 2/3] resource: Add new flag IORESOURCE_MEM_WARN
	Warn in request_resource

 [PATCH 3/3] e820: Add the unknown-12 Memory type (DDR3-NvDIMM)

Also submitted as reference is an RFC of the pmem driver that demonstrates
the use of the add_resource API for the NvDIMM chips. This can be seen in
pmem-patch-1. Also please see pmem-patch-8 an out-of-tree patch that
ignores the add_resource failure so it can work with NvDIMMs with old
kernels.

Thanks
Boaz


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

end of thread, other threads:[~2015-03-26 21:32 UTC | newest]

Thread overview: 43+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-03-05 10:16 [PATCH 0/3 v5] e820: Fix handling of NvDIMM chips Boaz Harrosh
2015-03-05 10:20 ` [PATCH 1/3] e820: Don't let unknown DIMM type come out BUSY Boaz Harrosh
2015-03-05 20:41   ` Dan Williams
2015-03-09 10:54     ` Boaz Harrosh
2015-03-05 10:21 ` [PATCH 2/3] resource: Add new flag IORESOURCE_MEM_WARN Boaz Harrosh
2015-03-05 10:24 ` [PATCH 3/3] e820: Add the unknown-12 Memory type (DDR3-NvDIMM) Boaz Harrosh
2015-03-05 20:56   ` Dan Williams
2015-03-05 23:09     ` Andy Lutomirski
2015-03-09 12:10       ` Boaz Harrosh
2015-03-10  5:11         ` joeyli
2015-03-10  8:56           ` Boaz Harrosh
2015-03-10 13:19           ` Andy Lutomirski
2015-03-09 11:19     ` Boaz Harrosh
2015-03-09 14:44       ` Dan Williams
2015-03-09 15:14         ` Andy Lutomirski
2015-03-09 15:17           ` Dan Williams
2015-03-10  8:47             ` Boaz Harrosh
2015-03-05 10:32 ` [RFC 0/8] pmem: Submission of the Persistent memory block device Boaz Harrosh
2015-03-05 11:55   ` [PATCH 1/8] pmem: Initial version of persistent memory driver Boaz Harrosh
2015-03-05 20:35     ` Paul Bolle
2015-03-05 23:03     ` Andy Lutomirski
2015-03-09 12:20       ` Boaz Harrosh
2015-03-18 18:06         ` Andy Lutomirski
2015-03-26  4:00           ` Elliott, Robert (Server Storage)
2015-03-26  7:51             ` Boaz Harrosh
2015-03-26 21:31             ` Dave Chinner
2015-03-18 17:43     ` Ross Zwisler
2015-03-19  9:24       ` Boaz Harrosh
2015-03-20  0:11         ` Dan Williams
2015-03-05 11:55   ` [PATCH 2/8] pmem: KISS, remove register_blkdev Boaz Harrosh
2015-03-05 11:56   ` [PATCH 3/8] pmem: Add support for rw_page() Boaz Harrosh
2015-03-05 11:57   ` [PATCH 4/8] pmem: Add support for direct_access() Boaz Harrosh
2015-03-05 11:58   ` [PATCH 5/8] mm: Let sparse_{add,remove}_one_section receive a node_id Boaz Harrosh
2015-03-06 18:43     ` Ross Zwisler
2015-03-05 11:59   ` [PATCH 6/8] mm: New add_persistent_memory/remove_persistent_memory Boaz Harrosh
2015-03-05 11:59   ` [PATCH 7/8] pmem: Add support for page structs Boaz Harrosh
2015-03-23 20:59     ` Dan Williams
2015-03-05 12:01   ` [PATCH 8/8] OUT-OF-TREE: pmem: Allow request_mem to fail (BLK_DEV_PMEM_IGNORE_REQUEST_MEM_RET) Boaz Harrosh
2015-03-06 18:37   ` [RFC 0/8] pmem: Submission of the Persistent memory block device Ross Zwisler
2015-03-07  1:39     ` Christoph Hellwig
2015-03-09 12:41     ` Boaz Harrosh
2015-03-05 22:48 ` [PATCH 0/3 v5] e820: Fix handling of NvDIMM chips H. Peter Anvin
2015-03-05 23:06   ` Andy Lutomirski

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).