summaryrefslogtreecommitdiff
path: root/src/arch
diff options
context:
space:
mode:
authorAlexandru Dutu <alexandru.dutu@amd.com>2019-04-15 23:36:36 -0400
committerAlexandru Duțu <alexandru.dutu@amd.com>2019-04-22 23:11:31 +0000
commitc5b3db6da28611280c291d9e0540f087cf55a54e (patch)
tree71506b9c6f2f6b0fc5d4a3361ee2e247cf518805 /src/arch
parent382263c6706296fee2548f74fd4b811553106dba (diff)
downloadgem5-c5b3db6da28611280c291d9e0540f087cf55a54e.tar.xz
sim-se: Enhance clone for X86KvmCPU
This changeset enables clone to work with X86KvmCPU model, which will allow running multi-threaded applications at near hardware speeds. Even though the application is multi-threaded, the KvmCPU model uses one event queue, therefore, only one hardware thread will be used, through KVM, to simulate multiple application threads. Change-Id: I2b2a7b1edb1c56eeb9c4fa0553cd236029cd53f8 Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/18268 Reviewed-by: Jason Lowe-Power <jason@lowepower.com> Maintainer: Jason Lowe-Power <jason@lowepower.com> Tested-by: kokoro <noreply+kokoro@google.com>
Diffstat (limited to 'src/arch')
-rw-r--r--src/arch/x86/process.cc6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/arch/x86/process.cc b/src/arch/x86/process.cc
index 04bc0ddc8..9e34a7b5d 100644
--- a/src/arch/x86/process.cc
+++ b/src/arch/x86/process.cc
@@ -165,6 +165,9 @@ I386Process::I386Process(ProcessParams *params, ObjectFile *objFile,
SyscallDesc *_syscallDescs, int _numSyscallDescs)
: X86Process(params, objFile, _syscallDescs, _numSyscallDescs)
{
+ if (kvmInSE)
+ panic("KVM CPU model does not support 32 bit processes");
+
_gdtStart = ULL(0xffffd000);
_gdtSize = PageBytes;
@@ -197,6 +200,9 @@ X86_64Process::initState()
{
X86Process::initState();
+ if (useForClone)
+ return;
+
argsInit(PageBytes);
// Set up the vsyscall page for this process.