3 ms·
I've been dabbling with this issue for a few months. I've got a one-year-old ThinkPad that multi-boots Linux (Ubuntu 24.04, 23.10), and Windows 11. Upon purch
by anonymousiam 2y ago
I've been dabbling with this issue for a few months. I've got a one-year-old ThinkPad that multi-boots Linux (Ubuntu 24.04, 23.10), and Windows 11. Upon purchase, I immediately upgraded the 1TB internal NVMe drive to a Samsung 4TB (990). Later, I had some difficulty while upgrading from 23.10 to 24.04. To make things easier while troubleshooting, I was backing up the 4TB image, and restoring it when the upgrade failed. After doing this a few times, I was looking for more speed.
I tried several NVMe/TB4 enclosures. Some of them were junk, some were just okay, and this one (which I now have two of) is great: https://www.amazon.com/gp/product/B0CSFFMQWF https://www.amazon.com/gp/product/B0CSFFMQWF
I now also have three of these 8TB NVMe SSDs: https://www.amazon.com/gp/product/B0D9WT512W https://www.amazon.com/gp/product/B0D9WT512W (I also have a few others that are slower and/or smaller.)
I've tried a few docks, and this is the one I'm using now: https://www.amazon.com/gp/product/B0DBHG7486 https://www.amazon.com/gp/product/B0DBHG7486 It's a good dock, but unfortunately needs the DisplayLink driver to use the DisplayPort output. This works okay, but the monitor stays dark until the desktop is booted, and cannot be used for switching between Linux virtual consoles.
First off, because my ThinkPad has only one TB4 port that also serves as the USB-C PD input, I needed a dock if I wanted to use a TB4 accessory while not running from the battery. The dock is also quite valuable for using an external (4K/60Hz) display when using another TB4 peripheral.
The SSDs work fine when plugged into the non-TB4 port, but they operate at less than half of their potential speed, and are enumerated as /dev/sdX instead of /dev/nvmeXnX.
Operating the SSDs from the TB4 port gives variable performance depending upon what else is connected, and when it was connected. The Linux PCI+bridge enumeration has some issues with hotplugable devices. Various combinations of
pci=assign-busses, realloc, native, hpbussize=XX, lastbus=XX, hpmmiosize=XXXM, hpmmioprefsize=XG will all give varying results. At best, with my 4K monitor operating, I can get 20gbps on one external SSD, or some division of that speed distributed amongst multiple other SSDs.
Leaving the PCIe enumeration to the kernel with no additional boot arguments did not go well with 23.10, but works better with 24.04. Hot-plugging performance is always a compromise, depending upon kernel parameters, and the order in which things are plugged in.