Re: [情报] Linus Torvas解释为什么ARM架构无法在

楼主: hizuki (ayaka)   2019-03-01 14:51:02
: → xiemark : 想买一个ARM的电脑装Linux用gcc来compile ARM程式 02/28 22:47
很多啊,chromebook是google出的,ASUS/Samsung都有ᆬN工生产的
贵的服务器我倒是没看到二手的
: → Klauhal : x86 bug就忙死工程师了,哪有公司想再开ARM DEV TEA 02/28 23:09
: → Klauhal : M 02/28 23:09
其实不考虑device部分的问题,userspace基本上x86有的bug在arm上都是有的。
因为多数服务器程式(以database/web service为主)不会去用到真平台相关的东西
就关注Filesystem IO/Memory/Network这三个东西,这边API都是超级抽象的和设备没有什么关系
: 推 flylee : ArmPC/Server还有个大问题就是碎片化 03/01 10:25
: → flylee : 一旦有一家芯片公司赚到了,可能其他十家芯片公司 03/01 10:26
: → flylee : 跟着出同类的芯片,每家的驱动都一堆问题 03/01 10:27
现在ARM有支援ACPI/EFI,碎片话问题很好解决了,原来只能靠dtb(更早device file)
来加载driver,现在有比较常规的方法让kernel启动,反正服务器也不会用太多外部设备。
ARM服务器我倒是在刀片领域见的不少,运行的任务就非常阳春,也几乎不需要什么外部设备。
其实ASUS和MSI都有出大型的ARM服务器,我不知道那些卖的好不好。
主要的问题是ARM在框架设计上不容易扩展,一般消费领域设计上也是以紧整合为要务的。
Intel的x86一个CPU现在包山包海,但是除了main Memory controller和
PCI-E lanes controllers外,其他的设备都是形式上附加在PCI-E bus上的,
甚至连ECC memory controller都是附在PCI-E bus上的。
然而ARM平台不是的,ECC memory controller,PCI-E root bridge, USB controller,
和网络卡控制器,甚至什么加密加速器都是附加只AXI bus上(当然还有控制用的AHB bus)。
这也是ARM平台省电的一个地方,一个芯片都包了。还共用同一个bus,这样其实对memory访问
效能影响很大的,甚至多个CPU都不能真同时访问Memory。而x86平台在这边对Memory控制器
都是有多闸道设计的。
这种设计其实也不利服务器的使用环境,服务器领域习惯用PCI-E扩展设备,包括RAID卡,
网络卡,管理卡之类的设备。
回头来说软件问题,我在今年FOSDEM倒是常常跑到Database的devroom去听听人家在乎什么。
举一个例子,使用Huge page来提高database效率的。这个其实只有在那些有MMU并且MMU
支援更动page size的平台上进行。会带来什么问题呢?很多Linux driver写的时候都是alloc
几个pages来个设备用的。因为一般认为一个page就4K~32K,是很小的尺寸。
然而启用Huge page后随便一分,就几个Gbytes没了。我当时有和演讲人提这个问题,
回头要向mail list提出,结果我现在也没等到邮件。
这类问题只如果知道的话不要乱抄conf就不会有事,其实database那边考虑的问题多数都和平台无关。

Links booklink

Contact Us: admin [ a t ] ucptt.com