summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/arch/alpha/faults.cc4
-rw-r--r--src/kern/tru64/tru64.hh13
-rw-r--r--src/sim/faults.cc2
3 files changed, 14 insertions, 5 deletions
diff --git a/src/arch/alpha/faults.cc b/src/arch/alpha/faults.cc
index eef4361fd..7179bf025 100644
--- a/src/arch/alpha/faults.cc
+++ b/src/arch/alpha/faults.cc
@@ -194,7 +194,8 @@ void PageTableFault::invoke(ThreadContext *tc)
// We've accessed the next page
if (vaddr > p->stack_min - PageBytes) {
- warn("Increasing stack %#x:%#x to %#x:%#x because of access to %#x",
+ DPRINTF(Stack,
+ "Increasing stack %#x:%#x to %#x:%#x because of access to %#x",
p->stack_min, p->stack_base, p->stack_min - PageBytes,
p->stack_base, vaddr);
p->stack_min -= PageBytes;
@@ -202,6 +203,7 @@ void PageTableFault::invoke(ThreadContext *tc)
fatal("Over max stack size for one thread\n");
p->pTable->allocate(p->stack_min, PageBytes);
} else {
+ warn("Page fault on address %#x\n", vaddr);
FaultBase::invoke(tc);
}
}
diff --git a/src/kern/tru64/tru64.hh b/src/kern/tru64/tru64.hh
index 18671c364..9bad6ce09 100644
--- a/src/kern/tru64/tru64.hh
+++ b/src/kern/tru64/tru64.hh
@@ -600,12 +600,19 @@ class Tru64 : public OperatingSystem
process->next_thread_stack_base -= stack_size;
}
- stack_base = roundDown(stack_base, VMPageSize);
+ Addr rounded_stack_base = roundDown(stack_base, VMPageSize);
+ Addr rounded_stack_size = roundUp(stack_size, VMPageSize);
+
+ DPRINTF(SyscallVerbose,
+ "stack_create: allocating stack @ %#x size %#x "
+ "(rounded from %#x, %#x)\n",
+ rounded_stack_base, rounded_stack_size,
+ stack_base, stack_size);
// map memory
- process->pTable->allocate(stack_base, roundUp(stack_size, VMPageSize));
+ process->pTable->allocate(rounded_stack_base, rounded_stack_size);
- argp->address = gtoh(stack_base);
+ argp->address = gtoh(rounded_stack_base);
argp.copyOut(tc->getMemPort());
return 0;
diff --git a/src/sim/faults.cc b/src/sim/faults.cc
index 650b728f7..cea35482a 100644
--- a/src/sim/faults.cc
+++ b/src/sim/faults.cc
@@ -37,7 +37,7 @@
#if !FULL_SYSTEM
void FaultBase::invoke(ThreadContext * tc)
{
- fatal("fault (%s) detected @ PC 0x%08p", name(), tc->readPC());
+ fatal("fault (%s) detected @ PC %p", name(), tc->readPC());
}
#else
void FaultBase::invoke(ThreadContext * tc)