<feed xmlns='http://www.w3.org/2005/Atom'>
<title>src/sys/dev/nvdimm, branch release/12.4.0</title>
<subtitle>FreeBSD source tree</subtitle>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/'/>
<entry>
<title>nvdimm(4): Export NVDIMM health flags via sysctl</title>
<updated>2021-02-21T01:47:34+00:00</updated>
<author>
<name>Ravi Pokala</name>
<email>rpokala@FreeBSD.org</email>
</author>
<published>2021-02-16T08:03:32+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=49318a0aac641813d971806667b734feefefbb03'/>
<id>49318a0aac641813d971806667b734feefefbb03</id>
<content type='text'>
The ACPI NFIT specification defines a set of "NVDIMM State Flags". These
flags are already reported by `acpidump -t', but this change makes them
available on a per-device basis, in a format that is more easily parsed.

To simplify this, introduce acpi_nfit_get_memory_maps_by_dimm(), which
locates the (ACPI_NFIT_MEMORY_MAP)s associated with a given
(nfit_handle_t).

Reviewed by:	mav, cem
Tested by:	mav, rpokala (version for stable/12)
MFC after:	3 days
Sponsored by:	Panasas
Differential Revision:	https://reviews.freebsd.org/D28700

(cherry picked from commit bdde49b7c7232c6936525f84ffb90856a7cd8e74)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The ACPI NFIT specification defines a set of "NVDIMM State Flags". These
flags are already reported by `acpidump -t', but this change makes them
available on a per-device basis, in a format that is more easily parsed.

To simplify this, introduce acpi_nfit_get_memory_maps_by_dimm(), which
locates the (ACPI_NFIT_MEMORY_MAP)s associated with a given
(nfit_handle_t).

Reviewed by:	mav, cem
Tested by:	mav, rpokala (version for stable/12)
MFC after:	3 days
Sponsored by:	Panasas
Differential Revision:	https://reviews.freebsd.org/D28700

(cherry picked from commit bdde49b7c7232c6936525f84ffb90856a7cd8e74)
</pre>
</div>
</content>
</entry>
<entry>
<title>nvdimm: Fix error path mis-free</title>
<updated>2021-02-11T05:03:07+00:00</updated>
<author>
<name>Conrad Meyer</name>
<email>cem@FreeBSD.org</email>
</author>
<published>2019-10-02T19:13:35+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=40c1f835412d3e00901a146db6c317d654e65980'/>
<id>40c1f835412d3e00901a146db6c317d654e65980</id>
<content type='text'>
(diff applied manually due to refactoring)

Regression introduced in r343629 when malloc result was renamed from spa to
spa_mapping and the 'spa' name was instead used to iterate a table, but the
free() target was not updated.

Reviewed by:	kib, scottph
Sponsored by:	Dell EMC Isilon
Differential Revision:	https://reviews.freebsd.org/D21871

(cherry picked from commit 31f1c8fc84c850d73e74781126e12efceb50032b)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
(diff applied manually due to refactoring)

Regression introduced in r343629 when malloc result was renamed from spa to
spa_mapping and the 'spa' name was instead used to iterate a table, but the
free() target was not updated.

Reviewed by:	kib, scottph
Sponsored by:	Dell EMC Isilon
Differential Revision:	https://reviews.freebsd.org/D21871

(cherry picked from commit 31f1c8fc84c850d73e74781126e12efceb50032b)
</pre>
</div>
</content>
</entry>
<entry>
<title>MFC r361011: kernel: provide panicky version of __unreachable</title>
<updated>2020-05-21T02:08:34+00:00</updated>
<author>
<name>Kyle Evans</name>
<email>kevans@FreeBSD.org</email>
</author>
<published>2020-05-21T02:08:34+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=f359167141f2ab817ca5adaf027cfcb37a347ddf'/>
<id>f359167141f2ab817ca5adaf027cfcb37a347ddf</id>
<content type='text'>
__builtin_unreachable doesn't raise any compile-time warnings/errors on its
own, so problems with its usage can't be easily detected. While it would be
nice for this situation to change and compilers to at least add a warning
for trivial cases where local state means the instruction can't be reached,
this isn't the case at the moment and likely will not happen.

This commit adds an __assert_unreachable, whose intent is incredibly clear:
it asserts that this instruction is unreachable. On INVARIANTS builds, it's
a panic(), and on non-INVARIANTS it expands to  __unreachable().

