Print this page
9693 emulated NVMe controller on ESXi 6.7 fails to attach
Reviewed by: Dan Fields <dan.fields@nexenta.com>
Reviewed by: Rick McNeal <rick.mcneal@nexenta.com>
Reviewed by: Robert Mustacchi <rm@joyent.com>
*** 81,92 ****
* Namespace Support:
*
* NVMe devices can have multiple namespaces, each being a independent data
* store. The driver supports multiple namespaces and creates a blkdev interface
* for each namespace found. Namespaces can have various attributes to support
! * thin provisioning and protection information. This driver does not support
! * any of this and ignores namespaces that have these attributes.
*
* As of NVMe 1.1 namespaces can have an 64bit Extended Unique Identifier
* (EUI64). This driver uses the EUI64 if present to generate the devid and
* passes it to blkdev to use it in the device node names. As this is currently
* untested namespaces with EUI64 are ignored by default.
--- 81,92 ----
* Namespace Support:
*
* NVMe devices can have multiple namespaces, each being a independent data
* store. The driver supports multiple namespaces and creates a blkdev interface
* for each namespace found. Namespaces can have various attributes to support
! * protection information. This driver does not support any of this and ignores
! * namespaces that have these attributes.
*
* As of NVMe 1.1 namespaces can have an 64bit Extended Unique Identifier
* (EUI64). This driver uses the EUI64 if present to generate the devid and
* passes it to blkdev to use it in the device node names. As this is currently
* untested namespaces with EUI64 are ignored by default.
*** 2221,2240 ****
if (ns->ns_best_block_size < nvme->n_min_block_size)
ns->ns_best_block_size = nvme->n_min_block_size;
/*
* We currently don't support namespaces that use either:
- * - thin provisioning
* - protection information
* - illegal block size (< 512)
*/
! if (idns->id_nsfeat.f_thin ||
! idns->id_dps.dp_pinfo) {
dev_err(nvme->n_dip, CE_WARN,
! "!ignoring namespace %d, unsupported features: "
! "thin = %d, pinfo = %d", nsid,
! idns->id_nsfeat.f_thin, idns->id_dps.dp_pinfo);
ns->ns_ignore = B_TRUE;
} else if (ns->ns_block_size < 512) {
dev_err(nvme->n_dip, CE_WARN,
"!ignoring namespace %d, unsupported block size %"PRIu64,
nsid, (uint64_t)ns->ns_block_size);
--- 2221,2237 ----
if (ns->ns_best_block_size < nvme->n_min_block_size)
ns->ns_best_block_size = nvme->n_min_block_size;
/*
* We currently don't support namespaces that use either:
* - protection information
* - illegal block size (< 512)
*/
! if (idns->id_dps.dp_pinfo) {
dev_err(nvme->n_dip, CE_WARN,
! "!ignoring namespace %d, unsupported feature: "
! "pinfo = %d", nsid, idns->id_dps.dp_pinfo);
ns->ns_ignore = B_TRUE;
} else if (ns->ns_block_size < 512) {
dev_err(nvme->n_dip, CE_WARN,
"!ignoring namespace %d, unsupported block size %"PRIu64,
nsid, (uint64_t)ns->ns_block_size);