News Ampere Computing: Zweimal 192 Kerne sind schon zu viel für Linux

MichaG

Redakteur
Teammitglied
Registriert
Juli 2010
Beiträge
12.926
Der kalifornische CPU-Entwickler Ampere Computing steht vor einem Problem: Werden in einem Server zwei seiner 192-Kern-Prozessoren eingesetzt, übersteigt dies bereits das Limit beim Linux-Betriebssystem. Daher soll ein Patch dafür sorgen, dass künftig mehr Arm-Kerne unterstützt werden.

Zur News: Ampere Computing: Zweimal 192 Kerne sind schon zu viel für Linux
 
  • Gefällt mir
Reaktionen: flo.murr, aid0nex, Aquilid und 8 andere
Ich bin da zugegebenermaßen unterbelichtet, aber wieso muss der Kernel überhaupt so klein wie möglich gehalten werden?

128 Kerne * 8KB = 1MB, 512 Kerne * 8 = 4MB
Wieso sind 2023 die Megabytes so kostbar?

Verstehe ja, dass man überhaupt entsprechende Systeme zum Testen benötigt, aber das 8KB-Hindernis lässt mich verwundert zurück.
 
  • Gefällt mir
Reaktionen: TecTurtle, truetone, very ape und 18 andere
Was für ein Betriebssystem außer Linux will man auch sonst auf ARM betreiben? :D

512 Kerne für x86 sind auch nicht besonders viel.

Größere 8-Sockel-Maschinen mit 56-Kern Intel Xeon 8480H kommen ja schon auf 448 Kerne. Dual-Socket Sierra Forest bringt es dann auf 576 Kerne.
 
  • Gefällt mir
Reaktionen: flo.murr, fandre, aid0nex und 3 andere
Super und wieviele mhz liegen dann an den jeweiligen Kernen an und wie gros ist der Befehlssatz vom den Kernen? Was kann man damit tun?
 
  • Gefällt mir
Reaktionen: floechen
cbuser01 schrieb:
Was für ein Betriebssystem außer Linux will man auch sonst auf ARM betreiben? :D

512 Kerne für x86 sind auch nicht besonders viel.

Größere 8-Sockel-Maschinen mit 56-Kern Intel Xeon 8480H kommen ja schon auf 448 Kerne. Dual-Socket Sierra Forest bringt es dann auf 576 Kerne.
Zumindest für Vorgänger gibtes auch Systeme mit bis zu 16 Sockel (AFAIK das unterstütze Maximum).
Dell und HPE haben (hatten) solche Systeme.

Korrigiere, HPE offeriert bis zu 32 Sockel:

HPE Superdome Flex​


Superdome Flex Server

Eine einzigartig modulare, äußerst flexible und zuverlässige Plattform, die sich als einzelnes System von 4 auf 32 Prozessoren
https://www.hpe.com/de/de/servers/superdome.html
 
  • Gefällt mir
Reaktionen: simosh und TechFA
Dass überhaupt solch niedrige Limits wie bisher bestehen, liegt daran, dass mit jedem unterstützten Kern das Kernel Image um rund 8 KB anwächst.
Könnt ihr da mal nachhaken und erklären, was es damit genau auf sich hat? Wieso wächst das Image mit steigender Kernanzahl?
 
  • Gefällt mir
Reaktionen: fandre, aid0nex, Aquilid und 8 andere
  • Gefällt mir
Reaktionen: flo.murr, fandre, nazgul77 und 12 andere
TriceO schrieb:
128 Kerne * 8KB = 1MB, 512 Kerne * 8 = 4MB
Wieso sind 2023 die Megabytes so kostbar?
Linux kommt auch in sehr kleinen Embedded Systems zum Einsatz, nicht nur in PCs und Servern. Gerade mit ARM Prozessoren
 
  • Gefällt mir
Reaktionen: Charminbaer, aid0nex, lynx007 und 13 andere
Wird die Option CPUMASK_OFFSTACK aktiviert, dann können Ressourcen freigegeben werden, statt sie vorzuhalten.
Bis zu 8.192 Kerne werden dann von Linux unterstützt.

Was heißt das jetzt genau?

Ein Kern Limit von 256 , limitiert auch die threads auf 256? Oder ist damit Smt/HT nicht betroffen? So das nur 256kerne limitiert werden aber 512threads laufen können?
 
  • Gefällt mir
