Ответ 1
Из руководства AMD (около 2005 года), том 2: Системное программирование:
5.4 Поля страницы ввода-передачи страницы
... Dirty (D) Bit. Bit 6.
This bit is only present in the lowest level of the page-translation hierarchy. It indicates whether the pagetranslation table or physical page to which this entry points has been written. The D bit is set to 1 by the processor the first time there is a write to the physical page.
То же от Intel (около 2006 г.), том 3-A: Руководство по системному программированию, часть 1:
3.7.6 Записи в каталоге и таблице страниц
... Dirty (D) flag, bit 6
Indicates whether a page has been written to when set. (This flag is not used in page-directory entries that point to page tables.) Memory management software typically clears this flag when a page is initially loaded into physical memory. The processor then sets this flag the first time a page is accessed for a write operation.
UPDATE
Из новейшего руководства intel (том 3A, Руководство по системному программированию):
8.1.2.1 Automatic Locking
The operations on which the processor automatically follows the LOCK semantics are as follows:
...
When updating page-directory and page-table entries —
When updating page-directory and page-table entries, the processor uses locked cycles to set the accessed and dirty flag in the page-directory and page-table entries.
Из остальной части текста в разделах 8.1 и 8.2 следует, что после того, как CPU устанавливает грязный бит с помощью заблокированной операции, другие ЦП должны начать видеть обновленное значение.
Конечно, у вас может быть состояние гонки, в котором вы сначала читаете грязный бит как 0 на одном CPU (или в одном из его потоков), а затем другой CPU (или другой поток на одном CPU) заставляет этот бит устанавливается в 1, но это не является чем-то необычным.