more uniform.
--cfg=simix/context is replaced by --cfg=contexts/factory
and --cfg=parallel-contexts is replaced by --cfg=contexts/parallel
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/simgrid/simgrid/trunk@9479
48e7efb5-ca39-0410-a469-
dd3cf9ba447f
ADD_TEST(gras-properties-rl ${CMAKE_BINARY_DIR}/bin/tesh --cd ${CMAKE_BINARY_DIR}/examples/gras/properties ${CMAKE_HOME_DIRECTORY}/examples/gras/properties/test_rl)
# MSG examples
ADD_TEST(gras-properties-rl ${CMAKE_BINARY_DIR}/bin/tesh --cd ${CMAKE_BINARY_DIR}/examples/gras/properties ${CMAKE_HOME_DIRECTORY}/examples/gras/properties/test_rl)
# MSG examples
-ADD_TEST(msg-sendrecv-CLM03-raw ${CMAKE_BINARY_DIR}/bin/tesh --cfg simix/context:raw --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/msg --cd ${CMAKE_BINARY_DIR}/examples/msg ${CMAKE_HOME_DIRECTORY}/examples/msg/sendrecv/sendrecv_CLM03.tesh)
-ADD_TEST(msg-sendrecv-CLM03-thread ${CMAKE_BINARY_DIR}/bin/tesh --cfg simix/context:thread --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/msg --cd ${CMAKE_BINARY_DIR}/examples/msg ${CMAKE_HOME_DIRECTORY}/examples/msg/sendrecv/sendrecv_CLM03.tesh)
-ADD_TEST(msg-sendrecv-CLM03-ucontext ${CMAKE_BINARY_DIR}/bin/tesh --cfg simix/context:ucontext --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/msg --cd ${CMAKE_BINARY_DIR}/examples/msg ${CMAKE_HOME_DIRECTORY}/examples/msg/sendrecv/sendrecv_CLM03.tesh)
+ADD_TEST(msg-sendrecv-CLM03-raw ${CMAKE_BINARY_DIR}/bin/tesh --cfg contexts/factory:raw --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/msg --cd ${CMAKE_BINARY_DIR}/examples/msg ${CMAKE_HOME_DIRECTORY}/examples/msg/sendrecv/sendrecv_CLM03.tesh)
+ADD_TEST(msg-sendrecv-CLM03-thread ${CMAKE_BINARY_DIR}/bin/tesh --cfg contexts/factory:thread --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/msg --cd ${CMAKE_BINARY_DIR}/examples/msg ${CMAKE_HOME_DIRECTORY}/examples/msg/sendrecv/sendrecv_CLM03.tesh)
+ADD_TEST(msg-sendrecv-CLM03-ucontext ${CMAKE_BINARY_DIR}/bin/tesh --cfg contexts/factory:ucontext --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/msg --cd ${CMAKE_BINARY_DIR}/examples/msg ${CMAKE_HOME_DIRECTORY}/examples/msg/sendrecv/sendrecv_CLM03.tesh)
ADD_TEST(msg-sendrecv-Vegas ${CMAKE_BINARY_DIR}/bin/tesh --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/msg --cd ${CMAKE_BINARY_DIR}/examples/msg ${CMAKE_HOME_DIRECTORY}/examples/msg/sendrecv/sendrecv_Vegas.tesh)
ADD_TEST(msg-sendrecv-Reno ${CMAKE_BINARY_DIR}/bin/tesh --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/msg --cd ${CMAKE_BINARY_DIR}/examples/msg ${CMAKE_HOME_DIRECTORY}/examples/msg/sendrecv/sendrecv_Reno.tesh)
ADD_TEST(msg-suspend ${CMAKE_BINARY_DIR}/bin/tesh --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/msg --cd ${CMAKE_BINARY_DIR}/examples/msg ${CMAKE_HOME_DIRECTORY}/examples/msg/suspend/suspend.tesh)
ADD_TEST(msg-sendrecv-Vegas ${CMAKE_BINARY_DIR}/bin/tesh --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/msg --cd ${CMAKE_BINARY_DIR}/examples/msg ${CMAKE_HOME_DIRECTORY}/examples/msg/sendrecv/sendrecv_Vegas.tesh)
ADD_TEST(msg-sendrecv-Reno ${CMAKE_BINARY_DIR}/bin/tesh --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/msg --cd ${CMAKE_BINARY_DIR}/examples/msg ${CMAKE_HOME_DIRECTORY}/examples/msg/sendrecv/sendrecv_Reno.tesh)
ADD_TEST(msg-suspend ${CMAKE_BINARY_DIR}/bin/tesh --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/msg --cd ${CMAKE_BINARY_DIR}/examples/msg ${CMAKE_HOME_DIRECTORY}/examples/msg/suspend/suspend.tesh)
ADD_TEST(msg-ptask ${CMAKE_BINARY_DIR}/bin/tesh --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/msg --cd ${CMAKE_BINARY_DIR}/examples/msg ${CMAKE_HOME_DIRECTORY}/examples/msg/parallel_task/parallel_task.tesh)
ADD_TEST(msg-priority ${CMAKE_BINARY_DIR}/bin/tesh --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/msg --cd ${CMAKE_BINARY_DIR}/examples/msg ${CMAKE_HOME_DIRECTORY}/examples/msg/priority/priority.tesh)
ADD_TEST(msg-properties ${CMAKE_BINARY_DIR}/bin/tesh --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/msg --cd ${CMAKE_BINARY_DIR}/examples/msg ${CMAKE_HOME_DIRECTORY}/examples/msg/properties/msg_prop.tesh)
ADD_TEST(msg-ptask ${CMAKE_BINARY_DIR}/bin/tesh --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/msg --cd ${CMAKE_BINARY_DIR}/examples/msg ${CMAKE_HOME_DIRECTORY}/examples/msg/parallel_task/parallel_task.tesh)
ADD_TEST(msg-priority ${CMAKE_BINARY_DIR}/bin/tesh --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/msg --cd ${CMAKE_BINARY_DIR}/examples/msg ${CMAKE_HOME_DIRECTORY}/examples/msg/priority/priority.tesh)
ADD_TEST(msg-properties ${CMAKE_BINARY_DIR}/bin/tesh --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/msg --cd ${CMAKE_BINARY_DIR}/examples/msg ${CMAKE_HOME_DIRECTORY}/examples/msg/properties/msg_prop.tesh)
-ADD_TEST(msg-icomms-raw ${CMAKE_BINARY_DIR}/bin/tesh --cfg simix/context:raw --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/msg/icomms --cd ${CMAKE_BINARY_DIR}/examples/msg/icomms ${CMAKE_HOME_DIRECTORY}/examples/msg/icomms/peer.tesh)
-ADD_TEST(msg-icomms-thread ${CMAKE_BINARY_DIR}/bin/tesh --cfg simix/context:thread --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/msg/icomms --cd ${CMAKE_BINARY_DIR}/examples/msg/icomms ${CMAKE_HOME_DIRECTORY}/examples/msg/icomms/peer.tesh)
-ADD_TEST(msg-icomms-ucontext ${CMAKE_BINARY_DIR}/bin/tesh --cfg simix/context:ucontext --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/msg/icomms --cd ${CMAKE_BINARY_DIR}/examples/msg/icomms ${CMAKE_HOME_DIRECTORY}/examples/msg/icomms/peer.tesh)
+ADD_TEST(msg-icomms-raw ${CMAKE_BINARY_DIR}/bin/tesh --cfg contexts/factory:raw --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/msg/icomms --cd ${CMAKE_BINARY_DIR}/examples/msg/icomms ${CMAKE_HOME_DIRECTORY}/examples/msg/icomms/peer.tesh)
+ADD_TEST(msg-icomms-thread ${CMAKE_BINARY_DIR}/bin/tesh --cfg contexts/factory:thread --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/msg/icomms --cd ${CMAKE_BINARY_DIR}/examples/msg/icomms ${CMAKE_HOME_DIRECTORY}/examples/msg/icomms/peer.tesh)
+ADD_TEST(msg-icomms-ucontext ${CMAKE_BINARY_DIR}/bin/tesh --cfg contexts/factory:ucontext --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/msg/icomms --cd ${CMAKE_BINARY_DIR}/examples/msg/icomms ${CMAKE_HOME_DIRECTORY}/examples/msg/icomms/peer.tesh)
ADD_TEST(msg-actions ${CMAKE_BINARY_DIR}/bin/tesh --setenv bindir=${CMAKE_BINARY_DIR}/examples/msg/actions --cd ${CMAKE_HOME_DIRECTORY}/examples/msg/actions actions.tesh)
ADD_TEST(msg-masterslave-cpu-ti ${CMAKE_BINARY_DIR}/bin/tesh --setenv bindir=${CMAKE_BINARY_DIR}/examples/msg/masterslave --cd ${CMAKE_HOME_DIRECTORY}/examples/msg masterslave/masterslave_cpu_ti.tesh)
ADD_TEST(msg-trace ${CMAKE_BINARY_DIR}/bin/tesh --setenv bindir=${CMAKE_BINARY_DIR}/examples/msg --cd ${CMAKE_HOME_DIRECTORY}/examples/msg trace/trace.tesh)
ADD_TEST(msg-actions ${CMAKE_BINARY_DIR}/bin/tesh --setenv bindir=${CMAKE_BINARY_DIR}/examples/msg/actions --cd ${CMAKE_HOME_DIRECTORY}/examples/msg/actions actions.tesh)
ADD_TEST(msg-masterslave-cpu-ti ${CMAKE_BINARY_DIR}/bin/tesh --setenv bindir=${CMAKE_BINARY_DIR}/examples/msg/masterslave --cd ${CMAKE_HOME_DIRECTORY}/examples/msg masterslave/masterslave_cpu_ti.tesh)
ADD_TEST(msg-trace ${CMAKE_BINARY_DIR}/bin/tesh --setenv bindir=${CMAKE_BINARY_DIR}/examples/msg --cd ${CMAKE_HOME_DIRECTORY}/examples/msg trace/trace.tesh)
ADD_TEST(simdag-minmin-test ${CMAKE_BINARY_DIR}/bin/tesh --setenv bindir=${CMAKE_BINARY_DIR}/examples/simdag/scheduling --cd ${CMAKE_HOME_DIRECTORY}/examples/simdag/scheduling test_minmin.tesh)
if(HAVE_GTNETS)
ADD_TEST(simdag-minmin-test ${CMAKE_BINARY_DIR}/bin/tesh --setenv bindir=${CMAKE_BINARY_DIR}/examples/simdag/scheduling --cd ${CMAKE_HOME_DIRECTORY}/examples/simdag/scheduling test_minmin.tesh)
if(HAVE_GTNETS)
-ADD_TEST(msg-gtnets-waxman-raw ${CMAKE_BINARY_DIR}/bin/tesh --cfg simix/context:raw --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/msg --cd ${CMAKE_BINARY_DIR}/examples/msg ${CMAKE_HOME_DIRECTORY}/examples/msg/gtnets/gtnets-waxman.tesh)
-ADD_TEST(msg-gtnets-waxman-thread ${CMAKE_BINARY_DIR}/bin/tesh --cfg simix/context:thread --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/msg --cd ${CMAKE_BINARY_DIR}/examples/msg ${CMAKE_HOME_DIRECTORY}/examples/msg/gtnets/gtnets-waxman.tesh)
-ADD_TEST(msg-gtnets-waxman-ucontext ${CMAKE_BINARY_DIR}/bin/tesh --cfg simix/context:ucontext --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/msg --cd ${CMAKE_BINARY_DIR}/examples/msg ${CMAKE_HOME_DIRECTORY}/examples/msg/gtnets/gtnets-waxman.tesh)
+ADD_TEST(msg-gtnets-waxman-raw ${CMAKE_BINARY_DIR}/bin/tesh --cfg contexts/factory:raw --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/msg --cd ${CMAKE_BINARY_DIR}/examples/msg ${CMAKE_HOME_DIRECTORY}/examples/msg/gtnets/gtnets-waxman.tesh)
+ADD_TEST(msg-gtnets-waxman-thread ${CMAKE_BINARY_DIR}/bin/tesh --cfg contexts/factory:thread --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/msg --cd ${CMAKE_BINARY_DIR}/examples/msg ${CMAKE_HOME_DIRECTORY}/examples/msg/gtnets/gtnets-waxman.tesh)
+ADD_TEST(msg-gtnets-waxman-ucontext ${CMAKE_BINARY_DIR}/bin/tesh --cfg contexts/factory:ucontext --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/msg --cd ${CMAKE_BINARY_DIR}/examples/msg ${CMAKE_HOME_DIRECTORY}/examples/msg/gtnets/gtnets-waxman.tesh)
ADD_TEST(msg-gtnets-dogbone ${CMAKE_BINARY_DIR}/bin/tesh --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/msg --cd ${CMAKE_BINARY_DIR}/examples/msg ${CMAKE_HOME_DIRECTORY}/examples/msg/gtnets/gtnets-dogbone-gtnets.tesh)
ADD_TEST(msg-gtnets-onelink ${CMAKE_BINARY_DIR}/bin/tesh --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/msg --cd ${CMAKE_BINARY_DIR}/examples/msg ${CMAKE_HOME_DIRECTORY}/examples/msg/gtnets/gtnets-onelink-gtnets.tesh)
ADD_TEST(msg-gtnets-dogbone-lv08 ${CMAKE_BINARY_DIR}/bin/tesh --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/msg --cd ${CMAKE_BINARY_DIR}/examples/msg ${CMAKE_HOME_DIRECTORY}/examples/msg/gtnets/gtnets-dogbone-lv08.tesh)
ADD_TEST(msg-gtnets-dogbone ${CMAKE_BINARY_DIR}/bin/tesh --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/msg --cd ${CMAKE_BINARY_DIR}/examples/msg ${CMAKE_HOME_DIRECTORY}/examples/msg/gtnets/gtnets-dogbone-gtnets.tesh)
ADD_TEST(msg-gtnets-onelink ${CMAKE_BINARY_DIR}/bin/tesh --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/msg --cd ${CMAKE_BINARY_DIR}/examples/msg ${CMAKE_HOME_DIRECTORY}/examples/msg/gtnets/gtnets-onelink-gtnets.tesh)
ADD_TEST(msg-gtnets-dogbone-lv08 ${CMAKE_BINARY_DIR}/bin/tesh --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/msg --cd ${CMAKE_BINARY_DIR}/examples/msg ${CMAKE_HOME_DIRECTORY}/examples/msg/gtnets/gtnets-dogbone-lv08.tesh)
/* This program is free software; you can redistribute it and/or modify it
* under the terms of the license (GNU LGPL) which comes with this package. */
/* This program is free software; you can redistribute it and/or modify it
* under the terms of the license (GNU LGPL) which comes with this package. */
-#ifndef _XBT_CONTEXT_H
-#define _XBT_CONTEXT_H
+#ifndef _SIMIX_CONTEXT_H
+#define _SIMIX_CONTEXT_H
#include "xbt/swag.h"
#include "simix/datatypes.h"
#include "xbt/swag.h"
#include "simix/datatypes.h"
typedef void (*smx_ctx_factory_initializer_t)(smx_context_factory_t*);
extern smx_ctx_factory_initializer_t smx_factory_initializer_to_use;
extern char* smx_context_factory_name;
typedef void (*smx_ctx_factory_initializer_t)(smx_context_factory_t*);
extern smx_ctx_factory_initializer_t smx_factory_initializer_to_use;
extern char* smx_context_factory_name;
+extern int smx_context_stack_size;
extern int smx_parallel_contexts;
extern smx_context_t smx_current_context;
extern int smx_parallel_contexts;
extern smx_context_t smx_current_context;
XBT_LOG_NEW_DEFAULT_SUBCATEGORY(simix_context, simix,
"Context switching mecanism");
XBT_LOG_NEW_DEFAULT_SUBCATEGORY(simix_context, simix,
"Context switching mecanism");
-char* smx_context_factory_name = NULL; /* factory name specified by --cfg=simix/context=value */
+char* smx_context_factory_name = NULL; /* factory name specified by --cfg=contexts/factory:value */
smx_ctx_factory_initializer_t smx_factory_initializer_to_use = NULL;
smx_ctx_factory_initializer_t smx_factory_initializer_to_use = NULL;
+int smx_context_stack_size = 128 * 1024;
smx_context_t smx_current_context;
/**
smx_context_t smx_current_context;
/**
if (smx_factory_initializer_to_use) {
(*smx_factory_initializer_to_use)(&(simix_global->context_factory));
}
if (smx_factory_initializer_to_use) {
(*smx_factory_initializer_to_use)(&(simix_global->context_factory));
}
- else { /* use the factory specified by --cfg=simix/ctx:value */
+ else { /* use the factory specified by --cfg=contexts/factory:value */
if (smx_context_factory_name == NULL || !strcmp(smx_context_factory_name, "ucontext")) {
/* use ucontext */
SIMIX_ctx_sysv_factory_init(&simix_global->context_factory);
if (smx_context_factory_name == NULL || !strcmp(smx_context_factory_name, "ucontext")) {
/* use ucontext */
SIMIX_ctx_sysv_factory_init(&simix_global->context_factory);
finalize_factory = simix_global->context_factory->finalize;
(*finalize_factory) (&simix_global->context_factory);
}
finalize_factory = simix_global->context_factory->finalize;
(*finalize_factory) (&simix_global->context_factory);
}
- xbt_dict_remove((xbt_dict_t) _surf_cfg_set,"simix/context");
+ xbt_dict_remove((xbt_dict_t) _surf_cfg_set,"contexts/factory");
#include "ucontext.h"
#endif
#include "ucontext.h"
#endif
-/* lower this if you want to reduce the memory consumption */
-#ifndef CONTEXT_STACK_SIZE /* allow lua to override this */
-#define CONTEXT_STACK_SIZE 128*1024
-#endif /*CONTEXT_STACK_SIZE */
-
-
typedef char * raw_stack_t;
typedef void (*rawctx_entry_point_t)(void *);
typedef char * raw_stack_t;
typedef void (*rawctx_entry_point_t)(void *);
/* If the user provided a function for the process then use it
otherwise is the context for maestro */
if (code) {
/* If the user provided a function for the process then use it
otherwise is the context for maestro */
if (code) {
- context->malloced_stack = xbt_malloc0(CONTEXT_STACK_SIZE);
+ context->malloced_stack = xbt_malloc0(smx_context_stack_size);
- raw_makecontext(context->malloced_stack,CONTEXT_STACK_SIZE,
+ raw_makecontext(context->malloced_stack, smx_context_stack_size,
(void(*)(void*))smx_ctx_raw_wrapper,context);
#ifdef HAVE_VALGRIND_VALGRIND_H
context->valgrind_stack_id =
VALGRIND_STACK_REGISTER(context->malloced_stack,
(void(*)(void*))smx_ctx_raw_wrapper,context);
#ifdef HAVE_VALGRIND_VALGRIND_H
context->valgrind_stack_id =
VALGRIND_STACK_REGISTER(context->malloced_stack,
- context->malloced_stack + CONTEXT_STACK_SIZE);
+ context->malloced_stack + smx_context_stack_size);
#endif /* HAVE_VALGRIND_VALGRIND_H */
}else{
#endif /* HAVE_VALGRIND_VALGRIND_H */
}else{
context->uc.uc_link = NULL;
context->uc.uc_stack.ss_sp =
context->uc.uc_link = NULL;
context->uc.uc_stack.ss_sp =
- pth_skaddr_makecontext(context->stack, CONTEXT_STACK_SIZE);
+ pth_skaddr_makecontext(context->stack, smx_context_stack_size);
context->uc.uc_stack.ss_size =
context->uc.uc_stack.ss_size =
- pth_sksize_makecontext(context->stack, CONTEXT_STACK_SIZE);
+ pth_sksize_makecontext(context->stack, smx_context_stack_size);
#ifdef HAVE_VALGRIND_VALGRIND_H
context->valgrind_stack_id =
#ifdef HAVE_VALGRIND_VALGRIND_H
context->valgrind_stack_id =
- return smx_ctx_sysv_create_context_sized(sizeof(s_smx_ctx_sysv_t),
+ return smx_ctx_sysv_create_context_sized(sizeof(s_smx_ctx_sysv_t) + smx_context_stack_size,
code, argc, argv, cleanup_func,
data);
code, argc, argv, cleanup_func,
data);
SG_BEGIN_DECL()
/* lower this if you want to reduce the memory consumption */
SG_BEGIN_DECL()
/* lower this if you want to reduce the memory consumption */
-#ifndef CONTEXT_STACK_SIZE /* allow lua to override this */
-#define CONTEXT_STACK_SIZE 128*1024
-#endif /*CONTEXT_STACK_SIZE */
#include "context_sysv_config.h" /* loads context system definitions */
#ifdef _XBT_WIN32
#include <win32_ucontext.h> /* context relative declarations */
#include "context_sysv_config.h" /* loads context system definitions */
#ifdef _XBT_WIN32
#include <win32_ucontext.h> /* context relative declarations */
#ifdef HAVE_VALGRIND_VALGRIND_H
unsigned int valgrind_stack_id; /* the valgrind stack id */
#endif
#ifdef HAVE_VALGRIND_VALGRIND_H
unsigned int valgrind_stack_id; /* the valgrind stack id */
#endif
- char stack[CONTEXT_STACK_SIZE]; /* the thread stack size */
+ char stack[0]; /* the thread stack (must remain the last element of the structure) */
} s_smx_ctx_sysv_t, *smx_ctx_sysv_t;
smx_ctx_sysv_t maestro_context;
} s_smx_ctx_sysv_t, *smx_ctx_sysv_t;
smx_ctx_sysv_t maestro_context;
smx_context_factory_name = xbt_cfg_get_string(_surf_cfg_set, name);
}
smx_context_factory_name = xbt_cfg_get_string(_surf_cfg_set, name);
}
+static void _surf_cfg_cb_context_stack_size(const char *name, int pos)
+{
+ smx_context_stack_size = xbt_cfg_get_int(_surf_cfg_set, name) * 1024;
+}
+
static void _surf_cfg_cb_parallel_contexts(const char *name, int pos)
{
smx_parallel_contexts = 1;
static void _surf_cfg_cb_parallel_contexts(const char *name, int pos)
{
smx_parallel_contexts = 1;
/* context factory */
default_value = xbt_strdup("ucontext");
/* context factory */
default_value = xbt_strdup("ucontext");
- xbt_cfg_register(&_surf_cfg_set, "simix/context",
+ xbt_cfg_register(&_surf_cfg_set, "contexts/factory",
"Context factory to use in SIMIX (ucontext, thread or raw)",
xbt_cfgelm_string, &default_value, 1, 1, _surf_cfg_cb_context_factory, NULL);
"Context factory to use in SIMIX (ucontext, thread or raw)",
xbt_cfgelm_string, &default_value, 1, 1, _surf_cfg_cb_context_factory, NULL);
+ /* stack size of contexts in Ko */
+ default_value_int = 128;
+ xbt_cfg_register(&_surf_cfg_set, "contexts/stack_size",
+ "Stack size of contexts in Ko (ucontext or raw only)",
+ xbt_cfgelm_int, &default_value_int, 1, 1,
+ _surf_cfg_cb_context_stack_size, NULL);
+
/* parallel contexts */
default_value_int = 0;
/* parallel contexts */
default_value_int = 0;
- xbt_cfg_register(&_surf_cfg_set, "parallel-contexts",
+ xbt_cfg_register(&_surf_cfg_set, "contexts/parallel",
"Activate the parallel execution of user contexts (EXPERIMENTAL -- pthreads only)",
xbt_cfgelm_int, &default_value_int, 0, 1,
_surf_cfg_cb_parallel_contexts, NULL);
"Activate the parallel execution of user contexts (EXPERIMENTAL -- pthreads only)",
xbt_cfgelm_int, &default_value_int, 0, 1,
_surf_cfg_cb_parallel_contexts, NULL);
- if(strcmp(name,"simix/context"))
- INFO2("Configuration change: Set '%s' to '%s'", name, val);
+ if (strcmp(name,"contexts/factory"))
+ INFO2("Configuration change: Set '%s' to '%s'", name, val);
TRY {
variable = xbt_dict_get((xbt_dict_t) cfg, name);
TRY {
variable = xbt_dict_get((xbt_dict_t) cfg, name);