diff options
author | Alexandru Dutu <alexandru.dutu@amd.com> | 2019-04-15 23:36:36 -0400 |
---|---|---|
committer | Alexandru Duțu <alexandru.dutu@amd.com> | 2019-04-22 23:11:31 +0000 |
commit | c5b3db6da28611280c291d9e0540f087cf55a54e (patch) | |
tree | 71506b9c6f2f6b0fc5d4a3361ee2e247cf518805 /src/arch | |
parent | 382263c6706296fee2548f74fd4b811553106dba (diff) | |
download | gem5-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.cc | 6 |
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. |