Linus Torvalds pulls pin, tosses in grenade: x86 won, forget about Arm in server CPUs, says Linux kernel supremo
Processor designer says he's right about one thing: The need for end-to-end dev platforms
Linux kernel king Linus Torvalds this week dismissed cross-platform efforts to support his contention that Arm-compatible processors will never dominate the server market.
Responding to interest in Arm's announcement of its data center-oriented Neoverse N1 and E1 CPU cores on Wednesday, and a jibe about his affinity for native x86 development, Torvalds almost abandoned his commitment to civil discourse while doing his best to dampen enthusiasm for a world of heterogeneous hardware harmony.
"Some people think that 'the cloud' means that the instruction set doesn't matter," Torvalds said in a forum post. "Develop at home, deploy in the cloud. That's bullshit. If you develop on x86, then you're going to want to deploy on x86, because you'll be able to run what you test 'at home' (and by 'at home' I don't mean literally in your home, but in your work environment)."
For Torvalds, this supposedly unavoidable preference for hardware architecture homogeneity means technical types will gladly pay more for x86 cloud hosting, if only for the assurance that software tested in a local environment performs the same way in the data center.
During his time as Apple's CEO, Jobs took a similar stance toward native application development, going so far as to ban Adobe's Flash technology on devices running iOS in 2010. For Jobs, cross-platform code represented a competitive threat, bugs, and settling for lowest-common denominator apps.
Here's why your next network switch, storage box, or 5G gateway may do more Arm than good: E1, N1 data-center CPU cores aim at future kitREAD MORE
For Torvalds, it may be that supporting Arm architecture complicates kernel development, demanding more work and creating more potential issues to resolve. But his argument is more about the bias encouraged by local developer hardware. Programmers ran Windows and Linux on their personal machines and those workloads shaped the server market, he suggested: craft and test code locally, confidently deploy in servers. The scarcity of developers running Arm devices for their daily work helps ensure Arm architecture won't come to dominate the server market, the kernel chief seemed to say.
While a lot of software can be recompiled, or interpreted, to run on x86 or Arm machines with no changes, there's, for some, a lingering fear that it won't always quite work as expected – a missing dependency here, an unexpected performance hit there, say. Having a local dev box use a hardware architecture alien to the one you're deploying to freaks some people out, and Torvalds reckons the Arm world is doing itself no favors by lacking Arm-based computers on which developers and admins can toil away before flinging their work at an Arm-powered server.
It's compounded by the fact that Arm CPUs tend to appear in resource-constrained sub-workstation devices – embedded electronics, home appliances, Internet of Things gadgets, smart cards, microcontrollers, phones, tablets, and so on – and their firmware is built using non-Arm-based systems that are more powerful. Which means there's never really been a demand for nor supply of high-end Arm-based PCs that programmers would use.
"Cross-development is mainly done for platforms that are so weak as to make it pointless to develop on them," insisted Torvalds. "Nobody does native development in the embedded space. But whenever the target is powerful enough to support native development, there's a huge pressure to do it that way, because the cross-development model is so relatively painful."
Not everyone agrees with this. Redis creator Salvatore Sanfilippo, a.k.a. antirez, in a post to Hacker News contends that most developers "don't care about environment reproducibility at architecture level." Supporting Arm architecture on Redis, he insisted, was fairly simple.
Arm has some thoughts too. "We appreciate Mr Torvalds's opinion and agree that having end-to-end development platforms is essential, which is why we’ve taken an important step by announcing the Neoverse N1 System Development Platform (SDP) this week," a company spokesperson told The Register in an email.
While Torvalds's observations may have been true in the past, they fail to anticipate the possibility of change. Apple is said to be preparing to introduce Arm-based Macs in 2020, and its iOS hardware lineup relies on its homegrown Arm-compatible CPU cores. Microsoft is supporting Arm development for Windows 10 apps. Qualcomm, which is designing laptop-class Arm system-on-chips, has said that it's working on an Arm port of Google Chrome for Windows 10 Arm laptops.
Perhaps in recognition of Arm's opportunity, Torvalds hedges his bets in a follow-up post. Allowing that Arm has improved its memory model, and made the instruction cache system-wide coherent in the server-grade N1 blueprints, he says he prefers Arm's approach to vector math more than Intel's AVX512.
"I still will hold judgement until we actually see widely available hardware that people actually can use for development and deployment," he said. "I've just seen too many promises and 'released' hardware that never went anywhere and nobody really had reasonably available. … But hey, maybe they'll surprise me." ®