mirror of
https://git.FreeBSD.org/src.git
synced 2024-12-20 11:11:24 +00:00
Also set the access bit in the PTE when we get a data dirty bit fault.
This avoids an immediate access bit fault when we serviced the dirty bit fault in case the access bit is unset. This typically happens for newly allocated memory that's being zeroed and thus very common.
This commit is contained in:
parent
77ac203091
commit
9fac9065b5
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=113160
sys/ia64/ia64
@ -336,9 +336,9 @@ IVT_ENTRY(Dirty_Bit, 0x2000)
|
||||
(p1) br.cond.sptk.few 2f // if not, read next in chain
|
||||
;;
|
||||
ld8 r21=[r20] // read pte
|
||||
mov r22=PTE_D
|
||||
mov r22=PTE_D|PTE_A
|
||||
;;
|
||||
or r21=r22,r21 // set dirty bit
|
||||
or r21=r22,r21 // set dirty & access bit
|
||||
;;
|
||||
st8 [r20]=r21 // store back
|
||||
;;
|
||||
|
@ -336,9 +336,9 @@ IVT_ENTRY(Dirty_Bit, 0x2000)
|
||||
(p1) br.cond.sptk.few 2f // if not, read next in chain
|
||||
;;
|
||||
ld8 r21=[r20] // read pte
|
||||
mov r22=PTE_D
|
||||
mov r22=PTE_D|PTE_A
|
||||
;;
|
||||
or r21=r22,r21 // set dirty bit
|
||||
or r21=r22,r21 // set dirty & access bit
|
||||
;;
|
||||
st8 [r20]=r21 // store back
|
||||
;;
|
||||
|
Loading…
Reference in New Issue
Block a user