8

im Linux-Kernel spinlock Implementierung für die TILE-Gx-Architektur, es sieht aus wie sie alle Speicherbarrieren geben keine beim Sperren (nur beim Entriegeln):Speicherbarrieren und Linux-Kernel spinlock auf TILE-Gx

https://github.com/torvalds/linux/blob/master/arch/tile/include/asm/spinlock_64.h

Dann verstehe ich nicht, warum Anweisungen nicht über der Sperrung neu geordnet werden können, was dazu führen würde, dass Anweisungen, die der Programmierer für ausgeführt hält, die Sperre tatsächlich ausgeführt werden, bevor die Sperre ausgeführt wird?

Andere Architekturen scheinen zumindest einen Compiler Barriere zu haben:

Warum ist TILE-Gx anders? Ich dachte, sein Speichermodell sei so schwach wie ARMs Speichermodell. Und warum haben sie nicht einmal eine Compiler-Barriere?

+1

+1 für die Forschung. Ich kenne TILE nicht, aber wenn Sie hier keine Antwort erhalten, können Sie auch versuchen, den Autor oder die Kernel-Mailingliste per E-Mail zu versenden. – Shahbaz

Antwort