NVMe driver panic on Intel DC P3600 with higher than default overprovisioning set
I have a 400GB Intel DC P3600 installed in my OmniOS r151016 system. I used Intel's isdct tool under linux to set theMaximumLBA to 50% on the SSD and powercycled as instructed, booting back into OmniOS. Issuing format showed the SSD as present and reporting 186GB as it's size as anticipated. In format if you select the device the box panics, noting LBA out of range in the NVMe driver. You can also trigger this by trying to use the SSD in a zpool.
I have a crash dump
Updated by Joshua Coombs over 6 years ago
As noted I used Intel's isdct tool under CentOS 7 to make the change to the SSD.
isdct set -intelssd 0 MaximumLBA=50%
Upon success it informs you that you need to power cycle the SSD to complete the change. One power cycle later I'm in OmniOS, and as noted issuing
format and selecting the drive or trying to make a zpool out of it will result in the crash noted.
This got me curious so I booted back into CentOS and did a secure erase on the drive. As my spinning rust volumes are 4k format I decided to follow Intel's instructions to set them up as 4k devices as well. (Note, the instructions are for the older ver of the tool, correct syntax with 3.0.0 is
isdct start -intelssd 0 -nvmeformat LBAformat=3 SecureEraseSetting=0 ProtectionInformation=0 MetaDataSettings=0 ) Again, no errors within CentOS. The machine was power cycled back into OmniOS.
The drives show up,
format will let me select them. Any attempts to do real IO fails out with IO errors but no crashes. I tried to make a simple zpool with the three in my system and as noted, it failed out due to IO errors. I rebooted into CentOS and could see the partition maps Omni had laid down with fdisk, and the partition map did not have any errors, so it appears the writes did complete successfully. I redid the secure erase with LBAformat set to 0 to return to 512b sectors. As of now the drives show up as 186GB devices and work correctly under OmniOS. So it appears my initial crash is due to not doing a secure erase after changing the overprovisioning. There is still an issue with the NVMe driver and alternate block sizes however.