| 64470382 | 12-May-2023 |
Konrad Sztyber <konrad.sztyber@intel.com> |
test/external_code: set iocqes/iosqes during init
Newer versions of qemu (v8.0.0) have these values cleared, so if we don't set them, controller initialization will fail.
Fixes #3017
Signed-off-by
test/external_code: set iocqes/iosqes during init
Newer versions of qemu (v8.0.0) have these values cleared, so if we don't set them, controller initialization will fail.
Fixes #3017
Signed-off-by: Konrad Sztyber <konrad.sztyber@intel.com> Change-Id: I5c5698b1368e095fe3fc9b39e7f6081f7e013c88 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/18087 Reviewed-by: Jim Harris <james.r.harris@intel.com> Reviewed-by: Aleksey Marchuk <alexeymar@nvidia.com> Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Michal Berger <michal.berger@intel.com>
show more ...
|
| b665fd86 | 25-Feb-2021 |
Konrad Sztyber <konrad.sztyber@intel.com> |
test/external_code: out-of-tree NVMe driver tests
These tests compile the driver both as a shared object and statically linking it to the identify application. Additionally, in both configurations,
test/external_code: out-of-tree NVMe driver tests
These tests compile the driver both as a shared object and statically linking it to the identify application. Additionally, in both configurations, the app is used to list all available NVMe controllers, as well as print information about each one indivdually.
Signed-off-by: Konrad Sztyber <konrad.sztyber@intel.com> Change-Id: I127caf08acad11241bf685b392617ab4b810226b Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/6680 Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com> Reviewed-by: Jim Harris <james.r.harris@intel.com> Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Community-CI: Mellanox Build Bot
show more ...
|
| 183ac888 | 22-Feb-2021 |
Konrad Sztyber <konrad.sztyber@intel.com> |
external_code/identify: print controller identify data
The application will now print some of the fields from the identify controller data.
The code has been copied from `examples/nvme/identify`, b
external_code/identify: print controller identify data
The application will now print some of the fields from the identify controller data.
The code has been copied from `examples/nvme/identify`, but, for the sake of simplicity, trimmed down to printing reduced number of fields.
Signed-off-by: Konrad Sztyber <konrad.sztyber@intel.com> Change-Id: I838c47deffb0b877344f3cad0e88b6aca19790ea Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/6678 Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com> Reviewed-by: Jim Harris <james.r.harris@intel.com> Community-CI: Mellanox Build Bot Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
show more ...
|
| e4d271f3 | 24-Feb-2021 |
Konrad Sztyber <konrad.sztyber@intel.com> |
external_code/nvme: send identify controller during init
Now that it's possible to both submit the identify controller command and process its completion, the initialization flow has been updated to
external_code/nvme: send identify controller during init
Now that it's possible to both submit the identify controller command and process its completion, the initialization flow has been updated to issue that command and update controller's identify data (which can be retrieved via nvme_ctrlr_get_data()).
Signed-off-by: Konrad Sztyber <konrad.sztyber@intel.com> Change-Id: Iee0e85f431275a5e6f1767db1d807de7fba6cdcc Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/6677 Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com> Reviewed-by: Jim Harris <james.r.harris@intel.com> Community-CI: Mellanox Build Bot Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
show more ...
|
| 71c69ddf | 22-Feb-2021 |
Konrad Sztyber <konrad.sztyber@intel.com> |
external_code/nvme: process completion queue
Added function that check the completion queue for completed commands, executes their callbacks, and puts the associated requests back onto the free requ
external_code/nvme: process completion queue
Added function that check the completion queue for completed commands, executes their callbacks, and puts the associated requests back onto the free request queue.
Signed-off-by: Konrad Sztyber <konrad.sztyber@intel.com> Change-Id: I0f04c0d173a7058d4d4f7e59e573ce48130ff024 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/6676 Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com> Reviewed-by: Jim Harris <james.r.harris@intel.com> Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Community-CI: Mellanox Build Bot
show more ...
|
| c4d01aa5 | 22-Feb-2021 |
Konrad Sztyber <konrad.sztyber@intel.com> |
external_code/nvme: identify command submission
This patch adds code required for sending identify controller admin command. It means allocating an NVMe request, filling spdk_nvme_cmd structure, an
external_code/nvme: identify command submission
This patch adds code required for sending identify controller admin command. It means allocating an NVMe request, filling spdk_nvme_cmd structure, and submitting the command by writing the command to the submission queue and ringing the doorbell.
Signed-off-by: Konrad Sztyber <konrad.sztyber@intel.com> Change-Id: I69934213a350df03852860eeaeadc2a456c7673c Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/6675 Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com> Reviewed-by: Jim Harris <james.r.harris@intel.com> Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Community-CI: Mellanox Build Bot
show more ...
|
| 48a89ec7 | 24-Feb-2021 |
Konrad Sztyber <konrad.sztyber@intel.com> |
external_code/nvme: introduced nvme_ctrlr_get_data()
This function allows the user to retrieve the controller's identify data. Currently, that buffer is zeroed, but it'll be populated by the identi
external_code/nvme: introduced nvme_ctrlr_get_data()
This function allows the user to retrieve the controller's identify data. Currently, that buffer is zeroed, but it'll be populated by the identify command.
Signed-off-by: Konrad Sztyber <konrad.sztyber@intel.com> Change-Id: I91a99feef25ecf94c43cf144c12ac3c541c76cd9 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/6674 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Community-CI: Mellanox Build Bot Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com> Reviewed-by: Jim Harris <james.r.harris@intel.com> Reviewed-by: Ben Walker <benjamin.walker@intel.com>
show more ...
|
| 55555136 | 19-Feb-2021 |
Konrad Sztyber <konrad.sztyber@intel.com> |
external_code/nvme: basic controller initialization flow
Added a simple controller enablement state machine based on the CC.EN and CSTS.RDY bits. The admin queue registers are also filled during th
external_code/nvme: basic controller initialization flow
Added a simple controller enablement state machine based on the CC.EN and CSTS.RDY bits. The admin queue registers are also filled during this process, so it's now possible to send admin requests.
To simplify the code, there are no timeouts for a controller to transition from a specific state to the next one or for the whole initialization process. This means that if a controller gets stuck, the code will hang indefinitely too.
Signed-off-by: Konrad Sztyber <konrad.sztyber@intel.com> Change-Id: I93f5a5931d7b24780da242e601dcdf2bec5f6552 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/6673 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Community-CI: Mellanox Build Bot Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com> Reviewed-by: Jim Harris <james.r.harris@intel.com> Reviewed-by: Ben Walker <benjamin.walker@intel.com>
show more ...
|
| a2d3ea8c | 19-Feb-2021 |
Konrad Sztyber <konrad.sztyber@intel.com> |
external_code/nvme: initial controller initialization definitions
After enumerating and attaching NVMe controllers, they're now initialized at the end of nvme_probe()/nvme_connect(). For now, they'
external_code/nvme: initial controller initialization definitions
After enumerating and attaching NVMe controllers, they're now initialized at the end of nvme_probe()/nvme_connect(). For now, they're immediately marked as initialized, but subsequent patches will replace it with an actual initialization.
Signed-off-by: Konrad Sztyber <konrad.sztyber@intel.com> Change-Id: I22137bb10e871c7e79c28053c8ec98a835e11147 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/6672 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Community-CI: Mellanox Build Bot Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com> Reviewed-by: Jim Harris <james.r.harris@intel.com> Reviewed-by: Ben Walker <benjamin.walker@intel.com>
show more ...
|
| 07dc433a | 19-Feb-2021 |
Konrad Sztyber <konrad.sztyber@intel.com> |
external_code/nvme: queue pair initialization
This patch adds NVMe submission/completion queue pair definitions. These definitions are required to keep track of outstanding NVMe requests. The admin
external_code/nvme: queue pair initialization
This patch adds NVMe submission/completion queue pair definitions. These definitions are required to keep track of outstanding NVMe requests. The admin queue pair is now instantiated with the minumum number of entries (2).
Signed-off-by: Konrad Sztyber <konrad.sztyber@intel.com> Change-Id: I2ced3ce7d210408d66cc17de1e66d86b1a1dbf79 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/6671 Community-CI: Broadcom CI Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com> Reviewed-by: Jim Harris <james.r.harris@intel.com> Reviewed-by: Ben Walker <benjamin.walker@intel.com>
show more ...
|
| 210e0db7 | 18-Feb-2021 |
Konrad Sztyber <konrad.sztyber@intel.com> |
external_code/nvme: retrieve page size and doorbell stride
These values are needed for managing a submission/completion queue pair, which will be added in the subsequent patch.
Signed-off-by: Konra
external_code/nvme: retrieve page size and doorbell stride
These values are needed for managing a submission/completion queue pair, which will be added in the subsequent patch.
Signed-off-by: Konrad Sztyber <konrad.sztyber@intel.com> Change-Id: I80ac0d607160f06a13014b7dea95ae8172290aee Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/6670 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Community-CI: Mellanox Build Bot Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com> Reviewed-by: Jim Harris <james.r.harris@intel.com> Reviewed-by: Ben Walker <benjamin.walker@intel.com>
show more ...
|
| 7da17fb3 | 18-Feb-2021 |
Konrad Sztyber <konrad.sztyber@intel.com> |
external_code/nvme: enable PCIe bus master and disable INTx irqs
It allows the controller to issue memory read/writes (the bus master enable bit) and disables the ability to generate INTx interrupts
external_code/nvme: enable PCIe bus master and disable INTx irqs
It allows the controller to issue memory read/writes (the bus master enable bit) and disables the ability to generate INTx interrupts which won't be serviced.
Signed-off-by: Konrad Sztyber <konrad.sztyber@intel.com> Change-Id: I3b041f1ea7c2bc275b609afcc3d1e4f655aee4c5 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/6669 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Community-CI: Mellanox Build Bot Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com> Reviewed-by: Jim Harris <james.r.harris@intel.com> Reviewed-by: Ben Walker <benjamin.walker@intel.com>
show more ...
|
| ad9ccbbf | 02-Mar-2021 |
Konrad Sztyber <konrad.sztyber@intel.com> |
external_code/nvme: controller register access functions
Added getters/setters providing access to several of the NVMe controller's registers. Only the registers that are needed for the initializat
external_code/nvme: controller register access functions
Added getters/setters providing access to several of the NVMe controller's registers. Only the registers that are needed for the initialization are implemented.
For now all of them are unused, so they're marked as external to avoid the -Wunused-function warnings. The subsequent patches will make use of them and mark as static appropriately.
Signed-off-by: Konrad Sztyber <konrad.sztyber@intel.com> Change-Id: I7012583f74e87720f6915afca69474ad1bb1e377 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/6668 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Community-CI: Mellanox Build Bot Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com> Reviewed-by: Jim Harris <james.r.harris@intel.com> Reviewed-by: Ben Walker <benjamin.walker@intel.com>
show more ...
|
| c2ca187c | 17-Feb-2021 |
Konrad Sztyber <konrad.sztyber@intel.com> |
external_code/nvme: map controller's registers
The controller's memory register space (located in the first BAR) is now mapped. The functions for accessing individual registers from this area will
external_code/nvme: map controller's registers
The controller's memory register space (located in the first BAR) is now mapped. The functions for accessing individual registers from this area will be added in the following patch.
Signed-off-by: Konrad Sztyber <konrad.sztyber@intel.com> Change-Id: Ie5f88079a46152ba8d68e534d5e4c0c2bef84ef3 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/6667 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Community-CI: Mellanox Build Bot Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com> Reviewed-by: Jim Harris <james.r.harris@intel.com> Reviewed-by: Ben Walker <benjamin.walker@intel.com>
show more ...
|
| 86b1b71f | 24-Feb-2021 |
Konrad Sztyber <konrad.sztyber@intel.com> |
external_code/identify: use nvme_connect() if an address is provided
The identify app can now be used in two modes: - without any parameters it'll attach to all available NVMe controllers and pr
external_code/identify: use nvme_connect() if an address is provided
The identify app can now be used in two modes: - without any parameters it'll attach to all available NVMe controllers and print each one out, - with a single parameter specifying the BDF address of the controller it'll only attach and print out information about that controller.
Signed-off-by: Konrad Sztyber <konrad.sztyber@intel.com> Change-Id: I02c7a8a072f1db5fdfd428a5ab84163f26338a09 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/6666 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Community-CI: Mellanox Build Bot Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com> Reviewed-by: Jim Harris <james.r.harris@intel.com> Reviewed-by: Ben Walker <benjamin.walker@intel.com>
show more ...
|