Hi,
after plugging a rather newish 2,5 SATA SSD to my KGPE-D16, I realized that the regular SATA ports connected to the SP5100 on this board can only handle SATA2, limiting transfer speeds to max. 300 MB/s. I thought about various options what I could do now:
(1) try to get the PIKE 9230 card => but does come with a co-processor and non-free firmware like the SAS Pike cards? Seems almost impossible to get one though (2) get the PIKE 2008 card => will SATA3 work without non-free firmware? (3) put in some PCIe SATA3 card => any recommended chips that respect freedom? (4) get a m.2 SSD instead together with some PCIe adapter => the cards don't have a co-processor, right? (5) stay with SATA2 and live with the limited speed
Any recommendations for a freedom-respecting choice?
Cheers, Daniel
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
On 03/01/2018 01:36 PM, Daniel Kulesz via coreboot wrote:
Hi,
after plugging a rather newish 2,5 SATA SSD to my KGPE-D16, I realized that the regular SATA ports connected to the SP5100 on this board can only handle SATA2, limiting transfer speeds to max. 300 MB/s. I thought about various options what I could do now:
(1) try to get the PIKE 9230 card => but does come with a co-processor and non-free firmware like the SAS Pike cards? Seems almost impossible to get one though
Non free firmware is basically standard on SAS. I am not aware of any SAS controller that can work without firmware; the SAS protocol is complex and there has been no effort toward writing replacement firmware within the open source community.
A typical SAS controller provides an entire operating system on the card itself, with LSI devices using an ARM processor as the host and Microsemi devices apparently using a MIPS processor. You can even find the UART out pins on some cards if curious; I haven't actually hooked anything up to see what is running on the card.
(2) get the PIKE 2008 card => will SATA3 work without non-free firmware?
No.
(3) put in some PCIe SATA3 card => any recommended chips that respect freedom?
There are very few. You can try some of the Marvell devices but you will still be limited by the host side bus as these old Opterons only support PCIe v2.
(4) get a m.2 SSD instead together with some PCIe adapter => the cards don't have a co-processor, right?
Yes, they do. NVMe devices have an integrated proprietary controller to manage data storage / wear levelling.
(5) stay with SATA2 and live with the limited speed
Any recommendations for a freedom-respecting choice?
To be blunt, even your hard disks have an integrated (and hackable!) proprietary controller. I'd suggest going with m.2 and:
1.) Making sure your IOMMU is running 2.) Using full disk encryption 3.) Run a checksumming filesystem on top of the encryption, such as BTRFS
If all of those criteria are met, it's going to be next to impossible for malicious controller firmware to do any silent damage to the system; about the worst a malicious controller blob could do is corrupt data in a way that would show up on the next scrub (DoS attack).
Also, mandatory plug for Talos II here: these bottlenecks disappear on newer hardware and you don't have to accept the ME/PSP to get access to modern speeds. The KGPE-D16 is the last and most powerful owner-controllable x86 machine, but it is definitely showing its age in some areas.
Cheers, Daniel
- -- Timothy Pearson Raptor Engineering +1 (415) 727-8645 (direct line) +1 (512) 690-0200 (switchboard) https://www.raptorengineering.com
On 03/01/2018 09:20 PM, Timothy Pearson wrote:
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
On 03/01/2018 01:36 PM, Daniel Kulesz via coreboot wrote:
Hi,
(3) put in some PCIe SATA3 card => any recommended chips that respect freedom?
There are very few. You can try some of the Marvell devices but you will still be limited by the host side bus as these old Opterons only support PCIe v2.
Marvell and Asmedia controllers on sata cards are kinda garbage, many quirks.
Neither respects freedom anyway but a SAS controller crossflashed to IT (dumb) mode (so that it does not have any RAID capability) is the most reliable way to add Sata ports to a board, as SAS is retrocompatible with Sata, and SAS controllers have an entirely different level of quality (both hardware and drivers).
(4) get a m.2 SSD instead together with some PCIe adapter => the cards don't have a co-processor, right?
Yes, they do. NVMe devices have an integrated proprietary controller to manage data storage / wear levelling.
If we go that way, also mechanical hard drives, USB flash drives and pretty much any storage device showing up as "block device" has a storage controller running a proprietary firmware.
SSD firmware is more complex and their controllers are very beefy and usually multicore because of performance though.
(5) stay with SATA2 and live with the limited speed
Any recommendations for a freedom-respecting choice?
Sata2 speed limitation is less bad than it might sound. What matters most for system responsiveness is the transfer speed on random read/writes, which is NOT anywhere near Sata 2 speed cap, more like 20-50MB/s at most on very fast SSDs. Just look up SSD benchmarks for actual stats.
The high speed numbers on SSDs are for sequential transfers, for example when you copy over a relatively large file, and that will hit the Sata 2 speed limitation.
-Alberto
Thank you, Timothy.
(2) get the PIKE 2008 card => will SATA3 work without non-free firmware?
No.
Ok, too bad. I thought the non-free firmware would only be needed for the SAS part, but I assume the LSI controller handles both SAS and SATA.
(3) put in some PCIe SATA3 card => any recommended chips that respect freedom?
There are very few. You can try some of the Marvell devices but you will still be limited by the host side bus as these old Opterons only support PCIe v2.
Yes, I was aware of the limitation. As far as I understand, the PCIe v2 x16 slot would allow for 8 GB/s - but that should be enough, even for a modern m.2 SSD. I just ordered a PCIe v2 x16 device with an Asmedia chipset to give it a try - seems to be supported in Linux and costs just 7€ incl. shipping.
(4) get a m.2 SSD instead together with some PCIe adapter => the cards don't have a co-processor, right?
Yes, they do. NVMe devices have an integrated proprietary controller to manage data storage / wear levelling.
(5) stay with SATA2 and live with the limited speed
Any recommendations for a freedom-respecting choice?
To be blunt, even your hard disks have an integrated (and hackable!) proprietary controller. I'd suggest going with m.2 and:
Yes, but you could say this about any 2.5" SATA SSD/HDD as well. Important for me is that the firmware runs isolated (on the drive) and does not have access to the host. As far as I understood this is the actual concern regarding the PIKE cards, right?
I haven't made up my mind to go with the m.2 option yet, because (1) the ssd cards are way more expensive than 2,5" sata drives and (2) was not sure what speed they can actually achieve with an adapter plugged to PCIe v2. Please correct me if I'm wrong, but, as far as I understood the firmware of the m.2 cards has direct pcie bus access because there is no controller (such as the marvell or asmedia) inbetween - right? If so, that would be a third reason to go for the sata3 pcie card for me.
Also, mandatory plug for Talos II here: these bottlenecks disappear on newer hardware and you don't have to accept the ME/PSP to get access to modern speeds. The KGPE-D16 is the last and most powerful owner-controllable x86 machine, but it is definitely showing its age in some areas.
I agree, SATA 2 and PCIe v2 are really getting old these days. Even if the G34 CPUs are somewhat powerful, that doesn't help much if the peripherials slow down the system.
Cheers, Daniel
I concur with what tim said and I too recommend getting the much faster TALOS 2 - the current board/cpu combo price is quite reasonable (only $2.5K)
You might also be interested in this. http://www.openssd-project.org/wiki/The_OpenSSD_Project
On Fri, 2 Mar 2018 17:40:56 -0500 "Taiidan@gmx.com" Taiidan@gmx.com wrote:
I concur with what tim said and I too recommend getting the much faster TALOS 2 - the current board/cpu combo price is quite reasonable (only $2.5K)
Yes, but KGPE-D16's PCIe v2 x4 should be enough for 2 GB/s which is more than current entry-level M.2 NVMe SSDs need. Since I have the KGPE-D16 already (and DDR4 reg ecc prices are very high), I'd like to max it out before upgrading.
You might also be interested in this. http://www.openssd-project.org/wiki/The_OpenSSD_Project
Yes, I've heard of that but it does not seem to be anywhere near a production-ready state with available hardware, yet. For the meantime, I am okay with using closed-source drive firmware as it's sandboxed and its capabilities are controlled by open software/firmware. As far as I understood this is true for SATA drives, but I am not sure if the same accounts for NVMe drives as well. What kind of firmware does actually run on the NVMe controller and to which data/registers does it have access? Is there a substantial difference to SATA via AHCI?
Cheers, Daniel