Dear all:
As described in armv8 reference manual, DBM means " Dirty Bit Modifier".
My understanding is:
If DBM =1, it means that the page or block is dirty.
If DBM =0, it means the page or block is not dirty.
Is that rignt?
If DBM == 1,software can use the method you mentioned above to distinguish dirty or not.
what if DBM ==0?
And if AP ="read-write" and DBM ==0, Will CPU still get an abort when trying to write this page?
"When the hardware management of dirty state is enabled, if the Block or Page descriptor in a translation table indicates that a data access does not have write permission, then in situations where, without this feature, a data access would generate a Permission fault only because of this lack of write permission, the hardware checks the value of the DBM field in the Block or Page descriptor. If this field is 1, then instead of generating a Permission fault, the hardware performs an atomic read-modify-write of the translation table descriptor, to change the value of the bit that prohibits the write access."
Anyway: If the "AP" is read-write, there is no abort on write.