Jump to content

NVME SSD Intel 600p slow - 10.13.3


viktr
 Share

6 posts in this topic

Recommended Posts

Hi,

 

I've got the intel 600p M.2 1024gb ssd and installed it as a second drive. High sierra 10.13.3 become very slow and even unresponsive when I copy a large amout of data to it - the more data copied, the slower it is and I see the kernel task consuming cpu, but not too much - about 70-80%. After 100-200 gb the whole system hangs and I see nothing in the logs (probably I just don't realize what shall I look for). It has 512 bytes sector size and, as Intel said, it cannot be changed. Not sure it is the source of the problem, but anyway - is it possible to use it with high sierra 10.13.3 at all?

 

Thank you!

Link to comment
Share on other sites

well, i dont know what you call SLOW. my NVME something betwen 550W and 1500R on 5Gb file. and btw, this nvme have 2 memory chip, one TLC, that its actualy our SSD and another MLC for cache. MLC its faster over TLC. thats maibe explain something.

Edited by MICKHAEL
add
  • Like 1
Link to comment
Share on other sites

6 hours ago, MICKHAEL said:

well, i dont know what you call SLOW. my NVME something betwen 550W and 1500R on 5Gb file. and btw, this nvme have 2 memory chip, one TLC, that its actualy our SSD and another MLC for cache. MLC its faster over TLC. thats maibe explain something.

Slow it's when mouse hardly moves - I move mouse on the pad but cursor moves 3-5 seconds later. And then, after a large volume of data copied, the whole system becomes fully unresponsive and I have to press reset in order to reboot.

I don't mean the speed is not so fast as I wanted, it's really SLOW and whole system is slow, copy speed falls as low as 3-5kbps but starting speed is 250-300 mbps and characters appears on the screen several seconds after key was pressed.

Could you please tell me, did you perform any config for your ssd? Maybe kexts, ssdt patches, anything? I updated it's firmware to the latest but no results. Even more, I installed win10 on it for dual boot, and formatted it as ntfs, but the problem persists and even ntfs behaves the same - fast at the start, then slower and slower... Under win10 everything is working just fine though.

Edited by viktr
Link to comment
Share on other sites

Slow it's when mouse hardly moves - I move mouse on the pad but cursor moves 3-5 seconds later. And then, after a large volume of data copied, the whole system becomes fully unresponsive and I have to press reset in order to reboot.
I don't mean the speed is not so fast as I wanted, it's really SLOW and whole system is slow, copy speed falls as low as 3-5kbps but starting speed is 250-300 mbps and characters appears on the screen several seconds after key was pressed.
Could you please tell me, did you perform any config for your ssd? Maybe kexts, ssdt patches, anything? I updated it's firmware to the latest but no results. Even more, I installed win10 on it for dual boot, and formatted it as ntfs, but the problem persists and even ntfs behaves the same - fast at the start, then slower and slower... Under win10 everything is working just fine though.
Hello. Well, on High Sierra, no kext and workout any patch, it's just working. Only patch I use, it's on DSDT to display nvme as internal. And, my drive it's only for system, don't copy so large amount of data... 
  • Thanks 1
Link to comment
Share on other sites

9 hours ago, MICKHAEL said:
15 hours ago, viktr said:
Slow it's when mouse hardly moves - I move mouse on the pad but cursor moves 3-5 seconds later. And then, after a large volume of data copied, the whole system becomes fully unresponsive and I have to press reset in order to reboot.
I don't mean the speed is not so fast as I wanted, it's really SLOW and whole system is slow, copy speed falls as low as 3-5kbps but starting speed is 250-300 mbps and characters appears on the screen several seconds after key was pressed.
Could you please tell me, did you perform any config for your ssd? Maybe kexts, ssdt patches, anything? I updated it's firmware to the latest but no results. Even more, I installed win10 on it for dual boot, and formatted it as ntfs, but the problem persists and even ntfs behaves the same - fast at the start, then slower and slower... Under win10 everything is working just fine though.

Hello. Well, on High Sierra, no kext and workout any patch, it's just working. Only patch I use, it's on DSDT to display nvme as internal. And, my drive it's only for system, don't copy so large amount of data... 

What patch? Pls show me, did you renamed it?

I upgraded mb bios, dunno, but looks like it's a bit better now, maybe it was a bios problem, although I have no idea how bios could influence.

Ty!

