ich hatte mir ja im Vorfeld überlegt, was für ein Publikum vermutlich auf der FrOSCon herumläuft; dem entsprechend war der Vortrag auf »Allgemeinbildungs-Niveau« angelegt.... (was allerdings auch bereits für Benny eine erhebliche Herausforderung war, also vermutlich auch für andere Leute)

in die Sektion: Research

...mein langfristiger Plan: ich will eine Knowledge-Base schaffen

neues Git-Repo nur für den Demo-Code anlegen

verwende qrencode

Es war von Anfang an klar, daß wir speziell dieses Thema selber unter Kontrolle bringen müssen.

Christian hatte seinerzeit ein MMAP-Backend implementiert. Ich folge dem gleichen Ansatz, gehe aber mit der Linux-Kernelentwicklung mit...

was wir zeigen können

man setzt einen Socket auf "asynchron". Durch cleveres Polling bekommt man mit, wann die IO-Operation »ready« wird. Aber das ist readyness-semantics, not completion-semantics. Und es ist sehr limitiert, und setzt eine komplexe State-Machine im Userland vorraus

Arbeitet in einem speziellen Modus, IO_DIRECT

Kann nur bereits allozierte/ geöffnete Files bearbeiten

kann nicht mit generischen Sockets arbeiten ⟶ auch kein Networking

geht am Page Cache vorbei

Aus einem Kommentar auf LWN

https://lwn.net/Articles/810898/

What it says about the state of hardware is easy.

Meltdown mitigations made context switching more expensive, and SSDs made the actual I/O cheaper. At some point, you're spending almost as much time context switching as you are doing actual work, and there's nothing Linux can do about it because it's all tied up in the architecture of the MMU and the processor's cache. Thus, it now makes sense to design the interface around reducing the number of context switches at all cost, instead of just assuming that the cost of doing the actual I/O will dominate.

extended Berkeley Package Filter: ein Framework, das Code als Reaktion auf Events direkt im Kernel-Kontext ausführt

Es wurde alsbald erheblich als Einfallstor für Exploits genutzt, da das bestehende Security-Tooling diese neuen Mechanismen überhaupt nicht »auf dem Schirm« hat. Im Jahr 2023 hat das Google-Security-Team 60% aller Linux-Exploits dem IO_URING subsystem zugeordnet. Daher ist es auf Android und ChromeOS und unter Docker in der Standard-Konfiguration deaktiviert (und hat einen schlechten Ruf unter den »Oldtimern«)

  • adoption is rising
  • io_uring is not going away anywhere soon

...denn das bedeutet, da ist nichts »mainstreamiges« unterwegs, von dem ich noch nichts wüßte.

organisatorisch

-----BEGIN PGP MESSAGE-----

hF4DgGNXC/FW0HQSAQdAynTDJxP4gey1VAsJ/2fb/Pz/7SdEDaH99pGL3xFNBhgw

gOXq9+2npcG+wn9stWNHsIHJlCTcgMQWoBSQX8w2irTkUYncReWhdiAbz971t4Cs

0sBJAXhQ13ML9umVxaY9+RGxUUZqZ1dLDfcAbDTh0b9xbjrrGclWCA8kO9y8cVOI

afQLpsGCRvSaDCGIDTe2sbK1knwCiZK7sQIz6GOYEHQYvyRTwNHhmCivLy4aqy1U

jLJVbx0qgbUu+mMJGugNbITFRyfIu2W9P4ceBX4AE0KUaXwwg8CIbQfGld+0+cMc

IafKrmBGrIAYf6APYSDbBxXV3V5QfTN4Ew220rxcO8HIpYJDYyaNbHpyT3OjcSgy

GVpZ7L8f88aXGKbiwX2rdW1iLbmfBdbFixY0Me4on4A0qHzXpMB7ZeGZ6yvq6j5q

/K7d77gSJdwLWRyE49RwdmRXe1Siv/iP4WM9lQ==

=RxD1

-----END PGP MESSAGE-----