You have to set the kvm_vm parameter of the System object.

Gabe

On Sun, Jul 26, 2020 at 10:57 PM Soramichi Akiyama via gem5-users <
gem5-users@gem5.org> wrote:

> Hi,
>
> I am trying to fast-forward a large workload with X86KvmCPU, but the
> constructor falls into a segmentation fault.
> I use the commit tagged with "v20.0.0.0"
> (b1b8af04439240c532d3530a02773b75b9853f77).
>
> The stack trace looks like:
>     #0  __pthread_kill (threadid=<optimized out>, signo=signo@entry=11)
> at ../sysdeps/unix/sysv/linux/pthread_kill.c:56
>     #1  0x000055c0eab76e92 in raiseFatalSignal (signo=signo@entry=11) at
> build/X86/sim/init_signals.cc:105
>     #2  0x000055c0eab76ee9 in segvHandler (sigtype=<optimized out>) at
> build/X86/sim/init_signals.cc:165
>     #3  <signal handler called>
>     #4  KvmVM::allocVCPUID (this=0x0) at build/X86/cpu/kvm/vm.cc:560
>     #5  0x000055c0eb2ed251 in BaseKvmCPU::BaseKvmCPU (this=0x55c0ecf152a0,
> params=0x55c0ed604e90) at /usr/include/c++/8/ext/new_allocator.h:86
>     #6  0x000055c0eb2f86e1 in X86KvmCPU::X86KvmCPU (this=0x55c0ecf152a0,
> params=0x55c0ed604e90) at build/X86/cpu/kvm/x86_cpu.cc:523
>     #7  0x000055c0eb2f8921 in X86KvmCPUParams::create
> (this=0x55c0ed604e90) at build/X86/cpu/kvm/x86_cpu.cc:1628
>     ...
>
> The KvmVM::allocVCPUID function has only 1 line (return nextVCPUID++),
> and accessing nextVCPUID on gdb returns an error:
>      (gdb) f 4
>      #4  KvmVM::allocVCPUID (this=0x0) at build/X86/cpu/kvm/vm.cc:560
>      560       return nextVCPUID++;
>      (gdb) p nextVCPUID
>      Cannot access memory at address 0xc0
>
> Does anyone have experience of hitting / workarounding this issue?
> Given that the address of nextVCPUID (0xc0) looks broken (also that "this"
> is 0x0 there), it guess there is an out-of-bound-related bug.
> The smallest config that can reproduce this phenomenon is as follows.
>
> import m5
> from m5.objects import *
>
> system = System()
> system.cpu = X86KvmCPU()
>
> system.cpu.createThreads()
> system.cpu.createInterruptController()
> system.clk_domain = SrcClockDomain()
> system.clk_domain.clock = '1GHz'
> system.clk_domain.voltage_domain = VoltageDomain()
>
> root = Root(full_system = False, system = system)
> m5.instantiate()
>
> Best regards,
>
> Soramichi
> _______________________________________________
> gem5-users mailing list -- gem5-users@gem5.org
> To unsubscribe send an email to gem5-users-le...@gem5.org
> %(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s
>
_______________________________________________
gem5-users mailing list -- gem5-users@gem5.org
To unsubscribe send an email to gem5-users-le...@gem5.org
%(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s

Reply via email to