Link to comment
Share on other sites

2 hours ago, viktr said:

What patch? Pls show me, did you renamed it?

I upgraded mb bios, dunno, but looks like it's a bit better now, maybe it was a bios problem, although I have no idea how bios could influence.

Ty!

            Device (BR1B)
            {
                Name (_ADR, 0x00010001)  // _ADR: Address
                OperationRegion (MCTL, SystemMemory, 0x6001B188, 0x04)
                Field (MCTL, ByteAcc, NoLock, Preserve)
                {
                        ,   3, 
                    HGPE,   1, 
                        ,   7, 
                        ,   8, 
                        ,   8
                }

                Name (_HPP, Package (0x04)  // _HPP: Hot Plug Parameters
                {
                    0x08, 
                    0x40, 
                    One, 
                    Zero
                })
                Name (SHPC, 0x40)
                Name (SPDS, 0x40)
                Name (MRLS, Zero)
                Name (CCOM, 0x10)
                Name (SPDC, 0x08)
                Name (MRLC, 0x04)
                Name (SPFD, 0x02)
                Name (SABP, One)
                Name (SPOF, 0x10)
                Name (SPON, 0x0F)
                Name (ALMK, 0x1C)
                Name (ALON, One)
                Name (ALBL, 0x02)
                Name (ALOF, 0x03)
                Name (PLMK, 0x13)
                Name (PLON, 0x04)
                Name (PLBL, 0x08)
                Name (PLOF, 0x0C)
                Name (HPEV, 0x0F)
                OperationRegion (PPA4, PCI_Config, Zero, 0x0100)
                Field (PPA4, ByteAcc, NoLock, Preserve)
                {
                    Offset (0xA0), 
                        ,   4, 
                    LDIS,   1, 
                    Offset (0xA2), 
                    Offset (0xA4), 
                    ATBP,   1, 
                        ,   1, 
                    MRSP,   1, 
                    ATIP,   1, 
                    PWIP,   1, 
                    HPSR,   1, 
                    HPCP,   1, 
                        ,   12, 
                    PSNM,   13, 
                    ABIE,   1, 
                    PFIE,   1, 
                    MSIE,   1, 
                    PDIE,   1, 
                    CCIE,   1, 
                    HPIE,   1, 
                    SCTL,   5, 
                    Offset (0xAA), 
                    SSTS,   7, 
                    Offset (0xAB), 
                    Offset (0xB0), 
                    Offset (0xB2), 
                    PMES,   1, 
                    PMEP,   1, 
                    Offset (0xB4)
                }

                Method (ATID, 0, NotSerialized)
                {
                    Return (And (SCTL, 0x03))
                }

                Method (PWID, 0, NotSerialized)
                {
                    Return (ShiftRight (And (SCTL, 0x0C), 0x02))
                }

                Method (PWCC, 0, NotSerialized)
                {
                    Return (ShiftRight (And (SCTL, 0x10), 0x04))
                }

                Method (ABPS, 1, NotSerialized)
                {
                    If (LEqual (Arg0, One))
                    {
                        Or (SSTS, One, SSTS)
                    }

                    Return (And (SSTS, One))
                }

                Method (PFDS, 1, NotSerialized)
                {
                    If (LEqual (Arg0, One))
                    {
                        Or (SSTS, 0x02, SSTS)
                    }

                    Return (ShiftRight (And (SSTS, 0x02), One))
                }

                Method (MSCS, 1, NotSerialized)
                {
                    If (LEqual (Arg0, One))
                    {
                        Or (SSTS, 0x04, SSTS)
                    }

                    Return (ShiftRight (And (SSTS, 0x04), 0x02))
                }

                Method (PDCS, 1, NotSerialized)
                {
                    If (LEqual (Arg0, One))
                    {
                        Or (SSTS, 0x08, SSTS)
                    }

                    Return (ShiftRight (And (SSTS, 0x08), 0x03))
                }

                Method (CMCS, 1, NotSerialized)
                {
                    If (LEqual (Arg0, One))
                    {
                        Or (SSTS, 0x10, SSTS)
                    }

                    Return (ShiftRight (And (SSTS, 0x10), 0x04))
                }

                Method (MSSC, 1, NotSerialized)
                {
                    If (LEqual (Arg0, One))
                    {
                        Or (SSTS, 0x20, SSTS)
                    }

                    Return (ShiftRight (And (SSTS, 0x20), 0x05))
                }

                Method (PRDS, 1, NotSerialized)
                {
                    If (LEqual (Arg0, One))
                    {
                        Or (SSTS, 0x40, SSTS)
                    }

                    Return (ShiftRight (And (SSTS, 0x40), 0x06))
                }

                Method (OSHP, 0, NotSerialized)
                {
                    Store (SSTS, SSTS)
                    Store (Zero, HGPE)
                }

                Method (HPCC, 1, NotSerialized)
                {
                    Store (SCTL, Local0)
                    Store (Zero, Local1)
                    If (LNotEqual (Arg0, Local0))
                    {
                        Store (Arg0, SCTL)
                        While (LAnd (LNot (CMCS (Zero)), LNotEqual (0x64, Local1)))
                        {
                            Store (0xFB, IO80)
                            Sleep (0x02)
                            Add (Local1, 0x02, Local1)
                        }

                        CMCS (One)
                    }
                }

                Method (ATCM, 1, NotSerialized)
                {
                    Store (SCTL, Local0)
                    And (Local0, ALMK, Local0)
                    If (LEqual (Arg0, One))
                    {
                        Or (Local0, ALON, Local0)
                    }

                    If (LEqual (Arg0, 0x02))
                    {
                        Or (Local0, ALBL, Local0)
                    }

                    If (LEqual (Arg0, 0x03))
                    {
                        Or (Local0, ALOF, Local0)
                    }

                    HPCC (Local0)
                }

                Method (PWCM, 1, NotSerialized)
                {
                    Store (SCTL, Local0)
                    And (Local0, PLMK, Local0)
                    If (LEqual (Arg0, One))
                    {
                        Or (Local0, PLON, Local0)
                    }

                    If (LEqual (Arg0, 0x02))
                    {
                        Or (Local0, PLBL, Local0)
                    }

                    If (LEqual (Arg0, 0x03))
                    {
                        Or (Local0, PLOF, Local0)
                    }

                    HPCC (Local0)
                }

                Method (PWSL, 1, NotSerialized)
                {
                    Store (SCTL, Local0)
                    If (Arg0)
                    {
                        And (Local0, SPON, Local0)
                    }
                    Else
                    {
                        Or (Local0, SPOF, Local0)
                    }

                    HPCC (Local0)
                }

                Method (_OST, 3, Serialized)  // _OST: OSPM Status Indication
                {
                    Name (T_1, Zero)
                    Name (T_0, Zero)
                    While (One)
                    {
                        Store (And (Arg0, 0xFF), T_0)
                        If (LEqual (T_0, 0x03))
                        {
                            While (One)
                            {
                                Store (ToInteger (Arg1), T_1)
                                If (LNotEqual (Match (Package (0x04)
                                                {
                                                    0x80, 
                                                    0x81, 
                                                    0x82, 
                                                    0x83
                                                }, MEQ, T_1, MTR, Zero, Zero), Ones))
                                {
                                    If (LNot (PWCC ()))
                                    {
                                        PWCM (One)
                                        Store (One, ABIE)
                                    }
                                }

                                Break
                            }
                        }

                        Break
                    }
                }

                Method (EJ0L, 1, NotSerialized)
                {
                    Store (0xFF, IO80)
                    Store (SCTL, Local0)
                    If (LNotEqual (ATID (), One))
                    {
                        And (Local0, ALMK, Local0)
                        Or (Local0, ALBL, Local0)
                    }

                    HPCC (Local0)
                    Store (SCTL, Local0)
                    Or (Local0, SPOF, Local0)
                    HPCC (Local0)
                    Store (SCTL, Local0)
                    Or (Local0, PLOF, Local0)
                    HPCC (Local0)
                    Store (SCTL, Local0)
                    Or (Local0, ALOF, Local0)
                    HPCC (Local0)
                }

                Method (PMEH, 1, NotSerialized)
                {
                    If (And (HPEV, SSTS))
                    {
                        If (ABPS (Zero))
                        {
                            ABPS (One)
                            Sleep (0xC8)
                        }
                    }

                    Return (0xFF)
                }

                Method (HPEH, 1, NotSerialized)
                {
                    If (LNot (HPCP))
                    {
                        Return (0xFF)
                    }

                    Store (0xFE, IO80)
                    Sleep (0x64)
                    Store (Zero, CCIE)
                    If (And (HPEV, SSTS))
                    {
                        Store (0xFD, IO80)
                        Sleep (0x0A)
                        Store (PPXH (Zero), Local0)
                        Return (Local0)
                    }
                    Else
                    {
                        Return (0xFF)
                    }

                    Store (0xFC, IO80)
                    Sleep (0x0A)
                }

                Method (PPXH, 1, NotSerialized)
                {
                    Sleep (0xC8)
                    If (ABPS (Zero))
                    {
                        If (LNot (PRDS (Zero)))
                        {
                            Store (One, LDIS)
                            PWSL (Zero)
                            PWCM (0x03)
                            If (LEqual (MSSC (Zero), MRLS))
                            {
                                ATCM (0x02)
                            }
                            Else
                            {
                                ATCM (0x03)
                            }

                            ABPS (One)
                            Sleep (0xC8)
                            Return (0xFF)
                        }

                        Store (Zero, ABIE)
                        ABPS (One)
                        Sleep (0xC8)
                        If (PWCC ())
                        {
                            ATCM (0x02)
                            Sleep (0x0258)
                            Store (0x0258, Local0)
                            ABPS (One)
                            While (LNot (ABPS (Zero)))
                            {
                                Sleep (0xC8)
                                Add (Local0, 0xC8, Local0)
                                If (LEqual (0x1388, Local0))
                                {
                                    Store (One, ABIE)
                                    ATCM (0x03)
                                    PWCM (0x02)
                                    Sleep (0x0258)
                                    Store (Zero, LDIS)
                                    PWSL (One)
                                    Sleep (0x01F4)
                                    If (LNot (PFDS (Zero)))
                                    {
                                        PWCM (One)
                                        Store (Zero, Local1)
                                        Store (One, ABIE)
                                    }
                                    Else
                                    {
                                        PWSL (Zero)
                                        PWCM (0x03)
                                        ATCM (One)
                                        Store (One, LDIS)
                                        Store (0x03, Local1)
                                        Store (One, ABIE)
                                    }

                                    ABPS (One)
                                    Sleep (0xC8)
                                    Return (Local1)
                                }
                            }

                            Return (0xFF)
                        }
                        Else
                        {
                            ATCM (0x02)
                            Sleep (0x0258)
                            Store (0x0258, Local0)
                            ABPS (One)
                            Sleep (0xC8)
                            While (LNot (ABPS (Zero)))
                            {
                                Sleep (0xC8)
                                Add (Local0, 0xC8, Local0)
                                If (LEqual (0x1388, Local0))
                                {
                                    ABPS (One)
                                    ATCM (0x03)
                                    PWCM (0x02)
                                    Sleep (0xC8)
                                    Store (One, ABIE)
                                    Store (One, LDIS)
                                    PWCM (0x03)
                                    Return (0x03)
                                }
                            }

                            PWCM (One)
                            ABPS (One)
                            Sleep (0xC8)
                            Store (One, ABIE)
                            Return (0xFF)
                        }
                    }

                    If (PFDS (Zero))
                    {
                        PFDS (One)
                        PWSL (Zero)
                        PWCM (0x03)
                        ATCM (One)
                        Store (One, LDIS)
                        Return (0x03)
                    }

                    If (PDCS (Zero))
                    {
                        PDCS (One)
                        If (LNot (PRDS (Zero)))
                        {
                            PWSL (Zero)
                            PWCM (0x03)
                            If (LEqual (MSSC (Zero), MRLS))
                            {
                                ATCM (0x02)
                            }
                            Else
                            {
                                ATCM (0x03)
                            }

                            Store (One, LDIS)
                            Return (0xFF)
                        }
                        Else
                        {
                            Store (Zero, LDIS)
                            ABPS (One)
                            Sleep (0xC8)
                            Store (One, ABIE)
                            Sleep (0xC8)
                            Return (Local1)
                        }
                    }

                    Return (0xFF)
                }

                Method (SNUM, 0, Serialized)
                {
                    Store (PSNM, Local0)
                    Return (Local0)
                }

                Device (H000)
                {
                    Name (_ADR, Zero)  // _ADR: Address
                    Method (_SUN, 0, NotSerialized)  // _SUN: Slot User Number
                    {
                        Return (SNUM ())
                    }
                }

                Device (H001)
                {
                    Name (_ADR, One)  // _ADR: Address
                    Method (_SUN, 0, NotSerialized)  // _SUN: Slot User Number
                    {
                        Return (SNUM ())
                    }
                }

                Device (H002)
                {
                    Name (_ADR, 0x02)  // _ADR: Address
                    Method (_SUN, 0, NotSerialized)  // _SUN: Slot User Number
                    {
                        Return (SNUM ())
                    }
                }

                Device (H003)
                {
                    Name (_ADR, 0x03)  // _ADR: Address
                    Method (_SUN, 0, NotSerialized)  // _SUN: Slot User Number
                    {
                        Return (SNUM ())
                    }
                }

                Device (H004)
                {
                    Name (_ADR, 0x04)  // _ADR: Address
                    Method (_SUN, 0, NotSerialized)  // _SUN: Slot User Number
                    {
                        Return (SNUM ())
                    }
                }

                Device (H005)
                {
                    Name (_ADR, 0x05)  // _ADR: Address
                    Method (_SUN, 0, NotSerialized)  // _SUN: Slot User Number
                    {
                        Return (SNUM ())
                    }
                }

                Device (H006)
                {
                    Name (_ADR, 0x06)  // _ADR: Address
                    Method (_SUN, 0, NotSerialized)  // _SUN: Slot User Number
                    {
                        Return (SNUM ())
                    }
                }

                Device (H007)
                {
                    Name (_ADR, 0x07)  // _ADR: Address
                    Method (_SUN, 0, NotSerialized)  // _SUN: Slot User Number
                    {
                        Return (SNUM ())
                    }
                }

                OperationRegion (PXCS, PCI_Config, Zero, 0xE0)
                Field (PXCS, AnyAcc, NoLock, Preserve)
                {
                    VDID,   32, 
                    Offset (0x54), 
                        ,   6, 
                    HPCE,   1, 
                    Offset (0x5A), 
                    ABPX,   1, 
                        ,   2, 
                    PDCX,   1, 
                        ,   2, 
                    PDSX,   1, 
                    Offset (0x5B), 
                    Offset (0x60), 
                    Offset (0x62), 
                    PMEX,   1, 
                    Offset (0xDC), 
                        ,   31, 
                    PMCS,   1
                }

                Method (DEVS, 0, NotSerialized)
                {
                    If (LEqual (VDID, 0xFFFFFFFF))
                    {
                        Return (Zero)
                    }
                    Else
                    {
                        Return (0x0F)
                    }
                }

                Method (HPME, 0, Serialized)
                {
                    If (PMEX)
                    {
                        Store (0xC8, Local0)
                        While (Local0)
                        {
                            Store (One, PMEX)
                            If (PMEX)
                            {
                                Decrement (Local0)
                            }
                            Else
                            {
                                Store (Zero, Local0)
                            }
                        }

                        Store (One, PMCS)
                    }
                }

                Method (_PRW, 0, NotSerialized)  // _PRW: Power Resources for Wake
                {
                    Return (GPRW (0x09, 0x04))
                }

                Method (_PRT, 0, NotSerialized)  // _PRT: PCI Routing Table
                {
                    If (PICM)
                    {
                        Return (AR31)
                    }

                    Return (PR31)
                }

                Device (NVME)
                {
                    Name (_ADR, Zero)  // _ADR: Address
                    Name (_SUN, One)  // _SUN: Slot User Number
                    Method (_INI, 0, NotSerialized)  // _INI: Initialize
                    {
                        Store (0x0F, ^^H000._ADR)
                    }

                    Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
                    {
                        If (LEqual (Arg2, Zero))
                        {
                            Return (Buffer (One)
                            {
                                 0x03                                           
                            })
                        }

                        Return (Package (0x0A)
                        {
                            "AAPL,slot-name", 
                            "Built In", 
                            "model", 
                            Buffer (0x16)
                            {
                                "Intel SSD 600p Series"
                            }, 

                            "built-in", 
                            Buffer (One)
                            {
                                 0x00                                           
                            }, 

                            "name", 
                            Buffer (0x22)
                            {
                                "Intel SSD 600p Series NVM Express"
                            }, 

                            "device_type", 
                            Buffer (0x10)
                            {
                                "NVMe Controller"
                            }
                        })
                    }
                }
            }

like you see, I add NVME device în BR1B, you could try the same... but I don't think this should make any difference.

  • Thanks 1
Link to comment
Share on other sites

 Share

×
×
  • Create New...