I wouldn't really say this is a bug that needs to be patched, just something to be aware of if you try something similar to what I did (plus I'm still using 2.05b2, and am unsure if thread_state or translatingport have been modified since then). It's mainly an issue with me messing around with the process running on a core, which I don't think was intended. To avoid this problem though, you'd just need to check that the page table used by "port" in ThreadState::getMemPort() is the same as "process->pTable". I believe this is only not going to be the case when you switch the process while running.

-Nick

On Aug 23, 2007, at 6:21 PM, Ali Saidi wrote:

Nick,

Do you have a patch we could apply to the M5 repository?

Thanks,
Ali

On Aug 23, 2007, at 6:12 PM, Nicolas Zea wrote:

Just to follow up on this, in case anyone else might try something similar, it turns out the problem was that the translatingport used by the thread for certain system calls has a reference to a pagetable which is only set once. This translatingport uses a page table from one process, and although I change the process running on the core, the translatingport kept referring to the old page table. The solution was to delete and remake the translating port every time I swap processes.

-Nick


On Jul 26, 2007, at 9:07 PM, Nicolas Zea wrote:

Yes, it's repeatable, and the benchmark being used doesn't appear to matter. I suspect it may have to do with what the registers are holding at startup. It looks like the simulator starts running the loader code, and maybe takes a band jump somewhere. Eventually it tries to do a ldl using an invalid address (0x30 I believe).

Do I need to initialize the registers to any particular values before starting up the process? I was under the impression LiveProcess::startup() did that.


On Jul 25, 2007, at 7:11 PM, Steve Reinhardt wrote:

Can you be more specific about this page fault? Does it occur in a repeatable spot, what kin
d of address is it, etc.

Steve

On 7/25/07, Nicolas Zea <[EMAIL PROTECTED]> wrote:
Using Alpha Syscall Emulation, I'm playing around with moving
processes from one cpu to another, as well as having "floating
processes" which do not start on any cpu until a later time. I'm
running into an issue with getting a page fault when I try to load
one of these floating processes onto a cpu. Could anyone shed some
light onto what the necessary actions to take are?

My setup has one system object with multiple cpu's within it, each
with a private l1. I have storage for these floating processes, which are initialized to be different benchmarks in the configuration file.
Currently, I perform the following when attempting to load an
uninitialized process onto a core for the first time (where thecpu is
the cpu object I want to run the new process on):

(note: I drain the cpu first to make sure the previous process is in
a steady state)

((AlphaTC<AlphaSimpleImpl> *)(thecpu- >threadContexts[0]))->thread-
>process = pkt->proc;  // attach the process
thecpu->registerThreadContexts(); // register the process pkt->proc->startup(); // perform the initial write of program data
into memory
                thecpu->resume();       // resume the cpu


This seems to work, as watching the fetch shows that things are
happening, but inevitably I get a page fault. Any ideas?

-Nick
_______________________________________________
m5-users mailing list
m5-users@m5sim.org
http://m5sim.org/cgi-bin/mailman/listinfo/m5-users

_______________________________________________
m5-users mailing list
m5-users@m5sim.org
http://m5sim.org/cgi-bin/mailman/listinfo/m5-users

_______________________________________________
m5-users mailing list
m5-users@m5sim.org
http://m5sim.org/cgi-bin/mailman/listinfo/m5-users

_______________________________________________
m5-users mailing list
m5-users@m5sim.org
http://m5sim.org/cgi-bin/mailman/listinfo/m5-users

_______________________________________________
m5-users mailing list
m5-users@m5sim.org
http://m5sim.org/cgi-bin/mailman/listinfo/m5-users

_______________________________________________
m5-users mailing list
m5-users@m5sim.org
http://m5sim.org/cgi-bin/mailman/listinfo/m5-users

Reply via email to