<feed xmlns='http://www.w3.org/2005/Atom'>
<title>bwlp/qemu.git/include/block/nvme.h, branch spice_video_codecs</title>
<subtitle>Experimental fork of QEMU with video encoding patches</subtitle>
<id>https://git.openslx.org/bwlp/qemu.git/atom/include/block/nvme.h?h=spice_video_codecs</id>
<link rel='self' href='https://git.openslx.org/bwlp/qemu.git/atom/include/block/nvme.h?h=spice_video_codecs'/>
<link rel='alternate' type='text/html' href='https://git.openslx.org/bwlp/qemu.git/'/>
<updated>2022-07-15T08:40:33+00:00</updated>
<entry>
<title>nvme: Fix misleading macro when mixed with ternary operator</title>
<updated>2022-07-15T08:40:33+00:00</updated>
<author>
<name>Darren Kenny</name>
</author>
<published>2022-07-07T13:36:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/bwlp/qemu.git/commit/?id=43f76aac49c439ea79c125d1befd9d5d7057dbb4'/>
<id>urn:sha1:43f76aac49c439ea79c125d1befd9d5d7057dbb4</id>
<content type='text'>
Using the Parfait source code analyser and issue was found in
hw/nvme/ctrl.c where the macros NVME_CAP_SET_CMBS and NVME_CAP_SET_PMRS
are called with a ternary operatore in the second parameter, resulting
in a potentially unexpected expansion of the form:

  x ? a: b &amp; FLAG_TEST

which will result in a different result to:

  (x ? a: b) &amp; FLAG_TEST.

The macros should wrap each of the parameters in brackets to ensure the
correct result on expansion.

Signed-off-by: Darren Kenny &lt;darren.kenny@oracle.com&gt;
Reviewed-by: Stefan Hajnoczi &lt;stefanha@redhat.com&gt;
Reviewed-by: Klaus Jensen &lt;k.jensen@samsung.com&gt;
Signed-off-by: Klaus Jensen &lt;k.jensen@samsung.com&gt;
</content>
</entry>
<entry>
<title>hw/nvme: Implement shadow doorbell buffer support</title>
<updated>2022-07-15T08:40:33+00:00</updated>
<author>
<name>Jinhao Fan</name>
</author>
<published>2022-06-16T12:34:07+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/bwlp/qemu.git/commit/?id=3f7fe8de3d49fdd2c1461fcd22fe73d84d2a9f8a'/>
<id>urn:sha1:3f7fe8de3d49fdd2c1461fcd22fe73d84d2a9f8a</id>
<content type='text'>
Implement Doorbel Buffer Config command (Section 5.7 in NVMe Spec 1.3)
and Shadow Doorbel buffer &amp; EventIdx buffer handling logic (Section 7.13
in NVMe Spec 1.3). For queues created before the Doorbell Buffer Config
command, the nvme_dbbuf_config function tries to associate each existing
SQ and CQ with its Shadow Doorbel buffer and EventIdx buffer address.
Queues created after the Doorbell Buffer Config command will have the
doorbell buffers associated with them when they are initialized.

In nvme_process_sq and nvme_post_cqe, proactively check for Shadow
Doorbell buffer changes instead of wait for doorbell register changes.
This reduces the number of MMIOs.

In nvme_process_db(), update the shadow doorbell buffer value with
the doorbell register value if it is the admin queue. This is a hack
since hosts like Linux NVMe driver and SPDK do not use shadow
doorbell buffer for the admin queue. Copying the doorbell register
value to the shadow doorbell buffer allows us to support these hosts
as well as spec-compliant hosts that use shadow doorbell buffer for
the admin queue.

Signed-off-by: Jinhao Fan &lt;fanjinhao21s@ict.ac.cn&gt;
Reviewed-by: Klaus Jensen &lt;k.jensen@samsung.com&gt;
Reviewed-by: Keith Busch &lt;kbusch@kernel.org&gt;
[k.jensen: rebased]
Signed-off-by: Klaus Jensen &lt;k.jensen@samsung.com&gt;
</content>
</entry>
<entry>
<title>hw/nvme: Add support for the Virtualization Management command</title>
<updated>2022-06-23T21:24:29+00:00</updated>
<author>
<name>Łukasz Gieryk</name>
</author>
<published>2022-05-09T14:16:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/bwlp/qemu.git/commit/?id=11871f53ef8ef8ff80ded133677230caf6261ac9'/>
<id>urn:sha1:11871f53ef8ef8ff80ded133677230caf6261ac9</id>
<content type='text'>
With the new command one can:
 - assign flexible resources (queues, interrupts) to primary and
   secondary controllers,
 - toggle the online/offline state of given controller.

