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);