Hi Gabe,

Thanks for the quick reply. Adding system.kvm_vm = Kvm_VM() solved the issue.

Soramichi

On Mon, 27 Jul 2020 01:35:41 -0700
Gabe Black via gem5-users <gem5-users@gem5.org> wrote:

> 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