Coder Social home page Coder Social logo

nvme's People

Contributors

cuiwc avatar harderock avatar helloworld-yuz avatar pengraware avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

nvme's Issues

Intel DC 3600 NVME not showing delete support under ESXi 6

see also
[(https://communities.intel.com/thread/97954?start=0&tstart=0)]

#esxcli storage core device vaai status get
t10.NVMe____INTEL_SSDPEDME400G4_*******__00000001
   VAAI Plugin Name:
   ATS Status: unsupported
   Clone Status: unsupported
   Zero Status: unsupported
   Delete Status: unsupported

nvme:nvmeCoreLogError:333

nvme-1.2.0.27-4vmw.550.0.0.1331820.x86_64.vib
6.0 U2
HP Microserver Gen8
INTEL NVME P3600

dmesg:

2016-05-22T10:07:33.017Z cpu0:35374)nvme:nvmeCoreLogError:333:command failed: 0x4302fea0d040.
2016-05-22T10:09:44.427Z cpu0:33196)nvme:nvmeCoreLogError:333:command failed: 0x4302fea0d540.
2016-05-22T10:11:45.263Z cpu0:32781)nvme:nvmeCoreLogError:333:command failed: 0x4302fea0da40.
2016-05-22T10:13:46.020Z cpu0:35374)nvme:nvmeCoreLogError:333:command failed: 0x4302fea0df40.
2016-05-22T10:15:46.521Z cpu0:35374)nvme:nvmeCoreLogError:333:command failed: 0x4302fea0e440.

After removing partitions and detach:
2016-05-22T10:38:56.275Z cpu1:34322 opID=6d0c3e71)ScsiDevice: 1741: Device t10.NVMe____INTEL_SSDPEDME400G4_____________________CVMD517401J4400AGN__00000001  has been turned off administratively.
2016-05-22T10:39:57.151Z cpu0:35374)nvme:nvmeCoreLogError:333:command failed: 0x4302fea12180.
2016-05-22T10:41:58.321Z cpu0:33198)nvme:nvmeCoreLogError:333:command failed: 0x4302fea12680.
2016-05-22T10:43:59.370Z cpu0:32781)nvme:nvmeCoreLogError:333:command failed: 0x4302fea12b80.
2016-05-22T10:45:59.979Z cpu0:35374)nvme:nvmeCoreLogError:333:command failed: 0x4302fea13080.
2016-05-22T10:48:00.980Z cpu0:39425)nvme:nvmeCoreLogError:333:command failed: 0x4302fea13580.
2016-05-22T10:50:01.576Z cpu0:39571)nvme:nvmeCoreLogError:333:command failed: 0x4302fea13a80.
2016-05-22T10:52:02.080Z cpu0:35371)nvme:nvmeCoreLogError:333:command failed: 0x4302fea13f80.


Slow boot due to improper controller activation sequence

Invalid controller activation sequences causes slow boot

In nvme_ctrlr.c:NvmeCtrlr_HwStart(), the controller is disabled, enabled, disabled again and finally enabled for good.
The first enable appears to be for QEMU, as the following comment appears before the code:

/*
* Note: on the Qemu emulator, simply write NVME_CC_ENABLE (0x1) to
* (regs + NVME_CC) is not enough to bring controller to RDY state.
* IOSQES and IOCQES has to be set to bring the controller to RDY
* state for the initial reset.
*/

This first enable sequence is done before the admin queu attributes are setup. According to the NVMe spec, enabling the controller before the Admin queue attributes are set will produce undefined results. On the HGST SN100 series SSDs, the results are the the controller enable is ignored. The driver will detect this as a timeout as CSTS.RDY is never set. The SN100 series drives hae a CAP.TO (Timeout) value indicating a 128 seconds.

The driver will continue and the device will come up, but the 128 second timeout delays the host boot. In hosts with multiple SN100 SSDs, the boot is delayed by by 128 times the number of devices.

I believe that copying the admin queue setup code from the next controller enable sequence to the first enable sequence will fix this.

i.e. the following code should be copied and inserted right after the qemu comment:

/* Set admin queue depth of completion and submission */
aqa = (sqInfo->qsize - 1) << NVME_AQA_SQS_LSB;
aqa |= (qinfo->qsize - 1) << NVME_AQA_CQS_LSB;

/* Set admin queue attributes */
Nvme_Writel(aqa, (regs + NVME_AQA));
Nvme_Writeq(qinfo->compqPhy, (regs + NVME_ACQ));
Nvme_Writeq(sqInfo->subqPhy, (regs + NVME_ASQ));

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.