From 0711f4f17a4b4ac61b07cbe742f0d193f919ea8f Mon Sep 17 00:00:00 2001 From: Ali Saidi Date: Thu, 25 Oct 2007 20:13:35 -0400 Subject: SE: Fix page table and system serialization, don't reinit process if this is a checkpoint restore. --HG-- extra : convert_revision : 03dcf3c088e57b7abab60efe700d947117888306 --- src/arch/alpha/process.cc | 3 +++ src/arch/mips/process.cc | 3 +++ src/arch/sparc/process.cc | 3 +++ src/arch/x86/process.cc | 3 +++ 4 files changed, 12 insertions(+) (limited to 'src/arch') diff --git a/src/arch/alpha/process.cc b/src/arch/alpha/process.cc index ef53021c5..c2d23ecdd 100644 --- a/src/arch/alpha/process.cc +++ b/src/arch/alpha/process.cc @@ -63,6 +63,9 @@ AlphaLiveProcess::AlphaLiveProcess(LiveProcessParams * params, void AlphaLiveProcess::startup() { + if (checkpointRestored) + return; + argsInit(MachineBytes, VMPageSize); threadContexts[0]->setIntReg(GlobalPointerReg, objFile->globalPointer()); diff --git a/src/arch/mips/process.cc b/src/arch/mips/process.cc index 3ce6b19fa..d330b1913 100644 --- a/src/arch/mips/process.cc +++ b/src/arch/mips/process.cc @@ -63,5 +63,8 @@ MipsLiveProcess::MipsLiveProcess(LiveProcessParams * params, void MipsLiveProcess::startup() { + if (checkpointRestored) + return; + argsInit(MachineBytes, VMPageSize); } diff --git a/src/arch/sparc/process.cc b/src/arch/sparc/process.cc index e0d204a2d..ffe430ac7 100644 --- a/src/arch/sparc/process.cc +++ b/src/arch/sparc/process.cc @@ -110,6 +110,9 @@ void SparcLiveProcess::handleTrap(int trapNum, ThreadContext *tc) void Sparc32LiveProcess::startup() { + if (checkpointRestored) + return; + argsInit(32 / 8, VMPageSize); //From the SPARC ABI diff --git a/src/arch/x86/process.cc b/src/arch/x86/process.cc index db32437d5..c91bcc12f 100644 --- a/src/arch/x86/process.cc +++ b/src/arch/x86/process.cc @@ -141,6 +141,9 @@ void X86LiveProcess::handleTrap(int trapNum, ThreadContext *tc) void X86LiveProcess::startup() { + if (checkpointRestored) + return; + argsInit(sizeof(IntReg), VMPageSize); for (int i = 0; i < threadContexts.size(); i++) { -- cgit v1.2.3