RedditPP Mascot

RedditPP

r/thinkpad • … • u/chupitulpa

Lenovo's Rowhammer fix -- yes, there is a small performance hit

I know I'm a little late to the party on this one, but I just noticed that T440p BIOS update 2.32's release notes say it mitigates [rowhammer](https://en.wikipedia.org/wiki/Row_hammer). It doesn't say how they've done this, but I know the most commonly suggested fix is to double the RAM refresh frequency. While this makes rowhammer much less likely to succeed, it also incurs a performance and battery life penalty since the RAM spends more of its time refreshing itself instead of serving requests or sleeping. I figured I'd measure how much effect, if any, whatever they've done has on performance.

**TL;DR: The rowhammer fix incurs about a 5% memory performance hit**

System: Thinkpad T440p w/ i7 4700MQ 2.4 GHz, 12 GB RAM (8+4), 240 GB Intel SSD, Windows 8.1. BIOS versions 2.31 and 2.33 tested.

Test method: I was already on BIOS version 2.33 and noticed that 2.32 added the rowhammer fix. While on 2.33, I installed NovaBench, did a clean reboot, checked in Task Manager to see that the system had settled and CPU use was 0-1%. I ran the RAM transfer speed benchmark in NovaBench 5 times, and recorded each run in Notepad. I then downgraded my BIOS to 2.31, from just before the rowhammer fix was added, and performed the same benchmark on a clean boot.

All datapoints are in MB/s, as reported by NovaBench: 2.31: 12421, 12078, 12187, 12106, 11845 (average = 12127.4) 2.33: 11769, 11455, 11380, 11347, 11523 (average = 11494.8) With the rowhammer fix in 2.33, memory performance is 94.78% of what it was in 2.31, before the fix.

(*Other observation: Performance mostly dropped with each repetition of the benchmark. This is due to TurboBoost slowly running out as CPU use remains high and temperature rises. CPU temperature was around 48°C at the start of both benchmarks.*)

 

So, to upgrade or not to upgrade? By staying back at 2.31 (or whatever the last one before the rowhammer fix is for your model), you get about 5% more performance and probably a dab more battery life. Up updating to the latest (currently 2.35), you gain the option to use F1-F12 as F-keys without the Fn-lock light constantly lit, security against rowhammer, security against an SMM incursion attack and unspecified other "security fixes", and support for Windows 10 64-bit (no idea how much Win10 will work without this).

 

Aside: I notice after performing both tests that CPU-z reports the row refresh cycle time (tRFC) on 2.31 as 208 clocks on my system. I wish I had noted this number before performing the downgrade, but I don't want to perform two more BIOS updates just to get this number.

 

Also, if anyone at Lenovo is reading this, an option to directly adjust RAM parameters would be really nice, and something so many desktop boards have. Or even just an ON/OFF for the rowhammer fix since some users' use habits make them mostly not vulnerable to it and would happily take the extra performance and battery life.

— 0