46 ms·
OpenBSD was right to disable hyperthreading [video]
- mikece 7y agoWhy aren’t the *BSD operating systems more popular in the server and workstation spaces?
- cntlzw 7y agoThe BSD wars of '92.
- masklinn 7y agoThe BSD troubles rather than wars: it wasn't a spat between BSD distros, it was BSDi and UC (Berkeley) getting sued by USL. It cast a long shadow over the viability of Berkeley at the height of the UNIX wars, and just as Linux was appearing as a completely independent and unencumbered UNIX supported by the maturation & advocacy of GNU and the FSF.
- Conan_Kudo 7y agoIn retrospect, it's probably a good thing. BSD splinters have largely become incompatible with each other, whereas Linux distro splinters have (largely) remained compatible due to licensing and cultural differences. We probably would have had BSD wars for real not long after, if it had become popular. To some extent, this is by design, as there's no culture or ethos that pushes people back together.
- danarmak 7y agoOn the other hand, if BSDs had been more popular, one of these splinters might have dominated the market as much as Linux does, due to the many positive feedback effects of being the most successful free OS.
- geggam 7y agoIt still is a possibility. The Linux community is becoming a mess of things stuck together in and its getting to be really interesting to support.
- AnIdiotOnTheNet 7y agoThe BSDs aren't really much better in that regard once you leave the base install, and their hardware support is substantially worse.
- geggam 7y agoI will agree hardware still lags but for the target of servers and serving its fine. As far as BSD being a mess after base I completely disagree. Using and understanding a package manager makes life pretty simple. That said if the Linux community did that they would probably realize how silly containers are :)
- AnIdiotOnTheNet 7y agoLinux uses a bunch of package managers, it doesn't solve anything yet creates the problem of "X isn't in the repo, now what?".
- geggam 7y agoIf you dont understand that you need to automate and manage your own packages (including containers) for Linux, which meet your requirements, then no framework will help you. You also need to do this for any pipeline for any OS.
- masklinn 7y ago> whereas Linux distro splinters have (largely) remained compatible due to licensing and cultural differences. Seems to me this had nothing to do with licensing or culture, but rather that if you wanted your distribution you'd use the upstream kernel and build your own userland with blackjack and hookers and whatever direction you were interested in, so there's some measure of strong relatedness in the kernel everyone shares. You might add a few modules or patches, but few people bother (or need) to fork the kernel itself. Since BSDs are systems, if you want to go your own way you fork the entire system (that's literally the genesis of both OpenBSD and Dragonfly).
- deleted 7y ago[deleted]
- phicoh 7y agoI'd say, release early, release often. In general, *BSDs take more time to work out technical details, make sure that the design is right. The approach in the Linux communtity is much more, release something that mostly works now and fix it later.
- mkr-hn 7y agoUbuntu kicking everyone into a 6 month release cycle pushed Linux, as a kernel and as a software ecosystem, forward a lot. Quality and quantity seem to converge over a long enough view.
- hackworks 7y agoI think it again falls into kernel versus whole system. Releasing an update to the whole system is more work than releasing the kernel. Little orthogonal: It sort of rhymes with the mono repository versus collection of micro repositories mindset. Does BSD have more code reuse since it is whole system?
- mruts 7y agoOpenBSD has had a six month release cycle for a very long-time.
- thefz 7y agoIIRC Netflix is using FreeBSD. Outside the server scope, OSX is mainly BSD with a different kernel. FreeNAS is based on FreeBSD too.
- messe 7y agoIt also has a bit of an outdated userland, imported from FreeBSD/NetBSD years ago.
- roryrjb 7y agoThey are using FreeBSD for their CDN appliances that they have dotted around the world, everything else runs on Ubuntu out of AWS.
- throw0101a 7y agoNetApp, Dell-EMC Isilon, Juniper, iXsystems, pfSense, etc: * https://en.wikipedia.org/wiki/List_of_products_based_on_FreeBSD https://en.wikipedia.org/wiki/List_of_products_based_on_Free... If you follow the commit logs, you'll regularly see "Sponsored by" messages: * https://www.freshsource.org/commits.php https://www.freshsource.org/commits.php Not just for the core OS, but also in ports and also drivers (Intel, Chelsio, Mellonox). FreeBSD in particular has always been persnickety about acknowledging work done on behalf of others. Something that would have prevented the IBM-SCO lawsuit if Linux had used commit/patch tracking from the beggining.
- siffland 7y agoI have been using FreeBSD since 1999, a great OS and i love it, at work i am a Linux system administrator. One of the huge reasons people use FreeBSD is simply licensing. If you dont want to release any source code simply build your custom app on FreeBSD and only include BSD licensed software. Makes being proprietary simple. Note, this does not mean any companies that do this do not give back to the project, they do in the way of code commits and sometimes donations.
- throw0101a 7y ago
- geggam 7y agoBecause the people who pay folks to work on systems dont like to pay enough money to get that level of talent.
- chrisseaton 7y ago> Because the people who pay folks to work on systems dont like to pay enough money to get that level of talent. People like Google can't pay enough? Do all the BSD developers work as front-end quants or something? How are they all earning so much that nobody can afford them?
- geggam 7y agoGoogle doesn't use BSD. (to my knowledge) Yahoo! did but they also had BSD developers on the payroll. Any Silicon Valley company will pay enough but that is why when you leave Silicon Valley or a big tech hub everything is windows. The pay attracts the talent.
- chrisseaton 7y agoYou said the reason people don't use BSD was because the people who work on it are were too expensive. I know Google don't use BSD, but your idea that it's because they couldn't afford to pay BSD developers doesn't seem to add up, since Google happily pays Linux kernel developers maybe half a million dollars or more. Are the BSD developers really paid so much that Google can't afford them over the Linux developers? That doesn't seem likely to me. I think the reason they're not using BSD is something other than what you're suggesting.
- geggam 7y agowhen I said "Work on the systems" I meant support maintain care and feed. Linux has become mainstream so there are more people in the talent pool to pay to support it. Windows ... has more so it is cheaper BSD simply doesn't have enough people who know the system well enough to support it Paying 5 developers to build something cool doesn't mean you have the support system to run it.... You actually need people who understand your product to use it as a business system
- pas 7y agoBecause you can get the same technical outcome with using off the shelf Linux and setting it up to be conservative just like OpenBSD. (Or simply run sensitive workloads on separated/isolated machines.) The dreaded TCO is likely lower with Linux, because it's easier to work with, better drivers, better performance, more software available natively, and so on. (The whole Linux ecosystem seems more efficient for business, even if OpenBSD/FreeBSD is simply better in a lot of particular stuff.)
- moviuro 7y ago> setting it up to be conservative just like OpenBSD Meh. Probably for superficial stuff, yes. But would Linux kill cat(1) if it did some network calls? I bet not. See https://www.openbsd.org/innovations.html https://www.openbsd.org/innovations.html
- roryrjb 7y agoYou can do this with seccomp, but of course not by default like pledge and OpenBSD.
- ailideex 7y agoYou could block it's network access with network namespaces: http://man7.org/linux/man-pages/man1/unshare.1.html http://man7.org/linux/man-pages/man1/unshare.1.html I'm sure you could engineering something to kill it also with currently kernel functionality - though I would need to do more research to say what.
- majewsky 7y agoBPF can filter syscalls.
- pas 7y agoAppArmor does that. I don't know what's the default profile for cat, but a simple one line "deny network;" works. It's up to the distribution.
- dleslie 7y agoAt a time when the commercial BSD companies were fighting among themselves and allowing their technology to become stale and remain expensive, Linux came along with RedHat and SuSE. Those two made an effort to meet directly with business leaders, attend all the trade shows, and gave their product away for free. Their model was at least as shocking as their license; hitherto, hardly any business software was free and paired with consulting services. It caused a storm, and gave birth to a whole industry that wasn't possible under the expensive BSD model.
- technofiend 7y agoEven prior to RedHat and SuSE for some reason System V-based systems were deemed more suitable to business, at least by Sun Microsystems. I stand corrected based on beef's comment below: they migrated from BSD to Sys V as part of Solaris aka SunOS V. I was misremembering their adding streams support to SunOS 4 as the big switch but I was wrong about that.
- dleslie 7y agoSun probably had a good sales team. ;)
- beefhash 7y agoSunOS 4 was still BSD-based. You can find the source code for SunOS 4.1.4 on TUHS's code comparison site[1], but for some reason, you can't browse the tree. Solaris was when Sun made the jump to System V. AFAIK part of that was because Sun had financial difficulties at the time and AT&T offered to help them -- in exchange for Sun to rebase on System V. [1] e.g. https://minnie.tuhs.org/cgi-bin/utree.pl?file=SunOS-4.1.4/usr.bin/diff3/diff3.c https://minnie.tuhs.org/cgi-bin/utree.pl?file=SunOS-4.1.4/us...
- marcosdumay 7y agoIt has lower performance than Linux, and some compatibility problems that appear once in a while. It used to be fashionable to run BSD on security focused machines (like firewalls). I'm not sure why Linux won there too.
- AnIdiotOnTheNet 7y agoGenerally people prefer stuff that works over stuff that is nebulously "more secure".
- derpherpsson 7y agoStuff breaks when it is hacked. State actors are now targeting whole populations. It takes less and less time to enumerate the entire IPv4 address space. Knowledge about hacking is becoming more and more accessible to a larger group of people. This problem is not going away - it is growing larger for every year. If you don't believe me: Just attach an object to the internet and watch the logs.
- AnIdiotOnTheNet 7y ago> Stuff breaks when it is hacked. Yep, but you have to grade it based on likelyhood. Which costs more, a thing that doesn't work right now or a thing that might not work in the future, maybe. If you can make it work now and be secure, good, otherwise people will, quite rationally, prefer that it work.
- zdw 7y agoIn using both BSD and Linux based appliances, the Linux based ones tend to have more features (VyOS, etc.) and cover more hardware (OpenWRT, etc.) but aren't as long-term stable and problem free, as well as the BSD ones. OpenBSD has much more complete and accurate documentation, which is a plus when you're debugging a problem. I would opine that Linux won because it was familiar but not ideal - see also people trying to shoehorn Windows into embedded systems where a unix variant would be a more ideal pick.
- verytrivial 7y agoWithout trying to sound facetious: "marketing". By that I mean the BSDs aren't trying to capture $$$ but seem to be focusing on good craft and sound engineering first etc and service markets where that matters more than other concerns. Turns out that market isn't as big as others.
- notacoward 7y agoBecause the large companies that deploy hundreds of thousands of servers need to hire lots and lots of people to make or maintain local enhancements, at all levels from the OS to libraries and utilities. In that environment it's not hard to make a local change that saves a million dollars in running-hardware costs, and it's also not hard to find Linux developers to make those changes. OpenBSD developers? Not so much. Then smaller companies do what the big ones are doing even when the potential for million-dollar enhancements isn't there, often because their founders and/or most of their personnel came from those big companies. It's the "rich get richer" effect familiar from social networks, but for software platforms.
- toast0 7y agoThe kernel teams at most large companies, even large tech companies, are not that big. Sure, the pool of currently experienced Linux kernel developers is large compared to the BSDs, but if you hire a smart person (like a Linux kernel developer), and provide them with means, opportunity, and motive you'll have a BSD kernel developer soon enough. Commercial support and network effects and costs of running multiple operating systems are more likely to be a deciding factor than developer availability. If you need to run someone else's software, it probably runs on Linux or Windows. If you run a BSD for your stuff, and Linux for theirs, that means you'll probably need more people to understand both. If you're going to run on other people's hardware, Linux is almost always supported, although there's been some movement on BSD in clouds. Like with other niche platforms, if it's not currently supported and you want to do it, you might need to do the work -- there's a lot less community to rely on to magically make things work.
- notacoward 7y ago>The kernel teams at most large companies, even large tech > companies, are not that big. It's not just about the kernel. You're talking about entire ecosystems of core utilities, filesystems, network stacks, security mechanisms, virtualization and resource-control subsystems (e.g. cgroups), performance profiling and tuning, etc. They're different systems from top to bottom, just like when I switched from 4.3 to V.2 thirty years ago. > Commercial support Stop right there. FAANG companies aren't going to buy support contracts. They'll hire the maintainers instead (like they did with me and hundreds of others like me at my current company). They're not going to split that effort across multiple platforms. They'll focus on one, then hire thousands of developers who don't even realize the tools and interfaces they use are Linux-specific. Then all of the wannabes will copy them, for the reasons I already mentioned. The network effect has gone way beyond any chance of reversal. Sorry.
- UI_at_80x24 7y agoIt is if you know where to look or who to talk to. That is the exact same question I was asked ~20 years ago regarding Linux vs Windows. The barrier to entry is higher on *BSD then it is on Linux. But with the appropriate skills/time/energy it is very much worth the effort. ALL of my edge devices run OpenBSD(since 2011). Most of my Internal servers run FreeBSD (90+%), with the remainder on OpenBSD. I made the decision to migrate away from Linux when SystemD was made default in Debian. In my mind they make more sense. I can grok the config files and Init process. MAN pages are much easier to understand. Network config is brain-dead simple and powerful; that's a combination that shouldn't be overlooked. I freely admit that I'm an old-fart. My manager thinks I'm a hippy, and my co-workers think I'm a Unix-greybeard. In reality it's just this simple: It does what I want, and gets out of the way.
- davidcuddeback 7y agoThis is pretty much my experience, too, almost word-for-word. I also run OpenBSD on my edge nodes and FreeBSD for most app servers. After using FreeBSD on servers for about two years, I felt more comfortable with it than I do with Linux after 20 years. A large part of that is FreeBSD's simplicity, consistency, and documentation. It means I can pull on a thread and follow it myself, often without resorting to mailing lists. On Linux, I often feel like I'm trying to piece together information from a variety of sources, sometimes outdated or not applicable to the distro I'm running. BSD feels more cohesive to me, and I think that makes me more self-reliant.
- majewsky 7y agoIt's hilarious how one can distinguish systemd fans and haters by how they write either "systemd" (pro) or "SystemD" (against).
- msla 7y agoA number of good replies in this thread, and I usually reach for the USL lawsuit as the go-to explanation, but another explanation I've heard probably has some merit as well: Linux came up from the PC world, whereas BSD came from academia and, later, techie companies. Therefore, bedroom hackers would be more likely to be able to install Linux on the hardware they had, not the hardware they wished they had, so they'd reach for Linux when their employer wanted some kind of backroom system that didn't cost an arm and a leg. Therefore, there was more Linux out there beyond the explicitly techie companies, the ones who'd have already bought Solaris or IRIX or HP-UX, and the current userbase drives both features and future userbase.
- nnq 7y agono docker support on *BSD unfortunately :| ...this can be a show stopper
- cat199 7y agono jail support on linux..
- nnq 7y agoyou miss the other point of Docker: cross-platform dev (and only occasionally cross-platform deployment)... I can run same set of docker containers that make up an app, including scaling multiple instances of each container, on (1) my macbook, (2) my ubuntu linux laptop, (3) my centos server (4) my windows laptop, (5) my other windows laptop, (6) my client's windows server. I can do this without bothering to configure my app specifically, or without even knowing or learning what the dependencies of my app are! BSD's are the "loner children" playing by themselves while everyone expects to have everything running everywhere and expect it by default... Sorry, but unless effort is made to embrace kuber and docker, the niche will shrink. One way out of the problem is to have entities like the FreeBSD foundation the OpenBSD devs invest effort into Docker development to make it capable of running BSD containers inside it... but this will never happen because of endless ego :|
- cat199 7y ago... all 6 of which were running a linux vm until recently, and still predominately so (windows containers are hugely niche and have just about as much 'loner children' baggage in the larger commmunity) writing a gui to spin up the VM flavor du-jour with one hipster command that you can show in an animated terminal in your bloated website doesn't make something cross platform underneath the hood, and that same VM runtime could run just about anything else. and no, i don't miss the point. you miss the point - you are arguing market share as if it is technical merit. I'll take 1 true school unix hacker over 5 million 'noders' who cant debug their super hip k8s clusters they provisioned 'in the cloud' with wget|sh when they break.
- dwheeler 7y agoLinux came after the BSDs, so you would think the BSDs would have won. There are many reasons Linux-based systems are generally much more popular than the BSDs in the server and workstation spaces. Here's why I think that happened: * GPL vs. BSD license. Repeatedly someone in the BSD community had the bright idea of creating a proprietary OS based on a BSD. All their work was then not shared with the OSS BSD community, and the hires removed expertise from the OSS BSD community. In contrast, the GPL forced the Linux kernel and GNU tool improvements to stay in the community, so every company that participated improved the Linux kernel and GNU tools instead of making their development stagnate. This enabled the Linux kernel in particular to rocket past the BSDs in terms of capabilities. * Bazaar vs. Cathedral. The BSDs had a small group who tried to build things elegantly (cathedral), mostly in "one big tree". GNU + Linux were far more decentralized (bazaar), leading to faster development. That especially applies to the Linux kernel; many GNU tools are more cathedral-like in their development (though not to the extent of the BSDs), and they've paid a price in slower development because of it. * Multi-boot Installation ease. For many years Linux was much easier to install than the BSDs on standard x86 hardware. Linux used the standard MBR partitioning scheme, while the BSDs required their own scheme that made it extremely difficult to run a BSD multi-boot setup. For many people computers (including storage) were very expensive - it was much easier to try out Linux (where you could dual-boot) than BSDs. The BSDs required an "all-in" commitment that immediately caused many people to ignore them. I think this factor is underappreciated. * GNU and Linux emphasis on functionality and ease-of-use instead of tiny-ness. GNU tools revel in all sorts of options (case in point: cat has numerous options) and long-name options (which are much easier to read). The BSDs are often excited about how small their code is and how few flags their command lines have... but it turns out many users want functionality. If tiny-ness is truly your goal, then busybox was generally better once that became available circa 1996 (because it focused specifically on tiny-ness instead of trying to be a compromise between functionality and tiny-ness). Some claim that the AT&T lawsuit hurt the BSDs, but there was lawsuit-rattling for Linux and GNU as well, so while others will point to that I don't think that was serious factor. Here's one article discussing this: https://www.channelfutures.com/open-source/open-source-history-why-didnt-bsd-beat-out-gnu-and-linux https://www.channelfutures.com/open-source/open-source-histo...
- 7y ago
- big_chungus 7y agoIn some places they are. For instance, net flix appliances use FreeBSD. One of the deciding factors here is licensing: Linux is gpl, meaning net flix would have to contribute back its changes, whereas by using a BSD-licensed alternative, it can keep those changes in-house for a performance advantage. You can dispute the merits or ethics of this, but that's the choice a good few people make. I believe yahoo used it for similar reasons. Some consoles (Sony Play Station 3, Nintendo Switch, possibly others?) use it internally, again so they don't have to open-source console code. Others use it for appliance-type devices, again for similar reasons.
- derpherpsson 7y agoNothing stops you from switching. Make an informed choice.
- gerbilly 7y agoIn the early 1990s there was some legal dispute over the BSD license. It spread FUD and prevented people from developing on BSD, and steered them towards Linux. This is from memory, maybe someone else can fill in the details.
- peterwwillis 7y agoLinux had more bleeding edge development, and that's what developers wanted, so that's what they wrote their apps for, and so that's what people used for workstations, so that's what got all the newest hardware drivers, and new kernel features, and new desktop work, etc etc. Linux just had "more stuff". Without any other particular reason to pick one over the other, most people picked the one with "more stuff". Nobody wanted to install an OS for a server just to find out it couldn't run the latest software, or didn't have the latest drivers. In addition, the userland of the BSDs was different from GNU tools; if you were already installing GNU tools on every other OS you adminned, you might as well run the OS that's based on it. Finally, if you wanted Enterprise support, Linux was the only Open Source choice, afaik. Some at the timed claimed performance benefits from one or the other, but various benchmarks showed Linux and BSDs each had their respective performance strengths that could generally be overcome by tweaking.
- kiney 7y agoI'm not up to date with all the spectre mitigations. Is AMDs SMT implementation still consideres secure?
- derpherpsson 7y agoYes.
- dleslie 7y agoHistory will show that Theo was right in a manner similar to how Stalman was right: technically correct analysis and eerily accurate predictions, but lacking in sufficient charisma to create more than a small following. To some extent, you might say they are like Cassandra; speaking the truth but not believed or listened to.
- ur-whale 7y ago"lacking in charisma" sort of implies that they have too little, but still some and doesn't really account for how they actively piss off other technologists and push them away, however right they may be technically.
- tyingq 7y agoTannenbaum perhaps somewhere in the middle. Huge install base, but little noteriety.
- throwaway2048 7y agoMinix only has a "huge install base" because of Intel ME firmware junk. Its not really meaningful, because the firmware could be pretty much any arbitrary OS and it would make zero difference to any end user. Tannenbaum himself didnt even know about Intel using MINIX in their ME firmware until recently, so that should show you how much relevance it has.
- red_phone 7y agoThis is, at least in part, a result of MINIX using a highly permissive license. It’s easier to use an open source OS in relative secrecy if you aren’t required to release your modifications. And an organization with deep technical expertise like Intel would not likely need much assistance from the community for their implementation.
- ryacko 7y agoThey could still require redistributions to include a copyright notice. I think the real issue is that Intel might engage in product binning without changing the source code.
- dnautics 7y agoPerhaps someone might know better than me: why is hyperthreading necessarily bad? Can't you just keep it on and give your tenants cores with affinity? For example, some tenant wants two cores, you give them two vcores on the same core; some tenant wants four cores, you give them two vcores over two, etc.
- gamache 7y agoIt's not necessarily bad, but it is not secure by default. That's why it ships turned off.
- messe 7y agoThat's mostly fine, but it complicates the scheduler and doesn't necessarily help performance. IIRC hyperthreading performs best when the workload on each thread is different (not taking caches into account), so running threads from the same process on the same core can (although isn't always; I'd hesitate to claim anything concrete here without benchmarks) be detrimental. OpenBSD devs are likely open to it, but there are other inefficiencies in the kernel like locking that have priority.
- throwaway2048 7y agoBecause unless you make hyperthreading a purely opt in thing, there is no way to know as a kernel if two things that are security sensitive relative to each other are being run on the same core as Hyperthreading neighbors. Two threads in a web browser that are assigned to different websites for instance.
- rrss 7y ago> there is no way to know as a kernel if two things that are security sensitive relative to each other The kernel has a way, and it is process isolation. The kernel doesn't care if you want two threads in the same process to be isolated from one another - that's your problem, not the kernel's. Anyway, thread isolation already doesn't work even without hyperthreading-specific attacks: "we have discovered that untrusted code can construct a universal read gadget to read all memory in the same address space through side-channels. In the face of this reality, we have shifted the security model of the Chrome web browser and V8 to process isolation" (from https://arxiv.org/pdf/1902.05178v1.pdf https://arxiv.org/pdf/1902.05178v1.pdf).
- deleted 7y ago[deleted]
- danarmak 7y agoTwo of the three (current) top-level replies compare BSDs to Linux in general, but that really has nothing to do with whether you disable HT. Using Linux should not have stopped anyone from listening to Theo and disabling HT months ago. Your security authorities don't have to be your kernel developers.
- josteink 7y ago> Using Linux should not have stopped anyone from listening to Theo and disabling HT months ago. Iirc OpenBSD actively disabled it for you, making it the default. Nobody else did that.
- danarmak 7y agoIf that's true, it's wonderful and I applaud them for making this decision. I haven't been following this conversation closely; is there any serious change of Linux (some distributions, or the kernel upstream) disabling HT by default?
- beefhash 7y ago> Iirc OpenBSD actively disabled it for you, making it the default. They have, as of this commit[1] on 2018-06-19. [1] https://marc.info/?l=openbsd-cvs&m=152943660103446&w=2 https://marc.info/?l=openbsd-cvs&m=152943660103446&w=2
- baybal2 7y agoIn fact, cache p3 timing attack was known as "theoretically possible" back in nineties, but was booed out of the conversation by "big name security analysts"
- h2odragon 7y ago"I told you so" gets less satisfying each time you get to say it, yaknow? (* commiseration, no criticism)
- bagacrap 7y ago
- robmusial 7y agoFor those that can't watch the video GregKH says that OpenBSD was right to disable hyper-threading earlier than Linux in response to Spectre and Meltdown and now Linux disables it too. He also caveats it by saying they were right for "a little bit of the wrong reasons" but at least in this clip doesn't expand on what he meant by that or what those wrong reasons were or why they were wrong.
- deleted 7y ago[deleted]
- dooglius 7y agoWhy should the kernel be making this decision at all, rather than leaving it up to the distro or a command-line boot argument? EDIT: can't see the video so if it is just a default rather than a forced disablement that's fine.
- Canada 7y agodefaults matter
- admax88q 7y agoBecause sane defaults are important.
- Crinus 7y agoIsn't this a "sane" default only in specific contexts though? (VMs). For a desktop PC that almost always runs a single heavy task (games, rendering, video encoding, etc) hyperthreading can be a day and night difference.
- phaer 7y agoYess, "sane" is context-specific, but it's useful to err on the side of more security and less performance, rather than the other way round.
- baybal2 7y agoGreg is a very important man, many bet he will be the one to take over the Linux development after Linus
- segfaultbuserr 7y agoThe title has a clickbaity tendency, it should be changed from "OpenBSD was Right" to "OpenBSD was Right (on disabling hyperthreading)".
- ajsnigrutin 7y agoA wee bit offtopic, but if we look at the VW/dieselgate, and the aftermath of it all, and the class-actions, returns, refunds, etc, and hyundai/kia lies about gas milage and people getting refunds for gas... ...when is something like this going to happen to intel? We've bought CPUs with excpectations of promised performance (like people did with emission expectations and gas milage expectations), they messed up, and we get lower speed, and now no hyperthreading and still no refunds? If i bought a 60" TV and the picture was only 50" with a black border around, i'd return it immediately... why isn't there some action regarding CPUs?
- umvi 7y agoIf I sell you a lock, and then 10 years later someone finds a vulnerability with the lock I sold you, should I refund you? That seems absurd. You are basically saying the product has to be perfect and the architects have to be able to see the future. Even if your hardware is formally verified, people can do physical attacks like listening to high frequency chirps of your cpu and using that to break security. Do you still deserve a refund? There is no such thing as perfect security. It is a cat and mouse game that will continue until the end of time, requiring ever greater resources. Therefore... all software and hardware should be free because all software and hardware is defective?
- floatingatoll 7y agoLocks often offer a lifetime warranty against manufacturing defects in their locks. Is this a manufacturing defect in CPUs? (The defect is baked into hard silicon out in the world, so the analogy is plausible.)
- tptacek 7y agoThe title of this should be "OpenBSD Was Right About Hyperthreading", which is all he says in the video. "They were right for a little bit of the wrong reasons, but they were right".
- Woodi 7y ago"Disable HT when you don't trust your users" Also: Do not run not your own code, like eg. JavaScript. There is way too much short living code. Why we not build software libraries as we learn using computers and then use it for the rest our life ? Programmers should switch to programming human domain problems, not constantly reimplementing Start Menu hierarchy. Btw. anybody uses Tripwire ? Eg. with apt-get or pacman and saving hashes to ro device ? ;)
- big_chungus 7y agoThere will be a large number of people who don't like this. However, consider the following: most people, even those who use linux, don't want to bother with too much configuration. For those people, it is probably "good policy" to disable a potential security risk. Leave the option for those who understand what they are doing and wish to go ahead, by all means, but make the default secure. For instance, I have server machines at home which do not handle critical or particularly sensitive data. They are securely firewalled, and shouldn't be touched by anything not trusted by me. On those machines, I sacrifice some potential security for performance. No patches for meltdown, spectre, foreshadow, l1tf, etc. as they have significant impacts on performance and these boxes don't really need it. For my firewall, however, I turn on all patches and sacrifice quite a bit of performance (in other areas, not just patches which cause slow-downs) for more security. It handles un-trusted input; other boxes do not. I can plan accordingly. The important thing to remember is that I am intentionally making those choices and considering that trade-off. Most users are not. It is somewhat better to leave things like ASLR enabled and hyperthreading disabled by default, because that is what is best for the average user. Lastly, it is of not that if something such as this is disabled and there is a resulting security breach, every one will run around screaming, "Linux is insecure; ahh!" This will happen, even if the user is informed he is supposed to do this for things which need to be secure.
- Syzygies 7y agoI disable hyperthreading for better performance. In my experience as a mathematician building parallel compute servers, hyperthreading generates more heat than it is worth. I can overclock further without hyperthreading, to more than overtake the faint advantage that hyperthreading offers at a given clock speed. So I now buy binned, delidded processors from Silicon Lottery, choosing the best reasonably priced speed of the best cpu without hyperthreading. That would today be the i7-9700 @ 5.1GHz for $400.
- hinkley 7y agoThe number of generations of processors where this has been true is really astounding to me. It really makes me wonder why they persist with this line of effort instead of doing something else, like cores that share logic units only.
- gen3 7y agoUse cases are different. I would imagine the poster above is able to saturate all the cores, but in the case of the regular user, the cores spend most of their time waiting for data.
- AaronFriel 7y agoBecause for a large number of workloads, hyperthreading gives real performance improvements. The vast majority of consumers aren't running compute heavy workloads that are more amenable to SIMD work (which it sounds like this might be) than the sort of highly branching, often stalled work that general purpose programs do.
- xuhu 7y agoI guess you mean i7-9700k instead of i7-9700.
- pingyong 7y agoThat really depends on the workload though. x264 benefits massively from hyper threading for example. Way more than the 6% performance you get from more overclocking headroom.
- fierarul 7y agoFrom the video: "two weeks ago: another one was released... publicly" So... there's more to come.
- Causality1 7y agoWould it be that difficult to run chips in a secure mode with no hyperthreading or branch prediction when handling sensitive information and then takes the brakes off for normal operation? I mean, I wouldn't really care if someone was watching everything I do for 95% of my computer use time.
- lcall 7y agoThere was a longish recent thread on a mailing list where people described well (and linked to) why they like OpenBSD. https://marc.info/?l=openbsd-misc&m=156700281107546&w=2 https://marc.info/?l=openbsd-misc&m=156700281107546&w=2 The most recent one I saw gave a reasonable sense of some tradeoffs: https://marc.info/?l=openbsd-misc&m=156750048426578&w=2 https://marc.info/?l=openbsd-misc&m=156750048426578&w=2 I'm sure they welcome donations. :) Software they have written have benefited many, directly or indirectly (like OpenSSH). ...but the whole thread was interesting I thought.
- Animats 7y agoIf you run BSD on AWS are you running a hypervisor underneath that's still doing hyperthreading? On most AWS instances, a "virtual CPU" is really a hyperthread.[1] "Each vCPU is a thread of either an Intel Xeon core or an AMD EPYC core, except for T2 and m3.medium." Is anybody actually attacking AWS this way? It seems a promising attack vector; you get to run your own code on the same machines as others. [1] https://aws.amazon.com/ec2/instance-types/#instance-details https://aws.amazon.com/ec2/instance-types/#instance-details
- kinghajj 7y agoI don't think that vector would work, as only a single tenant's VM is scheduled on any particular core. That's why the minimum number of vCPUs for instances on hyperthreaded hosts is 2.
- mixmastamyk 7y agoI bought a core i5 a few years ago merely to save money as I edit text files for a living. By chance it turns out to not offer hyper-threading. Not sure it matters much but interesting none the less.
- shmerl 7y agoDoes it refer to Intel specifically (hyperthreading is Intel's term), or it any processor (then the general term should be SMT).
- vallismortis 7y agoI'm still not - um - disabling, ah, hyperthreading, because, I'm paying for, ah, 4 cores on a 2 core ah, processor.
- 3xblah 7y agoFull interview: https://www.youtube.com/watch?v=sDrRvrh16ws https://www.youtube.com/watch?v=sDrRvrh16ws One of the things the Linux kernel developer says in the interview is that researchers are going through Intel patents to find "security bugs". He says this is "fun". Twice. He seems pretty nonchalant about these issues. Like it is great to fix them, but not like it is too important or anything to worry about. He says what is most important to him is that Linux "succeeds". The attitude is reminiscient of Microsoft in their heyday. Drunk on success. He even calls out a Microsoft employee he is working with. He says the companies contribute "selfishly". This is no different from BSD. Users do not determine how much security is prioritized, the contributors do. However, what happens when the biggest kernel contributors are companies? He also indicates he does not agree with Stallman philosophically on technology issues. We do not get any details of the specifics of their disagreement. As a user, I think is it somewhat easier to keep track of Net/OpenBSD kernel contributions than it is to keep track of Linux kernel contributions. I might be wrong on that. As far as I can tell, the biggest contributors to Net/OpenBSD kernels are still individuals and are not acting directly on behalf of corporations.
- asveikau 7y agoI haven't had a chance to watch but it seems like you are berating him for figures of speech and/or speaking styles. As far as I know his contributions to the kernel are pretty vast. We are all human and security isn't his only focus so maybe give him a break.
- imtringued 7y agoHyperthreading is cool in theory, but most workloads that take full advantage of it are usually filled with code that is doing nothing but following pointers. It is generally unoptimized code or code written in an interpreted language that doesn't focus on speed anyway. It also requires the program to take advantage of multiple threads in the first place. This means languages like python don't benefit at all but code written in C/C++ are so optimized that hyperthreading does nothing but divide the cache into two halves.