Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 8 Jan 2013 03:27:37 +0000 (UTC)
From:      Peter Grehan <grehan@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r245148 - in head/sys/boot: common userboot/userboot
Message-ID:  <201301080327.r083Rb3N095050@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: grehan
Date: Tue Jan  8 03:27:37 2013
New Revision: 245148
URL: http://svnweb.freebsd.org/changeset/base/245148

Log:
  Bring in some userboot changes from the bhyve branch to reduce diffs.
  
  r238966
    Bump up the heap size to 1MB. With a few kernel modules, libstand
    zalloc and userboot seem to want to use ~600KB of heap space, which
    results in a segfault when malloc fails in bhyveload.
  
  r241180
    Clarify comment about default number of FICL dictionary cells.
  
  r241153
    Allow the number of FICL dictionary cells to be overridden.
    Loading a 7.3 ISO with userboot/amd64 takes up 10035 cells,
    overflowing the long-standing default of 10000.
  
    Bump userboot's value up to 15000 cells.
  
  Reviewed by:	dteske (r238966,241180)
  Obtained from:	NetApp

Modified:
  head/sys/boot/common/interp_forth.c
  head/sys/boot/userboot/userboot/Makefile
  head/sys/boot/userboot/userboot/main.c

Modified: head/sys/boot/common/interp_forth.c
==============================================================================
--- head/sys/boot/common/interp_forth.c	Tue Jan  8 02:40:20 2013	(r245147)
+++ head/sys/boot/common/interp_forth.c	Tue Jan  8 03:27:37 2013	(r245148)
@@ -51,6 +51,13 @@ extern char bootprog_rev[];
 #define BF_PARSE 100
 
 /*
+ * FreeBSD loader default dictionary cells
+ */
+#ifndef	BF_DICTSIZE
+#define	BF_DICTSIZE	10000
+#endif
+
+/*
  * BootForth   Interface to Ficl Forth interpreter.
  */
 
@@ -239,8 +246,8 @@ bf_init(void)
     struct bootblk_command	**cmdp;
     char create_buf[41];	/* 31 characters-long builtins */
     int fd;
-   
-    bf_sys = ficlInitSystem(10000);	/* Default dictionary ~4000 cells */
+
+    bf_sys = ficlInitSystem(BF_DICTSIZE);
     bf_vm = ficlNewVM(bf_sys);
 
     /* Put all private definitions in a "builtins" vocabulary */

Modified: head/sys/boot/userboot/userboot/Makefile
==============================================================================
--- head/sys/boot/userboot/userboot/Makefile	Tue Jan  8 02:40:20 2013	(r245147)
+++ head/sys/boot/userboot/userboot/Makefile	Tue Jan  8 03:27:37 2013	(r245148)
@@ -45,6 +45,7 @@ CLEANFILES=	vers.c
 .if ${MK_FORTH} != "no"
 BOOT_FORTH=	yes
 CFLAGS+=        -DBOOT_FORTH -I${.CURDIR}/../../ficl -I${.CURDIR}/../../ficl/i386
+CFLAGS+=	-DBF_DICTSIZE=15000
 LIBFICL=	${.OBJDIR}/../ficl/libficl.a
 LIBSTAND=	${.OBJDIR}/../libstand/libstand.a
 .endif

Modified: head/sys/boot/userboot/userboot/main.c
==============================================================================
--- head/sys/boot/userboot/userboot/main.c	Tue Jan  8 02:40:20 2013	(r245147)
+++ head/sys/boot/userboot/userboot/main.c	Tue Jan  8 03:27:37 2013	(r245148)
@@ -69,7 +69,7 @@ exit(int v)
 void
 loader_main(struct loader_callbacks *cb, void *arg, int version, int ndisks)
 {
-	static char malloc[512*1024];
+	static char malloc[1024*1024];
 	const char *var;
 	int i;
 
@@ -85,7 +85,7 @@ loader_main(struct loader_callbacks *cb,
 	 * alloc() is usable. The stack is buried inside us, so this is
 	 * safe.
 	 */
-	setheap((void *)malloc, (void *)(malloc + 512*1024));
+	setheap((void *)malloc, (void *)(malloc + 1024*1024));
 
         /*
          * Hook up the console



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201301080327.r083Rb3N095050>