Contribute
Register

M.2 Samsung 950 PRO SSD NVMe

Status
Not open for further replies.
You quoted a message from April, but the message that shows the system seeing the NVMe drive as internal was from this week. Reread #67 and follow the link. After removing NVMeGeneric.kext, applying the NVMeFamily patch settings to config.plist, and restarting, the NVMe drives should appear in System Profiler and will show that TRIM is enabled.

Ok you are right :)
In his blog post - the one you are referring to - Pike says there are some clover-patches not working as expected. So I supposed the whole patch was not working :think:
Tomorrow I'll take a closer look, but anyway the current Pike's patch is ok, right?

Thank you.
 
I haven't verified if there is a problem with some of the patch strings. I'll check later. It's currently working well enough for me at the moment though.
 
I've read the thread... there may be issues but it's not clear if the patch currently posted for Clover config.plist is affected...
Anyway... I've applied it, removed NVMeGeneric.kext and rebooted.
Now my NVMe drive 950 PRO is seen as internal on the NVMExpress Device tree.
View media item 187102
Performances are ... well ... very good :)
Random numbers are the most exciting IMHO.
Still testing for stability, just to be sure!

Code:
    File size set to 20971520 kB
    Record Size 16 kB
    Command line used: ./iozone -i 0 -i 1 -i 2 -s 20g -r 16k -l 2 -u 2 -F current/t1.out  current/t2.out
    Output is in kBytes/sec
    Time Resolution = 0.000001 seconds.
    Processor cache size set to 1024 kBytes.
    Processor cache line size set to 32 bytes.
    File stride size set to 17 * record size.
    Min process = 2
    Max process = 2
    Throughput test with 2 processes
    Each process writes a 20971520 kByte file in 16 kByte records

    Children see throughput for  2 initial writers     = 1496750.56 kB/sec
    Parent sees throughput for  2 initial writers     = 1495301.20 kB/sec
    Min throughput per process             =  748024.50 kB/sec
    Max throughput per process             =  748726.06 kB/sec
    Avg throughput per process             =  748375.28 kB/sec
    Min xfer                     = 20952080.00 kB

    Children see throughput for  2 rewriters     = 1486203.19 kB/sec
    Parent sees throughput for  2 rewriters     = 1485632.33 kB/sec
    Min throughput per process             =  735974.00 kB/sec
    Max throughput per process             =  750229.19 kB/sec
    Avg throughput per process             =  743101.59 kB/sec
    Min xfer                     = 20573200.00 kB

    Children see throughput for  2 readers         = 1557655.56 kB/sec
    Parent sees throughput for  2 readers         = 1557581.61 kB/sec
    Min throughput per process             =  778793.31 kB/sec
    Max throughput per process             =  778862.25 kB/sec
    Avg throughput per process             =  778827.78 kB/sec
    Min xfer                     = 20969712.00 kB

    Children see throughput for 2 re-readers     = 1558146.69 kB/sec
    Parent sees throughput for 2 re-readers     = 1558136.77 kB/sec
    Min throughput per process             =  779036.00 kB/sec
    Max throughput per process             =  779110.69 kB/sec
    Avg throughput per process             =  779073.34 kB/sec
    Min xfer                     = 20969488.00 kB

    Children see throughput for 2 random readers     =  358681.94 kB/sec
    Parent sees throughput for 2 random readers     =  358678.60 kB/sec
    Min throughput per process             =  179226.08 kB/sec
    Max throughput per process             =  179455.86 kB/sec
    Avg throughput per process             =  179340.97 kB/sec
    Min xfer                     = 20944672.00 kB

    Children see throughput for 2 random writers     =  299576.02 kB/sec
    Parent sees throughput for 2 random writers     =  299157.45 kB/sec
    Min throughput per process             =  149576.73 kB/sec
    Max throughput per process             =  149999.28 kB/sec
    Avg throughput per process             =  149788.01 kB/sec
    Min xfer                     = 20912448.00 kB
 
Hi everyone -seems like there is a few M2 specialists on here?

I have a Samsung 950 M2 and my system (i7 Skylake/Z170-MX Gigabyte Mobo) "pauses" with a beach ball about every 5 mins or so for about say 20 seconds at a time (see attached log) and there is something about NVMe Generic in the log when it happens?

Starngley if you're in finder when this happens, you can still click on and use another app like Safari; and vice versa if it pauses using say Quicktime you can open other stuff like finder? Strange.

Any ideas? many thanks in advance.
 

Attachments

  • Error.log.zip
    2.1 KB · Views: 110
Hi everyone -seems like there is a few M2 specialists on here?

