From 5dd3e0b439fa1474635a52914ce33d08a2244aa0 Mon Sep 17 00:00:00 2001 From: marcel Date: Sun, 6 Apr 2003 05:55:36 +0000 Subject: 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. --- sys/ia64/ia64/exception.S | 4 ++-- sys/ia64/ia64/exception.s | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) (limited to 'sys/ia64') diff --git a/sys/ia64/ia64/exception.S b/sys/ia64/ia64/exception.S index 6e40b15..1e5b17c 100644 --- a/sys/ia64/ia64/exception.S +++ b/sys/ia64/ia64/exception.S @@ -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 ;; diff --git a/sys/ia64/ia64/exception.s b/sys/ia64/ia64/exception.s index 6e40b15..1e5b17c 100644 --- a/sys/ia64/ia64/exception.s +++ b/sys/ia64/ia64/exception.s @@ -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 ;; -- cgit v1.1