History log of /freebsd-current/sys/dev/nvdimm/nvdimm_spa.c
Revision Date Author Comments
# 685dc743 16-Aug-2023 Warner Losh <imp@FreeBSD.org>

sys: Remove $FreeBSD$: one-line .c pattern

Remove /^[\s*]*__FBSDID\("\$FreeBSD\$"\);?\s*\n/


# 024932aa 29-Dec-2019 Alexander Motin <mav@FreeBSD.org>

Use atomic for start_count in devstat_start_transaction().

Combined with earlier nstart/nend removal it allows to remove several locks
from request path of GEOM and few other places. It would be cool if we had
more SMP-friendly statistics, but this helps too.

Sponsored by: iXsystems, Inc.


# cf8b104f 12-Nov-2019 D Scott Phillips <scottph@FreeBSD.org>

nvdimm(4): Only expose namespaces for accessible data SPAs

Apply the same user accessible filter to namespaces as is applied
to full-SPA devices. Also, explicitly filter out control region
SPAs which don't expose the nvdimm data area.

Reviewed by: cem
Approved by: scottl (mentor)
MFC after: 1 week
Sponsored by: Intel Corporation
Differential Revision: https://reviews.freebsd.org/D21987


# 43e4b6ca 18-Oct-2019 Conrad Meyer <cem@FreeBSD.org>

nvdimm(4): Persist unit numbers in cdev

They're formatted into the device name like unit numbers, anyway; store the
number in mda_unit => si_drv0 like dev2unit() expects.

No functional change intended.

Sponsored by: Dell EMC Isilon


# 51501370 10-Oct-2019 Conrad Meyer <cem@FreeBSD.org>

nvdimm(4): Calculate and save memattr once; it never changes

Refactor nvdimm_spa_memattr() routine and callers to just save the value at
initialization and use the value directly. The reference value from NFIT,
MemoryMapping, is read only once, so the associated memattr could never
change.

No functional change.

Sponsored by: Dell EMC Isilon


# cbd974b4 04-Oct-2019 Conrad Meyer <cem@FreeBSD.org>

nvdimm(4): Add nvdimm_e820 pseudo-bus

nvdimm_e820 is a newbus pseudo driver that looks for "legacy" e820 PRAM
spans and creates ordinary-looking SPA devfs nodes for them
(/dev/nvdimm_spaN).

As these legacy regions lack real NFIT SPA regions and namespace
definitions, they must be administratively sliced up externally using
device.hints. This is similar in purpose to the Linux memmap= mechanism.

It is assumed that systems with working NFIT tables will not have any use
for this driver, and that that will be the prevailing style going forward,
so if there are no explicit hints provided, this driver does not
automatically create any devices.

Reviewed by: kib (previous version)
Sponsored by: Dell EMC Isilon
Differential Revision: https://reviews.freebsd.org/D21885


# 8d2a55ca 05-May-2019 Tycho Nightingale <tychon@FreeBSD.org>

zero inputs to vm_page_initfake() for predictable results

Reviewed by: kib
Submitted by: Anton Rang <rang at acm.org>
Sponsored by: Dell EMC Isilon
Differential Revision: https://reviews.freebsd.org/D20162


# 228e377d 22-Feb-2019 Ben Widawsky <bwidawsk@FreeBSD.org>

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 <d.scott.phillips@intel.com>
Reviewed by: bwidawsk
MFC after: 1 week
Sponsored by: Intel Corporation
Differential Revision: https://reviews.freebsd.org/D18736


# 7dcbca8d 31-Jan-2019 Konstantin Belousov <kib@FreeBSD.org>

nvdimm: enumerate NVDIMM SPA ranges from the root device

Move the enumeration of NVDIMM SPA ranges from the spa GEOM class
initializer into the NVDIMM root device. This will be necessary for a
later change where NVDIMM namespaces require NVDIMM device enumeration
to be reliably ordered before SPA enumeration.

Submitted by: D Scott Phillips <d.scott.phillips@intel.com>
Sponsored by: Intel Corporation
MFC after: 1 week
Differential revision: https://reviews.freebsd.org/D18734


# 6465f315 18-Jan-2019 Konstantin Belousov <kib@FreeBSD.org>

nvdimm: initialize SPA uuids statically.

The SPA ids are published numbers, so it's safe (if not a bit
annoying) to copy them into a source file.

Submitted by: D Scott Phillips <d.scott.phillips@intel.com>
Sponsored by: Intel Corporation
MFC after: 1 week
Differential revision: https://reviews.freebsd.org/D18733


# cbbdd283 23-Dec-2018 Konstantin Belousov <kib@FreeBSD.org>

nvdimm SPA geom: Update bio fields needed for devstat_end_transaction_bio().

Reported by: bde
MFC after: 1 week
Sponsored by: The FreeBSD Foundation


# 90a38351 23-Oct-2018 Konstantin Belousov <kib@FreeBSD.org>

Initializer error variable in nvdimm_spa_uio().

Several code paths might result in returning uninitialized value.

Reported by: coverity through cem
CID: 1396315
Sponsored by: The FreeBSD Foundation


# 6db7f8e5 16-Oct-2018 Konstantin Belousov <kib@FreeBSD.org>

Add initial driver for ACPI NFIT-enumerated NVDIMMs.

Driver enumerates NVDIMMs. Besides, for each found System Physical
Address (SPA) range, spaN geom provider is created, which allows
formatting and mounting the region as the normal volume. Also,
/dev/nvdimm_spaN node is created, which can be read/written/mapped by
userspace, the mapping is zero-copy.

No support for block access methods implemented, labels are not
parsed. No management interfaces are provided.

Tested by: Intel, NetApp
Sponsored by: The FreeBSD Foundation
Approved by: re (gjb)
MFC after: 2 weeks