I have a Samsung 950 M2 and my system (i7 Skylake/Z170-MX Gigabyte Mobo) "pauses" with a beach ball about every 5 mins or so for about say 20 seconds at a time (see attached log) and there is something about NVMe Generic in the log when it happens?

Starngley if you're in finder when this happens, you can still click on and use another app like Safari; and vice versa if it pauses using say Quicktime you can open other stuff like finder? Strange.

Any ideas? many thanks in advance.

I've never seen that with NVMeGeneric and Samsung 950 Pro.

Anyway, we use the Mac OS X included drivers (IONVMeFamily) with Pike's patches now because NVMeGeneric has other problems such as crashing 75% of the time at shutdown.
 
I've never seen that with NVMeGeneric and Samsung 950 Pro.

Anyway, we use the Mac OS X included drivers (IONVMeFamily) with Pike's patches now because NVMeGeneric has other problems such as crashing 75% of the time at shutdown.

This sounds like a plan joevt! But would you mind explaining how a relative noob like me reverts to this driver and inserts the patches please? I've got this far so I'm not TOO bad (I can use clover editor etc if told what to put where!) so you wouldn't have to put it like total noob! LOL
 
Move NVMeGeneric.kext from wherever it is to a different folder on the same disk which is not used by the loading process.

So if it's in /System/Library/Extensions or /Library/Extensions then
Code:
sudo mkdir /KextsRemoved
sudo mv /System/Library/Extensions/NVMeGeneric.kext /KextsRemoved

If it's in /Volumes/EFI/EFI/CLOVER/kexts/10.11 then
Code:
mkdir /Volumes/EFI/KextsRemoved
mv /Volumes/EFI/EFI/CLOVER/kexts/10.11/NVMeGeneric.kext /Volumes/EFI/KextsRemoved

Keeping a copy will let you move the kext back if you want to use it again.

It would probably be simplest to open config.plist in a text editor and paste the patches in manually. Inside config.plist is a key named "KernelAndKextPatches" which is a "dict". Inside the "dict" is a key "KextsToPatch" which is an "array". The patches go inside the "array". Each patch is a "dict" with the following keys: "Comment", "Name", "Find", "Replace" and sometimes "Disable". Save changes when you're done. Use plutil to make sure the config.plist is still a valid plist:
Code:
plutil /Volumes/EFI/EFI/CLOVER/config.plist
 
Move NVMeGeneric.kext from wherever it is to a different folder on the same disk which is not used by the loading process.

So if it's in /System/Library/Extensions or /Library/Extensions then
Code:
sudo mkdir /KextsRemoved
sudo mv /System/Library/Extensions/NVMeGeneric.kext /KextsRemoved

If it's in /Volumes/EFI/EFI/CLOVER/kexts/10.11 then
Code:
mkdir /Volumes/EFI/KextsRemoved
mv /Volumes/EFI/EFI/CLOVER/kexts/10.11/NVMeGeneric.kext /Volumes/EFI/KextsRemoved

Keeping a copy will let you move the kext back if you want to use it again.

It would probably be simplest to open config.plist in a text editor and paste the patches in manually. Inside config.plist is a key named "KernelAndKextPatches" which is a "dict". Inside the "dict" is a key "KextsToPatch" which is an "array". The patches go inside the "array". Each patch is a "dict" with the following keys: "Comment", "Name", "Find", "Replace" and sometimes "Disable". Save changes when you're done. Use plutil to make sure the config.plist is still a valid plist:
Code:
plutil /Volumes/EFI/EFI/CLOVER/config.plist

And the commands above done in TERMINAL yeh? (sorry windows man used to CMD)

So the patches (from Pike's) are copied and pasted AS IS inside the "KextsToPatch" array and the config.plist re-saved? Am I correct in thinking I go into OS X using my setup USB or can I just go straight into OS X then start using a text editor on config.plist?

Many thanks
 
And the commands above done in TERMINAL yeh? (sorry windows man used to CMD)

So the patches (from Pike's) are copied and pasted AS IS inside the "KextsToPatch" array and the config.plist re-saved? Am I correct in thinking I go into OS X using my setup USB or can I just go straight into OS X then start using a text editor on config.plist?

Many thanks

See here for creating patched IONVMeFamily...

https://github.com/RehabMan/patch-nvme
 
See here for creating patched IONVMeFamily...

https://github.com/RehabMan/patch-nvme

Sorry I'm not that dumb, but in this case you have to spell it out for me - so I can do it THIS way OR use joevt's way either will produce the same result? The confusing bit for me is where it says "It will not interfere with IONVMeFamily.kext and system updates will not change it" which is making me think I need to do both?
 
Status
Not open for further replies.
Back
Top