Какой барьер записи лучше на x86: lock + addl или xchgl?

Ядро Linux использует блокировку ; addl $ 0,0 (%% esp) как барьер записи, тогда как библиотека RE2 использует xchgl (% 0),% 0 как барьер записи. В чем разница и что лучше?

Требует ли x86 также инструкций чтения барьеров? RE2 определяет свою функцию барьера чтения как запретную операцию на x86, в то время как Linux определяет ее как lfence или как запретную операцию в зависимости от того, доступен ли SSE2. Когда требуется lfence ?

23
задан Hongli 20 November 2010 в 12:15
поделиться