diff --git a/FrOSCon26/FrOSCon.26.mm b/FrOSCon26/FrOSCon.26.mm index 26f133b..cdbfa22 100644 --- a/FrOSCon26/FrOSCon.26.mm +++ b/FrOSCon26/FrOSCon.26.mm @@ -947,8 +947,57 @@ + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -958,11 +1007,12 @@ Ich verfüge über vertieftes Wissen und einiges an Erfahrung in diesen Bereichen, sollte aber meine Kenntnisse überprüfen und festigen, um auch auf Fragen eingehen zu können. Im Besonderen zu Kernel-nahen Themen weiß ich ehr wenig.

-
+ + - - - + + + @@ -1000,8 +1050,7 @@ Doug Lea's "JSR-133 Cookbook for Compiler Writers"

- - +
@@ -1014,8 +1063,7 @@ Gilt als Quelle für Doug Lea

- - + @@ -1035,8 +1083,7 @@ loads before must complete before loads after

- - +
@@ -1048,8 +1095,7 @@ stores before must become visible before stores after

- -
+
@@ -1061,8 +1107,7 @@ loads before must complete before stores after

- -
+
@@ -1074,8 +1119,7 @@ stores before must become visible before loads after

- -
+
@@ -1101,8 +1145,7 @@ atomic_thread_fence, not a synonym for memory_order."

- - +
@@ -1118,8 +1161,7 @@ Douglas C. Schmidt
Pattern-Oriented Software Architecture Volume 2:
Patterns for Concurrent and Networked Objects

- - +
@@ -1161,8 +1203,7 @@ ABER: gemeinsamer Speicherzugriff kostet immer

- - + @@ -1179,8 +1220,7 @@ ABER: der Compiler kann auch umordnen

- - +
@@ -1194,15 +1234,15 @@ Bezug zu liburing

- - + - + + @@ -1225,11 +1265,11 @@  gehalten werden

- - +
- + + @@ -1252,8 +1292,7 @@ "A synchronization primitive's instruction-level cost is what a hot microbenchmark measures; its systemic cost — coherence traffic under contention, and blocking/wake latency when it isn't contended — is what your production tail latency measures, and the two can differ by two to four orders of magnitude." - - + @@ -1267,8 +1306,7 @@ Verbindung zum Proactor

- - + @@ -1294,8 +1332,7 @@ server-vacation model

- - +
@@ -1309,54 +1346,208 @@ man kann einen Kernel-Thread konfiguieren, der die Submission-Queue pollt. Dort konfiguriert man eine Einschlafe-Periode. Wenn der Poller schläft, setzt er ein Bit und muß von der Applikation explizit wieder reaktiviert werden.

+ +
+
+ + + + + + + + + + + + + + + + + + + +

+ Windows has WaitOnAddress/WakeByAddressSingle/WakeByAddressAll +

+ + +
+
+ + + + + + +

+ FreeBSD has _umtx_op +

+
- - - - - - - - - + + + + - - - - - - - - - + + + + + + + +

+ weckt n threads auf, +

+

+ die in der wait-queue für adr. stehen +

+ + +
- - - - - - - - - - + + + + + + +

+ beachte: der uncontended-case bleibt komplett im userspace +

+ + +
+ + - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+ man kann nur aufrufen, was der Kernel an Einsprungspunkten bietet; eigentlicher Kernel-Code ist nicht vom Userpace zugänglich +

+ + +
+
+
+
+ + + + + + + +

+ ...um Ausspionieren des Kernel via speculative execution zu verhindern +

+ + +
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +