[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-discuss] Using qemu to simulate multi-core shared memory syste
From: |
Jakob Bohm |
Subject: |
Re: [Qemu-discuss] Using qemu to simulate multi-core shared memory system |
Date: |
Sat, 13 Jul 2013 17:24:06 +0200 |
User-agent: |
Mozilla/5.0 (Windows NT 6.1; WOW64; rv:17.0) Gecko/20130620 Thunderbird/17.0.7 |
On 10-07-2013 07:40, Arun Balakrishnan wrote:
We have a multi-core network processor system, wherein we run a
multi-threaded (using pthreads) program. We have the pthreads pinned
to hw cores (fixed pinning/mapping). We would like to emulate /
simulate such a system…
We have built a C++ simulator wherein we use a internally developed
ISS (instruction set simulator). We create as many ISS instances as
many cores we have and then have a shared memory system around it..
Our ISS is interpreted, ie each instruction in our ISA (instruction
set architecture) is implemented in C++.
We have already used Qemu to simulate a single core - we have built a
library that defines the mapping from our ISA to x86 and qemu uses
this to do dynamic translation.. but I would like to know if it is
possible to simulate multi-core system.
Thanks
Multi-core / multi-cpu is a standard qemu feature across cpus.
So if your custom instruction set handling is correctly
implemented (including whatever qemu uses to emulate interprocess
synchronization insttructions), then simply running your modified
qemu with the option to specify multiple virtual CPUs should do
the trick.
Of cause, by default the virtual cores are not pinned to physical
cores of the host system, and qemu can emulate more cores than
present on the host computer. I am not sure if there are general
purpose qemu options to do such pinningif desired.
I am of cause assuming that your "library" is implemented the
same way as the internal qemu code for emulating other foreign
cpus, such as the code that lets qemu-system-arm run on an x86 PC.
Enjoy
Jakob
--
Jakob Bohm, CIO, Partner, WiseMo A/S. http://www.wisemo.com
Transformervej 29, 2730 Herlev, Denmark. Direct +45 31 13 16 10
This public discussion message is non-binding and may contain errors.
WiseMo - Remote Service Management for PCs, Phones and Embedded