[Barrelfish-users] M5 bi-directional serial console
borni at isep.ipp.pt
borni at isep.ipp.pt
Wed Sep 14 11:02:24 CEST 2011
Hi Tim and Georgios!
I managed to boot Barrelfish on gem5 with default menu.lst.m5,
symbolic_targets.mk and with parameter num_cpus=2. As a result I got the
boot with two "hello world" applications running on two cores, which is
matching the input files.
Currently I am going through the examples on qemu (much faster) and reading
the documentation, so the setup on gem5 is not my current priority.
However, driven by pure curiosity, I tried to add fish and serial into boot
sequence in order to be able to issue some bash commands, without success.
Then I tried to increase the number of cores with num_cpus=4, paying
attention to allow skb and pci to do hardware discovery as well as to boot
all discovered cores with "spawnd boot" instead of default command "spawnd
boot bootapic-x86_64=1". Again without success - the default boot order
didn't change a bit. Finally I commented those two default "hello world"
invocations hoping that it will be reflected in subsequent boot. But I got
again the same two cores with "hello world" applications. Is it possible
that some file other than menu.lst.m5 used during boot process or I am
doing something wrong here? Thanks in advance!
Kind regards,
Borislav Nikolic
On Tue, 13 Sep 2011 18:44:41 +0000, "Tim Harris (RESEARCH)"
<tharris at microsoft.com> wrote:
> Hi Georgios,
>
> For debugging I've tended to use QEMU -- getting everything working
> correctly from a functional point of view, given QEMU's better perf and
> debugger integration, before changing to M5.
>
> When modelling new architecture features I've usually provided a
functional
> model that can be used in QEMU, using the "CPU_IS_M5_SIMULATOR" macro to
> select whether to use a new instruction (present in M5), or the basic
> functional alternative (using ordinary x86 instructions and able to
execute
> in QEMU or on real hardware).
>
> Would that approach work for you?
>
> I've not tried checkpoints with Barrelfish on M5... but in principle they
> should work. I think that taking a checkpoint is triggered by one of the
> M5 pseudo-instructions, so you could place this instruction directly in a
> program started from menu.lst.m5. You'll need a way to control what
> happens when resuming from the checkpoint -- without a console you could
do
> this by adding a new pseudo instruction that will return an integer value
> supplied from the simulation driver script (then just use 0 => experiment
> 0, 1 => experiment 1, etc.).
>
> Let me know if you'd like me to look into more details about how to do
> this... or we could talk on the phone when I'm back in Cambridge next
week
> (Tuesday).
>
> Cheers,
>
> Tim
>
>
>
>
> -----Original Message-----
> From: Georgios Varisteas [mailto:yorgos at kth.se]
> Sent: 13 September 2011 09:38
> To: barrelfish-users at lists.inf.ethz.ch
> Subject: Re: [Barrelfish-users] M5 bi-directional serial console
>
> Hi Tim,
>
> I saw that menu.lst.m5 is quite slim and amended it accordingly. I even
> tried the full blown version (fish/serial/skb/pci/no bootapic), In all
> cases everything seems to run smoothly and m5 is not complaining. I just
do
> not get the terminal.
>
> Running my simulations from the menu.lst is obviously possible but
> extremely slow. In all my runs it takes up to 10' (!) in order for
> barrelfish to boot. When it is a matter of arguments this is no problem
as
> I can have consecutive runs in menu.lst. But for actually debugging the
> code it becomes very frustrating.
>
>>From what I saw in the m5 tutorials, checkpoints can only be created from
>>inside the OS' terminal. I tried looking into the interactive console but
>>got really lost.
>
> Any hints will be quite helpful.
>
> cheers,
>
> Georgios
>
> ________________________________________
> From: Tim Harris (RESEARCH) [tharris at microsoft.com]
> Sent: Tuesday, September 13, 2011 18:15
> To: Georgios Varisteas; barrelfish-users at lists.inf.ethz.ch
> Subject: RE: M5 bi-directional serial console
>
> Hi,
>
> I've never tried this... I don't think that the menu.lst.m5 file starts
the
> serial domain, and I guess that Fish relies on this for bi-directional
use?
>
> I tried to slim down menu.lst.m5 as far as possible because (i) running
> things on the simulated machine is slow, and (ii) interactions with
> different devices were the usual place where I ran into differences
between
> how barreflish exercises the devices, and how M5 models them. (e.g., I
> never looked at the PCI domain at all).
>
> I've normally run experiments directly from menu.lst.m5 -- is that
possible
> for you?
>
> --Tim
>
>
>
>
> -----Original Message-----
> From: Georgios Varisteas [mailto:yorgos at kth.se]
> Sent: 12 September 2011 06:16
> To: barrelfish-users at lists.inf.ethz.ch
> Subject: [Barrelfish-users] M5 bi-directional serial console
>
> Hi,
>
> Is there a way to get a bi-directional serial terminal in m5 for
> barrelfish?
>
> I've tried telnet, m5term and socat to no avail. I do get all output but
> can't find a way to input commands. Specifically, I do not even see the
> shell, although fish and all other necessary modules are spawned
normally.
>
> Thanks in advance,
> Georgios Varisteas
> _______________________________________________
> Barrelfish-users mailing list
> Barrelfish-users at lists.inf.ethz.ch
> https://lists.inf.ethz.ch/mailman/listinfo/barrelfish-users
>
>
> _______________________________________________
> Barrelfish-users mailing list
> Barrelfish-users at lists.inf.ethz.ch
> https://lists.inf.ethz.ch/mailman/listinfo/barrelfish-users
>
>
> _______________________________________________
> Barrelfish-users mailing list
> Barrelfish-users at lists.inf.ethz.ch
> https://lists.inf.ethz.ch/mailman/listinfo/barrelfish-users
More information about the Barrelfish-users
mailing list