From mboxrd@z Thu Jan 1 00:00:00 1970 MIME-Version: 1.0 In-Reply-To: <00a9ef8424986e88297b5d4f751e7057@brasstown.quanstro.net> References: <7d1a3207b8e795f9c877a02074e94bf5@hamnavoe.com> <00a9ef8424986e88297b5d4f751e7057@brasstown.quanstro.net> Date: Fri, 13 Sep 2013 11:16:55 +0300 Message-ID: From: Yaroslav To: 9fans@9fans.net, 9fans@hamnavoe.com Content-Type: text/plain; charset=UTF-8 Subject: Re: [9fans] xen3: fresh build 9xenpccpuf dies on boot Topicbox-Message-UUID: 7f3a309e-ead8-11e9-9d60-3106f5b1d025 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 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 : > 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 > 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