refactor: remove argsize and arguments

master
Sean McBride 4 years ago
parent ed296466d1
commit 813ff54bef

@ -65,7 +65,7 @@ An SLEdge serverless function consists of a shared library (\*.so) and a JSON co
"port": 10000,
"expected-execution-us": 600,
"relative-deadline-us": 2000,
"argsize": 1,
"http-req-size": 1024,
"http-resp-headers": [],
"http-resp-size": 1024,

@ -4,7 +4,6 @@
"port": 10000,
"expected-execution-us": 5000,
"relative-deadline-us": 50000,
"argsize": 1,
"http-req-size": 1024000,
"http-resp-headers": [],
"http-resp-size": 1024000,
@ -16,7 +15,6 @@
"port": 10001,
"expected-execution-us": 5000,
"relative-deadline-us": 50000,
"argsize": 1,
"http-req-size": 1024000,
"http-resp-headers": [],
"http-resp-size": 1024000,
@ -28,7 +26,6 @@
"port": 10002,
"expected-execution-us": 5000,
"relative-deadline-us": 50000,
"argsize": 1,
"http-req-size": 1024000,
"http-resp-headers": [],
"http-resp-size": 1024000,

@ -4,7 +4,6 @@
"port": 10000,
"expected-execution-us": 5000,
"relative-deadline-us": 50000,
"argsize": 1,
"http-req-size": 1024000,
"http-resp-headers": [],
"http-resp-size": 1024000,

@ -4,7 +4,6 @@
"port": 10000,
"expected-execution-us": 5000,
"relative-deadline-us": 50000,
"argsize": 1,
"http-req-size": 4096,
"http-resp-headers": [],
"http-resp-size": 128,
@ -16,7 +15,6 @@
"port": 10001,
"expected-execution-us": 5000,
"relative-deadline-us": 50000,
"argsize": 1,
"http-req-size": 4096,
"http-resp-headers": [],
"http-resp-size": 128,

@ -4,7 +4,6 @@
"port": 10000,
"expected-execution-us": 5000,
"relative-deadline-us": 50000,
"argsize": 1,
"http-req-size": 1024000,
"http-resp-headers": [],
"http-resp-size": 1024000,
@ -16,7 +15,6 @@
"port": 10001,
"expected-execution-us": 5000,
"relative-deadline-us": 50000,
"argsize": 1,
"http-req-size": 1024000,
"http-resp-headers": [],
"http-resp-size": 1024000,
@ -28,7 +26,6 @@
"port": 10002,
"expected-execution-us": 5000,
"relative-deadline-us": 50000,
"argsize": 1,
"http-req-size": 1524000,
"http-resp-headers": [],
"http-resp-size": 1524000,

@ -4,7 +4,6 @@
"port": 10000,
"expected-execution-us": 5000,
"relative-deadline-us": 50000,
"argsize": 1,
"http-req-size": 1024000,
"http-resp-headers": [],
"http-resp-size": 1024000,

@ -4,7 +4,6 @@
"port": 10000,
"expected-execution-us": 5000,
"relative-deadline-us": 50000,
"argsize": 1,
"http-req-size": 1002400,
"http-resp-headers": [],
"http-resp-size": 1048576,
@ -16,7 +15,6 @@
"port": 10001,
"expected-execution-us": 5000,
"relative-deadline-us": 50000,
"argsize": 1,
"http-req-size": 1002400,
"http-resp-headers": [],
"http-resp-size": 1048576,
@ -28,7 +26,6 @@
"port": 10002,
"expected-execution-us": 5000,
"relative-deadline-us": 50000,
"argsize": 1,
"http-req-size": 1002400,
"http-resp-headers": [],
"http-resp-size": 1048576,

@ -4,7 +4,6 @@
"port": 10000,
"expected-execution-us": 5000,
"relative-deadline-us": 36000,
"argsize": 1,
"http-req-size": 5335057,
"http-resp-headers": [],
"http-resp-size": 5335057,
@ -16,7 +15,6 @@
"port": 10001,
"expected-execution-us": 5000,
"relative-deadline-us": 36000,
"argsize": 1,
"http-req-size": 5335057,
"http-resp-headers": [],
"http-resp-size": 5335057,
@ -28,7 +26,6 @@
"port": 10002,
"expected-execution-us": 5000,
"relative-deadline-us": 36000,
"argsize": 1,
"http-req-size": 5335057,
"http-resp-headers": [],
"http-resp-size": 5335057,

