I just got a new laptop (Lenovo P51, four-cores, eight-threads, 32 GB RAM, multiple drive bays). My old machine was more than six years old so it was probably overdue. I wanted to record some of the reasons for the upgrade, and the process, if only for myself, so here we go.
One would think that the main reason to upgrade a six-year-old laptop would be the hardware. Bigger, faster, etc., but it turns out that software was as big a factor.
The DVD drive had failed (but I never used it) and the SD-Card reader had failed (so I bought an adapter), and the battery was getting feeble (but I’d replaced it once and could have replaced it again). Probably the biggest hardware problem was that it was maxed out at 8 GiB of RAM which feels a bit tight these days.
Meanwhile, on the software side… I’d upgraded from Windows 7 to Windows 10, ‘cause as a developer I needed to be on the latest OS. Unfortunately, my Intel Wi-Fi adapter was not officially compatible with Windows 10 so when I reported five-second hangs to Intel they said ‘tough’. And the hybrid-GPU setup was not compatible with Windows 10, leading to flickering and this occasional epilepsy inducing behavior. It’s still not clear to me why Microsoft’s upgrade advisor didn’t warn me about these problems. No wonder so many people had issues after upgrading.
My laptop also had a long-standing driver bug that meant that sometimes when I closed the lid it would fail to go into standby. If I noticed this and cracked the lid open again then that would tickle some internal state and then it would successfully sleep. If I didn’t notice then the driver would timeout and shutdown the machine. I never figured out which driver was the culprit – I lived with these occasional failures for six years.
The upgrade to Windows 10 on the old laptop also left me with various small defects. Ctrl+Backspace didn’t work in the command prompt, Windows Live Photo gallery would crash if I brought up a context menu with multiple pictures selected, the lock-screen timeout could not be configured separately from the screen-off timeout, etc. Again – the Windows 10 upgrade process was poorly done, especially for something that was forced upon so many of my family members.
Buying a new laptop resolved the hardware issues, and the software issues, and it also gave me six years of hardware progress – which was not as exciting as I had hoped.
Hardware – improvements?
The biggest gain was that I went from 8 GiB of RAM to 32 GiB of RAM, and I could have gone to 64 GiB if I’d felt the need. Yay!
But I thought Moore’s law would do more for me. My new CPU is faster (higher clock rate and better micro-architecture so probably twice as fast?) but nothing dramatic. And while I’d hoped that core counts might have improved in that period of time it was actually a struggle not to regress! I bought a quad-core hyper-threaded laptop in 2011 and it felt more difficult to do that now. Dual-core laptops are insufficient (you need one core for anti-virus, one for your GPU driver to compile shaders, and then at least one for your games) so it frustrates me that they are still the most common configuration. So, faster cores, but the same number of cores as six years ago (eight-core sixteen-thread Intel laptop CPUs are available in 2019).
As part of the upgrade I got a shiny new 2 TB SATA SSD – double the size of my previous one (but be sure to upgrade the firmware). I’m a pack rat and I like having all my media accessible. The SSD upgrade was actually one of the larger obstacles because many laptops now only support M.2 drives. Getting 1 TB M.2 drives is challenging, and forget about 2 TB. I know that the M.2 drives have more than enough capacity for most people, and they’re smaller, and supposedly faster, so I get it, but it was still frustrating. But I ended up with a laptop that can handle two SATA drives plus an M.2 drive, so I could get up to 5 TB of solid-state storage if I wanted to spend $3,400 for it (in 2019 I could get 10 TB of solid-state storage for $1,6090).
My screen resolution stayed the same (my eyes aren’t good enough to justify more than 1080p on a laptop screen), and my screen got slightly smaller (17” laptops are rare and 15.6” actually seems nice).
But hey, it’s two pounds lighter (from 8.0 pounds to 5.875 pounds) than my previous brick, so that’s concrete progress.
Finding a new machine that had a SATA slot, could support lots of memory, had a decent screen size, and a quad-core CPU was actually really hard. I have a long list of laptops that had all but one of these qualities (or all of these but an incredibly bad keyboard or screen), but very few matched my needs. I guess my needs are weird, but I swear my laptop search six years ago was easier.
More driver bugs
It’s not entirely accurate to say that buying a new laptop resolved my software issues. What actually happened was that I noticed that Chrome would sometimes hang when I resumed from standby. Windows Update didn’t find any new drivers so I grabbed an ETW trace and determined that the Intel Wi-Fi driver was the culprit (I know, I was shocked also). The WPA screenshot below (using ETW wait analysis) shows that chrome.dll called closesocket and this caused that thread to hang for 27.852 seconds. When it resumed running it was because the Wi-Fi stack finally responded (“readied it”, in Windows talk).
I used Device Manager to upgrade the Intel drivers which brings up several questions:
- Why didn’t Windows Update find the new driver?
- Why did Lenovo ship the laptop without the latest driver (released three months earlier)?
- What the hell do normal people do? I thought this sort of experience was supposed to be reserved for Linux users.
- Why can’t Intel write software? Two buggy drivers (at least), and Intel Power Gadget doesn’t work either.
At least my buggy Intel driver isn’t causing blue-screen crashes like it did for some.
A new machine is exciting, but also a huge hassle. I couldn’t buy the laptop with the SSD that I wanted so I couldn’t even use it until I transferred the OS to the new disk (probably should have done a clean OS install, but that can be tough or expensive). Then I started reinstalling software. It is only at this moment that one realizes how much software ones uses on a regular basis. Some of the installers no longer exist (luckily I found an archived copy of the Windows Live installer, and Garmin Training Center can be xcopy installed). Many were on these strange “optical disks” so I used our last remaining DVD drive to copy them (and archive them for posterity). Here’s a list of all the software that I apparently can’t live without, roughly in the order that I installed it:
- Office 2010 – needlessly complicated migration process for Outlook that still loses all customizations
- VS 2017 – and the VS 2015 toolset
- Perforce – such a pain to upgrade DB, no VS 2017 support, but it’s free
- Windows Live Photo gallery
- Chromium source
- SyncToy – I use this to synchronize photos between computers at home
- Wi-Fi driver upgrade
- Printer setup
- WinMerge (now that Microsoft doesn’t ship WinDiff anymore)
- Google drive sync
- Adobe Premiere Elements
- Adobe Photoshop Elements
- Adobe Lightroom
- Uninstall Adobe Creative Cloud to get rid of ~11 Adobe processes
- Fractal eXtreme
- Garmin Training Center – no installer, had to xcopy the files from the old machine
- Encarta – I like having an off-line encyclopedia, don’t judge me!
- Google Earth Desktop version
- Google Photos Auto upload (different account from Google drive sync)
- Family Tree Maker
- Uninstall Lenovo Companion, OneDrive (multiple times), other junk software
- Patch Lenovo Settings
- Uninstall Lenovo Settings
- Intel Power Gadget (doesn’t work)
- Github Desktop
- Camtasia 8
Tracking down all of the installers was a bit of a pain but now I’ve got a lot more of them archived for next time.
I haven’t bothered configuring the fingerprint reader yet – I’m not sure I trust Windows Hello and its insistence on a PIN. I wish the home/end/left-ctrl keys were positioned differently, but the keyboard is good enough.
Seeing Task Manager reporting lots of GB available and used for cache always makes me happy.
The laptop has four USB type A sockets and one USB type C socket and they are all powered even when the laptop is sleeping. This means I can charge five devices off of my laptop, including high-speed charging one USB-C device.
Least favorite features
Lenovo is abusing the UserHardErrorEx function to bring up always-on-top dialogs offering upgrades. It’s not confidence inspiring and had my worried but there may be nothing actively dangerous there.
This laptop has a serious flaw where it refuses to draw much power when on battery. This causes the CPUs to be aggressively throttled, making it almost unusably slow in some scenarios. It can drive a single core at a reasonable speed, but if multiple cores try to run then their speed can drop as low as 800 MHz, which is a slog. It’s not thermal throttling because it triggers instantly, even at modest temperatures.
For mysterious reasons that are still being investigated the new laptop has WiFi download performance that typically ranges from mediocre to terrible. Lenovo (and, to a lesser extent, Intel) are trying to help, but so far this has been variations on “tweak this setting or upgrade the driver.” I really want a tool that will tell me what is wrong so that we can be more scientific about finding a solution. I hate it when ETW is not obviously helpful. For some reason the upload speeds are consistently good, and are usually faster than downloads! Update from 2022: I’m still using this laptop and the WiFi speeds are fine now. I just measured 346 Mbps down and 225 Mbps up.