[gem5-users] Re: Run srsRAN code with gem5

2022-02-11 Thread VEDIKA JITENDRA KULKARNI via gem5-users
Thanks a lot Jason!

Get Outlook for Android<https://aka.ms/AAb9ysg>

From: Jason Lowe-Power 
Sent: Friday, February 11, 2022 9:10:11 PM
To: gem5 users mailing list 
Cc: Umamaheswari Ganeshan ; VEDIKA JITENDRA 
KULKARNI 
Subject: Re: [gem5-users] Run srsRAN code with gem5

Hi Uma,

Not all X86 vector instructions are implemented. What you're seeing is that 
pmovzxbw isn't implemented. Specifically, there's at least one version (as 
shown here https://www.felixcloutier.com/x86/pmovzx) which hasn't been 
implemented yet. I'm not sure which one. The `Vdq_Udq_or_Mq` somehow specifies 
the sizes of the registers, but it's not documented and you'll have to dig into 
the code to figure out how it works.

You can either compile your code with SSE4/AVX or you can implement the 
instruction. If you do the latter, we would appreciate the contribution!

Cheers,
Jason

On Fri, Feb 11, 2022 at 5:13 AM VEDIKA JITENDRA KULKARNI via gem5-users 
mailto:gem5-users@gem5.org>> wrote:

Hello,


We are trying to run srsRAN functionalities individually as srsepc,srsenb and 
srsUE. Also I need suggestions on how to run end-end srsRAN code into gem5 to 
analyse the ARM vs X86 performance.


Please find the below error for srsENB while simulating in gem5.



command line: ./build/X86/gem5.opt configs/example/se.py 
--cmd=tests/test-progs/hello/bin/x86/linux/srsenb



Global frequency set at 1 ticks per second

warn: No dot file generated. Please install pydot to generate the dot file and 
pdf.

build/X86/mem/mem_interface.cc:791: warn: DRAM device capacity (8192 Mbytes) 
does not match the address range assigned (512 Mbytes)

0: system.remote_gdb: listening for remote gdb on port 7000

 REAL SIMULATION 

build/X86/sim/simulate.cc:194: info: Entering event queue @ 0.  Starting 
simulation...

build/X86/sim/syscall_emul.cc:74: warn: ignoring syscall mprotect(...)

build/X86/sim/syscall_emul.cc:74: warn: ignoring syscall mprotect(...)

build/X86/sim/syscall_emul.cc:74: warn: ignoring syscall mprotect(...)



build/X86/sim/syscall_emul.cc:74: warn: ignoring syscall set_robust_list(...)

build/X86/sim/syscall_emul.cc:85: warn: ignoring syscall rt_sigaction(...)

  (further warnings will be suppressed)

build/X86/sim/syscall_emul.cc:85: warn: ignoring syscall rt_sigprocmask(...)

  (further warnings will be suppressed)

build/X86/sim/syscall_emul.hh:509: warn: futex: op 7 not implemented; ignoring.



build/X86/sim/syscall_emul.cc:74: warn: ignoring syscall mprotect(...)

build/X86/arch/x86/generated/exec-ns.cc.inc:27: warn: instruction 
'pmovzxbw_Vdq_Udq_or_Mq' unimplemented

build/X86/arch/x86/faults.cc:129: panic: Unrecognized/invalid instruction 
executed:



{

leg = 0x10,

rex = 0,

vex/xop = 0x5,

op = {

type = three byte 0f38,

op = 0x59,

},

modRM = 0,

sib = 0,

immediate = 0,

displacement = 0

dispSize = 0}

Memory Usage: 842444 KBytes

Program aborted at tick 7880406000

--- BEGIN LIBC BACKTRACE ---

./build/X86/gem5.opt(+0x67429c)[0x5620be8bc29c]

./build/X86/gem5.opt(+0x6a0eaa)[0x5620be8e8eaa]

/lib/x86_64-linux-gnu/libpthread.so.0(+0x12980)[0x7f1b35eeb980]

/lib/x86_64-linux-gnu/libc.so.6(gsignal+0xc7)[0x7f1b34d3efb7]

/lib/x86_64-linux-gnu/libc.so.6(abort+0x141)[0x7f1b34d40921]

./build/X86/gem5.opt(+0x342b6f)[0x5620be58ab6f]

./build/X86/gem5.opt(+0x74f8b7)[0x5620be9978b7]

./build/X86/gem5.opt(+0xe9218a)[0x5620bf0da18a]

./build/X86/gem5.opt(+0xe7f779)[0x5620bf0c7779]

./build/X86/gem5.opt(+0x680fee)[0x5620be8c8fee]

./build/X86/gem5.opt(+0x6c5fd4)[0x5620be90dfd4]

./build/X86/gem5.opt(+0x6c6d1e)[0x5620be90ed1e]

./build/X86/gem5.opt(+0xc2b44a)[0x5620bee7344a]

./build/X86/gem5.opt(+0x69ced9)[0x5620be8e4ed9]

/usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(PyCFunction_Call+0x96)[0x7f1b3630b736]

/usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(_PyEval_EvalFrameDefault+0x76e0)[0x7f1b3627cb20]

/usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(+0x17ba0f)[0x7f1b36273a0f]

/usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(+0x17c0fc)[0x7f1b362740fc]

/usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(_PyEval_EvalFrameDefault+0x4ec3)[0x7f1b3627a303]

/usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(+0x17a803)[0x7f1b36272803]

/usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(+0x17c2be)[0x7f1b362742be]

/usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(_PyEval_EvalFrameDefault+0x4ec3)[0x7f1b3627a303]

/usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(+0x17ba0f)[0x7f1b36273a0f]

/usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(+0x17c0fc)[0x7f1b362740fc]

/usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(_PyEval_EvalFrameDefault+0x4ec3)[0x7f1b3627a303]

/usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(+0x17ba0f)[0x7f1b36273a0f]

/usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(PyEval_EvalCodeEx+0x3e)[0x7f1b362744ce]

/usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(PyE

[gem5-users] Re: Run srsRAN code with gem5

2022-02-11 Thread Jason Lowe-Power via gem5-users
Hi Uma,

Not all X86 vector instructions are implemented. What you're seeing is
that pmovzxbw isn't
implemented. Specifically, there's at least one version (as shown here
https://www.felixcloutier.com/x86/pmovzx) which hasn't been implemented
yet. I'm not sure which one. The `Vdq_Udq_or_Mq` somehow specifies the
sizes of the registers, but it's not documented and you'll have to dig into
the code to figure out how it works.

You can either compile your code with SSE4/AVX or you can implement the
instruction. If you do the latter, we would appreciate the contribution!

Cheers,
Jason

On Fri, Feb 11, 2022 at 5:13 AM VEDIKA JITENDRA KULKARNI via gem5-users <
gem5-users@gem5.org> wrote:

> Hello,
>
>
> *We are trying to run srsRAN functionalities individually as srsepc,srsenb
> and srsUE. Also I need suggestions on how to run end-end srsRAN code into
> gem5 to analyse the ARM vs X86 performance. *
>
>
> *Please find the below error for srsENB while simulating in gem5.*
>
>
>
> command line: ./build/X86/gem5.opt configs/example/se.py
> --cmd=tests/test-progs/hello/bin/x86/linux/srsenb
>
>
>
> Global frequency set at 1 ticks per second
>
> warn: No dot file generated. Please install pydot to generate the dot file
> and pdf.
>
> build/X86/mem/mem_interface.cc:791: warn: DRAM device capacity (8192
> Mbytes) does not match the address range assigned (512 Mbytes)
>
> 0: system.remote_gdb: listening for remote gdb on port 7000
>
>  REAL SIMULATION 
>
> build/X86/sim/simulate.cc:194: info: Entering event queue @ 0.  Starting
> simulation...
>
> build/X86/sim/syscall_emul.cc:74: warn: ignoring syscall mprotect(...)
>
> build/X86/sim/syscall_emul.cc:74: warn: ignoring syscall mprotect(...)
>
> build/X86/sim/syscall_emul.cc:74: warn: ignoring syscall mprotect(...)
>
>
>
> build/X86/sim/syscall_emul.cc:74: warn: ignoring syscall
> set_robust_list(...)
>
> build/X86/sim/syscall_emul.cc:85: warn: ignoring syscall rt_sigaction(...)
>
>   (further warnings will be suppressed)
>
> build/X86/sim/syscall_emul.cc:85: warn: ignoring syscall
> rt_sigprocmask(...)
>
>   (further warnings will be suppressed)
>
> build/X86/sim/syscall_emul.hh:509: warn: futex: op 7 not implemented;
> ignoring.
>
>
>
> build/X86/sim/syscall_emul.cc:74: warn: ignoring syscall mprotect(...)
>
> build/X86/arch/x86/generated/exec-ns.cc.inc:27: warn: instruction
> 'pmovzxbw_Vdq_Udq_or_Mq' unimplemented
>
> *build/X86/arch/x86/faults.cc:129: panic: Unrecognized/invalid instruction
> executed:*
>
>
>
> {
>
> leg = 0x10,
>
> rex = 0,
>
> vex/xop = 0x5,
>
> op = {
>
> type = three byte 0f38,
>
> op = 0x59,
>
> },
>
> modRM = 0,
>
> sib = 0,
>
> immediate = 0,
>
> displacement = 0
>
> dispSize = 0}
>
> Memory Usage: 842444 KBytes
>
> Program aborted at tick 7880406000
>
> --- BEGIN LIBC BACKTRACE ---
>
> ./build/X86/gem5.opt(+0x67429c)[0x5620be8bc29c]
>
> ./build/X86/gem5.opt(+0x6a0eaa)[0x5620be8e8eaa]
>
> /lib/x86_64-linux-gnu/libpthread.so.0(+0x12980)[0x7f1b35eeb980]
>
> /lib/x86_64-linux-gnu/libc.so.6(gsignal+0xc7)[0x7f1b34d3efb7]
>
> /lib/x86_64-linux-gnu/libc.so.6(abort+0x141)[0x7f1b34d40921]
>
> ./build/X86/gem5.opt(+0x342b6f)[0x5620be58ab6f]
>
> ./build/X86/gem5.opt(+0x74f8b7)[0x5620be9978b7]
>
> ./build/X86/gem5.opt(+0xe9218a)[0x5620bf0da18a]
>
> ./build/X86/gem5.opt(+0xe7f779)[0x5620bf0c7779]
>
> ./build/X86/gem5.opt(+0x680fee)[0x5620be8c8fee]
>
> ./build/X86/gem5.opt(+0x6c5fd4)[0x5620be90dfd4]
>
> ./build/X86/gem5.opt(+0x6c6d1e)[0x5620be90ed1e]
>
> ./build/X86/gem5.opt(+0xc2b44a)[0x5620bee7344a]
>
> ./build/X86/gem5.opt(+0x69ced9)[0x5620be8e4ed9]
>
>
> /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(PyCFunction_Call+0x96)[0x7f1b3630b736]
>
>
> /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(_PyEval_EvalFrameDefault+0x76e0)[0x7f1b3627cb20]
>
> /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(+0x17ba0f)[0x7f1b36273a0f]
>
> /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(+0x17c0fc)[0x7f1b362740fc]
>
>
> /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(_PyEval_EvalFrameDefault+0x4ec3)[0x7f1b3627a303]
>
> /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(+0x17a803)[0x7f1b36272803]
>
> /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(+0x17c2be)[0x7f1b362742be]
>
>
> /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(_PyEval_EvalFrameDefault+0x4ec3)[0x7f1b3627a303]
>
> /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(+0x17ba0f)[0x7f1b36273a0f]
>
> /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(+0x17c0fc)[0x7f1b362740fc]
>
>
> /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(_PyEval_EvalFrameDefault+0x4ec3)[0x7f1b3627a303]
>
> /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(+0x17ba0f)[0x7f1b36273a0f]
>
>
> /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(PyEval_EvalCodeEx+0x3e)[0x7f1b362744ce]
>
>
> /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(PyEval_EvalCode+0x1b)[0x7f1b3627524b]
>
>