Hi all, got a new laptop for work - ASUS Zenbook 14 with a Core 9 Ultra 285H. It ran Windows okay but it would shut off with large e2e testing runs. I suspected overheating because it’s a thin laptop, too thin I think. With our Java + Node workflow the 32GB of memory was just not enough for parallel e2e testiung so I convinced them to let me trial Linux instead.
I wanted the potential for team adoption so steered clear of bleeding edge stuff so it was Ubuntu 26.04 and I punted Ubuntu Pro as an option that helps with our compliance which landed well.
Then the laptop started stuttering quite bad, it’d freeze for a good 5-10s - then be fine for a bit. The company sent me a replacement laptop, but since I work remotely, I had both laptops with me for a bit. The new one, which is practically identical (although not technically identical as I’d find out) - worked fine. I used Claude to help me diagnose, and at the end of the rabbit hole, I narrowed it down to the combination of:
Micron SSD (the unaffected laptop used a Samsung SSD)
Intel VMD enabled in the BIOS (default on)
Using btrfs as the filesystem (doesn’t cause it but could make it worse)
Simplest way to resolve it was to disable Intel VMD in the BIOS, and now the thing is flying as expected.
I’m still curious why and hoping fellow Linux neckbeards can help me understand. Claude helped me get to the answer, but while we solved it from a usage standpoint, it’s explanation is quite speculative. So hoping to learn from this community instead.
It seems VMD undoes the fact that nvme is DMA, it puts some controller between the CPU and the storage. Effectively introducing NUMA lag on a UMA system. VMD seems to be yet another attempt to make FakeRAID a thing.
btrfs is severely taxing on I/O of the CPU. Definitely compounds that when you don’t have DMA to the PCIe storage.
If your workload is mostly Java, wouldn’t some ARM+Jazelle system be more efficient? (I Haven’t seriously worked with Java since 2013, but Java Physical Machine faster than JVM)
Use what the distro maintainers set as default. They hopefully know what they are doing. If you don’t trust them, use a different distro. etx4 doesn’t give you snapshots and other goodies.
(actually, on my distro I don’t even get a choice and they recommend ext4 for HDD only)
Source? I use btrfs on all Linux on 3 PCs down to 10 years old and don’t notice issues. Many modern distros are built for btrfs (snapshots)
I don’t recall if Ubuntu already is, though. Canonical do their own thing anyway. So use what they default to.
Thanks for the information. Reading up on Intel VMD it seemed to make more sense on a server or workstation than a single-drive laptop. You can’t even add a second SSD for any RAID functionality, it’s basically a high-spec netbook. So yeah not losing anything by disabling it and it’s been solid since flipping the switch.
With regards to ARM machines, I’m purposefully steering away from anything esoteric. I can try those things out on my own time but I need a reliable and predictable Linux environment with as few quirks as possible… so Kubuntu LTS it is. I’d go standard Debian if I could but the compliance sales pitch from Ubuntu Pro is attractive to the non-technical decision makers so I’m leaning into it to escape Windows.
Now sure about the particular issue with the SSD, but right decision on laptop and OS. For an enterprise setting get a laptop from one of the big manufacturers and use a distribution for enterprise like Ubuntu, RHEL or SUSE.