From: Klaus Jensen
Before this patch the device already supported this, but it did not
check for the validity of it nor announced the support in the LISTS
field.
If some of the PRPs in a PRP list are in the CMB, then ALL entries must
be there. This patch makes sure that is verified as well as
From: Klaus Jensen
Remove the has_sg member from NvmeRequest since it's redundant.
Signed-off-by: Klaus Jensen
---
hw/block/nvme.c | 18 --
hw/block/nvme.h | 1 -
2 files changed, 12 insertions(+), 7 deletions(-)
diff --git a/hw/block/nvme.c b/hw/block/nvme.c
From: Klaus Jensen
Support returning Command Sequence Error if Set Features on Number of
Queues is called after queues have been created.
Signed-off-by: Klaus Jensen
---
hw/block/nvme.c | 7 +++
hw/block/nvme.h | 1 +
2 files changed, 8 insertions(+)
diff --git a/hw/block/nvme.c b/hw
From: Klaus Jensen
Handling DMA errors gracefully is required for the device to pass the
block/011 test ("disable PCI device while doing I/O") in the blktests
suite.
With this patch the device passes the test by retrying "critical"
transfers (posting of completion entri
From: Klaus Jensen
This refactors how the device issues asynchronous block backend
requests. The NvmeRequest now holds a queue of NvmeAIOs that are
associated with the command. This allows multiple aios to be issued for
a command. Only when all requests have been completed will the device
post a
From: Klaus Jensen
The emulated nvme device (hw/block/nvme.c) is currently using an
internal Intel device id.
Prepare to change that by allocating a device id under the 1b36 (Red
Hat, Inc.) vendor id.
Signed-off-by: Klaus Jensen
Acked-by: Keith Busch
Reviewed-by: Maxim Levitsky
From: Klaus Jensen
Prepare to support inactive namespaces.
Signed-off-by: Klaus Jensen
---
hw/block/nvme.c | 8
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/hw/block/nvme.c b/hw/block/nvme.c
index b89b96990f52..bf9fb500842a 100644
--- a/hw/block/nvme.c
+++ b/hw/block
From: Klaus Jensen
Signed-off-by: Klaus Jensen
Acked-by: Keith Busch
---
hw/block/nvme-ns.c | 7 ++-
hw/block/nvme-ns.h | 4 +++-
hw/block/nvme.c| 1 +
3 files changed, 10 insertions(+), 2 deletions(-)
diff --git a/hw/block/nvme-ns.c b/hw/block/nvme-ns.c
index 6d975104171d
From: Klaus Jensen
This adds support for multiple namespaces by introducing a new 'nvme-ns'
device model. The nvme device creates a bus named from the device name
('id'). The nvme-ns devices then connect to this and registers
themselves with the nvme device.
This changes h
From: Klaus Jensen
The command struct is available in the NvmeRequest that we generally
pass around anyway.
Signed-off-by: Klaus Jensen
Acked-by: Keith Busch
Reviewed-by: Maxim Levitsky
---
hw/block/nvme.c | 164 +++-
1 file changed, 78 insertions
From: Klaus Jensen
These break statements was left over when commit 3036a626e9ef ("nvme:
add Get/Set Feature Timestamp support") was merged.
Signed-off-by: Klaus Jensen
Acked-by: Keith Busch
Reviewed-by: Maxim Levitsky
---
hw/block/nvme.c | 4
1 file changed, 4 deletions(-)
From: Klaus Jensen
Hi,
v7 is mostly just changes proposed by Maxim. Also, Gollu's patch for the
bit bucket sgl descriptor has been added (patch #43), but it is of a
pretty manageable size.
Changes since v6
* 01/48 ("nvme: rename trace events to nvme_dev")
From: Klaus Jensen
Move device configuration parameters to separate struct to make it
explicit what is configurable and what is set internally.
Signed-off-by: Klaus Jensen
Signed-off-by: Klaus Jensen
Acked-by: Keith Busch
Reviewed-by: Maxim Levitsky
---
hw/block/nvme.c | 44
From: Klaus Jensen
Pull the controller memory buffer check to its own function. The check
will be used on its own in later patches.
Signed-off-by: Klaus Jensen
Acked-by: Keith Busch
---
hw/block/nvme.c | 16
1 file changed, 12 insertions(+), 4 deletions(-)
diff --git a/hw
From: Klaus Jensen
The size of the BAR is 0x1000 (main registers) + 8 bytes for each
queue. Currently, the size of the BAR is calculated like so:
n->reg_size = pow2ceil(0x1004 + 2 * (n->params.num_queues + 1) * 4);
Since the 'num_queues' parameter already accounts for the a
From: Klaus Jensen
Signed-off-by: Klaus Jensen
---
hw/block/nvme.c | 7 ++-
hw/block/nvme.h | 2 --
2 files changed, 2 insertions(+), 7 deletions(-)
diff --git a/hw/block/nvme.c b/hw/block/nvme.c
index f45909dad480..123539a5d0ae 100644
--- a/hw/block/nvme.c
+++ b/hw/block/nvme.c
@@ -63,7
From: Klaus Jensen
Add missing fields in the Identify Controller and Identify Namespace
data structures to bring them in line with NVMe v1.3.
This also adds data structures and defines for SGL support which
requires a couple of trivial changes to the nvme block driver as well.
Signed-off-by
From: Klaus Jensen
Change the prefix of all nvme device related trace events to 'nvme_dev'
to not clash with trace events from the nvme block driver.
Signed-off-by: Klaus Jensen
Acked-by: Keith Busch
Reviewed-by: Maxim Levitsky
---
hw/block/nvme.c
From: Klaus Jensen
Signed-off-by: Klaus Jensen
Reviewed-by: Maxim Levitsky
---
hw/block/nvme.c | 8
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/hw/block/nvme.c b/hw/block/nvme.c
index 088668f28bae..622103c42d0a 100644
--- a/hw/block/nvme.c
+++ b/hw/block/nvme.c
From: Klaus Jensen
Required for compliance with NVMe revision 1.2.1. See NVM Express 1.2.1,
Section 5.1 ("Abort command").
The Abort command is a best effort command; for now, the device always
fails to abort the given command.
Signed-off-by: Klaus Jensen
Signed-off-by: Klaus Jensen
From: Klaus Jensen
The num_queues device paramater has a slightly confusing meaning because
it accounts for the admin queue pair which is not really optional.
Secondly, it is really a maximum value of queues allowed.
Add a new max_ioqpairs parameter that only accounts for I/O queue pairs,
but
From: Klaus Jensen
Add support for returning a resonable response to Get/Set Features of
mandatory features.
Signed-off-by: Klaus Jensen
Signed-off-by: Klaus Jensen
Acked-by: Keith Busch
---
hw/block/nvme.c | 60 ++-
hw/block/trace-events | 2
From: Klaus Jensen
It might seem wierd to implement this feature for an emulated device,
but it is mandatory to support and the feature is useful for testing
asynchronous event request support, which will be added in a later
patch.
Signed-off-by: Klaus Jensen
Acked-by: Keith Busch
Reviewed-by
From: Klaus Jensen
The LSP field is not used directly now, but include it in the trace.
Signed-off-by: Klaus Jensen
Reviewed-by: Maxim Levitsky
---
hw/block/nvme.c | 3 ++-
hw/block/trace-events | 2 +-
2 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/hw/block/nvme.c b/hw
From: Klaus Jensen
Add support for the Get Log Page command and basic implementations of
the mandatory Error Information, SMART / Health Information and Firmware
Slot Information log pages.
In violation of the specification, the SMART / Health Information log
page does not persist information
From: Klaus Jensen
This patch splits up nvme_realize into multiple individual functions,
each initializing a different subset of the device.
Signed-off-by: Klaus Jensen
Signed-off-by: Klaus Jensen
Acked-by: Keith Busch
---
hw/block/nvme.c | 178
From: Klaus Jensen
0x is not an allowed value for NCQR and NSQR in Set Features on
Number of Queues.
Signed-off-by: Klaus Jensen
Acked-by: Keith Busch
Reviewed-by: Maxim Levitsky
---
hw/block/nvme.c | 8
1 file changed, 8 insertions(+)
diff --git a/hw/block/nvme.c b/hw/block
From: Klaus Jensen
Also, streamline nvme_identify_ns and nvme_identify_ns_list. They do not
need to repeat the command, it is already in the trace name.
Signed-off-by: Klaus Jensen
---
hw/block/nvme.c | 20
hw/block/trace-events | 13 +++--
2 files changed
From: Klaus Jensen
Since we are not providing the NGUID or EUI64 fields, we must support
the Namespace UUID. We do not have any way of storing a persistent
unique identifier, so conjure up a UUID that is just the namespace id.
Signed-off-by: Klaus Jensen
---
hw/block/nvme.c | 39
From: Klaus Jensen
Required for compliance with NVMe revision 1.2.1. See NVM Express 1.2.1,
Section 5.2 ("Asynchronous Event Request command").
Mostly imported from Keith's qemu-nvme tree. Modified with a max number
of queued events (controllable with the aer_max_queued device
From: Klaus Jensen
The QSG isn't always initialized, so accounting could be wrong. Issue a
call to blk_acct_start instead with the size taken from the QSG or IOV
depending on the kind of I/O.
Signed-off-by: Klaus Jensen
Reviewed-by: Maxim Levitsky
---
hw/block/nvme.c | 5 -
1
From: Klaus Jensen
Introduce the nvme_map helper to remove some noise in the main nvme_rw
function.
Signed-off-by: Klaus Jensen
Reviewed-by: Maxim Levitsky
---
hw/block/nvme.c | 13 ++---
1 file changed, 10 insertions(+), 3 deletions(-)
diff --git a/hw/block/nvme.c b/hw/block/nvme.c
From: Klaus Jensen
Add nvme_map_addr, nvme_map_addr_cmb and nvme_addr_to_cmb helpers and
use them in nvme_map_prp.
This fixes a bug where in the case of a CMB transfer, the device would
map to the buffer with a wrong length.
Fixes: b2b2b67a00574 ("nvme: Add support for Read Data and Write
From: Klaus Jensen
Signed-off-by: Klaus Jensen
Reviewed-by: Maxim Levitsky
---
hw/block/nvme.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/hw/block/nvme.c b/hw/block/nvme.c
index d5c293476411..59935d4641a6 100644
--- a/hw/block/nvme.c
+++ b/hw/block/nvme.c
@@ -44,6
From: Klaus Jensen
Add 'mdts' device parameter to control the Maximum Data Transfer Size of
the controller and check that it is respected.
Signed-off-by: Klaus Jensen
Reviewed-by: Maxim Levitsky
---
hw/block/nvme.c | 29 -
hw/block/nvme.h |
From: Klaus Jensen
Support returning Command Sequence Error if Set Features on Number of
Queues is called after queues have been created.
Signed-off-by: Klaus Jensen
Reviewed-by: Maxim Levitsky
---
hw/block/nvme.c | 12
hw/block/nvme.h | 1 +
2 files changed, 13 insertions
From: Klaus Jensen
Signed-off-by: Klaus Jensen
Reviewed-by: Maxim Levitsky
---
hw/block/nvme.c | 28 ++--
1 file changed, 22 insertions(+), 6 deletions(-)
diff --git a/hw/block/nvme.c b/hw/block/nvme.c
index 3e5e99644a4e..7528d75905d4 100644
--- a/hw/block/nvme.c
From: Klaus Jensen
Add a reference to the NvmeNamespace and move clearing of the structure
from "clear before use" to "clear after use".
Signed-off-by: Klaus Jensen
---
hw/block/nvme.c | 38 +-
hw/block/nvme.h | 1 +
2 files changed,
From: Klaus Jensen
Since clean up of the request qsg/iov has been moved to the common
nvme_enqueue_req_completion function, there is no need to use a stack
allocated qsg/iov in nvme_dma_prp.
Signed-off-by: Klaus Jensen
Acked-by: Keith Busch
Reviewed-by: Maxim Levitsky
---
hw/block/nvme.c
From: Klaus Jensen
Remove the has_sg member from NvmeRequest since it's redundant.
Signed-off-by: Klaus Jensen
Reviewed-by: Maxim Levitsky
---
hw/block/nvme.c | 11 ++-
hw/block/nvme.h | 1 -
2 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/hw/block/nvme.c b/hw/
From: Klaus Jensen
Signed-off-by: Klaus Jensen
---
hw/block/nvme.c | 26 --
1 file changed, 20 insertions(+), 6 deletions(-)
diff --git a/hw/block/nvme.c b/hw/block/nvme.c
index c123be10fd0d..ffc49985321b 100644
--- a/hw/block/nvme.c
+++ b/hw/block/nvme.c
@@ -651,6
From: Klaus Jensen
Before this patch the device already supported this, but it did not
check for the validity of it nor announced the support in the LISTS
field.
If some of the PRPs in a PRP list are in the CMB, then ALL entries must
be there. This patch makes sure that is verified as well as
From: Klaus Jensen
This is preparatory to subsequent patches that change how QSGs/IOVs are
handled. It is important that the qsg and iov members of the NvmeRequest
are initially zeroed.
Signed-off-by: Klaus Jensen
Reviewed-by: Maxim Levitsky
---
hw/block/nvme.c | 2 +-
1 file changed, 1
From: Klaus Jensen
Signed-off-by: Klaus Jensen
Reviewed-by: Maxim Levitsky
---
hw/block/nvme.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/hw/block/nvme.c b/hw/block/nvme.c
index d88e21a14b77..d5c293476411 100644
--- a/hw/block/nvme.c
+++ b/hw/block/nvme.c
@@ -1940,6 +1940,9
From: Klaus Jensen
Refactor the nvme_dma_{read,write}_prp functions into a common function
taking a DMADirection parameter.
Signed-off-by: Klaus Jensen
Reviewed-by: Maxim Levitsky
---
hw/block/nvme.c | 88 -
1 file changed, 43 insertions(+), 45
From: Klaus Jensen
The nvme device needs to know the return value of dma_memory_rw to pass
block/011 from blktests. So pass it along instead of ignoring it.
There are no existing users of the return value, so this patch should be
safe.
Signed-off-by: Klaus Jensen
Reviewed-by: Philippe Mathieu
From: Klaus Jensen
The spec in general uses 'zeroes' and not 'zeros'.
Now, according to the Oxford dictionary, 'zeroes' is the action of
zeroing something, i.e. "he zeroes the range" and 'zeros' is the plural
of zero. Thus, Write Zeroes shoul
From: Klaus Jensen
Signed-off-by: Klaus Jensen
Reviewed-by: Maxim Levitsky
---
hw/block/nvme.c | 67 +--
hw/block/trace-events | 2 +-
2 files changed, 40 insertions(+), 29 deletions(-)
diff --git a/hw/block/nvme.c b/hw/block/nvme.c
index
From: Klaus Jensen
Handling DMA errors gracefully is required for the device to pass the
block/011 test ("disable PCI device while doing I/O") in the blktests
suite.
With this patch the device passes the test by retrying "critical"
transfers (posting of completion entri
From: Klaus Jensen
Keep a copy of the raw nvme command in the NvmeRequest and remove the
now redundant NvmeCmd parameter.
Signed-off-by: Klaus Jensen
---
hw/block/nvme.c | 177 +---
hw/block/nvme.h | 1 +
2 files changed, 93 insertions(+), 85
From: Klaus Jensen
This refactors how the device issues asynchronous block backend
requests. The NvmeRequest now holds a queue of NvmeAIOs that are
associated with the command. This allows multiple aios to be issued for
a command. Only when all requests have been completed will the device
post a
From: Klaus Jensen
This adds support for multiple namespaces by introducing a new 'nvme-ns'
device model. The nvme device creates a bus named from the device name
('id'). The nvme-ns devices then connect to this and registers
themselves with the nvme device.
This changes h
From: Klaus Jensen
The emulated nvme device (hw/block/nvme.c) is currently using an
internal Intel device id.
Prepare to change that by allocating a device id under the 1b36 (Red
Hat, Inc.) vendor id.
Signed-off-by: Klaus Jensen
Cc: Gerd Hoffmann
Acked-by: Keith Busch
Reviewed-by: Maxim
From: Klaus Jensen
Prepare to support inactive namespaces.
Signed-off-by: Klaus Jensen
Reviewed-by: Maxim Levitsky
---
hw/block/nvme.c | 8
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/hw/block/nvme.c b/hw/block/nvme.c
index f295f027b8e2..05a6fa334a70 100644
--- a
From: Klaus Jensen
There are two reasons for changing this:
1. The nvme device currently uses an internal Intel device id.
2. Since commits "nvme: fix write zeroes offset and count" and "nvme:
support multiple namespaces" the controller device no longer has
From: Klaus Jensen
For now, support the Data Block, Segment and Last Segment descriptor
types.
See NVM Express 1.3d, Section 4.4 ("Scatter Gather List (SGL)").
Signed-off-by: Klaus Jensen
Signed-off-by: Klaus Jensen
Acked-by: Keith Busch
---
hw/block/nvme.c
From: Gollu Appalanaidu
This adds support for SGL descriptor type 0x1 (bit bucket descriptor).
See the NVM Express v1.3d specification, Section 4.4 ("Scatter Gather
List (SGL)").
Signed-off-by: Gollu Appalanaidu
Signed-off-by: Klaus Jensen
---
hw/block/n
From: Klaus Jensen
Signed-off-by: Klaus Jensen
Acked-by: Keith Busch
Reviewed-by: Maxim Levitsky
---
hw/block/nvme-ns.c | 7 ++-
hw/block/nvme-ns.h | 4 +++-
hw/block/nvme.c| 1 +
3 files changed, 10 insertions(+), 2 deletions(-)
diff --git a/hw/block/nvme-ns.c b/hw/block/nvme-ns.c
From: Klaus Jensen
Since the controller has only supported PRPs so far it has not been
required to check the ending address (addr + len - 1) of the CMB access
for validity since it has been guaranteed to be in range of the CMB.
This changes when the controller adds support for SGLs (next patch
From: Klaus Jensen
Philippe suggested that I split up this already way too huge series
(more than 50 patches now), so here goes.
The first patch in this series fixes a small bug in the pci doorbell
size calculation. Please consider cherry-picking this.
The rest are refactorings. The "nvme
From: Klaus Jensen
These break statements was left over when commit 3036a626e9ef ("nvme:
add Get/Set Feature Timestamp support") was merged.
Signed-off-by: Klaus Jensen
Acked-by: Keith Busch
Reviewed-by: Maxim Levitsky
Reviewed-by: Philippe Mathieu-Daudé
---
hw/block/nvme.c |
From: Klaus Jensen
The size of the BAR is 0x1000 (main registers) + 8 bytes for each
queue. Currently, the size of the BAR is calculated like so:
n->reg_size = pow2ceil(0x1004 + 2 * (n->params.num_queues + 1) * 4);
Since the 'num_queues' parameter already accounts for the a
From: Klaus Jensen
Signed-off-by: Klaus Jensen
---
hw/block/nvme.c | 52 ++---
1 file changed, 32 insertions(+), 20 deletions(-)
diff --git a/hw/block/nvme.c b/hw/block/nvme.c
index ea613213bd57..635292d6fac4 100644
--- a/hw/block/nvme.c
+++ b/hw
From: Klaus Jensen
The num_queues device paramater has a slightly confusing meaning because
it accounts for the admin queue pair which is not really optional.
Secondly, it is really a maximum value of queues allowed.
Add a new max_ioqpairs parameter that only accounts for I/O queue pairs,
but
From: Klaus Jensen
Signed-off-by: Klaus Jensen
---
hw/block/nvme.c | 17 +++--
1 file changed, 11 insertions(+), 6 deletions(-)
diff --git a/hw/block/nvme.c b/hw/block/nvme.c
index 635292d6fac4..e67f578fbf79 100644
--- a/hw/block/nvme.c
+++ b/hw/block/nvme.c
@@ -1339,6 +1339,15
From: Klaus Jensen
Move device configuration parameters to separate struct to make it
explicit what is configurable and what is set internally.
Signed-off-by: Klaus Jensen
Signed-off-by: Klaus Jensen
Acked-by: Keith Busch
Reviewed-by: Maxim Levitsky
Reviewed-by: Philippe Mathieu-Daudé
From: Klaus Jensen
Signed-off-by: Klaus Jensen
Reviewed-by: Philippe Mathieu-Daudé
---
hw/block/nvme.c | 7 ++-
hw/block/nvme.h | 2 --
2 files changed, 2 insertions(+), 7 deletions(-)
diff --git a/hw/block/nvme.c b/hw/block/nvme.c
index 9383d2cb0b38..ea613213bd57 100644
--- a/hw/block
From: Klaus Jensen
Signed-off-by: Klaus Jensen
---
hw/block/nvme.c | 50 +++--
1 file changed, 28 insertions(+), 22 deletions(-)
diff --git a/hw/block/nvme.c b/hw/block/nvme.c
index 16d01af53a07..7387cf409f96 100644
--- a/hw/block/nvme.c
+++ b/hw
From: Klaus Jensen
Signed-off-by: Klaus Jensen
---
hw/block/nvme.c | 42 --
1 file changed, 24 insertions(+), 18 deletions(-)
diff --git a/hw/block/nvme.c b/hw/block/nvme.c
index 7387cf409f96..d1566b56381d 100644
--- a/hw/block/nvme.c
+++ b/hw/block
From: Klaus Jensen
Signed-off-by: Klaus Jensen
---
hw/block/nvme.c | 32
1 file changed, 20 insertions(+), 12 deletions(-)
diff --git a/hw/block/nvme.c b/hw/block/nvme.c
index 08f7ae0a48b3..16d01af53a07 100644
--- a/hw/block/nvme.c
+++ b/hw/block/nvme.c
From: Klaus Jensen
Signed-off-by: Klaus Jensen
Reviewed-by: Maxim Levitsky
Reviewed-by: Philippe Mathieu-Daudé
---
hw/block/nvme.c | 8
include/block/nvme.h | 8
2 files changed, 12 insertions(+), 4 deletions(-)
diff --git a/hw/block/nvme.c b/hw/block/nvme.c
index
From: Klaus Jensen
Pull the controller memory buffer check to its own function. The check
will be used on its own in later patches.
Signed-off-by: Klaus Jensen
Acked-by: Keith Busch
Reviewed-by: Philippe Mathieu-Daudé
---
hw/block/nvme.c | 16
1 file changed, 12 insertions
From: Klaus Jensen
Signed-off-by: Klaus Jensen
---
hw/block/nvme.c | 47 ++-
1 file changed, 26 insertions(+), 21 deletions(-)
diff --git a/hw/block/nvme.c b/hw/block/nvme.c
index f0989cbb4335..08f7ae0a48b3 100644
--- a/hw/block/nvme.c
+++ b/hw
From: Klaus Jensen
Introduce some small helpers to make the next patches easier on the eye.
Signed-off-by: Klaus Jensen
---
hw/block/nvme.h | 16
1 file changed, 16 insertions(+)
diff --git a/hw/block/nvme.h b/hw/block/nvme.h
index ad1786953be9..d9900bed957c 100644
--- a/hw
From: Klaus Jensen
Signed-off-by: Klaus Jensen
---
hw/block/nvme.c | 15 ---
1 file changed, 12 insertions(+), 3 deletions(-)
diff --git a/hw/block/nvme.c b/hw/block/nvme.c
index e67f578fbf79..f0989cbb4335 100644
--- a/hw/block/nvme.c
+++ b/hw/block/nvme.c
@@ -1348,6 +1348,17
From: Klaus Jensen
Change the prefix of all nvme device related trace events to 'nvme_dev'
to not clash with trace events from the nvme block driver.
Signed-off-by: Klaus Jensen
Acked-by: Keith Busch
Reviewed-by: Maxim Levitsky
---
hw/block/nvme.c
From: Klaus Jensen
Signed-off-by: Klaus Jensen
Reviewed-by: Philippe Mathieu-Daudé
---
hw/block/nvme.c | 22 +-
1 file changed, 13 insertions(+), 9 deletions(-)
diff --git a/hw/block/nvme.c b/hw/block/nvme.c
index 5f9ebbd6a1d5..45a352b63d89 100644
--- a/hw/block/nvme.c
From: Klaus Jensen
Changes since v1
* nvme: fix pci doorbell size calculation
- added some defines and a better comment (Philippe)
* nvme: rename trace events to pci_nvme
- changed the prefix from nvme_dev to pci_nvme (Philippe)
* nvme: add max_ioqpairs device parameter
From: Klaus Jensen
Pull the controller memory buffer check to its own function. The check
will be used on its own in later patches.
Signed-off-by: Klaus Jensen
Acked-by: Keith Busch
Reviewed-by: Philippe Mathieu-Daudé
---
hw/block/nvme.c | 16
1 file changed, 12 insertions
From: Klaus Jensen
These break statements was left over when commit 3036a626e9ef ("nvme:
add Get/Set Feature Timestamp support") was merged.
Signed-off-by: Klaus Jensen
Acked-by: Keith Busch
Reviewed-by: Maxim Levitsky
Reviewed-by: Philippe Mathieu-Daudé
---
hw/block/nvme.c |
From: Klaus Jensen
Signed-off-by: Klaus Jensen
Reviewed-by: Philippe Mathieu-Daudé
---
hw/block/nvme.c | 7 ++-
hw/block/nvme.h | 2 --
2 files changed, 2 insertions(+), 7 deletions(-)
diff --git a/hw/block/nvme.c b/hw/block/nvme.c
index 8092c1b46eb1..44856e873fd1 100644
--- a/hw/block
From: Klaus Jensen
Signed-off-by: Klaus Jensen
---
hw/block/nvme.c | 43 ---
1 file changed, 28 insertions(+), 15 deletions(-)
diff --git a/hw/block/nvme.c b/hw/block/nvme.c
index 44856e873fd1..5f9ebbd6a1d5 100644
--- a/hw/block/nvme.c
+++ b/hw/block
From: Klaus Jensen
Move device configuration parameters to separate struct to make it
explicit what is configurable and what is set internally.
Signed-off-by: Klaus Jensen
Signed-off-by: Klaus Jensen
Acked-by: Keith Busch
Reviewed-by: Maxim Levitsky
Reviewed-by: Philippe Mathieu-Daudé
From: Klaus Jensen
Signed-off-by: Klaus Jensen
Reviewed-by: Maxim Levitsky
Reviewed-by: Philippe Mathieu-Daudé
---
hw/block/nvme.c | 8
include/block/nvme.h | 8
2 files changed, 12 insertions(+), 4 deletions(-)
diff --git a/hw/block/nvme.c b/hw/block/nvme.c
index
From: Klaus Jensen
Change the prefix of all nvme device related trace events to 'pci_nvme'
to not clash with trace events from the nvme block driver.
Signed-off-by: Klaus Jensen
---
hw/block/nvme.c | 190 +-
hw/block/trace-ev
From: Klaus Jensen
The num_queues device paramater has a slightly confusing meaning because
it accounts for the admin queue pair which is not really optional.
Secondly, it is really a maximum value of queues allowed.
Add a new max_ioqpairs parameter that only accounts for I/O queue pairs,
but
From: Klaus Jensen
The size of the BAR is 0x1000 (main registers) + 8 bytes for each
queue. Currently, the size of the BAR is calculated like so:
n->reg_size = pow2ceil(0x1004 + 2 * (n->num_queues + 1) * 4);
Since the 'num_queues' parameter already accounts for the admin qu
From: Klaus Jensen
Signed-off-by: Klaus Jensen
---
hw/block/nvme.c | 13 ++---
1 file changed, 10 insertions(+), 3 deletions(-)
diff --git a/hw/block/nvme.c b/hw/block/nvme.c
index 45a352b63d89..80da0825d295 100644
--- a/hw/block/nvme.c
+++ b/hw/block/nvme.c
@@ -1351,6 +1351,13
From: Klaus Jensen
Signed-off-by: Klaus Jensen
Reviewed-by: Philippe Mathieu-Daudé
---
hw/block/nvme.c | 49 +++--
1 file changed, 27 insertions(+), 22 deletions(-)
diff --git a/hw/block/nvme.c b/hw/block/nvme.c
index 906ae595025a..4c28d75e0fc8
From: Klaus Jensen
Introduce some small helpers to make the next patches easier on the eye.
Signed-off-by: Klaus Jensen
---
hw/block/nvme.c | 3 +--
hw/block/nvme.h | 16
2 files changed, 17 insertions(+), 2 deletions(-)
diff --git a/hw/block/nvme.c b/hw/block/nvme.c
index
From: Klaus Jensen
Signed-off-by: Klaus Jensen
---
hw/block/nvme.c | 46 ++
1 file changed, 26 insertions(+), 20 deletions(-)
diff --git a/hw/block/nvme.c b/hw/block/nvme.c
index d5244102252c..2b007115c302 100644
--- a/hw/block/nvme.c
+++ b/hw/block
From: Klaus Jensen
Signed-off-by: Klaus Jensen
Reviewed-by: Philippe Mathieu-Daudé
---
hw/block/nvme.c | 52 +++--
1 file changed, 29 insertions(+), 23 deletions(-)
diff --git a/hw/block/nvme.c b/hw/block/nvme.c
index 4c28d75e0fc8..804f24719dce
From: Klaus Jensen
Signed-off-by: Klaus Jensen
---
hw/block/nvme.c | 30 ++
1 file changed, 18 insertions(+), 12 deletions(-)
diff --git a/hw/block/nvme.c b/hw/block/nvme.c
index 2b007115c302..906ae595025a 100644
--- a/hw/block/nvme.c
+++ b/hw/block/nvme.c
From: Klaus Jensen
These break statements was left over when commit 3036a626e9ef ("nvme:
add Get/Set Feature Timestamp support") was merged.
Signed-off-by: Klaus Jensen
Reviewed-by: Maxim Levitsky
Reviewed-by: Philippe Mathieu-Daudé
Reviewed-by: Keith Busch
---
hw/block/nvme.c |
From: Klaus Jensen
Signed-off-by: Klaus Jensen
Reviewed-by: Philippe Mathieu-Daudé
Reviewed-by: Maxim Levitsky
Reviewed-by: Keith Busch
---
hw/block/nvme.c | 7 ++-
hw/block/nvme.h | 2 --
2 files changed, 2 insertions(+), 7 deletions(-)
diff --git a/hw/block/nvme.c b/hw/block/nvme.c
From: Klaus Jensen
Signed-off-by: Klaus Jensen
Reviewed-by: Maxim Levitsky
Reviewed-by: Philippe Mathieu-Daudé
Reviewed-by: Keith Busch
---
hw/block/nvme.c | 8
include/block/nvme.h | 8
2 files changed, 12 insertions(+), 4 deletions(-)
diff --git a/hw/block/nvme.c b
From: Klaus Jensen
Pull the controller memory buffer check to its own function. The check
will be used on its own in later patches.
Signed-off-by: Klaus Jensen
Reviewed-by: Philippe Mathieu-Daudé
Reviewed-by: Maxim Levitsky
Reviewed-by: Keith Busch
---
hw/block/nvme.c | 16
From: Klaus Jensen
The size of the BAR is 0x1000 (main registers) + 8 bytes for each
queue. Currently, the size of the BAR is calculated like so:
n->reg_size = pow2ceil(0x1004 + 2 * (n->num_queues + 1) * 4);
Since the 'num_queues' parameter already accounts for the admin qu
From: Klaus Jensen
Move device configuration parameters to separate struct to make it
explicit what is configurable and what is set internally.
Signed-off-by: Klaus Jensen
Signed-off-by: Klaus Jensen
---
hw/block/nvme.c | 49 -
hw/block/nvme.h
From: Klaus Jensen
The num_queues device paramater has a slightly confusing meaning because
it accounts for the admin queue pair which is not really optional.
Secondly, it is really a maximum value of queues allowed.
Add a new max_ioqpairs parameter that only accounts for I/O queue pairs,
but
201 - 300 of 2307 matches
Mail list logo