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
