Linus Torvas解釋為什麼ARM架構無法在 - 3C

Table of Contents

: → 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那邊考慮的問題多數都和平台無關。

--
你比較喜歡哪一個?
當年不是黨國大老但是被江浙財團捧紅的中國帥哥
跟同樣擁兵一方的諸侯約會裁軍結果半途諸侯們爽約,平常有在寫日記的莊嚴男人開始發飆
在旁邊讀著荒漠甘泉冷眼旁觀看著薔薇戰爭的人,為了中國的事情爭吵
別國調侃是不是中國總統,義正詞嚴的說著我是民族的燈塔的威嚴老先生

--

All Comments

Agatha avatarAgatha2019-03-04
Chromebook 是X86,為了挽救在企業應用相對低迷的態
勢,谷歌最後還是得加入可以安裝WIN10的設定,這看
在華碩的眼裡,可能用粗話問候谷歌祖宗十八代還是
氣噗噗的。
Sandy avatarSandy2019-03-05
DPDK也是要huge page 所以才會說某些情況下反而效
能不佳?
Frederic avatarFrederic2019-03-07
chromebook有Arm的,ASUS有出RK3258版的
Franklin avatarFranklin2019-03-08
是因為當年華碩搞雙平台的NB結果被谷歌錶嗎?
Aaliyah avatarAaliyah2019-03-08
重點是效能好唄,大型專案用arm是要build到民國幾年
Valerie avatarValerie2019-03-12
效能算次要 主要問題真的就不同平台差異造成的暗坑
Ivy avatarIvy2019-03-15
x86開發+最佳化設定都好好的沒問題
同設定換到ARM上面怎就行不通了咧 這種感覺...
Robert avatarRobert2019-03-15
這邊講的是開發環境, 還效能次要咧
Hazel avatarHazel2019-03-18
這邊說的memory/page就是最明顯的例子 架構造成的
Bennie avatarBennie2019-03-20
dpdk重點在於小封包也很快啊
Brianna avatarBrianna2019-03-22
你的真以為gcc那些編譯器在ARM上面跑比較慢 只單純
因為"效能差"而已嗎?
Ivy avatarIvy2019-03-27
他要的是避免被swap 只是說缺點是他用的page別的ap
plication是不能用的
Kristin avatarKristin2019-03-27
tcp offload只是另一個輔助 至於你說dpdk到底會不
會快很多
Zanna avatarZanna2019-04-01
我用到現在的答案是肯定的 只是當然還有更快的方法
dpdk不快就不會一堆聯盟在推了
Hedy avatarHedy2019-04-03
架構差異 >> 最佳化方式有差 >> 效能跟預想的有落差
不是單純"效能"兩個字的問題@@
Ina avatarIna2019-04-04
只是缺點也很明顯 別的程式不能用他鎖住的硬體資
Rebecca avatarRebecca2019-04-06
專業推推
Xanthe avatarXanthe2019-04-07
intel換amd都不簡單 arm換x86滿滿的問號啊
Anthony avatarAnthony2019-04-11
DPDK最低是需要2KB pagesize的記憶體 而DPDK效能好
的關鍵是他繞過Linux那堆複雜而且效率不好的網路架
構吧
Kumar avatarKumar2019-04-11
是2M不是2K其實 繞過kernel只是其一 你不釘在memo
ry上還是會被switch出去就會變慢