@ -4,7 +4,6 @@
"port": 10000,
"expected-execution-us": 5000,
"relative-deadline-us": 36000,
"argsize": 1,
"http-req-size": 5335057,
"http-resp-headers": [],
"http-resp-size": 5335057,
@ -16,7 +15,6 @@
"port": 10001,
"expected-execution-us": 5000,
"relative-deadline-us": 36000,
"argsize": 1,
"http-req-size": 5335057,
"http-resp-headers": [],
"http-resp-size": 5335057,
@ -28,7 +26,6 @@
"port": 10002,
"expected-execution-us": 5000,
"relative-deadline-us": 36000,
"argsize": 1,
"http-req-size": 5335057,
"http-resp-headers": [],
"http-resp-size": 5335057,

@ -4,7 +4,6 @@
"port": 10000,
"expected-execution-us": 5000,
"relative-deadline-us": 36000,
"argsize": 1,
"http-req-size": 5335057,
"http-resp-headers": [],
"http-resp-size": 5335057,
@ -16,7 +15,6 @@
"port": 10001,
"expected-execution-us": 5000,
"relative-deadline-us": 36000,
"argsize": 1,
"http-req-size": 5335057,
"http-resp-headers": [],
"http-resp-size": 5335057,
@ -28,7 +26,6 @@
"port": 10002,
"expected-execution-us": 5000,
"relative-deadline-us": 36000,
"argsize": 1,
"http-req-size": 5335057,
"http-resp-headers": [],
"http-resp-size": 5335057,

@ -4,7 +4,6 @@
"port": 10000,
"expected-execution-us": 5000,
"relative-deadline-us": 36000,
"argsize": 1,
"http-req-size": 1024000,
"http-resp-headers": [],
"http-resp-size": 1024000,

@ -4,7 +4,6 @@
"port": 10000,
"expected-execution-us": 5000,
"relative-deadline-us": 36000,
"argsize": 1,
"http-req-size": 1024000,
"http-resp-headers": [],
"http-resp-size": 1024000,

@ -4,7 +4,6 @@
"port": 10000,
"expected-execution-us": 5000,
"relative-deadline-us": 360000,
"argsize": 1,
"http-req-size": 5335057,
"http-resp-headers": [],
"http-resp-size": 5335057,

@ -3,7 +3,6 @@
"path": "hello_ps_wasm.so",
"port": 10000,
"relative-deadline-us": 50000,
"argsize": 1,
"http-req-size": 102400,
"http-resp-headers": [],
"http-resp-size": 1048576,

@ -5,7 +5,6 @@
"expected-execution-us": 6000,
"admissions-percentile": 70,
"relative-deadline-us": 20000,
"argsize": 1,
"http-req-size": 1024,
"http-resp-headers": [],
"http-resp-size": 1024,
@ -18,7 +17,6 @@
"expected-execution-us": 10000000,
"admissions-percentile": 70,
"relative-deadline-us": 20000000,
"argsize": 1,
"http-req-size": 1024,
"http-resp-headers": [],
"http-resp-size": 1024,

@ -5,7 +5,6 @@
"expected-execution-us": 500,
"admissions-percentile": 70,
"relative-deadline-us": 50000,
"argsize": 1,
"http-req-size": 1024,
"http-resp-headers": [],
"http-resp-size": 1024,

@ -4,7 +4,6 @@
"port": 10000,
"expected-execution-us": 5000,
"relative-deadline-us": 50000,
"argsize": 1,
"http-req-size": 4096,
"http-resp-headers": [],
"http-resp-size": 128,

@ -4,7 +4,6 @@
"port": 10000,
"expected-execution-us": 5000,
"relative-deadline-us": 50000,
"argsize": 1,
"http-req-size": 1024000,
"http-resp-headers": [],
"http-resp-size": 1024000,

@ -4,7 +4,6 @@
"port": 10000,
"expected-execution-us": 5000,
"relative-deadline-us": 360000,
"argsize": 1,
"http-req-size": 5335057,
"http-resp-headers": [],
"http-resp-size": 5335057,

@ -4,7 +4,6 @@
"port": 10000,
"expected-execution-us": 5000,
"relative-deadline-us": 50000,
"argsize": 1,
"http-req-size": 1002400,
"http-resp-headers": [],
"http-resp-size": 1048576,

@ -4,7 +4,6 @@
"port": 10000,
"expected-execution-us": 5000,
"relative-deadline-us": 50000,
"argsize": 1,
"http-req-size": 1524000,
"http-resp-headers": [],
"http-resp-size": 1524000,