Reaktionen: mdPlusPlus und Weyoun
stefan92x schrieb:
Linux kommt auch in sehr kleinen Embedded Systems zum Einsatz, nicht nur in PCs und Servern. Gerade mit ARM Prozessoren
Na und..verschiedene Versionen
 
  • Gefällt mir
Reaktionen: Renatius
SaschaHa schrieb:
Könnt ihr da mal nachhaken und erklären, was es damit genau auf sich hat? Wieso wächst das Image mit steigender Kernanzahl?
Ich als Laie vermute: Mehr Leistung/Features => mehr Code für die Umsetzung.
Code wächst von 32bit zu 64bit auch an. Liege ich richtig?
 
Wow, so ein klasse Artikel und ich habe nicht viel verstanden.
Da ich nicht die Fragen von oben wiederholen möchte...
Wer kann Licht ins Dunkel bringen.
 
  • Gefällt mir
Reaktionen: aid0nex, GameOC, Weyoun und 5 andere
*Weint mit 40 Threads im Homeserver
:heul:
 
  • Gefällt mir
Reaktionen: aid0nex, GameOC, eastcoast_pete und 2 andere
Firefoxlady schrieb:
Wer kann Licht ins Dunkel bringen.
der linux-kernel für arm64-cpus ist bis jetzt auf 256 cores beschränkt, was zu wenig für dual- (oder mehr) sockel-systeme mit 192-core cpus von ampere computing ist. es gibt einen patch, womit das limit bald offiziell angehoben wird, selber könnte man das auch jetzt schon machen. bei x86 geht historisch schon länger mehr.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: floklo4, fox40phil, TechFA und 2 andere
Für so viele Kerne gesammt braucht man nicht die neuesten CPUs. Das läuft schon seit vielen Jahren. Halt auf mehr Sockeln.

Sockelbasierende Lizenz Modelle hassen 128 Kerne pro Sockel. 😂
 
  • Gefällt mir
Reaktionen: aid0nex, DerFahnder, CastorTransport und 2 andere
Wo genau ist jetzt das Problem? Sie könnten auch einfach selbst einen Kernel kompilieren, bei dem das Limit angehoben ist, der Quellcode ist ja öffentlich. Der Patch ist ja dann nur noch dafür da, dass sie das nicht jedes mal bei jedem Kernel-Update selbst nochmal machen müssen.
 
  • Gefällt mir
Reaktionen: aid0nex, gartenriese, Hate01 und 4 andere
Northstar2710 schrieb:
Ein Kern Limit von 256 , limitiert auch die threads auf 256? Oder ist damit Smt/HT nicht betroffen? So das nur 256kerne limitiert werden aber 512threads laufen können?
Du kommst hier mit den Begrifflichkeiten durcheinander - ist aber nicht deine Fehler, sondern dass hier Begriffe oft gleichwertig genutzt werden, ob wohl zwei verschiedene Sachen gemeint sind.

Ein Betriebssystem kann theoretisch beliebig viele Threads/Tasks verwalten - schau mal in den Taskmanager. Bei einer CPU gilt, dass man pro Kern (Hardware/physisch) erst mal nur einen Thread verabreiten. Mit SMT können da dann 2 oder mehr werden. Für das Betriebssystem sind das aber keine "Threads", sondern erneut Kerne (logisch).

Das heißt, eine CPU mit 128 Hardware-Kernen und SMT2 kommt am Ende auf 256 logische Kerne. Das Betriebssystem sieht nur die "logischen" Kerne. (Man kann dann anhand bestimmter Regel ableiten, zu welchem phyischen Kern der logischen Kern gehört.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: aid0nex, gartenriese, AGB-Leser und 6 andere
Also RedHat Enterprise Linux 9 hat folgende 'Limits' ;-)
Maximale logische CPUs (Red Hat definiert eine logische CPU als jede planbare Einheit. Jeder Kern/Thread in einem Multicore-/Thread-Prozessor ist also eine logische CPU.)

x86_64: 1792 [8192 Logische Kerne]
ARM: 512 [4096 Logische Kerne]

siehe:
https://access.redhat.com/articles/rhel-limits

