qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [Patch] Make usermode stacksize (-s) configurable at co


From: Laurent Desnogues
Subject: Re: [Qemu-devel] [Patch] Make usermode stacksize (-s) configurable at compile-time
Date: Sun, 25 Oct 2009 16:54:16 +0100

2009/10/25 Jan-Simon Möller <address@hidden>:
> Hi !
>
> We encontered problems with the low default value for the stacksize in 
> usermode (ok, whats "low").
> For environments like scratchbox, its hard to use "-s" as qemu is called by 
> binfmt mechanism.
> The attached patch makes this configurable at compile-time.
>
> Signed-off-by: Jan-Simon Möller <address@hidden>
>
>
> diff --git a/configure b/configure
> index 43d87c5..076f45a 100755
> --- a/configure
> +++ b/configure
> @@ -220,6 +220,7 @@ uname_release=""
>  io_thread="no"
>  mixemu="no"
>  kerneldir=""
> +user_mode_stacksize=""
>  aix="no"
>  blobs="yes"
>  pkgversion=""
> @@ -557,6 +558,8 @@ for opt do
>   ;;
>   --kerneldir=*) kerneldir="$optarg"
>   ;;
> +  --user-mode-stacksize=*) user_mode_stacksize="$optarg"
> +  ;;
>   --with-pkgversion=*) pkgversion=" ($optarg)"
>   ;;
>   --disable-docs) docs="no"
> @@ -713,6 +716,7 @@ echo "  --enable-linux-aio       enable Linux AIO support"
>  echo "  --enable-io-thread       enable IO thread"
>  echo "  --disable-blobs          disable installing provided firmware blobs"
>  echo "  --kerneldir=PATH         look for kernel includes in PATH"
> +echo "  --user-mode-stacksize=   set default stack size in bytes (as -s, 
> only in usermode)"
>  echo ""
>  echo "NOTE: The object files are built at the place where configure is 
> launched"
>  exit 1
> @@ -2576,3 +2580,10 @@ d=libuser
>  mkdir -p $d
>  rm -f $d/Makefile
>  ln -s $source_path/Makefile.user $d/Makefile
> +
> +# change default stacksize in usermode
> +#
> +if test "$user_mode_stacksize" != "" ; then
> + echo "user_mode_stack   $user_mode_stacksize"
> + echo "QEMU_CFLAGS+=-DUSER_MODE_STACKSIZE=$user_mode_stacksize" >> 
> $config_host_mak
> +fi

Wouldn't it be better to set this earlier only if target_user_only
is set to yes and use cflags?

Something like this:

if test "$target_user_only" = "yes" -a "$user_mode_stacksize" != ""; then
  cflags="-DUSER_MODE_STACKSIZE $cflags"
fi

just after the test for pie (line 2478) for instance.

The informative echo should go with the others (line 1853).


> diff --git a/linux-user/main.c b/linux-user/main.c
> index 81a1ada..30c0a87 100644
> --- a/linux-user/main.c
> +++ b/linux-user/main.c
> @@ -51,7 +51,11 @@ const char *qemu_uname_release = CONFIG_UNAME_RELEASE;
>  /* XXX: on x86 MAP_GROWSDOWN only works if ESP <= address + 32, so
>    we allocate a bigger stack. Need a better solution, for example
>    by remapping the process stack directly at the right place */
> +#if defined(USER_MODE_STACKSIZE)
> +unsigned long x86_stack_size = USER_MODE_STACKSIZE;
> +#else
>  unsigned long x86_stack_size = 512 * 1024;
> +#endif

I'd prefer:

#ifndef USER_MODE_STACKSIZE
#define x86_stack_size (512 * 1024)
#endif
unsigned long x86_stack_size = USER_MODE_STACKSIZE;


Laurent

>  void gemu_log(const char *fmt, ...)
>  {
>
>




reply via email to

[Prev in Thread] Current Thread [Next in Thread]