The Samsung SSD 840 EVO read performance bug has been on the table for over six months now. Initially Samsung acknowledged the issue fairly quickly and provided a fix only a month after the news hit the mainstream tech media, but reports of read performance degradation surfaced again a few weeks after the fix had been released, making it clear that the first fix didn't solve the issue for all users. Two months ago Samsung announced that a new fix is in the works and last week Samsung sent us the new firmware along with Magician 4.6 for testing, which will be available to the public later this month.

I covered the reason behind the issue in one of our earlier articles, but in short the read performance degradation is a result of cell charge decay over time that caused extensive read-retry cycles to retrieve the correct data. The new firmware fixes this by periodically refreshing (i.e. rewriting) old data, which recovers the cell charge back to its original state and ensures that no read-retry or ECC that would degrade the performance is needed. Samsung says that the refresh operation does not impact user performance, suggesting that it's a relatively low priority process that is run when the drive is idling. 

The new Magician 4.6 also includes an Advanced Performance Optimization feature, which is similar to the performance restoration tool that Samsung released earlier. Basically, it's a command that tells the SSD to rewrite all of its internal data, which resets all cell charges and hence recovers performance. It's merely a supplementary tool as the firmware upgrade itself should be enough to restore performance, but in case the performance isn't fully restored after the firmware upgrade (and some idle time to let the drive refresh the cells), the tool can be used to force a cell charge refresh. 

I haven't run any tests of my own because I don't have any 840 EVOs deployed in my systems (I only have one 2.5" EVO anyway), but Allyn Malventano from PC Perspective managed to run some tests on a degraded drive to show the impact of the new firmware.

Before update

After update

After "Advanced Performance Optimization"

Allyn's tests indicate that the new firmware seems to mostly fix the issue even without running the optimization tool. Note that Allyn didn't give the drive any idle time after the firmware update, so the update appears the be very effective and with idle time the performance would likely have restored on its own.

Obviously, the big question is whether the performance will stay high because there was never a problem with freshly written data. We won't know that for sure until a couple of months later, but given the way the new firmware handles old data it does sound more promising because no data should get old enough to be slow to read.

Some of you are likely skeptical about the effect on endurance since rewriting the data will consume P/E cycles, but I find this to be a non-issue. We know that Samsung's 19nm TLC NAND is rated at 1,000 P/E cycles, so if the drive was to refresh all cells once a week, even that would only consume 52 cycles in a year. In five years time the total would be 260 cycles, which leaves you with 740 cycles for user data writes (for the record, that's 52GB of NAND writes per day for five years with the 120GB 840 EVO). 

All in all, I hope this fix will finally put an end to the performance degradation. The issue has been bugging many users for months and it's critical that the users get what they initially paid for. On one hand I'm confident enough to say that this fix is permanent given the way it works, but on the other hand I don't want to be too optimistic this time around because the first fix didn't turn out so great. Either way, I think this fix is the last chance for Samsung to provide a permanent solution because they already failed to do so once and it would no longer be fair to ask the customers to wait months for a fix that might or might not fix the issue. For now the only thing we can do is wait for user reports and hope for the best, but at least in theory the new firmware should be a permanent fix. 

Comments Locked

78 Comments

View All Comments

  • leexgx - Tuesday, March 6, 2018 - link

    All ssds have this issue just samsung setting for refresh was set to low
  • iceblitzed - Sunday, April 19, 2015 - link

    Does this bug affect random read or just sequential read (or both)? Im guessing both.
  • BenjiSt - Sunday, April 19, 2015 - link

    It seems my comment got removed somehow. I was just asking if the firmware tweak helps if you are not using your drive for a couple of months. That's my (maybe not so common) usage pattern.

    So:
    1) How reliable are the EVO TLC drives when unpowered for a couple of months?
    2) What is the expected difference (in say months not powered on) between the EVO and Pro SSDs?
  • Lothsahn - Monday, April 27, 2015 - link

    apparently this new firmware doesn't work properly with fstrim. See here:
    http://www.overclock.net/t/1507897/samsung-840-evo...

    You should really update this to warn your readers. I'd also like a statement from Samsung as to whether they plan to address this.
  • fiveandhalf - Wednesday, April 29, 2015 - link

    Hi:
    Anyone experience 840 Pro firmware issue under raid controller?
    we have 6 x 840 Pro 512GB running under Dell PowerEdge 720 with H710 controller as raid1, scores around 400MB/s sequential 4K write constantly over past year until last month, we upgraded 2 x SSD firmware from DXM05B0Q to DXM06B0Q and the sequential 4K write speed dropped dramatically from 400MB/s to fluctuation of 20-200MB/s in the same hardware.
    We thought it might be our hardware, so we moved the two different firmware version SSD to another PowerEdge, (as 2 x raid0), as yield same result. We have been talking to Samsung helpdesk who has been nice but unhelpful, It seems to me this is a firmware bug.
    BTW, if we plug the old and new version of SSD back to a desktop with a SATA3 connector, re-do the 4K write test, it is constantly lower on new firmware but not much, something like 390MB/s vs 420MB/s

    Here is the command we use to test with a 20GB test file, we even re-format the drive and tested as empty drive, still same result

    Sqlio.exe -kW -t4 -s30 -dS -o128 -fsequential -b4 -BH -LS testfile.dat

    Hope anandtech.com lab can reproduce this issue, and if it is a bug, we can get Samsung to do something about it.

Log in

Don't have an account? Sign up now