Signed-off-by: Łukasz Gieryk &lt;lukasz.gieryk@linux.intel.com&gt;
Acked-by: Michael S. Tsirkin &lt;mst@redhat.com&gt;
Reviewed-by: Klaus Jensen &lt;k.jensen@samsung.com&gt;
Signed-off-by: Klaus Jensen &lt;k.jensen@samsung.com&gt;
</content>
</entry>
<entry>
<title>hw/nvme: Initialize capability structures for primary/secondary controllers</title>
<updated>2022-06-23T21:24:29+00:00</updated>
<author>
<name>Łukasz Gieryk</name>
</author>
<published>2022-05-09T14:16:16+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/bwlp/qemu.git/commit/?id=746d42b13368e18856dccf16bd39e04d02feec09'/>
<id>urn:sha1:746d42b13368e18856dccf16bd39e04d02feec09</id>
<content type='text'>
With four new properties:
 - sriov_v{i,q}_flexible,
 - sriov_max_v{i,q}_per_vf,
one can configure the number of available flexible resources, as well as
the limits. The primary and secondary controller capability structures
are initialized accordingly.

Since the number of available queues (interrupts) now varies between
VF/PF, BAR size calculation is also adjusted.

Signed-off-by: Łukasz Gieryk &lt;lukasz.gieryk@linux.intel.com&gt;
Acked-by: Michael S. Tsirkin &lt;mst@redhat.com&gt;
Reviewed-by: Klaus Jensen &lt;k.jensen@samsung.com&gt;
Signed-off-by: Klaus Jensen &lt;k.jensen@samsung.com&gt;
</content>
</entry>
<entry>
<title>hw/nvme: Add support for Secondary Controller List</title>
<updated>2022-06-23T21:24:28+00:00</updated>
<author>
<name>Lukasz Maniak</name>
</author>
<published>2022-05-09T14:16:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/bwlp/qemu.git/commit/?id=99f48ae7aea70fb080f04bf1cc846cd6450bd11a'/>
<id>urn:sha1:99f48ae7aea70fb080f04bf1cc846cd6450bd11a</id>
<content type='text'>
Introduce handling for Secondary Controller List (Identify command with
CNS value of 15h).

Secondary controller ids are unique in the subsystem, hence they are
reserved by it upon initialization of the primary controller to the
number of sriov_max_vfs.

ID reservation requires the addition of an intermediate controller slot
state, so the reserved controller has the address 0xFFFF.
A secondary controller is in the reserved state when it has no virtual
function assigned, but its primary controller is realized.
Secondary controller reservations are released to NULL when its primary
controller is unregistered.

Signed-off-by: Lukasz Maniak &lt;lukasz.maniak@linux.intel.com&gt;
Acked-by: Michael S. Tsirkin &lt;mst@redhat.com&gt;
Reviewed-by: Klaus Jensen &lt;k.jensen@samsung.com&gt;
Signed-off-by: Klaus Jensen &lt;k.jensen@samsung.com&gt;
</content>
</entry>
<entry>
<title>hw/nvme: Add support for Primary Controller Capabilities</title>
<updated>2022-06-23T21:24:28+00:00</updated>
<author>
<name>Lukasz Maniak</name>
</author>
<published>2022-05-09T14:16:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/bwlp/qemu.git/commit/?id=5e6f963f018f2ebb16c0f9586f17811163d62b4a'/>
<id>urn:sha1:5e6f963f018f2ebb16c0f9586f17811163d62b4a</id>
<content type='text'>
Implementation of Primary Controller Capabilities data
structure (Identify command with CNS value of 14h).

Currently, the command returns only ID of a primary controller.
Handling of remaining fields are added in subsequent patches
implementing virtualization enhancements.

