Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
docs: update hw/nvme documentation for TP4146
Update documentation for TP4146 ("Flexible Data Placement") emulation.

Reviewed-by: Jesper Wendel Devantier <j.devantier@samsung.com>
Signed-off-by: Klaus Jensen <k.jensen@samsung.com>
  • Loading branch information
birkelund committed Jun 28, 2023
1 parent ce80177 commit e409c90
Showing 1 changed file with 36 additions and 1 deletion.
37 changes: 36 additions & 1 deletion docs/system/devices/nvme.rst
Expand Up @@ -212,6 +212,41 @@ The namespace may be configured with additional parameters
the minimum memory page size (CAP.MPSMIN). The default value (``0``)
has this property inherit the ``mdts`` value.

Flexible Data Placement
-----------------------

The device may be configured to support TP4146 ("Flexible Data Placement") by
configuring it (``fdp=on``) on the subsystem::

-device nvme-subsys,id=nvme-subsys-0,nqn=subsys0,fdp=on,fdp.nruh=16

The subsystem emulates a single Endurance Group, on which Flexible Data
Placement will be supported. Also note that the device emulation deviates
slightly from the specification, by always enabling the "FDP Mode" feature on
the controller if the subsystems is configured for Flexible Data Placement.

Enabling Flexible Data Placement on the subsyste enables the following
parameters:

``fdp.nrg`` (default: ``1``)
Set the number of Reclaim Groups.

``fdp.nruh`` (default: ``0``)
Set the number of Reclaim Unit Handles. This is a mandatory paramater and
must be non-zero.

``fdp.runs`` (default: ``96M``)
Set the Reclaim Unit Nominal Size. Defaults to 96 MiB.

Namespaces within this subsystem may requests Reclaim Unit Handles::

-device nvme-ns,drive=nvm-1,fdp.ruhs=RUHLIST

The ``RUHLIST`` is a semicolon separated list (i.e. ``0;1;2;3``) and may
include ranges (i.e. ``0;8-15``). If no reclaim unit handle list is specified,
the controller will assign the controller-specified reclaim unit handle to
placement handle identifier 0.

Metadata
--------

Expand Down Expand Up @@ -320,4 +355,4 @@ controller are:
.. code-block:: console
echo 0000:01:00.1 > /sys/bus/pci/drivers/nvme/bind
echo 0000:01:00.1 > /sys/bus/pci/drivers/nvme/bind

0 comments on commit e409c90

Please sign in to comment.