From: Klaus Jensen
First, add support for toggling optional features through the new `oncs`
nvme device parameter.
Secondly, add support for the Write Uncorrectable command.
Gollu Appalanaidu (2):
hw/block/nvme: add oncs device parameter
hw/block/nvme: add write uncorrectable command
docs
From: Gollu Appalanaidu
Add the 'oncs' nvme device parameter to allow optional features to be
enabled/disabled explicitly. Since most of these are optional commands,
make the CSE log pages dynamic to account for the value of ONCS.
Signed-off-by: Gollu Appalanaidu
Signed-off-by: Klaus Jensen
--
From: Gollu Appalanaidu
Add support for marking blocks invalid with the Write Uncorrectable
command. Block status is tracked in a (non-persistent) bitmap that is
checked on all reads and written to on all writes. This is potentially
expensive, so keep Write Uncorrectable disabled by default.
Sig
On Feb 10 12:32, Keith Busch wrote:
> On Mon, Feb 08, 2021 at 08:08:17PM +0100, Klaus Jensen wrote:
> > On Feb 9 03:59, Keith Busch wrote:
> > > This whole implementation would be much simpler with the synchronous
> > > blk_flush() routine instead of the AIO equivalent. This is not really a
> > >
On 2/9/21 8:39 PM, Dmitry Fomichev wrote:
> On Mon, 2021-02-08 at 09:25 +0100, Klaus Jensen wrote:
>> From: Klaus Jensen
>>
>> The Zone Append Size Limit (ZASL) must be at least 4096 bytes, so
>> improve the user experience by adding an early parameter check in
>> nvme_check_constraints.
>>
>> Whe
On Mon, Feb 08, 2021 at 08:08:17PM +0100, Klaus Jensen wrote:
> On Feb 9 03:59, Keith Busch wrote:
> > This whole implementation would be much simpler with the synchronous
> > blk_flush() routine instead of the AIO equivalent. This is not really a
> > performant feature, so I don't think it's crit
Kindly ping.
Any comments and reviews are wellcome :)
Thanks,
Jiahui
On 2021/2/5 18:13, Jiahui Cen wrote:
> A VM in the cloud environment may use a virutal disk as the backend storage,
> and there are usually filesystems on the virtual block device. When backend
> storage is temporarily down, any
On Mon, 2021-02-08 at 09:25 +0100, Klaus Jensen wrote:
> From: Klaus Jensen
>
> The Zone Append Size Limit (ZASL) must be at least 4096 bytes, so
> improve the user experience by adding an early parameter check in
> nvme_check_constraints.
>
> When ZASL is still too small due to the host configu
09.02.2021 21:41, Denis V. Lunev wrote:
On 2/9/21 9:36 PM, Vladimir Sementsov-Ogievskiy wrote:
09.02.2021 19:39, Vladimir Sementsov-Ogievskiy wrote:
09.02.2021 17:47, Max Reitz wrote:
On 09.02.21 15:10, Vladimir Sementsov-Ogievskiy wrote:
09.02.2021 16:25, Max Reitz wrote:
On 29.01.21 17:50,
On 2/9/21 12:27 PM, Max Reitz wrote:
> Many _unsupported_imgopts lines for refcount_bits values use something
> like "refcount_bits=1[^0-9]" to forbid everything but "refcount_bits=1"
> (e.g. "refcount_bits=16" is allowed).
>
> That does not work when $IMGOPTS does not have any entry past the
> re
On 2/9/21 9:36 PM, Vladimir Sementsov-Ogievskiy wrote:
> 09.02.2021 19:39, Vladimir Sementsov-Ogievskiy wrote:
>> 09.02.2021 17:47, Max Reitz wrote:
>>> On 09.02.21 15:10, Vladimir Sementsov-Ogievskiy wrote:
09.02.2021 16:25, Max Reitz wrote:
> On 29.01.21 17:50, Vladimir Sementsov-Ogievsk
09.02.2021 21:19, Max Reitz wrote:
Commit 69b55e03f has changed an error message, adjust the reference
output to account for it.
Fixes: 69b55e03f7e65a36eb954d0b7d4698b258df2708
("block: refactor bdrv_check_request: add errp")
Signed-off-by: Max Reitz
Reviewed-by: Vladimir Sementsov-Og
09.02.2021 19:39, Vladimir Sementsov-Ogievskiy wrote:
09.02.2021 17:47, Max Reitz wrote:
On 09.02.21 15:10, Vladimir Sementsov-Ogievskiy wrote:
09.02.2021 16:25, Max Reitz wrote:
On 29.01.21 17:50, Vladimir Sementsov-Ogievskiy wrote:
Hi all!
I know, I have several series waiting for a resend
On 2/9/21 12:19 PM, Max Reitz wrote:
> Commit 69b55e03f has changed an error message, adjust the reference
> output to account for it.
>
> Fixes: 69b55e03f7e65a36eb954d0b7d4698b258df2708
>("block: refactor bdrv_check_request: add errp")
> Signed-off-by: Max Reitz
> ---
Reviewed-by: Eric
Many _unsupported_imgopts lines for refcount_bits values use something
like "refcount_bits=1[^0-9]" to forbid everything but "refcount_bits=1"
(e.g. "refcount_bits=16" is allowed).
That does not work when $IMGOPTS does not have any entry past the
refcount_bits option, which now became apparent wit
Commit 69b55e03f has changed an error message, adjust the reference
output to account for it.
Fixes: 69b55e03f7e65a36eb954d0b7d4698b258df2708
("block: refactor bdrv_check_request: add errp")
Signed-off-by: Max Reitz
---
Fun fact: The branch name "fix-210-v1" was already taken for
8ba9c4d9b
On 2/9/21 3:32 PM, Bin Meng wrote:
> Hi Philippe,
>
> On Thu, Feb 4, 2021 at 2:02 PM Bin Meng wrote:
>>
>> On Thu, Jan 28, 2021 at 2:30 PM Bin Meng wrote:
>>>
>>> From: Bin Meng
>>>
>>> This includes the previously v3 series [1], and one single patch [2].
>>>
>>> Compared to v3, this fixed the
On 2/9/21 6:11 PM, Eric Blake wrote:
> On 2/9/21 11:01 AM, Philippe Mathieu-Daudé wrote:
>> The null-co driver is meant for (performance) testing.
>> By default, read operation does nothing, the provided buffer
>> is not filled with zero values and its content is unchanged.
>>
>> This can confuse s
On 2/9/21 11:01 AM, Philippe Mathieu-Daudé wrote:
> The null-co driver is meant for (performance) testing.
> By default, read operation does nothing, the provided buffer
> is not filled with zero values and its content is unchanged.
>
> This can confuse security experts. For example, using the def
On 09.02.21 18:01, Philippe Mathieu-Daudé wrote:
The null-co driver is meant for (performance) testing.
By default, read operation does nothing, the provided buffer
is not filled with zero values and its content is unchanged.
This can confuse security experts. For example, using the default
null
The null-co driver is meant for (performance) testing.
By default, read operation does nothing, the provided buffer
is not filled with zero values and its content is unchanged.
This can confuse security experts. For example, using the default
null-co driver, buf[] is uninitialized, the blk_pread()
On 2/9/21 5:47 PM, Max Reitz wrote:
> On 09.02.21 15:10, Vladimir Sementsov-Ogievskiy wrote:
>> 09.02.2021 16:25, Max Reitz wrote:
>>> On 29.01.21 17:50, Vladimir Sementsov-Ogievskiy wrote:
Hi all!
I know, I have several series waiting for a resend, but I had to
switch
to a
09.02.2021 17:47, Max Reitz wrote:
On 09.02.21 15:10, Vladimir Sementsov-Ogievskiy wrote:
09.02.2021 16:25, Max Reitz wrote:
On 29.01.21 17:50, Vladimir Sementsov-Ogievskiy wrote:
Hi all!
I know, I have several series waiting for a resend, but I had to switch
to another task spawned from our
> On Feb 9, 2021, at 1:03 AM, Thomas Huth wrote:
>
> On 08/02/2021 21.21, Stefan Hajnoczi wrote:
>> On Mon, Feb 08, 2021 at 11:02:57AM +0100, Philippe Mathieu-Daudé wrote:
>>> On 2/8/21 10:27 AM, Stefan Hajnoczi wrote:
On Sat, Feb 06, 2021 at 05:03:20PM +, Peter Maydell wrote:
> On
On 2/9/21 10:08 AM, Richard W.M. Jones wrote:
> On Tue, Feb 09, 2021 at 09:27:58AM -0600, Eric Blake wrote:
>> Our default of a backlog of 1 connection is rather puny; it gets in
>> the way when we are explicitly allowing multiple clients (such as
>> qemu-nbd -e N [--shared], or nbd-server-start wi
On Tue, Feb 09, 2021 at 09:27:58AM -0600, Eric Blake wrote:
> Our default of a backlog of 1 connection is rather puny; it gets in
> the way when we are explicitly allowing multiple clients (such as
> qemu-nbd -e N [--shared], or nbd-server-start with its default
> "max-connections":0 for unlimited)
On Tue, Feb 09, 2021 at 09:27:59AM -0600, Eric Blake wrote:
> This gives us better feature parity with QMP nbd-server-start, where
> max-connections defaults to 0 for unlimited.
>
> Signed-off-by: Eric Blake
> ---
> docs/tools/qemu-nbd.rst | 4 ++--
> qemu-nbd.c | 7 +++
> 2 fil
On Tue, Feb 09, 2021 at 09:27:58AM -0600, Eric Blake wrote:
> Our default of a backlog of 1 connection is rather puny; it gets in
> the way when we are explicitly allowing multiple clients (such as
> qemu-nbd -e N [--shared], or nbd-server-start with its default
> "max-connections":0 for unlimited)
This gives us better feature parity with QMP nbd-server-start, where
max-connections defaults to 0 for unlimited.
Signed-off-by: Eric Blake
---
docs/tools/qemu-nbd.rst | 4 ++--
qemu-nbd.c | 7 +++
2 files changed, 5 insertions(+), 6 deletions(-)
diff --git a/docs/tools/qemu-nb
Our default of a backlog of 1 connection is rather puny; it gets in
the way when we are explicitly allowing multiple clients (such as
qemu-nbd -e N [--shared], or nbd-server-start with its default
"max-connections":0 for unlimited), but is even a problem when we
stick to qemu-nbd's default of only
in v2:
- also adjust backlog of QMP nbd-server-start [Dan]
- tweak qemu-nbd backlog to -e when not persistent [Nir]
- allow qemu-nbd -e0 for symmetry with QMP [new patch 2]
Eric Blake (2):
qemu-nbd: Use SOMAXCONN for socket listen() backlog
qemu-nbd: Permit --shared=0 for unlimited clients
d
On Tue, 9 Feb 2021 at 07:31, Klaus Jensen wrote:
>
> From: Klaus Jensen
>
> The following changes since commit 4f799257b323e1238a900fd0c71c2057863e0308:
>
> Merge remote-tracking branch 'remotes/armbru/tags/pull-qapi-2021-02-08'
> into staging (2021-02-08 16:12:21 +)
>
> are available in t
On 09.02.21 15:10, Vladimir Sementsov-Ogievskiy wrote:
09.02.2021 16:25, Max Reitz wrote:
On 29.01.21 17:50, Vladimir Sementsov-Ogievskiy wrote:
Hi all!
I know, I have several series waiting for a resend, but I had to switch
to another task spawned from our customer's bug.
Original problem: w
On 210209 1745, Bin Meng wrote:
> Oops, hitting "send" by mistake ...
>
> On Tue, Feb 9, 2021 at 5:42 PM Bin Meng wrote:
> >
> > Hi Philippe,
> >
> > On Tue, Feb 9, 2021 at 5:38 PM Philippe Mathieu-Daudé
> > wrote:
> > >
> > > On 2/9/21 9:28 AM, Bin Meng wrote:
> > > > Hi Philippe,
> > > >
> >
On 09/02/2021 14.50, Daniel P. Berrangé wrote:
The Travis CI system QEMU has been using has removed the unlimited free
usage model, replacing it with a one-time only grant of CI minutes that
is not renewed. The QEMU CI jobs quickly exhaust maintainer's free CI
credits, leaving them unable to test
Hi Philippe,
On Thu, Feb 4, 2021 at 2:02 PM Bin Meng wrote:
>
> On Thu, Jan 28, 2021 at 2:30 PM Bin Meng wrote:
> >
> > From: Bin Meng
> >
> > This includes the previously v3 series [1], and one single patch [2].
> >
> > Compared to v3, this fixed the following issue in patch [v3,6/6]:
> > - Ke
09.02.2021 16:25, Max Reitz wrote:
On 29.01.21 17:50, Vladimir Sementsov-Ogievskiy wrote:
Hi all!
I know, I have several series waiting for a resend, but I had to switch
to another task spawned from our customer's bug.
Original problem: we use O_DIRECT for all vm images in our product, it's
th
On Tue, Feb 09, 2021 at 02:58:46PM +0100, Philippe Mathieu-Daudé wrote:
> On 2/9/21 2:50 PM, Daniel P. Berrangé wrote:
> > The Travis CI system QEMU has been using has removed the unlimited free
> > usage model, replacing it with a one-time only grant of CI minutes that
> > is not renewed. The QEMU
On 2/9/21 2:50 PM, Daniel P. Berrangé wrote:
> The Travis CI system QEMU has been using has removed the unlimited free
> usage model, replacing it with a one-time only grant of CI minutes that
> is not renewed. The QEMU CI jobs quickly exhaust maintainer's free CI
> credits, leaving them unable to
On 2/9/21 3:03 PM, Daniel P. Berrangé wrote:
> On Tue, Feb 09, 2021 at 02:58:46PM +0100, Philippe Mathieu-Daudé wrote:
>> On 2/9/21 2:50 PM, Daniel P. Berrangé wrote:
>>> The Travis CI system QEMU has been using has removed the unlimited free
>>> usage model, replacing it with a one-time only grant
The Travis CI system QEMU has been using has removed the unlimited free
usage model, replacing it with a one-time only grant of CI minutes that
is not renewed. The QEMU CI jobs quickly exhaust maintainer's free CI
credits, leaving them unable to test with Travis. This is not a
sustainable situation
The travis container that we have no longer matches what travis
currently uses. As all x86 jobs are being moved to GitLab CI too,
there is no compelling reason to update the travis container. It
is simpler to just remove it.
Reviewed-by: Philippe Mathieu-Daudé
Reviewed-by: Wainer dos Santos Mosch
It is not sustainable to keep supporting Travis CI when our maintainer
have exhausted their free CI credit allowance and it isn't easily
renewable for most
While there are still some unique scenarios covered by Travis, this is
not useful when maintainers can't run the pipelines. If people see
sce
On 29.01.21 17:50, Vladimir Sementsov-Ogievskiy wrote:
Hi all!
I know, I have several series waiting for a resend, but I had to switch
to another task spawned from our customer's bug.
Original problem: we use O_DIRECT for all vm images in our product, it's
the policy. The only exclusion is back
From: Klaus Jensen
With the introduction of the nvme-subsystem device we are really
cluttering up the hw/block directory.
As suggested by Philippe previously, move the nvme emulation to
hw/nvme.
Suggested-by: Philippe Mathieu-Daudé
Signed-off-by: Klaus Jensen
---
meson.build
From: Klaus Jensen
Move a bunch of functions that are internal to a device out of the
shared header.
Signed-off-by: Klaus Jensen
---
hw/nvme/nvme.h | 110 +
hw/nvme/ctrl.c | 90 +++-
hw/nvme/ns.c | 7 +++-
On 2/9/21 11:45 AM, Klaus Jensen wrote:
> From: Gollu Appalanaidu
>
> Commit 6eb7a071292a ("hw/block/nvme: change controller pci id") changed
> the controller to use a Red Hat assigned PCI Device and Vendor ID, but
> did not change the IEEE OUI away from the Intel IEEE OUI.
>
> Fix that and use
From: Klaus Jensen
With the introduction of the nvme-subsystem device we are really
cluttering up the hw/block directory.
As suggested by Philippe previously, move the nvme emulation to hw/nvme.
Klaus Jensen (2):
hw/nvme: move nvme emulation out of hw/block
hw/nvme: move device-scoped funct
On 2/9/21 11:54 AM, Bin Meng wrote:
> At the end of sdhci_send_command(), it starts a data transfer if
> the command register indicates a data is associated. However the
> data transfer should only be initiated when the command execution
> has succeeded.
>
> Cc: qemu-sta...@nongnu.org
> Fixes: CVE
At the end of sdhci_send_command(), it starts a data transfer if
the command register indicates a data is associated. However the
data transfer should only be initiated when the command execution
has succeeded.
Cc: qemu-sta...@nongnu.org
Fixes: CVE-2020-17380
Fixes: CVE-2020-25085
Reported-by: Ale
From: Gollu Appalanaidu
Commit 6eb7a071292a ("hw/block/nvme: change controller pci id") changed
the controller to use a Red Hat assigned PCI Device and Vendor ID, but
did not change the IEEE OUI away from the Intel IEEE OUI.
Fix that and use the locally assigned QEMU IEEE OUI instead if the
`use
Oops, hitting "send" by mistake ...
On Tue, Feb 9, 2021 at 5:42 PM Bin Meng wrote:
>
> Hi Philippe,
>
> On Tue, Feb 9, 2021 at 5:38 PM Philippe Mathieu-Daudé wrote:
> >
> > On 2/9/21 9:28 AM, Bin Meng wrote:
> > > Hi Philippe,
> > >
> > > On Tue, Feb 9, 2021 at 3:34 AM Philippe Mathieu-Daudé
>
Hi Philippe,
On Tue, Feb 9, 2021 at 5:38 PM Philippe Mathieu-Daudé wrote:
>
> On 2/9/21 9:28 AM, Bin Meng wrote:
> > Hi Philippe,
> >
> > On Tue, Feb 9, 2021 at 3:34 AM Philippe Mathieu-Daudé
> > wrote:
> >>
> >> Per the "SD Host Controller Simplified Specification Version 2.00"
> >> spec. 'Tab
On 2/9/21 9:28 AM, Bin Meng wrote:
> Hi Philippe,
>
> On Tue, Feb 9, 2021 at 3:34 AM Philippe Mathieu-Daudé wrote:
>>
>> Per the "SD Host Controller Simplified Specification Version 2.00"
>> spec. 'Table 2-4 : Block Size Register':
>>
>> Transfer Block Size [...] can be accessed only if no
>>
Hello Edgar,
On [2021 Feb 08] Mon 16:30:00, Edgar E. Iglesias wrote:
>On Mon, Feb 8, 2021 at 3:42 PM Bin Meng wrote:
>
> On Thu, Jan 21, 2021 at 10:18 PM Francisco Iglesias
> wrote:
> >
> > Hi Bin,
> >
> > On [2021 Jan 21] Thu 16:59:51, Bin Meng wrote:
> >
On Mon, Feb 8, 2021 at 9:26 PM Philippe Mathieu-Daudé wrote:
>
> On Mon, Feb 8, 2021 at 8:59 PM Mauro Matteo Cascella
> wrote:
> > On Mon, Feb 8, 2021 at 8:35 PM Philippe Mathieu-Daudé
> > wrote:
> > >
> > > Per the "SD Host Controller Simplified Specification Version 2.00"
> > > spec. 'Table 2
Hi Philippe,
On Tue, Feb 9, 2021 at 3:34 AM Philippe Mathieu-Daudé wrote:
>
> Per the "SD Host Controller Simplified Specification Version 2.00"
> spec. 'Table 2-4 : Block Size Register':
>
> Transfer Block Size [...] can be accessed only if no
> transaction is executing (i.e., after a transa
08.02.2021 21:44, Alberto Garcia wrote:
Signed-off-by: Alberto Garcia
---
qapi/block-core.json | 2 +-
include/block/block.h | 1 +
block.c| 16 +--
blockdev.c | 85 +-
tests/qemu-iotests/155 | 9
From: Gollu Appalanaidu
Currently, no features are saveable, so the current check is not wrong,
but add a check against the feature capabilities to make sure this will
not regress if saveable features are added later.
Signed-off-by: Gollu Appalanaidu
Reviewed-by: Klaus Jensen
Reviewed-by: Keit
From: Klaus Jensen
Refactor the zone write check logic such that the most "meaningful"
error is returned first. That is, first, if the zone is not writable,
return an appropriate status code for that. Then, make sure we are
actually writing at the write pointer and finally check that we do not
cr
From: Klaus Jensen
When a zone append is processed the controller checks that validity of
the write before assigning the LBA to the append command. This causes
the boundary check to be wrong.
Fix this by checking the write *after* assigning the LBA. Remove the
append special case from the nvme_c
From: Gollu Appalanaidu
Only enable DULBE if the namespace supports it.
Signed-off-by: Gollu Appalanaidu
Reviewed-by: Klaus Jensen
Reviewed-by: Keith Busch
Signed-off-by: Klaus Jensen
---
hw/block/nvme.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/hw/block/nvme.c
From: Minwoo Im
The actual parameter name is 'cross_read' rather than 'cross_zone_read'.
Signed-off-by: Minwoo Im
Signed-off-by: Klaus Jensen
---
hw/block/nvme.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/hw/block/nvme.c b/hw/block/nvme.c
index 2335739bdb17..e562d7467
From: Minwoo Im
If a user assigns a backing device with less capacity than the size of a
single zone, the namespace capacity will be reported as zero and the
kernel will silently fail to allocate the namespace.
This patch errors out in case that the backing device cannot accomodate
at least a si
From: Klaus Jensen
The controller now implements v1.4 and we can lift the restrictions on
CMB Data Pointer and Command Independent Locations Support (CDPCILS) and
CMB Data Pointer Mixed Locations Support (CDPMLS) since the device
really does not care about mixed host/cmb pointers in those cases.
08.02.2021 21:44, Alberto Garcia wrote:
When the x-blockdev-reopen was added it allowed reconfiguring the
graph by replacing backing files, but changing the 'file' option was
forbidden. Because of this restriction some operations are not
possible, notably inserting and removing block filters.
Th
From: Padmakar Kalghatgi
Implement v1.4 logic for configuring the Controller Memory Buffer. By
default, the v1.4 scheme will be used (CMB must be explicitly enabled by
the host), so drivers that only support v1.3 will not be able to use the
CMB anymore.
To retain the v1.3 behavior, set the boole
From: Klaus Jensen
Use the correct field names.
Reviewed-by: Minwoo Im
Reviewed-by: Keith Busch
Signed-off-by: Klaus Jensen
---
include/block/nvme.h | 18 +-
hw/block/nvme.c | 2 +-
2 files changed, 10 insertions(+), 10 deletions(-)
diff --git a/include/block/nvme.h b/
From: Andrzej Jakowski
This patch sets CMBS bit in controller capabilities register when user
configures NVMe driver with CMB support, so capabilites are correctly
reported to guest OS.
Signed-off-by: Andrzej Jakowski
Reviewed-by: Maxim Levitsky
Reviewed-by: Minwoo Im
Reviewed-by: Keith Busch
From: Gollu Appalanaidu
Change status checks to align with the existing style and remove the
explicit check against NVME_SUCCESS.
Cc: Dmitry Fomichev
Signed-off-by: Gollu Appalanaidu
Reviewed-by: Klaus Jensen
Reviewed-by: Keith Busch
Reviewed-by: Dmitry Fomichev
Signed-off-by: Klaus Jensen
From: Klaus Jensen
The controller registers are initially zero. Remove the redundant
zeroing.
Reviewed-by: Keith Busch
Reviewed-by: Minwoo Im
Signed-off-by: Klaus Jensen
---
hw/block/nvme.c | 34 --
1 file changed, 34 deletions(-)
diff --git a/hw/block/nvme.c
From: zhenwei pi
During smart critical warning injection by setting property from QMP
command, also try to trigger asynchronous event.
Suggested by Keith, if a event has already been raised, there is no
need to enqueue the duplicate event any more.
Signed-off-by: zhenwei pi
[k.jensen: fix typo
From: zhenwei pi
According to NVM Express v1.4, Section 5.14.1.2 ("SMART / Health
Information"), introduce bit 5 for "Persistent Memory Region has become
read-only or unreliable".
Signed-off-by: zhenwei pi
[k.jensen: minor brush ups in commit message]
Signed-off-by: Klaus Jensen
---
include/b
From: Naveen Nagar
Add support for the PMRMSCL and PMRMSCU MMIO registers. This allows
adding RDS/WDS support for PMR as well.
Reviewed-by: Keith Busch
Signed-off-by: Naveen Nagar
Signed-off-by: Klaus Jensen
---
hw/block/nvme.h | 6 ++-
hw/block/nvme.c | 122 +++
From: Klaus Jensen
In the interest of supporting both CMB and PMR to be enabled on the same
device, move the MSI-X table and pending bit array out of BAR 4 and into
BAR 0.
This is a simplified version of the patch contributed by Andrzej
Jakowski (see [1]). Leaving the CMB at offset 0 removes the
From: zhenwei pi
There is a very low probability that hitting physical NVMe disk
hardware critical warning case, it's hard to write & test a monitor
agent service.
For debugging purposes, add a new 'smart_critical_warning' property
to emulate this situation.
The orignal version of this change i
From: Klaus Jensen
With BAR 4 now free to use, allow PMR and CMB to be enabled
simultaneously.
Reviewed-by: Minwoo Im
Reviewed-by: Keith Busch
Signed-off-by: Klaus Jensen
---
hw/block/nvme.c | 17 -
1 file changed, 8 insertions(+), 9 deletions(-)
diff --git a/hw/block/nvme.c
From: Klaus Jensen
The zone write pointer is unconditionally advanced, even for write
faults. Make sure that the zone is always transitioned to Full if the
write pointer reaches zone capacity.
Cc: Dmitry Fomichev
Reviewed-by: Keith Busch
Signed-off-by: Klaus Jensen
---
hw/block/nvme.c | 10 +
From: Minwoo Im
In NVMe, namespace is being attached to process I/O. We register NVMe
namespace to a controller via nvme_register_namespace() during
nvme_ns_setup(). This is main reason of receiving NvmeCtrl object
instance to this function to map the namespace to a controller.
To make namespa
From: Minwoo Im
Removed no longer used aregument NvmeCtrl object in nvme_ns_init_blk().
Signed-off-by: Minwoo Im
Signed-off-by: Klaus Jensen
---
hw/block/nvme-ns.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/hw/block/nvme-ns.c b/hw/block/nvme-ns.c
index 7a5a7798379
From: Klaus Jensen
Add the size of the mmio read/write to the trace event.
Reviewed-by: Minwoo Im
Reviewed-by: Keith Busch
Signed-off-by: Klaus Jensen
---
hw/block/nvme.c | 4 ++--
hw/block/trace-events | 4 ++--
2 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/hw/block/n
From: Klaus Jensen
With the new CMB logic in place, bump the implemented specification
version to v1.4 by default.
This requires adding the setting the CNTRLTYPE field and modifying the
VWC field since 0x00 is no longer a valid value for bits 2:1.
Reviewed-by: Keith Busch
Signed-off-by: Klaus
From: Minwoo Im
nvme_ns_setup() finally does not have nothing to do with NvmeCtrl
instance.
Signed-off-by: Minwoo Im
Signed-off-by: Klaus Jensen
---
hw/block/nvme-ns.h | 2 +-
hw/block/nvme-ns.c | 4 ++--
hw/block/nvme.c| 2 +-
3 files changed, 4 insertions(+), 4 deletions(-)
diff --git
From: Minwoo Im
nvme_ns_init_zoned() has no use for given NvmeCtrl object.
Signed-off-by: Minwoo Im
Signed-off-by: Klaus Jensen
---
hw/block/nvme-ns.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/hw/block/nvme-ns.c b/hw/block/nvme-ns.c
index 9be170abb78d..d35c2925ec
From: Klaus Jensen
The PMR should not be enabled at boot up. Disable the PMR MemoryRegion
initially and implement MMIO for PMRCTL, allowing the host to enable the
PMR explicitly.
Reviewed-by: Keith Busch
Signed-off-by: Klaus Jensen
---
hw/block/nvme.c | 14 --
1 file changed, 12 i
From: Minwoo Im
Volatile Write Cache(VWC) feature is set in nvme_ns_setup() in the
initial time. This feature is related to block device backed, but this
feature is controlled in controller level via Set/Get Features command.
This patch removed dependency between nvme and nvme-ns to manage the
From: Dmitry Fomichev
TP 4053 says (in section 2.3.1.1) -
... if a Zone Append command specifies a ZSLBA that is not the lowest
logical block address in that zone, then the controller shall abort
that command with a status code of Invalid Field In Command.
In the code, Zone Invalid Write is retu
From: Klaus Jensen
nvme_io_cmd already checks if the namespace supports the Zone Append
command, so the removed check is dead code.
Signed-off-by: Klaus Jensen
Tested-by: Dmitry Fomichev
Reviewed-by: Dmitry Fomichev
---
hw/block/nvme.c | 4
1 file changed, 4 deletions(-)
diff --git a/h
From: Klaus Jensen
Implicitly and explicitly opended zones are always bulk processed
together, so merge the two processing masks.
Signed-off-by: Klaus Jensen
Tested-by: Dmitry Fomichev
Reviewed-by: Dmitry Fomichev
---
hw/block/nvme.c | 27 +++
1 file changed, 11 inser
From: Klaus Jensen
The zoned command set specification states that "All logical blocks in a
zone *shall* be marked as deallocated when [the zone is reset]". Since
the device guarantees 0x00 to be read from deallocated blocks we have to
issue a pwrite_zeroes since we cannot be sure that a discard
From: Klaus Jensen
64 bit registers like ASQ and ACQ should be writable by both a hi/lo 32
bit write combination as well as a plain 64 bit write. The spec does not
define ordering on the hi/lo split, but the code currently assumes that
the low order bits are written first. Additionally, the code
From: Klaus Jensen
Commit 1c0c2163aa08 ("hw/block/nvme: verify msix_init_exclusive_bar()
return value") had the unintended effect of breaking support on
several platforms not supporting MSI-X.
Still check for errors, but only report that MSI-X is unsupported
instead of bailing out.
Fixes: 1c0c2
From: Dmitry Fomichev
Add two module properties, "zoned.max_active" and "zoned.max_open"
to control the maximum number of zones that can be active or open.
Once these variables are set to non-default values, these limits are
checked during I/O and Too Many Active or Too Many Open command status
i
From: Dmitry Fomichev
Zone Descriptor Extension is a label that can be assigned to a zone.
It can be set to an Empty zone and it stays assigned until the zone
is reset.
This commit adds a new optional module property,
"zoned.descr_ext_size". Its value must be a multiple of 64 bytes.
If this valu
From: Dmitry Fomichev
The emulation code has been changed to advertise NVM Command Set when
"zoned" device property is not set (default) and Zoned Namespace
Command Set otherwise.
Define values and structures that are needed to support Zoned
Namespace Command Set (NVMe TP 4053) in PCI NVMe contr
From: Klaus Jensen
Add missing string representations for a couple of new commands.
Signed-off-by: Klaus Jensen
Tested-by: Dmitry Fomichev
Reviewed-by: Dmitry Fomichev
---
hw/block/nvme.h | 4
1 file changed, 4 insertions(+)
diff --git a/hw/block/nvme.h b/hw/block/nvme.h
index b7fbcca3
From: Dmitry Fomichev
Define values and structures that are needed to support Zoned
Namespace Command Set (NVMe TP 4053).
Signed-off-by: Dmitry Fomichev
Acked-by: Stefan Hajnoczi
Reviewed-by: Keith Busch
Signed-off-by: Klaus Jensen
---
include/block/nvme.h | 114
From: Niklas Cassel
Define the structures and constants required to implement
Namespace Types support.
Namespace Types introduce a new command set, "I/O Command Sets",
that allows the host to retrieve the command sets associated with
a namespace. Introduce support for the command set and enable
From: Dmitry Fomichev
This log page becomes necessary to implement to allow checking for
Zone Append command support in Zoned Namespace Command Set.
This commit adds the code to report this log page for NVM Command
Set only. The parts that are specific to zoned operation will be
added later in t
99 matches
Mail list logo