Existing users of __unreachable() are converted to __assert_unreachable,
to improve debuggability if this assumption is violated.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
__builtin_unreachable doesn't raise any compile-time warnings/errors on its
own, so problems with its usage can't be easily detected. While it would be
nice for this situation to change and compilers to at least add a warning
for trivial cases where local state means the instruction can't be reached,
this isn't the case at the moment and likely will not happen.

This commit adds an __assert_unreachable, whose intent is incredibly clear:
it asserts that this instruction is unreachable. On INVARIANTS builds, it's
a panic(), and on non-INVARIANTS it expands to  __unreachable().

Existing users of __unreachable() are converted to __assert_unreachable,
to improve debuggability if this assumption is violated.
</pre>
</div>
</content>
</entry>
<entry>
<title>MFC 348757,351225: acpi and nvdimm location_str updates</title>
<updated>2019-09-09T20:49:37+00:00</updated>
<author>
<name>D Scott Phillips</name>
<email>scottph@FreeBSD.org</email>
</author>
<published>2019-09-09T20:49:37+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=3293a63ee732f1cf1ac21739b8538eef4da6b218'/>
<id>3293a63ee732f1cf1ac21739b8538eef4da6b218</id>
<content type='text'>
348757:
nvdimm: Provide nvdimm location information

Provide the acpi handle path as the location string for the nvdimm
children of the nvdimm_root device.

351225:
Don't set the string "unknown" as a device's location_str

Return an empty string when the location is unknown instead of the
string "unknown". This ensures that all location entries are of
the form key=val.

Approved by:	scottl (mentor)
Sponsored by:	Intel Corporation
Differential Revision:	https://reviews.freebsd.org/D20644
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
348757:
nvdimm: Provide nvdimm location information

Provide the acpi handle path as the location string for the nvdimm
children of the nvdimm_root device.

351225:
Don't set the string "unknown" as a device's location_str

Return an empty string when the location is unknown instead of the
string "unknown". This ensures that all location entries are of
the form key=val.

Approved by:	scottl (mentor)
Sponsored by:	Intel Corporation
Differential Revision:	https://reviews.freebsd.org/D20644
</pre>
</div>
</content>
</entry>
<entry>
<title>MFC r344474-r344476</title>
<updated>2019-03-01T02:16:37+00:00</updated>
<author>
<name>Ben Widawsky</name>
<email>bwidawsk@FreeBSD.org</email>
</author>
<published>2019-03-01T02:16:37+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=185026580495569e1e283929ffdf2e62213d59b7'/>
<id>185026580495569e1e283929ffdf2e62213d59b7</id>
<content type='text'>
r344474:
nvdimm: split spa dev into a separate entity

Separate code for exposing a device backed by a system physical
address range away from the NVDIMM spa code. This will allow a
future patch to add support for NVDIMM namespaces while using the
same device code.

Submitted by:	D Scott Phillips &lt;d.scott.phillips@intel.com&gt;
Reviewed by:	bwidawsk
Sponsored by:	Intel Corporation
Differential Revision:	https://reviews.freebsd.org/D18736

r344475:
nvdimm: Read NVDIMM namespace labels

When attaching to NVDIMM devices, read and verify the namespace
labels from the special namespace label storage area. A later
change will expose NVDIMM namespaces derived from this label data.

Submitted by:	D Scott Phillips &lt;d.scott.phillips@intel.com&gt;
Discussed with:	kib
Sponsored by:	Intel Corporation
Differential Revision:	https://reviews.freebsd.org/D18735

r344476:
nvdimm: Simple namespace support

Add support for simple NVDIMM v1.2 namespaces from the UEFI
version 2.7 specification. The combination of NVDIMM regions and
labels can lead to a wide variety of namespace layouts. Here we
support a simple subset of namespaces where each NVDIMM SPA range
is composed of a single region per member dimm.

Submitted by:	D Scott Phillips &lt;d.scott.phillips@intel.com&gt;
Discussed with:	kib
Sponsored by:	Intel Corporation
Differential Revision:	https://reviews.freebsd.org/D18736
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
r344474:
nvdimm: split spa dev into a separate entity

Separate code for exposing a device backed by a system physical
address range away from the NVDIMM spa code. This will allow a
future patch to add support for NVDIMM namespaces while using the
same device code.