Nachtrag: Selbiges gilt natürlich auch für CentOS Stream 9 und Fedora 38/39, für das man keine Lizenz benötigt.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: =dantE=, gartenriese, Hate01 und 3 andere
Locutus2002 schrieb:
Wo genau ist jetzt das Problem? Sie könnten auch einfach selbst einen Kernel kompilieren, bei dem das Limit angehoben ist, der Quellcode ist ja öffentlich. Der Patch ist ja dann nur noch dafür da, dass sie das nicht jedes mal bei jedem Kernel-Update selbst nochmal machen müssen.
Das Problem ist, dass sie so billig wie möglich Werbung für ihr Produkt in der Presse sehen wollen. Wenn man so einen Patch braucht, kann man den auch bei einer neuen Kernel-Versionen sofort mithilfe einer CI/CD-Pipeline jedes mal einspielen und neu kompilieren, ist ein Vorgang von Sekunden. Einmal eingerichtet braucht da nicht mal mehr jemand den Finger für krumm machen, inkl. automatisiertem Testen etc.
 
  • Gefällt mir
Reaktionen: Charminbaer, peru3232, Creshal und eine weitere Person
Halbwissendisclaimer!
Von dem was ich aus dem Überfliegen der cpumask.h und cpumask.c aus dem Kernelrepo mitbekomme und mir zusammenreime.

SaschaHa schrieb:
Könnt ihr da mal nachhaken und erklären, was es damit genau auf sich hat? Wieso wächst das Image mit steigender Kernanzahl?
Der Bootloader liest das Kernelimage vom Festspeicher und schreibt dieses in den Ram um dann an den Kernel zu übergeben. Damit der Kernel gleich von Anfang an die CPU Kerne gescheit verwalten kann, ist der Speicherbereich für die cpumask direkt von Anfang an initialisiert, weil es schlicht und ergreifend ein Teil dessen ist, was als Kernelimage in den Ram geschrieben wurde.
Imho nicht sonderlich elegant, aber ein typischer Tausch zwischen Speicherplatz und Laufzeit beim Initialisieren von Hardware (hier halt CPU-Kernen)

/Halbwissendisclaimer

TriceO schrieb:
Ich bin da zugegebenermaßen unterbelichtet, aber wieso muss der Kernel überhaupt so klein wie möglich gehalten werden?

128 Kerne * 8KB = 1MB, 512 Kerne * 8 = 4MB
Wieso sind 2023 die Megabytes so kostbar?

Verstehe ja, dass man überhaupt entsprechende Systeme zum Testen benötigt, aber das 8KB-Hindernis lässt mich verwundert zurück.
Linux wird in kleinen Systemen eingesetzt. Yoctolinux zum Beispielt ziehlt auf Images ab, die mit 8MB Arbeitsspeicher laufen können und unkomprimierten Kernelimages von ab 1,5MB ohne all zu sehr Funktionseinschränkungen zu unterliegen. Yocoto mag ein extemeres Beispiel sein, aber Kernelimages die ohne Not ~4MB größer sind als nötig ist für einige Projekte bereits problematisch.

Und ohne die Kernelmaintainer nehmen generell ungern Patches an für nicht existente Hardware. Klar, manchmal wirkt das komisch, weil absehbar ist, dass in wenigen Jahren ein Stand erreicht sein wird, aber die Regeln wann/was aufgenommen wird sollen auch nicht zu kompliziert sein. Die Regel an sich ist ja sinnvoll, damit man Patchspam zu Vaporware ablehnen kann.



Locutus2002 schrieb:
Wo genau ist jetzt das Problem? Sie könnten auch einfach selbst einen Kernel kompilieren, bei dem das Limit angehoben ist, der Quellcode ist ja öffentlich. Der Patch ist ja dann nur noch dafür da, dass sie das nicht jedes mal bei jedem Kernel-Update selbst nochmal machen müssen.
Damit Speicher für cpumask dynamisch verwaltet werden kann, brauchts aber überhaupt erstmal einen Patch. Die Funktionalität ist für X86 implementiert, aber nicht für ARM.
Eine solche Änderung Out of Tree zu haben, damit die eigene Hardware läuft wäre ein mittelprächtiger Fuckup.
 
  • Gefällt mir
Reaktionen: nazgul77, IllusionOn, Charminbaer und 19 andere
Zurück
Oben