@ -4,7 +4,6 @@
"port": 10000,
"expected-execution-us": 5000,
"relative-deadline-us": 50000,
"argsize": 1,
"http-req-size": 1024000,
"http-resp-headers": [],
"http-resp-size": 1024000,
@ -16,7 +15,6 @@
"port": 10001,
"expected-execution-us": 5000,
"relative-deadline-us": 50000,
"argsize": 1,
"http-req-size": 1024000,
"http-resp-headers": [],
"http-resp-size": 1024000,
@ -28,7 +26,6 @@
"port": 10002,
"expected-execution-us": 5000,
"relative-deadline-us": 50000,
"argsize": 1,
"http-req-size": 1002400,
"http-resp-headers": [],
"http-resp-size": 1048576,
@ -40,7 +37,6 @@
"port": 10003,
"expected-execution-us": 5000,
"relative-deadline-us": 360000,
"argsize": 1,
"http-req-size": 5335057,
"http-resp-headers": [],
"http-resp-size": 5335057,
@ -52,7 +48,6 @@
"port": 10004,
"expected-execution-us": 5000,
"relative-deadline-us": 50000,
"argsize": 1,
"http-req-size": 4096,
"http-resp-headers": [],
"http-resp-size": 128,

@ -4,7 +4,6 @@
"port": 10000,
"expected-execution-us": 400,
"relative-deadline-us": 2000,
"argsize": 1,
"http-req-size": 1548,
"http-resp-headers": [],
"http-resp-size": 1548,
@ -16,7 +15,6 @@
"port": 10001,
"expected-execution-us": 600,
"relative-deadline-us": 2000,
"argsize": 1,
"http-req-size": 10480,
"http-resp-headers": [],
"http-resp-size": 10480,
@ -28,7 +26,6 @@
"port": 10002,
"expected-execution-us": 700,
"relative-deadline-us": 2000,
"argsize": 1,
"http-req-size": 104800,
"http-resp-headers": [],
"http-resp-size": 104800,
@ -40,7 +37,6 @@
"port": 10003,
"expected-execution-us": 2000,
"relative-deadline-us": 6000,
"argsize": 1,
"http-req-size": 1048776,
"http-resp-headers": [],
"http-resp-size": 1048776,

@ -5,7 +5,6 @@
"expected-execution-us": 6000,
"admissions-percentile": 70,
"relative-deadline-us": 20000,
"argsize": 1,
"http-req-size": 1024,
"http-resp-headers": [],
"http-resp-size": 1024,
@ -18,7 +17,6 @@
"expected-execution-us": 10000000,
"admissions-percentile": 70,
"relative-deadline-us": 20000000,
"argsize": 1,
"http-req-size": 1024,
"http-resp-headers": [],
"http-resp-size": 1024,