Signed-off-by: Lukasz Maniak &lt;lukasz.maniak@linux.intel.com&gt;
Reviewed-by: Klaus Jensen &lt;k.jensen@samsung.com&gt;
Acked-by: Michael S. Tsirkin &lt;mst@redhat.com&gt;
Signed-off-by: Klaus Jensen &lt;k.jensen@samsung.com&gt;
</content>
</entry>
<entry>
<title>hw/nvme: 64-bit pi support</title>
<updated>2022-03-03T08:30:21+00:00</updated>
<author>
<name>Naveen Nagar</name>
</author>
<published>2021-11-16T13:26:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/bwlp/qemu.git/commit/?id=44219b6029fc52d5e967a963be91a9cf33f9f185'/>
<id>urn:sha1:44219b6029fc52d5e967a963be91a9cf33f9f185</id>
<content type='text'>
This adds support for one possible new protection information format
introduced in TP4068 (and integrated in NVMe 2.0): the 64-bit CRC guard
and 48-bit reference tag. This version does not support storage tags.

Like the CRC16 support already present, this uses a software
implementation of CRC64 (so it is naturally pretty slow). But its good
enough for verification purposes.

This may go nicely hand-in-hand with the support that Keith submitted
for the Linux kernel[1].

  [1]: https://lore.kernel.org/linux-nvme/20220126165214.GA1782352@dhcp-10-100-145-180.wdc.com/T/

Reviewed-by: Keith Busch &lt;kbusch@kernel.org&gt;
Signed-off-by: Naveen Nagar &lt;naveen.n1@samsung.com&gt;
Signed-off-by: Klaus Jensen &lt;k.jensen@samsung.com&gt;
</content>
</entry>
<entry>
<title>hw/nvme: add support for the lbafee hbs feature</title>
<updated>2022-03-03T08:28:49+00:00</updated>
<author>
<name>Naveen Nagar</name>
</author>
<published>2021-10-06T06:53:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/bwlp/qemu.git/commit/?id=763c05dfb08c5fff86275788de7f11e899167167'/>
<id>urn:sha1:763c05dfb08c5fff86275788de7f11e899167167</id>
<content type='text'>
Add support for up to 64 LBA formats through the LBAFEE field of the
Host Behavior Support feature.

Reviewed-by: Keith Busch &lt;kbusch@kernel.org&gt;
Signed-off-by: Naveen Nagar &lt;naveen.n1@samsung.com&gt;
Signed-off-by: Klaus Jensen &lt;k.jensen@samsung.com&gt;
</content>
</entry>
<entry>
<title>hw/nvme: add host behavior support feature</title>
<updated>2022-03-03T08:28:48+00:00</updated>
<author>
<name>Naveen Nagar</name>
</author>
<published>2021-10-06T06:50:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/bwlp/qemu.git/commit/?id=d0c0697b9ef2045375e08aadb81f94b8d63ecf25'/>
<id>urn:sha1:d0c0697b9ef2045375e08aadb81f94b8d63ecf25</id>
<content type='text'>
Add support for getting and setting the Host Behavior Support feature.

Reviewed-by: Keith Busch &lt;kbusch@kernel.org&gt;
Signed-off-by: Naveen Nagar &lt;naveen.n1@samsung.com&gt;
Signed-off-by: Klaus Jensen &lt;k.jensen@samsung.com&gt;
</content>
</entry>
<entry>
<title>hw/nvme: add support for zoned random write area</title>
<updated>2022-02-14T07:58:29+00:00</updated>
<author>
<name>Klaus Jensen</name>
</author>
<published>2021-03-04T07:40:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/bwlp/qemu.git/commit/?id=e321b4cdc2dd0b5e806ecf759138be7f83774142'/>
<id>urn:sha1:e321b4cdc2dd0b5e806ecf759138be7f83774142</id>
<content type='text'>
Add support for TP 4076 ("Zoned Random Write Area"), v2021.08.23
("Ratified").

This adds three new namespace parameters: "zoned.numzrwa" (number of
zrwa resources, i.e. number of zones that can have a zrwa),
"zoned.zrwas" (zrwa size in LBAs), "zoned.zrwafg" (granularity in LBAs
for flushes).

Reviewed-by: Keith Busch &lt;kbusch@kernel.org&gt;
Signed-off-by: Klaus Jensen &lt;k.jensen@samsung.com&gt;
</content>
</entry>
</feed>
