Jump to content

NVMe Express digging


jan-munich
 Share

117 posts in this topic

Recommended Posts

Thanks @Rominator for sharing and JimJ740 for your effords!

 

It felt like a pain to get into the osx infrastructure of IODevices, IOBlockstorageDevices etc. Apple Docs just helped to a certain degree for IOKit..


does your OS X also recognize disk as a external drive ?

I think thats basically an Apple Issue.

Apple is not using the proper identifiers for pci devices for starters.. (mass storage instead of nvme) for their internal ssds. As far as I understand JimJ740 had to work around some of the predefined object inheritances of the apple IOKit infrastructure to make it work.

 

maybe he likes to correct me if im wrong. :)

 

Cheers

Link to comment
Share on other sites

looks like its listed under PCI-PEG0-IOPP->PEGP.

using an own type of com_MinnowStor_NVMeDisk which is going directly over to the IOBlockStorageDriver from JimJ.

 

Im going to compare with my ioreg when i get home - curious. :-)

But its definitly tagged as build-in device <00> according to your regdump. So for the fact that its recognized as external - i think thats up to the driver then to handle that properly.

Link to comment
Share on other sites

This looks amazing! ;)

 

I can see in the FAQ that you cannot boot from the NVMe drive? So.. how do you actually use it? :)

 

you can not use it to boot on real Mac, but there is no problem on hackintosh :)

 

here you have some quick test of my intel 750 PCI-E 400GB drive

 

i750.png

Link to comment
Share on other sites

Just downloaded and tested the brilliant new driver for NVME m.2 x 4 PCIe from MacVidCards.com Checkit it out!


http://www.macvidcards.com/nvme-driver1.html


Here's their FAQ

FAQ:

Q: Is this a signed driver?
A: Yes. 

Q: What version of OS X does this driver support? 
A: 10.11

Q: Where should I install this driver?
A: /Library/Extensions – Note that the owner and group for the entire kext MUST be set to root:wheel 

Q: How do I set owner and group?
A: sudo chown –R 0:0 NVMeGeneric.kext

Q: What devices have you tested this with? 
A: Intel P3700 series, Samsung SM1715 and SM951 series

Q: Can I boot from an NVMe drive?
A: No, not until someone writes a standards compliant EFI driver for the Macintosh.

Q: Doesn’t Apple supply NVMe drivers and EFI boot ROMs for their new machines? 
A: Apple chose to make their NVMe devices and drivers non-compliant with the NVMe standard. Why they use the NVMe name for a non-compliant device and driver is a mystery.

Q: Can I use this to support an NVMe device in an external ThunderBolt enclosure like the Akitio?
A: Yes.

Q: Does this driver support hot-plug for ThunderBolt configurations?
A: yes, however it does not support hot “un-plug”. If you unplug a ThunderBolt connected NVMe device crashes may occur. Caveat Emptor!

Q: Will NVMe devices speed up my system? 
A: Maybe. It depends on your configuration and usage.

Q: What affects performance?
A: Device characteristics, hardware configuration, operating system design, and driver architecture. In particular OS X does not support MSI-X and forces CPU0 to handle all interrupts – although the workloop can distribute some of the load. Also, OS X caches heavily and does not provide a true DIRECT_IO equivalent; the combination of these factors makes many OS X benchmarks very bad at characterizing device performance – particularly so with small I/O and very fast devices.

Q: Is this safe to use?
A: Define safe… NVMe devices are just PCIe cards, and are fully electrically compatible with any system with PCIe slots. Could there be bugs in the software that cause data loss or crashes? Absolutely – but I have not encountered them.

Q: Why does my system report still say: “This computer doesn't contain any NVMExpress devices”?
A: Because system report uses Apple’s non-compliant NVMe kext infrastructure. Look under the PCI devices and you will see your NVMe device and it will indicate that the driver has been installed.

Q: What is nvme-cli?
A: This is a command line utility to issue NVMe management commands – if you don’t know what that means you can safely ignore this utility. This utility lets you define multiple namespaces on your NVMe device, as well as letting you query log pages and SMART data.

Q: Who/what is MinnowStor? What do they make and why did they create this?
A: MinnowStor is a startup that has not come out of “Stealth mode”.

