9fans - fans of the OS Plan 9 from Bell Labs
 help / color / mirror / Atom feed
From: Yaroslav <yarikos@gmail.com>
To: 9fans@9fans.net, 9fans@hamnavoe.com
Subject: Re: [9fans] xen3: fresh build 9xenpccpuf dies on boot
Date: Fri, 13 Sep 2013 11:16:55 +0300	[thread overview]
Message-ID: <CAG3N4d_SOw1-Quoz=P_ZVqAjeihyXEhQPKvJkNnFDt2BL_6CKg@mail.gmail.com> (raw)
In-Reply-To: <00a9ef8424986e88297b5d4f751e7057@brasstown.quanstro.net>

Thanks, Erik, your guess is absolutely right... Richard, do you mind
updating /n/sources/xen/xen3/9/xen3/main.c?

term% diff -c /n/sources/xen/xen3/9/xen3/main.c
/n/sources/contrib/yk/xen3/main.c
/n/sources/xen/xen3/9/xen3/main.c:8,13 - /n/sources/contrib/yk/xen3/main.c:8,14
  #include "init.h"
  #include "pool.h"
  #include "reboot.h"
+ #include <tos.h>

  Mach *m;

/n/sources/xen/xen3/9/xen3/main.c:15,20 -
/n/sources/contrib/yk/xen3/main.c:16,26
  #define BOOTARGSLEN (sizeof xenstart->cmd_line)
  #define MAXCONF 64

+ enum {
+ /* space for syscall args, return PC, top-of-stack struct */
+ Ustkheadroom = sizeof(Sargs) + sizeof(uintptr) + sizeof(Tos),
+ };
+
  char bootdisk[KNAMELEN];
  Conf conf;
  char *confname[MAXCONF];
/n/sources/xen/xen3/9/xen3/main.c:270,276 -
/n/sources/contrib/yk/xen3/main.c:276,282
  uchar *av[32];
  uchar **lsp;

- sp = (uchar*)base + BY2PG - MAXSYSARG*BY2WD;
+ sp = (uchar*)base + BY2PG - Ustkheadroom;

  ac = 0;
  av[ac++] = pusharg("/386/9dos");

2013/9/12 erik quanstrom <quanstro@quanstro.net>:
> On Thu Sep 12 09:49:19 EDT 2013, yarikos@gmail.com wrote:
>> > The crash seems to be in init, not the kernel.  Are you sure
>> > your file system image is good?
>>
>> it doesn't get far enough for "root from:", so it seems to fail
>> somewhere in the initcode blob
>
> this may be related to the change put in for the routerboard.
>
> it increased the size of Tos, and thus shifted everything around
> on the stack.  but the old pc kernel didn't account for this, and
> 386 kernels failed with bad arg in syscall.  this never affected the
> pae kernel, or the other architectures.  here's the fix as it went
> into 9atom.
>
> ; 9fs atom
> ; cd /n/atom/plan9/sys/src/9/pc
> ; history -D main.c
> Aug  3 15:30:45 EDT 2013 main.c 16439 [quanstro]
> Aug  3 15:30:45 EDT 2013 /n/atomdump/2013/0912/plan9/sys/src/9/pc/main.c 16439 [quanstro]
> 10a11
>> #include      <tos.h>
> 25a27,31
>> enum {
>>       /* space for syscall args, return PC, top-of-stack struct */
>>       Ustkheadroom    = sizeof(Sargs) + sizeof(uintptr) + sizeof(Tos),
>> };
>>
> 294c300
> <       sp = (uchar*)base + BY2PG - MAXSYSARG*BY2WD;
> ---
>>       sp = (uchar*)base + BY2PG - Ustkheadroom;
>
> - erik



--
- Yaroslav



  reply	other threads:[~2013-09-13  8:16 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-09-12  7:44 Yaroslav
2013-09-12  8:04 ` Richard Miller
2013-09-12 13:48   ` Yaroslav
2013-09-12 13:54     ` erik quanstrom
2013-09-13  8:16       ` Yaroslav [this message]
2013-09-13 20:28         ` Richard Miller

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='CAG3N4d_SOw1-Quoz=P_ZVqAjeihyXEhQPKvJkNnFDt2BL_6CKg@mail.gmail.com' \
    --to=yarikos@gmail.com \
    --cc=9fans@9fans.net \
    --cc=9fans@hamnavoe.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).