Submitted by:	D Scott Phillips &lt;d.scott.phillips@intel.com&gt;
Reviewed by:	bwidawsk
Sponsored by:	Intel Corporation
Differential Revision:	https://reviews.freebsd.org/D18736

r344475:
nvdimm: Read NVDIMM namespace labels

When attaching to NVDIMM devices, read and verify the namespace
labels from the special namespace label storage area. A later
change will expose NVDIMM namespaces derived from this label data.

Submitted by:	D Scott Phillips &lt;d.scott.phillips@intel.com&gt;
Discussed with:	kib
Sponsored by:	Intel Corporation
Differential Revision:	https://reviews.freebsd.org/D18735

r344476:
nvdimm: Simple namespace support

Add support for simple NVDIMM v1.2 namespaces from the UEFI
version 2.7 specification. The combination of NVDIMM regions and
labels can lead to a wide variety of namespace layouts. Here we
support a simple subset of namespaces where each NVDIMM SPA range
is composed of a single region per member dimm.

Submitted by:	D Scott Phillips &lt;d.scott.phillips@intel.com&gt;
Discussed with:	kib
Sponsored by:	Intel Corporation
Differential Revision:	https://reviews.freebsd.org/D18736
</pre>
</div>
</content>
</entry>
<entry>
<title>MFC r343629:</title>
<updated>2019-02-07T01:51:52+00:00</updated>
<author>
<name>Konstantin Belousov</name>
<email>kib@FreeBSD.org</email>
</author>
<published>2019-02-07T01:51:52+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=ec6cc95dbbb3fc5296ebfb9b87c6a5a26810a324'/>
<id>ec6cc95dbbb3fc5296ebfb9b87c6a5a26810a324</id>
<content type='text'>
nvdimm: only enumerate present nvdimm devices
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
nvdimm: only enumerate present nvdimm devices
</pre>
</div>
</content>
</entry>
<entry>
<title>MFC r343628:</title>
<updated>2019-02-07T01:49:59+00:00</updated>
<author>
<name>Konstantin Belousov</name>
<email>kib@FreeBSD.org</email>
</author>
<published>2019-02-07T01:49:59+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=8d7c380818594591d9f95c27087a60b3c5221aab'/>
<id>8d7c380818594591d9f95c27087a60b3c5221aab</id>
<content type='text'>
nvdimm: enumerate NVDIMM SPA ranges from the root device
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
nvdimm: enumerate NVDIMM SPA ranges from the root device
</pre>
</div>
</content>
</entry>
<entry>
<title>MFC r343144:</title>
<updated>2019-01-25T11:12:22+00:00</updated>
<author>
<name>Konstantin Belousov</name>
<email>kib@FreeBSD.org</email>
</author>
<published>2019-01-25T11:12:22+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=8cbb705db8b677a0061d90fd8ebc81ecbd9456c9'/>
<id>8cbb705db8b677a0061d90fd8ebc81ecbd9456c9</id>
<content type='text'>
nvdimm: initialize SPA uuids statically.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
nvdimm: initialize SPA uuids statically.
</pre>
</div>
</content>
</entry>
<entry>
<title>MFC r343143:</title>
<updated>2019-01-25T11:11:28+00:00</updated>
<author>
<name>Konstantin Belousov</name>
<email>kib@FreeBSD.org</email>
</author>
<published>2019-01-25T11:11:28+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=445c27e0fadc78cfbcf325c024cdc2d31427cbac'/>
<id>445c27e0fadc78cfbcf325c024cdc2d31427cbac</id>
<content type='text'>
nvdimm: add a driver for the NVDIMM root device
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
nvdimm: add a driver for the NVDIMM root device
</pre>
</div>
</content>
</entry>
<entry>
<title>MFC r339461:</title>
<updated>2019-01-25T11:05:32+00:00</updated>
<author>
<name>Konstantin Belousov</name>
<email>kib@FreeBSD.org</email>
</author>
<published>2019-01-25T11:05:32+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=429a47b06c1b6066d3c09d096bc12a6cad75952d'/>
<id>429a47b06c1b6066d3c09d096bc12a6cad75952d</id>
<content type='text'>
nvdimm(4): Fix GCC 6.4.0 build
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
nvdimm(4): Fix GCC 6.4.0 build
</pre>
</div>
</content>
</entry>
</feed>
