Не было доступа к сети - не мог ответить
и тема спустилась
>очень может быть. но. вы не знаете наверное, когда этот mov начнет
>выполняться, даже на pentium'ах есть write buffers. причем здесь
>я не имею в виду переупорядочивание кода, считаем, что mov уже
>выполнена. то есть у нас уже выполняются следующие инструкции, а
>mov пока еще только _считывает_ cache line, в случае cache miss.
Хорошо
на уровне snoop сие не пройдет (из-за буферов)
пусть запись ведется через выход на шину lock xchg..., а чтение - через mov. Тогда имеет место атомарность(при условии выровненных данных - единственных, которые можно получить компиляцией gcc при условии кодирования по стандарту ISO C, т.е. без пакования структур и некорректных приведений вида void *a; ...(int *)a...)
>нет, совершенно точно не только по этой причине. порядок передачи
>данных может изменить и шина (только не ловите меня на слове, я не
>владею терминологией :). кроме того, даже с барьерами другая сторона
>должна делать rmb(), иначе, опять таки, никаких гарантий.
Для выровненных данных порядок не может измениться, тк все данные передаются в одной шинной транзакции(абсолютно одновременно)
Форум —
Development