3 ms·
This applies at all levels of the stack, even hardware. I realize the author is talking about javascript, but I can think of several hardware projects where mi
by drewg123 7y ago
This applies at all levels of the stack, even hardware. I realize the author is talking about javascript, but I can think of several hardware projects where minimalism is clearly superior.
At a previous employer (whom I cannot talk about), we were working on an ASIC. The ASIC team was new, brought in for the job, and was eager to include every possible feature that stakeholders wanted. The stakeholders seem to view this as a "its my birthday" kind of scenario, and so asked for lots of features (it wasn't going to cost them anything, after all). We had one senior hardware engineer, who was not on this ASIC team that was asked to sit in on meetings, and he was the "no" man. Somebody would request a feature, and he'd sketch out on the whiteboard what it would cost in chip area, power, and verification time. The ASIC was delivered more or less on time, and was wildly successful (I think, I'd left the company by this time). If it wasn't for this "no" man, I think they'd still be trying to verify all the features other teams had asked for.
I never worked at Intel, and I don't know the inside story, but I'm guessing the same thing happened with their server NICs. The original 10G and its respin (82598, 82599) were simply brilliant in their simplicity, and they were one of the first full speed 10G NICs in terms of packet rate. Flash forward to the 40g / 10g xl7xxx series, where you have a kitchen sink worth of features, and the host has to do crazy things to deal with limitations in a basic core feature of an ethernet NIC (no more than 8 DMA s/g segs per emitted TSO packet). Flash forward again to the 100g columbiaville, which seems to be more of the same -- with the same TSO bug!
- GhettoMaestro 7y agoI deal a lot with white box networking hardware and software and have never encountered this bug. Can you point me to some more info? Thank you.
- drewg123 7y agoSee "ixl_detect_sparse()" in the FreeBSD ixl driver: https://svnweb.freebsd.org/base/head/sys/dev/ixl/ixl_txrx.c?view=markup#l155 https://svnweb.freebsd.org/base/head/sys/dev/ixl/ixl_txrx.c?... Or __i40e_chk_linearize in the Linux i40e driver: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/net/ethernet/intel/i40e/i40e_txrx.c#n3257 https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/lin... And their 100g NIC has the same bug (at least according to the FreeBSD driver that's in review now). ARGH!
- GhettoMaestro 7y agoThank you.
- lukego 7y agoI'm glad to hear other people talking about how great the Intel 82599/Niantic was and how they have come off the rails since then. I'm so fed up that my new year's resolution is to make a new NIC that's like the 82599 but more so.
- drewg123 7y agoI worked for another NIC vendor at the time, and we were totally in awe of the 8259x. We had a 10G NIC that could do line rate with full packets, but we did a lot of PCIe in firmware, so we could only handle ~1.5Mpps (about 10% of line rate in terms of pps).