On Sun, Dec 5, 2010 at 4:36 PM, Gedare Bloom <[email protected]> wrote:

> Hi,
>
> I just ran across MARSS and am seeing if it might be useful for my
> work.  I have a few questions regarding the capabilities of MARSS.  If
> any of this is covered by relevant PTLsim documentation I would be
> glad for a pointer, or at least to be told as much. :)
>
> I successfully built and booted an 8-core configuration, and also a
> 16-core configuration. The slowdown is pretty heavy at 16 cores in
> qemu (much less ptlsim), are there any tricks to speed this up or is
> it fundamental to qemu's implementation?  By the way, the build
> instructions for multicore that are online say to use -smp when
> running qemu, but I saw that is no longer needed (since it is compiled
> in).
>
> QEMU by default emulates each cpu in sequential order, so it slows down by
huge
amount when no. of cpus is big.  One way to fix this is to enable KVM
support
in Marss so that for creating checkpoints users can use KVM for faster
emulation.

Are there particular tricks necessary for generating disk images that
> work? I saw in the provided disks that there are some .deb's with the
> qemu-modified kernel headers, is there anything else needed for MARSS?
>  How hard is it to compile a kernel that will work in the simulator?
> Is there a config file available for a known-good configuration?
>
> We recently found an instruction 'popcnt' that was not implemented in
PTLsim
which is used by default 'ubuntu' kernels. After fixing that, default ubuntu
10.10
server disk image was working fine in simulation mode. So you might not need
to
setup re-compiled kernel for your simulation.

In case if you want to compile the kernel, you can use config file in /boot
partition
of provided disk images. I used the trimmed down config from QEMU's sample
disk
image to compile the kernel in disk image.


> Is it feasible to embed in the kernel the various ptlsim-related
> commands that control when simulation starts/stops/etc?
>
> In theory its possible because we just setup a MMIO device to communicate
between VM and simulator.  This MMIO device offset is exported using cpuid
instruction.  Look at 'ptlcalls.h' file which provides API to use ptlcalls
and it also
finds the MMIO offset. You can try to compile this file in the kernel and
see
if it works or not.


> Is there documentation on implementing ISA extensions? In particular,
> what should be done in the ptlsim tree and what in the qemu tree to
> support new functionality?
>
> In qemu, take a look at 'target-i386/translate.c' file which does the
translation.
In ptlsim, take a look at 'x86/decode*' files. If you want to implement an
micro-op
to support your ISA extensions, take a look at 'x86/uopimpl.cpp'.

- Avadh


> Any answers are much appreciated,
> Gedare
>
> _______________________________________________
> http://www.marss86.org
> Marss86-Devel mailing list
> [email protected]
> https://www.cs.binghamton.edu/mailman/listinfo/marss86-devel
>
_______________________________________________
http://www.marss86.org
Marss86-Devel mailing list
[email protected]
https://www.cs.binghamton.edu/mailman/listinfo/marss86-devel

Reply via email to