@ -4,7 +4,6 @@
"port": 10018,
"expected-execution-us": 2777,
"relative-deadline-us": 4166,
"argsize": 1,
"http-req-size": 4096,
"http-resp-headers": [],
"http-resp-size": 128,
@ -17,7 +16,6 @@
"port": 10019,
"expected-execution-us": 2777,
"relative-deadline-us": 4443,
"argsize": 1,
"http-req-size": 4096,
"http-resp-headers": [],
"http-resp-size": 128,
@ -30,7 +28,6 @@
"port": 10020,
"expected-execution-us": 2777,
"relative-deadline-us": 4721,
"argsize": 1,
"http-req-size": 4096,
"http-resp-headers": [],
"http-resp-size": 128,
@ -43,7 +40,6 @@
"port": 10021,
"expected-execution-us": 2777,
"relative-deadline-us": 4999,
"argsize": 1,
"http-req-size": 4096,
"http-resp-headers": [],
"http-resp-size": 128,
@ -56,7 +52,6 @@
"port": 10022,
"expected-execution-us": 2777,
"relative-deadline-us": 5276,
"argsize": 1,
"http-req-size": 4096,
"http-resp-headers": [],
"http-resp-size": 128,
@ -69,7 +64,6 @@
"port": 10023,
"expected-execution-us": 2777,
"relative-deadline-us": 5554,
"argsize": 1,
"http-req-size": 4096,
"http-resp-headers": [],
"http-resp-size": 128,
@ -82,7 +76,6 @@
"port": 10000,
"expected-execution-us": 158,
"relative-deadline-us": 237,
"argsize": 1,
"http-req-size": 1024000,
"http-resp-headers": [],
"http-resp-size": 1024000,
@ -95,7 +88,6 @@
"port": 10001,
"expected-execution-us": 158,
"relative-deadline-us": 253,
"argsize": 1,
"http-req-size": 1024000,
"http-resp-headers": [],
"http-resp-size": 1024000,
@ -108,7 +100,6 @@
"port": 10002,
"expected-execution-us": 158,
"relative-deadline-us": 269,
"argsize": 1,
"http-req-size": 1024000,
"http-resp-headers": [],
"http-resp-size": 1024000,
@ -121,7 +112,6 @@
"port": 10003,
"expected-execution-us": 158,
"relative-deadline-us": 284,
"argsize": 1,
"http-req-size": 1024000,
"http-resp-headers": [],
"http-resp-size": 1024000,
@ -134,7 +124,6 @@
"port": 10004,
"expected-execution-us": 158,
"relative-deadline-us": 300,
"argsize": 1,
"http-req-size": 1024000,
"http-resp-headers": [],
"http-resp-size": 1024000,
@ -147,7 +136,6 @@
"port": 10005,
"expected-execution-us": 158,
"relative-deadline-us": 316,
"argsize": 1,
"http-req-size": 1024000,
"http-resp-headers": [],
"http-resp-size": 1024000,
@ -160,7 +148,6 @@
"port": 10006,
"expected-execution-us": 461831,
"relative-deadline-us": 692746,
"argsize": 1,
"http-req-size": 5335057,
"http-resp-headers": [],
"http-resp-size": 5335057,
@ -173,7 +160,6 @@
"port": 10007,
"expected-execution-us": 461831,
"relative-deadline-us": 738930,
"argsize": 1,
"http-req-size": 5335057,
"http-resp-headers": [],
"http-resp-size": 5335057,
@ -186,7 +172,6 @@
"port": 10008,
"expected-execution-us": 461831,
"relative-deadline-us": 785113,
"argsize": 1,
"http-req-size": 5335057,
"http-resp-headers": [],
"http-resp-size": 5335057,
@ -199,7 +184,6 @@
"port": 10009,
"expected-execution-us": 461831,
"relative-deadline-us": 831296,
"argsize": 1,
"http-req-size": 5335057,
"http-resp-headers": [],
"http-resp-size": 5335057,
@ -212,7 +196,6 @@
"port": 10010,
"expected-execution-us": 461831,
"relative-deadline-us": 877479,
"argsize": 1,
"http-req-size": 5335057,
"http-resp-headers": [],
"http-resp-size": 5335057,
@ -225,7 +208,6 @@
"port": 10011,
"expected-execution-us": 461831,
"relative-deadline-us": 923662,
"argsize": 1,
"http-req-size": 5335057,
"http-resp-headers": [],
"http-resp-size": 5335057,
@ -238,7 +220,6 @@
"port": 10012,
"expected-execution-us": 31597,
"relative-deadline-us": 47396,
"argsize": 1,
"http-req-size": 1002400,
"http-resp-headers": [],
"http-resp-size": 1048576,
@ -251,7 +232,6 @@
"port": 10013,
"expected-execution-us": 31597,
"relative-deadline-us": 50555,
"argsize": 1,
"http-req-size": 1002400,
"http-resp-headers": [],
"http-resp-size": 1048576,
@ -264,7 +244,6 @@
"port": 10014,
"expected-execution-us": 31597,
"relative-deadline-us": 53715,
"argsize": 1,
"http-req-size": 1002400,
"http-resp-headers": [],
"http-resp-size": 1048576,
@ -277,7 +256,6 @@
"port": 10015,
"expected-execution-us": 31597,
"relative-deadline-us": 56875,
"argsize": 1,
"http-req-size": 1002400,
"http-resp-headers": [],
"http-resp-size": 1048576,
@ -290,7 +268,6 @@
"port": 10016,
"expected-execution-us": 31597,
"relative-deadline-us": 60034,
"argsize": 1,
"http-req-size": 1002400,
"http-resp-headers": [],
"http-resp-size": 1048576,
@ -303,7 +280,6 @@
"port": 10017,
"expected-execution-us": 31597,
"relative-deadline-us": 63194,
"argsize": 1,
"http-req-size": 1002400,
"http-resp-headers": [],
"http-resp-size": 1048576,
@ -316,7 +292,6 @@
"port": 10018,
"expected-execution-us": 138903,
"relative-deadline-us": 208354,
"argsize": 1,
"http-req-size": 1524000,
"http-resp-headers": [],
"http-resp-size": 1524000,
@ -329,7 +304,6 @@
"port": 10019,
"expected-execution-us": 138903,
"relative-deadline-us": 222245,
"argsize": 1,
"http-req-size": 1524000,
"http-resp-headers": [],
"http-resp-size": 1524000,
@ -342,7 +316,6 @@
"port": 10020,
"expected-execution-us": 138903,
"relative-deadline-us": 236135,
"argsize": 1,
"http-req-size": 1524000,
"http-resp-headers": [],
"http-resp-size": 1524000,
@ -355,7 +328,6 @@
"port": 10021,
"expected-execution-us": 138903,
"relative-deadline-us": 250025,
"argsize": 1,
"http-req-size": 1524000,
"http-resp-headers": [],
"http-resp-size": 1524000,
@ -368,7 +340,6 @@
"port": 10022,
"expected-execution-us": 138903,
"relative-deadline-us": 263916,
"argsize": 1,
"http-req-size": 1524000,
"http-resp-headers": [],
"http-resp-size": 1524000,
@ -381,7 +352,6 @@
"port": 10023,
"expected-execution-us": 138903,
"relative-deadline-us": 277806,
"argsize": 1,
"http-req-size": 1524000,
"http-resp-headers": [],
"http-resp-size": 1524000,

