Sean McBride
47672b4c93
fix: correct bugs
4 years ago
Sean McBride
b979809c12
chore: fix debuglog usage
4 years ago
Sean McBride
2db5f84f11
chore: Initial buggy port
4 years ago
Sean McBride
236e39b263
refactor: DRY arch_context code
4 years ago
Sean McBride
080c3d6656
chore: simplify RCs
4 years ago
Sean McBride
2ceede804a
chore: revert sandbox alloc API
4 years ago
Sean McBride
a9423b104c
chore: wrap multiline if
4 years ago
Sean McBride
1ae6acbbee
fix: correct bug and harden error handling
4 years ago
Sean McBride
1c65516164
chore: log invalid module errors
4 years ago
Sean McBride
180df1a7d5
feat: initial implementation with interrupt bugs
4 years ago
Sean McBride
5c87885722
chore: rename request_arrival_timestamp
4 years ago
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
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
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
948947dec8
chore: merge changes from other branch
4 years ago
Sean McBride
02d60a740d
chore: add trailing newlines
4 years ago
Sean McBride
324253095d
refactor: clarify interval duration is not macro
4 years ago
Sean McBride
47f24b6952
fix: namespace sandbox states
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
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
dfb1c65e93
fix: push PQ error handling to caller
4 years ago
Sean McBride
7384b2de1e
fix: harden panic logic
4 years ago
Sean McBride
68e91a8853
chore: combine thread locals into struct
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
29201f737d
docs: Use style guide format for comments
4 years ago
Sean McBride
cf42133127
chore: add explicit curly braces
4 years ago
Sean McBride
94f69a912c
docs: better inline comment
5 years ago
Sean McBride
b8a0e28d11
chore: cleanup sandbox logic
5 years ago
Sean McBride
c0d82db22b
fix: Correct memory leak and general cleanup
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
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
307f7c0d59
chore: encapsulte http_parser_settings
5 years ago
Sean McBride
321e26577d
chore: replace in_interrupt with bool
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
dafa257273
chore: encapsulate current_sandbox
5 years ago
Sean McBride
403b167a7e
chore: refactor out sandbox_run_queue
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
0ace3119e6
chore: revert to __getcycles
5 years ago
Sean McBride
a949cbebe3
chore: refactor double underscores
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
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
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
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
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
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
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
phani
0c92419978
fixed syscall based sync http-req/resp
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
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
affe5fbc35
read() chunks fix, other standalone compilation fixes
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
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
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
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