Sean McBride
2b161f2f86
refactor: move mcontext_restore to arch_context
4 years ago
Sean McBride
d1f80d8b1e
chore: port simple doc and error handlign
4 years ago
Sean McBride
a2319f2a68
chore: refactor out arch_context_t
4 years ago
Sean McBride
2f164c3430
chore: refactor our sandbox_request_t
4 years ago
Sean McBride
1487614863
chore: refactor out u8
4 years ago
Sean McBride
7f9ffe236e
chore: refactor out u8
4 years ago
Sean McBride
59c44f90e6
chore: refactor out i16
4 years ago
Sean McBride
6b1880077a
chore: refactor out u16
4 years ago
Sean McBride
213c558a75
chore: refactor out i32
4 years ago
Sean McBride
ec3b489b21
chore: refactor out i64
4 years ago
Sean McBride
4cb7c355b4
chore: refactor out u32
4 years ago
Sean McBride
407a20d22a
chore: refactor out u64
4 years ago
Sean McBride
eca987ccb4
fix: correct valgrind errors
4 years ago
Sean McBride
0892e98d76
chore: declare global scheduler with panic funcs
4 years ago
Sean McBride
f93da9e766
fix: add format printf to panic
4 years ago
Sean McBride
df043c5a4a
chore: assert preemp disabled on mcontext restore
4 years ago
Sean McBride
3d9829e6b3
chore: clean up get sandbox in minheap preempt
4 years ago
Sean McBride
bb4e5467e8
docs: change TODO to FIXME in libuv cb
4 years ago
Sean McBride
a19955f023
fix: Make userspace registers explicit integers
4 years ago
Sean McBride
f0aab63c26
fix: hack to avoid mysterious segfault
4 years ago
Sean McBride
fa8e8628eb
fix: correct interrupt logic on sandbox switch
4 years ago
Sean McBride
b381077b13
docs: cleanup comments
4 years ago
Sean McBride
19c862c92a
chore: add error handling code to module loader
4 years ago
Sean McBride
e70a5809be
feat: improve json error handling
4 years ago
Sean McBride
948947dec8
chore: merge changes from other branch
4 years ago
Sean McBride
02d60a740d
chore: add trailing newlines
4 years ago
Sean McBride
f116e4030d
docs: add info on module table init refactor
4 years ago
Sean McBride
324253095d
refactor: clarify interval duration is not macro
4 years ago
Sean McBride
95f339de94
refactor: clarify assert in switch_to_sandbox
4 years ago
Sean McBride
47f24b6952
fix: namespace sandbox states
4 years ago
Sean McBride
b4fe9a537e
refactor: cleanup wakeup sandbox logic
4 years ago
Sean McBride
ba31db340b
fix: panic on completed run loop
4 years ago
Sean McBride
0d1d73018a
docs: remove redundant comments in types.h
4 years ago
Sean McBride
50c46ae8e9
docs: better comment wasm init funcs
4 years ago
Sean McBride
58a38016b1
chore: sandbox member cache->sandbox context cache
4 years ago
Sean McBride
fbea46b84f
chore: add newline to panic function
4 years ago
Sean McBride
613ed72ee5
chore: flatten x64 mcontext restore else
4 years ago
Sean McBride
5c4bd98f54
chore: Improve munmap error handling
4 years ago
Sean McBride
39fea2db44
tests: Improve debug script
4 years ago
Sean McBride
f3c037475c
docs: fix incoherent comment
4 years ago
Sean McBride
788ba6909b
docs: Replace printfs with debuglog
4 years ago
Sean McBride
0465099cfb
docs: improve documentation
4 years ago
Sean McBride
4742a86d39
chore: replace exists with panics
4 years ago
Sean McBride
9eb5541afa
feat: propagate dequeue and remove return codes
4 years ago
Sean McBride
d36b28bf21
chore: local_runqueue add cleanup
4 years ago
Sean McBride
5ccf8bbd87
chore: organize preprocessor includes
4 years ago
Sean McBride
f45b450360
chore: DRY up current_sandbox funcs
4 years ago
Sean McBride
dfb1c65e93
fix: push PQ error handling to caller
4 years ago
Sean McBride
7384b2de1e
fix: harden panic logic
4 years ago
Sean McBride
50b4ab1b6c
fix: correct leak in error handling
4 years ago
Sean McBride
68e91a8853
chore: combine thread locals into struct
4 years ago
Sean McBride
b822f82584
chore: remove problematic caches
4 years ago
Sean McBride
b3c97462df
chore: fix no endline
4 years ago
Sean McBride
1c2aa448cd
chore: rename scheduler interfaces and variants
4 years ago
Sean McBride
0eb474a8d7
chore: replace app header guards w pragma once
4 years ago
Sean McBride
f7e472a8d9
chore: rename get_priority to get_priority_fn
4 years ago
Sean McBride
46881a0f26
chore: suffix fn typedefs with _fn_t
4 years ago
Sean McBride
ab41672359
docs: remove extraneous comment
4 years ago
Sean McBride
08fecb21d1
docs: fixing additional multiline comment
4 years ago
Sean McBride
3dd4a6857d
docs: fix multi-line comment
4 years ago
Sean McBride
7c36d4ef00
chore: cleanup test infrastructure
4 years ago
Sean McBride
06180781f6
chore: refactor ternary statements
4 years ago
Sean McBride
bfe19dce69
fix: assorted small priority queue fixes
4 years ago
Sean McBride
2d03fe390b
chore: remove blank line to clarify unit
4 years ago
Sean McBride
bd584b164c
chore: clean up ternary
4 years ago
Sean McBride
3bfb3859c1
docs: Improved description of context switch
4 years ago
Sean McBride
29201f737d
docs: Use style guide format for comments
4 years ago
Sean McBride
cf42133127
chore: add explicit curly braces
4 years ago
Sean McBride
da0588ea32
chore: make demo workloads more realistic
5 years ago
Sean McBride
94f69a912c
docs: better inline comment
5 years ago
Sean McBride
5327e6d18b
chore: rename module function
5 years ago
Sean McBride
b8a0e28d11
chore: cleanup sandbox logic
5 years ago
Sean McBride
ebfe8856bc
docs: minor comment improvements
5 years ago
Sean McBride
c0d82db22b
fix: Correct memory leak and general cleanup
5 years ago
Sean McBride
0e6c77d923
chore: align lifetimes for shortcuts
5 years ago
Sean McBride
fa5f254af1
chore: remove extraneous log
5 years ago
Sean McBride
06dbd3cd21
chore: remove redudant typedef
5 years ago
Sean McBride
653af014a7
fix: cleanly handling preemption
5 years ago
Sean McBride
218893ed3b
feat: Non-crashing demo state
5 years ago
Sean McBride
3caecadefe
feat: Implement peek in ps
5 years ago
Sean McBride
eef45c5983
chore: correct endif comment
5 years ago
Sean McBride
996c147928
fix: correct runqueue cleanup bug
5 years ago
Sean McBride
83ee42e89b
chore: break up runtime and worker_thread
5 years ago
Sean McBride
4d29585236
chore: demonstrate priority
5 years ago
Sean McBride
61c7ccea0c
feat: implement PQ-based runqueue
5 years ago
Sean McBride
f5f9c168c6
chore: Simplify worker scheduling
5 years ago
Sean McBride
db2372f02f
chore: make signal handler more verbose
5 years ago
Sean McBride
307f7c0d59
chore: encapsulte http_parser_settings
5 years ago
Sean McBride
d08e3b7f54
chore: refactore flags to bools
5 years ago
Sean McBride
321e26577d
chore: replace in_interrupt with bool
5 years ago
Sean McBride
82f79b1ed4
chore: simplify event loop
5 years ago
Sean McBride
d42370c357
chore: simplify sandbox_allocate
5 years ago
Sean McBride
c2c6332bc1
chore: encapsulate completion queue
5 years ago
Sean McBride
0de94ed7c2
chore: cleanup additional run_queue logic
5 years ago
Sean McBride
dafa257273
chore: encapsulate current_sandbox
5 years ago
Sean McBride
403b167a7e
chore: refactor out sandbox_run_queue
5 years ago
Sean McBride
f8d74bdfed
chore: small refactors
5 years ago
Sean McBride
828b368a7c
chore: remove zombie comment
5 years ago
Sean McBride
1999a97c8f
feat: Implement basic ps for sandbox requests
5 years ago
Sean McBride
6a7bbc2e97
feat: add deadline logic
5 years ago
Sean McBride
6478ff9b84
feat: WIP ps
5 years ago
Sean McBride
4386b00479
chore: fix zombie comment
5 years ago
Sean McBride
6eb5825b55
refactor: implement sandbox request interface
5 years ago
Sean McBride
34d91cfa21
refactor: wrap existing request queue
5 years ago
Sean McBride
d14af73c30
chore: remove unused types
5 years ago
Sean McBride
2cb302a27e
chore: fix tests to use proper wrapped call
5 years ago
Sean McBride
13deee2531
chore: remove cycle time printf
5 years ago
Sean McBride
0ace3119e6
chore: revert to __getcycles
5 years ago
Sean McBride
a949cbebe3
chore: refactor double underscores
5 years ago
phani
a72e702c77
update env.c to use ck api
5 years ago
phani
cfa458c5b9
moved jsmn, http-parser to thirdparty/ and pulled in ck submodule there too
5 years ago
phani
37db945637
TODO: use CK? for env.c
5 years ago
Phani
3b8711b95c
fix standalone compilation
5 years ago
phani
7ff05b9d73
making it work for aarch64 - seem to work on RPi
...
* changes to be fully tested!
* cas etc needs to be implemented for aarch64
5 years ago
Sean McBride
178bef818f
feat: add relative_deadline_us to json and module
5 years ago
Sean McBride
0bd22a2e9c
chore: de-dunder module_database
5 years ago
Sean McBride
a70a83326c
chore: de-dunder worker_thread
5 years ago
Sean McBride
a771b78a92
chore: de-dunder software_interrupt
5 years ago
Sean McBride
fefd80d6a9
chore: de-dunder sandbox
5 years ago
Sean McBride
ba032a5905
chore: de-dunder runtime
5 years ago
Sean McBride
4d660e666b
chore: de-dunder listener thrd, module, libuv cbs
5 years ago
Sean McBride
3e90b26243
chore: de-dunder http_response
5 years ago
Sean McBride
06de754885
chore: de-dunder current_sandbox
5 years ago
Sean McBride
4615c4736d
chore: de-dunder http_parser_settings
5 years ago
Sean McBride
d64ca75c4e
chore: de-dunder current_sandbox
5 years ago
Sean McBride
0271f4a48d
chore: fix consistent delimiter in module_database
5 years ago
Sean McBride
b5439ab922
chore: fix inadvertant double prefix
5 years ago
Sean McBride
5694366c96
chore: align consecutive macros
5 years ago
Sean McBride
9dfc740d05
chore: namespace macros and globals in main.c
5 years ago
Sean McBride
3cbb7f0748
chore: rename nested namespaces pending refactor
5 years ago
Sean McBride
2640f3a44f
chore: rename single_loop to be descriptive
5 years ago
Sean McBride
25bdc18118
chore: rename sigint to signal_interrupt in files
5 years ago
Sean McBride
7ba5a3acbe
chore: rename softint to software_interrupt
5 years ago
Sean McBride
21d9cd11fe
chore: flatten http directory
5 years ago
Sean McBride
9000cc1065
chore: address assorted issues in sandbox_request
5 years ago
Sean McBride
017174ffa4
chore: remove unused declare and comment untested code
5 years ago
Sean McBride
fb7298d1d1
chore: rename sandbox argument
5 years ago
Sean McBride
0a7cd2fdc7
docs: improve comments for sandbox->list
5 years ago
Sean McBride
46a2fcfbc4
chore: rename handles to be more descriptive
5 years ago
Sean McBride
d5366f11de
chore: fix comment to match renamed struct field
5 years ago
Sean McBride
dd89fa511c
chore: remove zombie sandbox scheduling state
5 years ago
Sean McBride
439bd523b8
chore: namespace runtime.h functions
5 years ago
Sean McBride
ae0ff23fc2
docs: add missing params in func block
5 years ago
Sean McBride
346c391ece
feat: Improve wasm string null-termintor checks
5 years ago
Sean McBride
c9b9a6553e
chore: run clang-format
5 years ago
Sean McBride
2805934d49
docs: add warning to sandbox exit function
5 years ago
Sean McBride
b3441abf9b
chore: add missing import to get_time in fibb
5 years ago
Sean McBride
055d76e0ae
fix: correct rdtsc edits
5 years ago
Sean McBride
bff1245572
chore: order arch files
5 years ago
Sean McBride
07d2c8daaf
chore: sandbox.h cleanup
5 years ago
Sean McBride
2d9a3925cd
chore: namespace runtime.c
5 years ago
Sean McBride
70d87fcb51
chore: partial namespace of runtime
5 years ago
Sean McBride
ef0056a511
chore: fix provide module_database includes
5 years ago
Sean McBride
7f858d69dd
chore: namespace runtime state
5 years ago
Sean McBride
81b5d3b00d
chore: namespace sandbox
5 years ago
Sean McBride
3d96b0ed95
chore: namespace and comment softint stuff
5 years ago
Sean McBride
d6c31f6728
chore: namespace rdtsc
5 years ago
Sean McBride
08eb26e984
chore: move module json parsing to module
5 years ago
Sean McBride
a29f36ca13
chore: decompose current_sandbox.h
5 years ago
Sean McBride
338e1e3667
chore: delete zombie http.c file
5 years ago
Sean McBride
1800d0ab31
chore: move parser_settings to http directory
5 years ago
Sean McBride
5e937fc204
chore: decompose http
5 years ago
Sean McBride
f471011776
chore: cleanup http
5 years ago
Sean McBride
b0ae9ba266
chore: cleanup sandbox_request
5 years ago
Sean McBride
75a34360b8
chore: Assorted cleanup
5 years ago
Sean McBride
b896f6f1b1
chore: move rdtsc to util
5 years ago
Sean McBride
dc9677e41f
chore: partial sandbox cleanup
5 years ago
Sean McBride
cbd64d1f91
chore: refactor out libuv cbs
5 years ago
Sean McBride
4178e4f9bc
chore: partial sandbox cleanup
5 years ago
Sean McBride
b67860112f
chore: cleanup util
5 years ago
Sean McBride
7da1f4a284
chore: cleanup softint
5 years ago
Sean McBride
d979a74986
chore: better organize module
5 years ago
Sean McBride
28ab7d43c4
chore: refactor module_database into distinct file
5 years ago
Sean McBride
71a6ee1633
chore: cleanup http namespace
5 years ago
Sean McBride
e28947a391
refactor: namespace module functions
5 years ago
Sean McBride
dfe5667bef
chore: resolve TODOs from Phani
5 years ago
Sean McBride
1d724f04e8
refactor: Shift sandbox_request to new file
5 years ago
Sean McBride
ea888ddbb3
chore: assorted refactors
5 years ago
Sean McBride
9762477902
chore: assorted refactors
5 years ago
Sean McBride
c1c307c390
chore: cleanup runtime
5 years ago
Sean McBride
267a04350f
chore: complete modules cleanup
5 years ago
Sean McBride
1f988bd113
chore: complete HTTP cleanup
5 years ago
Sean McBride
4a80e6dd70
chore: assorted refactors
5 years ago
Sean McBride
2220cf34a0
chore: rerun formatter
5 years ago
Sean McBride
c4142c00f1
chore: more cleanup
5 years ago
Sean McBride
0c85cd4102
chore: Assorted cleanup
5 years ago
Sean McBride
862143f37a
chore: clean up interrupt logic
5 years ago
Sean McBride
3d6266750e
chore: assorted refactors
5 years ago
Sean McBride
63a6e702d9
chore: cleanup JSON parsing logic
5 years ago
Sean McBride
69086d012d
Various refactors and end-to-end tracking of cycles
5 years ago
Sean McBride
d058f99e0f
feat: Assign start_time to sandbox
5 years ago
Sean McBride
b0434ac941
build: remove STANDALONE, SBOX_SCALE_ALLOC, USE_LIBUV flags
5 years ago
Sean McBride
ae93435e2a
refactor: Assorted refactors and add start_time to request
5 years ago
Sean McBride
6946b08644
refactor: modularize and rename things
5 years ago
Sean McBride
565a03db5d
refactor: make resource limits function
5 years ago
Sean McBride
b5e9abced5
chore: Assorted cleanup
5 years ago
Sean McBride
9185852236
docs: Add documentation to code ( #7 )
5 years ago
Sean McBride
e61be257f9
chore: add clang-format from Composite ( #5 )
...
* chore: add clang-format from Composite
* chore: cleanup JSON
* chore: add clang-format from Composite
* chore: stylistic corrections
* chore: ignore swap files and vscode conf
* chore: check semver of clang-format and require 9
5 years ago
Sean McBride
bfbe848b4b
chore: cleanup JSON
5 years ago
phani
a63af01ceb
Merge branch 'master' of https://github.com/phanikishoreg/awsm-Serverless-Framework
5 years ago
phani
cc38020fde
code_benches, some require math lib
5 years ago
phani
ed234f9ac5
default: async io for http req/resp. sync based io doesn't seem to work with huge data like 500k-1m I tested. They just timeout with concurrency
5 years ago
phani
77ae44337c
buffer problem in work1m tests
5 years ago
phani
0c92419978
fixed syscall based sync http-req/resp
5 years ago
phani
b9d7278c54
fixes 99% latency problem here (but a problem with 1m data transfer test, it is broken.)
5 years ago
phani
362e8b0a67
Merge branch 'master' of https://github.com/phanikishoreg/awsm-Serverless-Framework
5 years ago
phani
da43b22407
work 1k to 1m functions
5 years ago
phani
9528f65b32
Synchronous I/O for http request/response fixes 99%tile latencies
...
* Async I/O is being used for reading and writing http request and
response respectively. This causes the worker core to steal new tasks as
when one sandbox blocks on "read" or "write". This causes true
round-robin on timer interrupts, leading to those high latencies.
* Ideally, the request/response should be synchronous I belive because
we are expected to have "low"/near-realtime latencies and the read/writes
are only performed when a client connects, so ideally not block!
Plus, we expect only small data transfers (in KBs) so that should also
support synchronous request/response processing.
5 years ago
phani
f8cc5edb89
fibonacci serverless fn in awsm
5 years ago
phani
645d138787
for runtime with multi-sandboxing, globals are to be populated per sandbox, that was what causing random crashes!
5 years ago
phani
69b1f94fe8
scalable sandbox creation in each runtime core
5 years ago
phani
576bc4b086
sandbox alloc on each core, for scalability
5 years ago
phani
3fab99424a
fibonacci test update
5 years ago
phani
affe5fbc35
read() chunks fix, other standalone compilation fixes
5 years ago
phani
837fc3a7c0
legacy function pointer typecasts fail in wasm
5 years ago
phani
5016942e3f
work test
5 years ago
phani
611ec2257a
keep empty and add work program
5 years ago
phani
ae392fdfe3
read from stdin (http req body), write to stdout (http resp body), bug fixes in http parsing
5 years ago
phani
f019193952
read() to read from request body!
5 years ago
phani
2e8a22b710
fix for standalone execution
5 years ago
phani
be01f87687
Merge branch 'master' of https://github.com/phanikishoreg/awsm-Serverless-Framework
5 years ago
phani
5968495a55
adds floor for float and double
5 years ago
phani
618f269a9a
content-length header in response
5 years ago
phani
27b317116d
reset offset in read
5 years ago
phani
aa0017f4b0
http request response using uv
5 years ago
phani
8a3e050282
Support TCP (TODO: http parsing based on module specification)
...
* Major:
- Moved sandbox data struct into linear memory of a sandbox.
- (Should work well with other sandboxing mechanisms).
- Removed all mallocs from within uv usage, using a pre-allocated
memory within sandbox data-struct for read/write.
- TODO: convert prints on stdout to a string and send it out with
function response body.
- TODO: for each function loaded, what is the request and response
http header/body specification.
To start, keep headers minimal.
body either: json, plain.
- TODO: track TIMEOUTS. If we go beyond that, return a HTTP 408?
5 years ago
phani
9654c1f2fc
libc reuse mem for recv
5 years ago
phani
d31057ebde
cleanup commented code
5 years ago
phani
69b6dcf83c
added http-parser
5 years ago
phani
9376453058
uvio for sandbox response.
5 years ago
phani
95bf6fc1a9
udp response (return value of main) and multi-threaded udp client
5 years ago
phani
eb8fcf00c4
Work-stealing deque for global request queue
...
* all cores steal from that queue.
* other bug fixes
* tested with NCORES = 2 and 4.
5 years ago
Phani
2f3ddcb9c5
fix tests makefile
5 years ago
Phani
670e3ad2b5
revert from standalone
5 years ago
Phani
a231796990
for standalone execution
5 years ago
Phani
7ce5cf9a6d
fix in wasm_timespec
5 years ago
phani
9b0ec6f7dc
Changed directory structure
...
* silverfish is a submodule now
* memory modules from silverfish runtime is copied in to the aWsm runtime.
* runtime/tests/Makefile compiles different tests and silverfish/code_benches..
5 years ago