Q: Will an NVMe device cause my Classic Mac Pro to overheat our wear out sooner?
A: I will break my own rule about answering only coherent, intelligent questions. It is amazing that “armchair engineers” think the cMP has poor thermal engineering – it is an extremely well designed unit. There is the assertion that the cooling is poor due to high idle temperatures on the northbridge – this is totally by design! Apple likes quiet machines… so they keep the fans low and allow chips to reach temperatures that, while safe, are markedly higher than cheap PC designs [note: this trend continues with the new iMacs and MacPros]. If this bothers you use SMC and kick the fans up a notch – with the fan speed increased my northbridge idles at 47C – much lower than the so-called “well engineered PCs”. You can overheat your northbridge – if you have broken heatsink clips, failed thermal paste, or have a huge build up of dust inside your machine.

Q: What about all the conflicting information and opinions on the internet?
A: Consider the source. There are no editors or fact checkers on the internet.

Link to comment
Share on other sites

I also can't boot from it. "Still waiting for root device".

interesting me too.

 

i tried to copy the kext to clover without success and also cloned my OS from a Samsung 850 Pro.

 

It seems Monk is still doing something differently than we do.

 

I also realized its super slow in the boot process while loading via the the 950 Pro Partition in clover - even if i use clover starting from the 850 Pro.

 

edit:

 

btw. its even slow inside of osx for me.. see screenshot.. my 850 pro runs faster than my 950 pro. (on linux i got about 1900 mb/s read)

tested with xbench as well:

post-1615419-0-51878100-1450214594_thumb.png

post-1615419-0-52365300-1450215117_thumb.png

Link to comment
Share on other sites

Got mine working as a scratch disk for DaVinci Resolve however, I did disk part in Windows before the kext came out, when the kext was released/installed I could easily use Disk Utility to format it, and its already marked active. So I guess its bootable if using Win utils Drive Management without having to clone.

Link to comment
Share on other sites

Mine shows up as internal....

 

 

As a purely technical discussion (since the driver was created solely for Apple Macintosh computers), the driver is operating as intended. It registers itself as an internal/external device since it may be attached via ThunderBolt or in an internal slot of a classic Mac Pro. On an actual Apple computer it will show up as an internal device, even if it is in an external ThunderBolt enclosure. My guess, since I do not own nor test on non-Apple computers running OS X, is that inconsistencies in the motherboard firmware/BIOS lead to the situation of some people seeing external icons as well as no presence in the pci device list of system report.

Got mine working as a scratch disk for DaVinci Resolve however, I did disk part in Windows before the kext came out, when the kext was released/installed I could easily use Disk Utility to format it, and its already marked active. So I guess its bootable if using Win utils Drive Management without having to clone.

type "man bless" from a terminal prompt.

interesting me too.

 

i tried to copy the kext to clover without success and also cloned my OS from a Samsung 850 Pro.

 

It seems Monk is still doing something differently than we do.

 

I also realized its super slow in the boot process while loading via the the 950 Pro Partition in clover - even if i use clover starting from the 850 Pro.

 

edit:

 

btw. its even slow inside of osx for me.. see screenshot.. my 850 pro runs faster than my 950 pro. (on linux i got about 1900 mb/s read)

tested with xbench as well:

I've seen very suspicious results with BlackMagic depending on CPU speed and memory configuration (e.g. speed and amount). Would be interested in knowing your platform specifications. AJA does not exhibit the same behavior, nor does FIO (which although text based and complex is a far better tool for characterizing I/O). It appears that under certain situations an interaction between BlackMagic and OS X caching results in starving the device (e.g. queue depth alternates between 0 and 1). This behavior was mentioned in the FAQ, though it did not call out BlackMagic by name.

 

P.S. I do not frequent this forum... just watching as the installed base widens. Long term Q&A will likely only happen on MacRumors as per the documentation.

Edited by jimj
Link to comment
Share on other sites

Hey all,

 

quick update:

 

Thanks again @ jimj first for your effords and following this thread from time to time.

 

I was able to get my 950Pro to boot, I reinstalled osx and have the genericnvme.kext now in clover kext other  -> but not in SLE. (maybe thats a problem for some of you?)

 

It also shows up early in the boot process so if you can't get it booting I presume its more an mobo / bios issue.

I also directly updated to 10.11.2 and everything runs fine.

 

I also run AJA to have a better comparsion as jimj mentioned blackmagic speed test does not seem to reflect proper speeds..

 

 

So all in all running smooth right know.

 

 

 

post-1615419-0-09277800-1450266636_thumb.png

  • Like 1
Link to comment
Share on other sites

 Share

×
×
  • Create New...