From mboxrd@z Thu Jan 1 00:00:00 1970 Message-ID: <13426df10806132311g34ec1fcfy28b6cd3d904841db@mail.gmail.com> Date: Fri, 13 Jun 2008 23:11:32 -0700 From: "ron minnich" To: "Fans of the OS Plan 9 from Bell Labs" <9fans@cse.psu.edu> MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline Subject: [9fans] lguest port broken due to some change in last 6 months; any ideas? Topicbox-Message-UUID: c08ad3a0-ead3-11e9-9d60-3106f5b1d025 There were a number of changes in the kernel last 6 months, I just recently did a pull and the lguest port is screwed. I spent part of today fixing things and catching up, and am now stuck in the first taskswitch. Symptoms are odd. It dies in the first call to gotolabel. But here is the output from some prints: mmuswitch done return to 0xc01508de port/proc.c goto label c0470008 (pc c01013b3, sp c0059778) That pc is init0; the SP is good, previously allocated in newproc(). Next line after this is from lguest program. Lguest says this: lguest: Bad address 0xc0012c01 (gpte 01008200) The gpte is the pte that the lguest kernel code found for that address. eh? c0012c01? It makes not a lot of sense, that's not word aligned, as it should be for accesses to cpu0pdb. And ... it dies in gotolabel here: TEXT gotolabel(SB), $1 MOVL label+0(FP), AX MOVL 0(AX), SP /* restore sp */ MOVL 4(AX), AX /* put return pc on the stack */ MOVL AX, 0(SP) MOVL $1, AX /* return 1 */ DIE DIE DIE RET as determined by me putting calls to lguest crash, line by line. Yep, it dies on an immediate move to AX. I'm thinking I'm overwriting code somehow. Anybody has ideas on how to debug this, let me know. I've had lots of weird problems on these lguest ports but this one takes the cake. oh yeah I have fixed the port with the new bits in memory.c, l.s, etc. for handling 8 MB of initial mappings. ron