From c5b3db6da28611280c291d9e0540f087cf55a54e Mon Sep 17 00:00:00 2001 From: Alexandru Dutu Date: Mon, 15 Apr 2019 23:36:36 -0400 Subject: 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 Maintainer: Jason Lowe-Power Tested-by: kokoro --- src/arch/x86/process.cc | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'src/arch') 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. -- cgit v1.2.3