@ -20,10 +20,8 @@
#define MODULE_DEFAULT_REQUEST_RESPONSE_SIZE (PAGE_SIZE)
#define MODULE_MAX_ARGUMENT_COUNT 16
#define MODULE_MAX_ARGUMENT_SIZE 64
#define MODULE_MAX_NAME_LENGTH 32
#define MODULE_MAX_PATH_LENGTH 256
#define MODULE_MAX_NAME_LENGTH 32
#define MODULE_MAX_PATH_LENGTH 256
/*
* Defines the listen backlog, the queue length for completely established socketeds waiting to be accepted
@ -44,7 +42,6 @@ struct module {
/* Metadata from JSON Config */
char name[MODULE_MAX_NAME_LENGTH];
char path[MODULE_MAX_PATH_LENGTH];
int32_t argument_count;
uint32_t stack_size; /* a specification? */
uint64_t max_memory; /* perhaps a specification of the module. (max 4GB) */
uint32_t relative_deadline_us;
@ -92,17 +89,6 @@ module_acquire(struct module *module)
return;
}
/**
* Get a module's argument count
* @param module
* @returns the number of arguments
*/
static inline int32_t
module_get_argument_count(struct module *module)
{
return module->argument_count;
}
/**
* Invoke a module's initialize_globals
* @param module
@ -194,8 +180,8 @@ module_release(struct module *module)
* Public Methods from module.c *
*******************************/
void module_free(struct module *module);
struct module *module_new(char *mod_name, char *mod_path, int32_t argument_count, uint32_t stack_sz, uint32_t max_heap,
uint32_t relative_deadline_us, int port, int req_sz, int resp_sz, int admissions_percentile,
uint32_t expected_execution_us);
int module_new_from_json(char *filename);
void module_free(struct module *module);
struct module *
module_new(char *mod_name, char *mod_path, uint32_t stack_sz, uint32_t max_heap, uint32_t relative_deadline_us,
int port, int req_sz, int resp_sz, int admissions_percentile, uint32_t expected_execution_us);
int module_new_from_json(char *filename);

