Das ist eine bessere Barriere auf x86: lock+Zustellbett oder xchgl?

Den Linux-kernel verwendet lock; addl $0,0(%%esp) als schreib-Barriere, während die RE2-Bibliothek verwendet xchgl (%0),%0 als schreib-Barriere. Was ist der Unterschied und was ist besser?

Tut x86 erfordern auch Lesen barrier-Anweisungen? RE2 definiert die lese-Barriere-Funktion als no-op auf x86-Linux während es definiert, entweder als lfence oder no-op, je nachdem, ob SSE2 verfügbar ist. Wann ist lfence erforderlich?

InformationsquelleAutor Hongli | 2010-11-20
Schreibe einen Kommentar