|
Revision tags: v6.15, v6.15-rc7, v6.15-rc6, v6.15-rc5, v6.15-rc4, v6.15-rc3, v6.15-rc2, v6.15-rc1, v6.14, v6.14-rc7, v6.14-rc6, v6.14-rc5 |
|
| #
e88a7595 |
| 24-Feb-2025 |
Hannes Reinecke <[email protected]> |
nvme-tcp: request secure channel concatenation
Add a fabrics option 'concat' to request secure channel concatenation as specified the NVME Base Specification v2.1, section 8.3.4.3: Secure Channel Co
nvme-tcp: request secure channel concatenation
Add a fabrics option 'concat' to request secure channel concatenation as specified the NVME Base Specification v2.1, section 8.3.4.3: Secure Channel Concatenation. When secure channel concatenation is enabled a 'generated PSK' is inserted into the keyring such that it's available after reset.
Signed-off-by: Hannes Reinecke <[email protected]> Reviewed-by: Sagi Grimberg <[email protected]> Signed-off-by: Keith Busch <[email protected]>
show more ...
|
|
Revision tags: v6.14-rc4, v6.14-rc3 |
|
| #
d422247d |
| 13-Feb-2025 |
Damien Le Moal <[email protected]> |
nvme: Cleanup the definition of the controller config register fields
Reorganized the enum used to define the fields of the contrller configuration (CC) register in include/linux/nvme.h to: 1) Group
nvme: Cleanup the definition of the controller config register fields
Reorganized the enum used to define the fields of the contrller configuration (CC) register in include/linux/nvme.h to: 1) Group together all the values defined for each field. 2) Add the missing field masks definitions. 3) Add comments to describe the enum and each field.
Signed-off-by: Damien Le Moal <[email protected]> Reviewed-by: Chaitanya Kulkarni <[email protected]> Reviewed-by: Christoph Hellwig <[email protected]> Signed-off-by: Keith Busch <[email protected]>
show more ...
|
|
Revision tags: v6.14-rc2, v6.14-rc1, v6.13, v6.13-rc7, v6.13-rc6 |
|
| #
2f2b20fa |
| 04-Jan-2025 |
Damien Le Moal <[email protected]> |
nvmet: Implement host identifier set feature support
The NVMe specifications mandate support for the host identifier set_features for controllers that also supports reservations. Satisfy this requir
nvmet: Implement host identifier set feature support
The NVMe specifications mandate support for the host identifier set_features for controllers that also supports reservations. Satisfy this requirement by implementing handling of the NVME_FEAT_HOST_ID feature for the nvme_set_features command. This implementation is for now effective only for PCI target controllers. For other controller types, the set features command is failed with a NVME_SC_CMD_SEQ_ERROR status as before.
As noted in the code, 128 bits host identifiers are supported since the NVMe base specifications version 2.1 indicate in section 5.1.25.1.28.1 that "The controller may support a 64-bit Host Identifier...".
The RHII (Reservations and Host Identifier Interaction) bit of the controller attribute (ctratt) field of the identify controller data is also set to indicate that a host ID of "0" is supported but that the host ID must be a non-zero value to use reservations.
Signed-off-by: Damien Le Moal <[email protected]> Reviewed-by: Christoph Hellwig <[email protected]> Tested-by: Rick Wertenbroek <[email protected]> Tested-by: Manivannan Sadhasivam <[email protected]> Signed-off-by: Keith Busch <[email protected]>
show more ...
|
| #
200adac7 |
| 04-Jan-2025 |
Damien Le Moal <[email protected]> |
nvme: Add PCI transport type
Define the transport type NVMF_TRTYPE_PCI for PCI endpoint targets. This transport type is defined using the value 0 which is reserved in the NVMe base specifications v2
nvme: Add PCI transport type
Define the transport type NVMF_TRTYPE_PCI for PCI endpoint targets. This transport type is defined using the value 0 which is reserved in the NVMe base specifications v2.1 (Figure 294). Given that struct nvmet_port are zeroed out on creation, to avoid having this transsport type becoming the new default, nvmet_referral_make() and nvmet_ports_make() are modified to initialize a port discovery address transport type field (disc_addr.trtype) to NVMF_TRTYPE_MAX.
Any port using this transport type is also skipped and not reported in the discovery log page (nvmet_execute_disc_get_log_page()).
The helper function nvmet_is_pci_ctrl() is also introduced to check if a target controller uses the PCI transport.
Signed-off-by: Damien Le Moal <[email protected]> Reviewed-by: Christoph Hellwig <[email protected]> Tested-by: Rick Wertenbroek <[email protected]> Tested-by: Manivannan Sadhasivam <[email protected]> Signed-off-by: Keith Busch <[email protected]>
show more ...
|
| #
30e77e0f |
| 04-Jan-2025 |
Damien Le Moal <[email protected]> |
nvme: Move opcode string helper functions declarations
Move the declaration of all helper functions converting NVMe command opcodes and status codes into strings from drivers/nvme/host/nvme.h into i
nvme: Move opcode string helper functions declarations
Move the declaration of all helper functions converting NVMe command opcodes and status codes into strings from drivers/nvme/host/nvme.h into include/linux/nvme.h, together with the commands definitions. This allows NVMe target drivers to call these functions without having to include a host header file.
Signed-off-by: Damien Le Moal <[email protected]> Reviewed-by: Christoph Hellwig <[email protected]> Tested-by: Rick Wertenbroek <[email protected]> Tested-by: Manivannan Sadhasivam <[email protected]> Signed-off-by: Keith Busch <[email protected]>
show more ...
|
|
Revision tags: v6.13-rc5, v6.13-rc4, v6.13-rc3, v6.13-rc2, v6.13-rc1 |
|
| #
7d2f9f87 |
| 20-Nov-2024 |
Guixin Liu <[email protected]> |
nvme: introduce change ptpl and iekey definition
This is for the next tuning pr code more readble patch, make linux/nvme.h's changes separately.
Signed-off-by: Guixin Liu <[email protected]>
nvme: introduce change ptpl and iekey definition
This is for the next tuning pr code more readble patch, make linux/nvme.h's changes separately.
Signed-off-by: Guixin Liu <[email protected]> Reviewed-by: Christoph Hellwig <[email protected]> Signed-off-by: Keith Busch <[email protected]>
show more ...
|
|
Revision tags: v6.12 |
|
| #
6399a0db |
| 13-Nov-2024 |
Keith Busch <[email protected]> |
nvme: define the remaining used sgls constants
This provides a little more context when reading the code than hardcoded magic numbers.
Reviewed-by: Christoph Hellwig <[email protected]> Signed-off-by: Kei
nvme: define the remaining used sgls constants
This provides a little more context when reading the code than hardcoded magic numbers.
Reviewed-by: Christoph Hellwig <[email protected]> Signed-off-by: Keith Busch <[email protected]>
show more ...
|
| #
979c6342 |
| 15-Nov-2024 |
Keith Busch <[email protected]> |
nvme-pci: add support for sgl metadata
Supporting this mode allows creating and merging multi-segment metadata requests that wouldn't be possible otherwise. It also allows directly using user space
nvme-pci: add support for sgl metadata
Supporting this mode allows creating and merging multi-segment metadata requests that wouldn't be possible otherwise. It also allows directly using user space requests that straddle physically discontiguous pages.
Reviewed-by: Christoph Hellwig <[email protected]> Signed-off-by: Keith Busch <[email protected]>
show more ...
|
|
Revision tags: v6.12-rc7 |
|
| #
8a825d22 |
| 04-Nov-2024 |
Guixin Liu <[email protected]> |
nvme: check ns's volatile write cache not present
When the VWC of a namespace does not exist, the BLK_FEAT_WRITE_CACHE flag should not be set when registering the block device, regardless of whether
nvme: check ns's volatile write cache not present
When the VWC of a namespace does not exist, the BLK_FEAT_WRITE_CACHE flag should not be set when registering the block device, regardless of whether the controller supports VWC.
Signed-off-by: Guixin Liu <[email protected]> Reviewed-by: Christoph Hellwig <[email protected]> Signed-off-by: Keith Busch <[email protected]>
show more ...
|
|
Revision tags: v6.12-rc6 |
|
| #
e2758c76 |
| 01-Nov-2024 |
Keith Busch <[email protected]> |
nvmet: support for csi identify ns
Implements reporting the I/O Command Set Independent Identify Namespace command.
Reviewed-by: Christoph Hellwig <[email protected]> Signed-off-by: Keith Busch <kbusch@ke
nvmet: support for csi identify ns
Implements reporting the I/O Command Set Independent Identify Namespace command.
Reviewed-by: Christoph Hellwig <[email protected]> Signed-off-by: Keith Busch <[email protected]>
show more ...
|
| #
5fd075cd |
| 01-Nov-2024 |
Keith Busch <[email protected]> |
nvmet: implement rotational media information log
Most of the information is stubbed. Supporting these commands is a requirement for supporting rotational media.
Reviewed-by: Christoph Hellwig <hch
nvmet: implement rotational media information log
Most of the information is stubbed. Supporting these commands is a requirement for supporting rotational media.
Reviewed-by: Christoph Hellwig <[email protected]> Signed-off-by: Keith Busch <[email protected]>
show more ...
|
| #
266b652c |
| 01-Nov-2024 |
Keith Busch <[email protected]> |
nvmet: implement endurance groups
Most of the returned information is just stubbed data. The target must support these in order to report rotational media. Since this driver doesn't know any better,
nvmet: implement endurance groups
Most of the returned information is just stubbed data. The target must support these in order to report rotational media. Since this driver doesn't know any better, each namespace is its own endurance group with the engid value matching the nsid.
Reviewed-by: Christoph Hellwig <[email protected]> Signed-off-by: Keith Busch <[email protected]>
show more ...
|
| #
e973c917 |
| 04-Nov-2024 |
Keith Busch <[email protected]> |
nvmet: implement supported features log
This log is required for nvme 2.1.
Reviewed-by: Matias Bjørling <[email protected]> Reviewed-by: Christoph Hellwig <[email protected]> Signed-off-by: Keith Bu
nvmet: implement supported features log
This log is required for nvme 2.1.
Reviewed-by: Matias Bjørling <[email protected]> Reviewed-by: Christoph Hellwig <[email protected]> Signed-off-by: Keith Busch <[email protected]>
show more ...
|
| #
83acb24e |
| 04-Nov-2024 |
Keith Busch <[email protected]> |
nvmet: implement supported log pages
This log is required for nvme 2.1.
Reviewed-by: Matias Bjørling <[email protected]> Reviewed-by: Christoph Hellwig <[email protected]> Signed-off-by: Keith Busch
nvmet: implement supported log pages
This log is required for nvme 2.1.
Reviewed-by: Matias Bjørling <[email protected]> Reviewed-by: Christoph Hellwig <[email protected]> Signed-off-by: Keith Busch <[email protected]>
show more ...
|
| #
61c9967c |
| 04-Nov-2024 |
Keith Busch <[email protected]> |
nvmet: implement active command set ns list
This is required for nvme 2.1 for targets that support multiple command sets. We support NVM and ZNS, so are required to support this identification.
Rev
nvmet: implement active command set ns list
This is required for nvme 2.1 for targets that support multiple command sets. We support NVM and ZNS, so are required to support this identification.
Reviewed-by: Chaitanya Kulkarni <[email protected]> Reviewed-by: Christoph Hellwig <[email protected]> Reviewed-by: Matias Bjørling <[email protected]> Signed-off-by: Keith Busch <[email protected]>
show more ...
|
| #
5a47c208 |
| 06-Nov-2024 |
Guixin Liu <[email protected]> |
nvmet: support reservation feature
This patch implements the reservation feature, including: 1. reservation register(register, unregister and replace). 2. reservation acquire(acquire, preempt, p
nvmet: support reservation feature
This patch implements the reservation feature, including: 1. reservation register(register, unregister and replace). 2. reservation acquire(acquire, preempt, preempt and abort). 3. reservation release(release and clear). 4. reservation report. 5. set feature and get feature of reservation notify mask. 6. get log page of reservation event.
Not supported: 1. persistent reservation through power loss.
Test cases: Use nvme-cli and fio to test all implemented sub features: 1. use nvme resv-register to register host a registrant or unregister or replace a new key. 2. use nvme resv-acquire to set host to the holder, and use fio to send read and write io in all reservation type. And also test preempt and "preempt and abort". 3. use nvme resv-report to show all registrants and reservation status. 4. use nvme resv-release to release all registrants. 5. use nvme get-log to get events generated by the preceding operations.
In addition, make reservation configurable, one can set ns to support reservation before enable ns. The default of resv_enable is false.
Signed-off-by: Guixin Liu <[email protected]> Reviewed-by: Dmitry Bogdanov <[email protected]> Reviewed-by: Christoph Hellwig <[email protected]> Tested-by: Chaitanya Kulkarni <[email protected]> Reviewed-by: Chaitanya Kulkarni <[email protected]> Signed-off-by: Keith Busch <[email protected]>
show more ...
|
| #
1900e1a4 |
| 06-Nov-2024 |
Guixin Liu <[email protected]> |
nvme: add reservation command's defines
This is a preparation patch for NVMeOF target reservation commands implantation. Add the defines of reservation command, such as reservation log and sub opera
nvme: add reservation command's defines
This is a preparation patch for NVMeOF target reservation commands implantation. Add the defines of reservation command, such as reservation log and sub operations.
Signed-off-by: Guixin Liu <[email protected]> Tested-by: Chaitanya Kulkarni <[email protected]> Reviewed-by: Chaitanya Kulkarni <[email protected]> Reviewed-by: Christoph Hellwig <[email protected]> Signed-off-by: Keith Busch <[email protected]>
show more ...
|
|
Revision tags: v6.12-rc5, v6.12-rc4, v6.12-rc3, v6.12-rc2, v6.12-rc1, v6.11, v6.11-rc7, v6.11-rc6 |
|
| #
cead0b89 |
| 26-Aug-2024 |
Anuj Gupta <[email protected]> |
nvme: rename apptag and appmask to lbat and lbatm
Rename apptag and appmask to lbat and lbatm so that it matches the field names used in NVMe spec.
Signed-off-by: Anuj Gupta <[email protected]>
nvme: rename apptag and appmask to lbat and lbatm
Rename apptag and appmask to lbat and lbatm so that it matches the field names used in NVMe spec.
Signed-off-by: Anuj Gupta <[email protected]> Signed-off-by: Kanchan Joshi <[email protected]> Suggested-by: Christoph Hellwig <[email protected]> Reviewed-by: Sagi Grimberg <[email protected]> Signed-off-by: Keith Busch <[email protected]>
show more ...
|
|
Revision tags: v6.11-rc5, v6.11-rc4, v6.11-rc3, v6.11-rc2, v6.11-rc1 |
|
| #
415fb383 |
| 15-Jul-2024 |
Francis Pravin <[email protected]> |
nvme-core: choose PIF from QPIF if QPIFS supports and PIF is QTYPE
As per TP4141a: "If the Qualified Protection Information Format Support(QPIFS) bit is set to 1 and the Protection Information Forma
nvme-core: choose PIF from QPIF if QPIFS supports and PIF is QTYPE
As per TP4141a: "If the Qualified Protection Information Format Support(QPIFS) bit is set to 1 and the Protection Information Format(PIF) field is set to 11b (i.e., Qualified Type), then the pif is as defined in the Qualified Protection Information Format (QPIF) field." So, choose PIF from QPIF if QPIFS supports and PIF is QTYPE.
Signed-off-by: Francis Pravin <[email protected]> Reviewed-by: Sagi Grimberg <[email protected]> Reviewed-by: Christoph Hellwig <[email protected]> Signed-off-by: Keith Busch <[email protected]>
show more ...
|
|
Revision tags: v6.10, v6.10-rc7, v6.10-rc6 |
|
| #
210b1f65 |
| 24-Jun-2024 |
Keith Busch <[email protected]> |
nvme-pci: do not directly handle subsys reset fallout
Scheduling reset_work after a nvme subsystem reset is expected to fail on pcie, but this also prevents potential handling the platform's pcie se
nvme-pci: do not directly handle subsys reset fallout
Scheduling reset_work after a nvme subsystem reset is expected to fail on pcie, but this also prevents potential handling the platform's pcie services may provide that might successfully recovering the link without re-enumeration. Such examples include AER, DPC, and power's EEH.
Provide a pci specific operation that safely initiates a subsystem reset, and instead of scheduling reset work, read back the status register to trigger a pcie read error.
Since this only affects pci, the other fabrics drivers subscribe to a generic nvmf subsystem reset that is exactly the same as before. The loop fabric doesn't use it because nvmet doesn't support setting that property anyway.
And since we're using the magic NSSR value in two places now, provide a symbolic define for it.
Reported-by: Nilay Shroff <[email protected]> Reviewed-by: Christoph Hellwig <[email protected]> Signed-off-by: Keith Busch <[email protected]>
show more ...
|
|
Revision tags: v6.10-rc5, v6.10-rc4, v6.10-rc3 |
|
| #
dd0b0a4a |
| 03-Jun-2024 |
Weiwen Hu <[email protected]> |
nvme: rename CDR/MORE/DNR to NVME_STATUS_*
CDR/MORE/DNR fields are not belonging to SC in the NVMe spec, rename them to NVME_STATUS_* to avoid confusion.
Signed-off-by: Weiwen Hu <[email protected]
nvme: rename CDR/MORE/DNR to NVME_STATUS_*
CDR/MORE/DNR fields are not belonging to SC in the NVMe spec, rename them to NVME_STATUS_* to avoid confusion.
Signed-off-by: Weiwen Hu <[email protected]> Reviewed-by: Sagi Grimberg <[email protected]> Reviewed-by: Chaitanya Kulkarni <[email protected]> Reviewed-by: Christoph Hellwig <[email protected]> Signed-off-by: Keith Busch <[email protected]>
show more ...
|
| #
d89a5c67 |
| 03-Jun-2024 |
Weiwen Hu <[email protected]> |
nvme: fix status magic numbers
Replaced some magic numbers about SC and SCT with enum and macro.
Signed-off-by: Weiwen Hu <[email protected]> Reviewed-by: Sagi Grimberg <[email protected]>
nvme: fix status magic numbers
Replaced some magic numbers about SC and SCT with enum and macro.
Signed-off-by: Weiwen Hu <[email protected]> Reviewed-by: Sagi Grimberg <[email protected]> Reviewed-by: Chaitanya Kulkarni <[email protected]> Reviewed-by: Christoph Hellwig <[email protected]> Signed-off-by: Keith Busch <[email protected]>
show more ...
|
| #
0f1f5803 |
| 17-Jun-2024 |
Hannes Reinecke <[email protected]> |
nvmet: make 'tsas' attribute idempotent for RDMA
The RDMA transport defines values for TSAS, but it cannot be changed as we only support the 'connected' mode. So to avoid errors during reconfigurati
nvmet: make 'tsas' attribute idempotent for RDMA
The RDMA transport defines values for TSAS, but it cannot be changed as we only support the 'connected' mode. So to avoid errors during reconfiguration we should allow to write the current value.
Fixes: 3f123494db72 ("nvmet: make TCP sectype settable via configfs") Signed-off-by: Hannes Reinecke <[email protected]> Reviewed-by: Christoph Hellwig <[email protected]> Signed-off-by: Keith Busch <[email protected]>
show more ...
|
| #
f80a55fa |
| 17-Jun-2024 |
Hannes Reinecke <[email protected]> |
nvme: fixup comment for nvme RDMA Provider Type
PRTYPE is the provider type, not the QP service type.
Fixes: eb793e2c9286 ("nvme.h: add NVMe over Fabrics definitions") Signed-off-by: Hannes Reineck
nvme: fixup comment for nvme RDMA Provider Type
PRTYPE is the provider type, not the QP service type.
Fixes: eb793e2c9286 ("nvme.h: add NVMe over Fabrics definitions") Signed-off-by: Hannes Reinecke <[email protected]> Reviewed-by: Christoph Hellwig <[email protected]> Signed-off-by: Keith Busch <[email protected]>
show more ...
|
|
Revision tags: v6.10-rc2, v6.10-rc1, v6.9, v6.9-rc7, v6.9-rc6, v6.9-rc5, v6.9-rc4, v6.9-rc3, v6.9-rc2, v6.9-rc1, v6.8, v6.8-rc7, v6.8-rc6, v6.8-rc5, v6.8-rc4, v6.8-rc3, v6.8-rc2 |
|
| #
25802f3a |
| 23-Jan-2024 |
Max Gurtovoy <[email protected]> |
nvme-rdma: move NVME_RDMA_IP_PORT from common file
The correct place for this definition is the nvme rdma header file and not the common nvme header file.
Reviewed-by: Christoph Hellwig <[email protected]
nvme-rdma: move NVME_RDMA_IP_PORT from common file
The correct place for this definition is the nvme rdma header file and not the common nvme header file.
Reviewed-by: Christoph Hellwig <[email protected]> Reviewed-by: Israel Rukshin <[email protected]> Reviewed-by: Sagi Grimberg <[email protected]> Signed-off-by: Max Gurtovoy <[email protected]> Signed-off-by: Keith Busch <[email protected]>
show more ...
|