@ -16,7 +16,6 @@
struct sandbox_request {
uint64_t id;
struct module * module;
char * arguments;
int socket_descriptor;
struct sockaddr socket_address;
uint64_t request_arrival_timestamp; /* cycles */
@ -58,16 +57,14 @@ sandbox_request_log_allocation(struct sandbox_request *sandbox_request)
/**
* Allocates a new Sandbox Request and places it on the Global Deque
* @param module the module we want to request
* @param arguments the arguments that we'll pass to the serverless function
* @param socket_descriptor
* @param socket_address
* @param request_arrival_timestamp the timestamp of when we receives the request from the network (in cycles)
* @return the new sandbox request
*/
static inline struct sandbox_request *
sandbox_request_allocate(struct module *module, char *arguments, int socket_descriptor,
const struct sockaddr *socket_address, uint64_t request_arrival_timestamp,
uint64_t admissions_estimate)
sandbox_request_allocate(struct module *module, int socket_descriptor, const struct sockaddr *socket_address,
uint64_t request_arrival_timestamp, uint64_t admissions_estimate)
{
struct sandbox_request *sandbox_request = (struct sandbox_request *)malloc(sizeof(struct sandbox_request));
assert(sandbox_request);
@ -76,7 +73,6 @@ sandbox_request_allocate(struct module *module, char *arguments, int socket_desc
sandbox_request->id = sandbox_request_count_postfix_increment();
sandbox_request->module = module;
sandbox_request->arguments = arguments;
sandbox_request->socket_descriptor = socket_descriptor;
memcpy(&sandbox_request->socket_address, socket_address, sizeof(struct sockaddr));
sandbox_request->request_arrival_timestamp = request_arrival_timestamp;

@ -41,9 +41,8 @@ sandbox_set_as_initialized(struct sandbox *sandbox, struct sandbox_request *sand
/* Initialize Parsec control structures */
ps_list_init_d(sandbox);
/* Copy the socket descriptor, address, and arguments of the client invocation */
/* Copy the socket descriptor and address of the client invocation */
sandbox->absolute_deadline = sandbox_request->absolute_deadline;
sandbox->arguments = (void *)sandbox_request->arguments;
sandbox->client_socket_descriptor = sandbox_request->socket_descriptor;
memcpy(&sandbox->client_address, &sandbox_request->socket_address, sizeof(struct sockaddr));

@ -14,26 +14,13 @@ static inline void
sandbox_setup_arguments(struct sandbox *sandbox)
{
assert(sandbox != NULL);
int32_t argument_count = module_get_argument_count(sandbox->module);
int32_t argument_count = 0;
/* whatever gregor has, to be able to pass arguments to a module! */
sandbox->arguments_offset = local_sandbox_context_cache.memory.size;
assert(local_sandbox_context_cache.memory.start == sandbox->memory.start);
expand_memory();
int32_t *array_ptr = (int32_t *)worker_thread_get_memory_ptr_void(sandbox->arguments_offset,
argument_count * sizeof(int32_t));
int32_t string_off = sandbox->arguments_offset + (argument_count * sizeof(int32_t));
for (int i = 0; i < argument_count; i++) {
char * arg = (char *)sandbox->arguments + (i * MODULE_MAX_ARGUMENT_SIZE);
size_t str_sz = strlen(arg) + 1;
array_ptr[i] = string_off;
/* why get_memory_ptr_for_runtime?? */
strncpy(get_memory_ptr_for_runtime(string_off, str_sz), arg, strlen(arg));
int32_t string_off = sandbox->arguments_offset;
string_off += str_sz;
}
stub_init(string_off);
}

@ -95,7 +95,6 @@ struct sandbox {
/* System Interface State */
int32_t arguments_offset; /* actual placement of arguments in the sandbox. */
void * arguments; /* arguments from request, must be of module->argument_count size. */
int32_t return_value;
/* This contains a Variable Length Array and thus MUST be the final member of this struct */

@ -83,7 +83,7 @@ current_sandbox_start(void)
sandbox_setup_arguments(sandbox);
/* Executing the function */
int32_t argument_count = module_get_argument_count(current_module);
int32_t argument_count = 0;
current_sandbox_enable_preemption(sandbox);
sandbox->return_value = module_main(current_module, argument_count, sandbox->arguments_offset);
current_sandbox_disable_preemption(sandbox);

@ -178,7 +178,7 @@ listener_thread_main(void *dummy)
/* Allocate a Sandbox Request */
struct sandbox_request *sandbox_request =
sandbox_request_allocate(module, module->name, client_socket,
sandbox_request_allocate(module, client_socket,
(const struct sockaddr *)&client_address,
request_arrival_timestamp, work_admitted);

@ -140,7 +140,6 @@ module_free(struct module *module)
*
* @param name
* @param path
* @param argument_count
* @param stack_size
* @param max_memory
* @param relative_deadline_us
@ -150,9 +149,8 @@ module_free(struct module *module)
*/
struct module *
module_new(char *name, char *path, int32_t argument_count, uint32_t stack_size, uint32_t max_memory,
uint32_t relative_deadline_us, int port, int request_size, int response_size, int admissions_percentile,
uint32_t expected_execution_us)
module_new(char *name, char *path, uint32_t stack_size, uint32_t max_memory, uint32_t relative_deadline_us, int port,
int request_size, int response_size, int admissions_percentile, uint32_t expected_execution_us)
{
int rc = 0;
@ -216,8 +214,7 @@ module_new(char *name, char *path, int32_t argument_count, uint32_t stack_size,
strncpy(module->name, name, MODULE_MAX_NAME_LENGTH);
strncpy(module->path, path, MODULE_MAX_PATH_LENGTH);
module->argument_count = argument_count;
module->stack_size = ((uint32_t)(round_up_to_page(stack_size == 0 ? WASM_STACK_SIZE : stack_size)));
module->stack_size = ((uint32_t)(round_up_to_page(stack_size == 0 ? WASM_STACK_SIZE : stack_size)));
debuglog("Stack Size: %u", module->stack_size);
module->max_memory = max_memory == 0 ? ((uint64_t)WASM_PAGE_SIZE * WASM_MEMORY_PAGES_MAX) : max_memory;
module->socket_descriptor = -1;
@ -385,7 +382,6 @@ module_new_from_json(char *file_name)
int32_t request_size = 0;
int32_t response_size = 0;
int32_t argument_count = 0;
uint32_t port = 0;
uint32_t relative_deadline_us = 0;
uint32_t expected_execution_us = 0;
@ -423,11 +419,6 @@ module_new_from_json(char *file_name)
if (buffer < 0 || buffer > 65535)
panic("Expected port between 0 and 65535, saw %d\n", buffer);
port = buffer;
} else if (strcmp(key, "argsize") == 0) {
// Validate in expected range 0..127. Unclear if 127 is an actual hard limit
argument_count = atoi(val);
if (argument_count < 0 || argument_count > 127)
panic("Expected argument count between 0 and 127, saw %d\n", argument_count);
} else if (strcmp(key, "relative-deadline-us") == 0) {
int64_t buffer = strtoll(val, NULL, 10);
if (buffer < 0 || buffer > (int64_t)RUNTIME_RELATIVE_DEADLINE_US_MAX)
@ -506,11 +497,9 @@ module_new_from_json(char *file_name)
panic("relative_deadline_us is required\n");
#endif
/* argsize defaults to 0 if absent */
/* Allocate a module based on the values from the JSON */
struct module *module = module_new(module_name, module_path, argument_count, 0, 0, relative_deadline_us,
port, request_size, response_size, admissions_percentile,
struct module *module = module_new(module_name, module_path, 0, 0, relative_deadline_us, port,
request_size, response_size, admissions_percentile,
expected_execution_us);
if (module == NULL) goto module_new_err;

@ -3,7 +3,6 @@
"path": "fibonacci_wasm.so",
"port": 10000,
"relative-deadline-us": 50000,
"argsize": 1,
"http-req-size": 1024,
"http-resp-headers": [],
"http-resp-size": 1024,

@ -3,7 +3,6 @@
"path": "fibonacci_wasm.so",
"port": 10000,
"relative-deadline-us": 80000,
"argsize": 1,
"http-req-size": 1024,
"http-resp-headers": [],
"http-resp-size": 1024,
@ -14,7 +13,6 @@
"path": "fibonacci_wasm.so",
"port": 10001,
"relative-deadline-us": 20000,
"argsize": 1,
"http-req-size": 1024,
"http-resp-headers": [],
"http-resp-size": 1024,

@ -3,7 +3,6 @@
"path": "cifar10_wasm.so",
"port": 10000,
"relative-deadline-us": 50000,
"argsize": 1,
"http-req-size": 4096,
"http-resp-headers": [],
"http-resp-size": 128,

@ -3,7 +3,6 @@
"path": "empty_wasm.so",
"port": 10000,
"relative-deadline-us": 50000,
"argsize": 1,
"http-req-size": 1024,
"http-resp-headers": [],
"http-resp-size": 1024,

@ -4,7 +4,6 @@
"port": 10000,
"expected-execution-us": 600,
"relative-deadline-us": 2000,
"argsize": 1,
"http-req-size": 1024,
"http-resp-headers": [],
"http-resp-size": 1024,

@ -3,7 +3,6 @@
"path": "gocr_wasm.so",
"port": 10000,
"relative-deadline-us": 50000,
"argsize": 1,
"http-req-size": 10240,
"http-resp-headers": [],
"http-resp-size": 128,

@ -3,138 +3,118 @@
"path": "adpcm_wasm.so",
"port": 10000,
"relative-deadline-us": 50000,
"argsize": 2
},
{
"name": "bitcount",
"path": "bitcount_wasm.so",
"port": 10002,
"relative-deadline-us": 50000,
"argsize": 2
},
{
"name": "basic_math",
"path": "basic_math_wasm.so",
"port": 10004,
"relative-deadline-us": 50000,
"argsize": 1
},
{
"name": "binarytrees",
"path": "binarytrees_wasm.so",
"port": 10006,
"relative-deadline-us": 50000,
"argsize": 2
},
{
"name": "crc",
"path": "crc_wasm.so",
"port": 10008,
"relative-deadline-us": 50000,
"argsize": 2
},
{
"name": "dijkstra",
"path": "dijkstra_wasm.so",
"port": 10010,
"relative-deadline-us": 50000,
"argsize": 2
},
{
"name": "forever",
"path": "forever_wasm.so",
"port": 10012,
"relative-deadline-us": 50000,
"argsize": 1
},
{
"name": "fornever",
"path": "forever_wasm.so",
"port": 10014,
"relative-deadline-us": 50000,
"argsize": 2
},
{
"name": "fft",
"path": "fft_wasm.so",
"port": 10016,
"relative-deadline-us": 50000,
"argsize": 3
},
{
"name": "function_pointers",
"path": "function_pointers_wasm.so",
"port": 10018,
"relative-deadline-us": 50000,
"argsize": 1
},
{
"name": "gsm",
"path": "gsm_wasm.so",
"port": 10020,
"relative-deadline-us": 50000,
"argsize": 4
},
{
"name": "libjpeg",
"path": "libjpeg_wasm.so",
"port": 10022,
"relative-deadline-us": 50000,
"argsize": 1
},
{
"name": "mandelbrot",
"path": "mandelbrot_wasm.so",
"port": 10024,
"relative-deadline-us": 50000,
"argsize": 2
},
{
"name": "matrix_multiply",
"path": "matrix_multiply_wasm.so",
"port": 10026,
"relative-deadline-us": 50000,
"argsize": 1
},
{
"name": "particia",
"path": "partricia_wasm.so",
"port": 10028,
"relative-deadline-us": 50000,
"argsize": 2
},
{
"name": "sqlite",
"path": "sqlite_wasm.so",
"port": 10030,
"relative-deadline-us": 50000,
"argsize": 1
},
{
"name": "stringsearch",
"path": "stringsearch_wasm.so",
"port": 10032,
"relative-deadline-us": 50000,
"argsize": 1
},
{
"name": "filesys",
"path": "filesys_wasm.so",
"port": 10034,
"relative-deadline-us": 50000,
"argsize": 3
},
{
"name": "sockserver",
"path": "sockserver_wasm.so",
"port": 10036,
"relative-deadline-us": 50000,
"argsize": 2
},
{
"name": "sockclient",
"path": "sockclient_wasm.so",
"port": 10038,
"relative-deadline-us": 50000,
"argsize": 3
}

@ -3,7 +3,6 @@
"path": "lpd_wasm.so",
"port": 10000,
"relative-deadline-us": 50000,
"argsize": 1,
"http-req-size": 102400,
"http-resp-headers": [],
"http-resp-size": 1048576,

@ -3,7 +3,6 @@
"path": "resize_wasm.so",
"port": 10000,
"relative-deadline-us": 50000,
"argsize": 1,
"http-req-size": 102400,
"http-resp-headers": [],
"http-resp-size": 102400,

@ -3,7 +3,6 @@
"path": "work_wasm.so",
"port": 10000,
"relative-deadline-us": 50000,
"argsize": 1,
"http-req-size": 1048776,
"http-resp-headers": [],
"http-resp-size": 1048776,

@ -3,7 +3,6 @@
"path": "work100k_wasm.so",
"port": 10000,
"relative-deadline-us": 50000,
"argsize": 1,
"http-req-size": 102600,
"http-resp-headers": [],
"http-resp-size": 102600,

@ -3,7 +3,6 @@
"path": "work10k_wasm.so",
"port": 10000,
"relative-deadline-us": 50000,
"argsize": 1,
"http-req-size": 10480,
"http-resp-headers": [],
"http-resp-size": 10480,

@ -3,7 +3,6 @@
"path": "work1k_wasm.so",
"port": 10000,
"relative-deadline-us": 50000,
"argsize": 1,
"http-req-size": 1200,
"http-resp-headers": [],
"http-resp-size": 1200,

@ -3,7 +3,6 @@
"path": "work1m_wasm.so",
"port": 10000,
"relative-deadline-us": 50000,
"argsize": 1,
"http-req-size": 1048776,
"http-resp-headers": [],
"http-resp-size": 1048776,

Loading…
Cancel
Save