Comments (4)
thats certainly progress. network test was built on the same house of cards as stage3.
the two courses of action here are either to pull in your heap work into the unix process
space or to bring up another network stress test program.
I think* it might be more forward looking and informative to pursue the latter option, but
one aspect of my staggering accumulation of uncompleted work is that we lost
dynamic loading at some point...that was going to be temporary but I should file a bug on that
from nanos.
I'd opt to do both, namely:
-
Make network_test into a regression tool. Have it run for some finite period of time - short enough to integrate into CI, for example - and return a pass/fail code. We could perhaps try qemu's userspace networking stack to completely bypass brctl / tunctl / sudo and get a self-contained test running with a canonical make test. Forget about a return value from qemu for now (as you noted there's some more work to do to fix that), just consider it a pass if network_test passes. (Perhaps webs can quit on a magic http request so we don't need to find and kill qemu.) Getting this into CI would really help prevent regressions. Toss out hello world and make webs the standard build.
-
Add a flag to network_test for running interactively and thus indefinitely. Have it give some sort of output to indicate progress, maybe an uptime, the number of successfully opened and closed connections, an error count and the heap size. Here we can observe memory utilization. Maybe the http responses can send back stats from the kernel side too. (Might be time to think about making a /proc-type interface to the tuple space?)
-
Bring another program into the mix. I'm all for fixing mmap(), ld.so and other vm issues - they are high priority - but if we're not there yet or would be blocked on it, can we build statically for the time being?
Without really surveying the options, I might suggest starting by looking at https://github.com/esnet/iperf
from nanos.
would like to resolve, but there are really two outstanding actions here:
o concretize network test so that it runs in a short fixed interval and gives
a basic pass/fail indication on the tree
o fix remaining memory issues - with the new process space heaps it
leaks quite slowly, but at 5M uniboots it starts to exhaust memory and
that causes linux to really go sideways (stupid linux)
from nanos.
Can not be reproduced now.
from nanos.
Related Issues (20)
- vdso calls appear to be unused when running -noaccel HOT 2
- objcache pagesize assertion failure in gcp
- Question: How to run unikernel on generic kvm HOT 1
- hot reload / upgrade nanovm? HOT 8
- issue(sqlite3): WAL - journal_mode and multi-thread support - err(522) SQLITE_IOERR_SHORT_READ HOT 7
- issue(gcp): metrics - klibs(gcp,tls) - memory leak (maybe) HOT 2
- chore(storage): warn when volume name/label length > nanos(VOLUME_LABEL_MAX_LEN) HOT 1
- feat(storage): prevent nanos from starting the program if the expected volumes are not available HOT 2
- issue(smp): tokio-rs/sled deadlock (probable) on cpu count > 1 HOT 9
- issue(fs): assertion !frame_is_full(ctx->frame) failed at /nanos/src/kernel/mutex.c:109 (IP 0xffffffff800460b4) HOT 2
- issue: assertion enqueue(pn->dirty_commits, sh) failed at .../pagecache.c:1088 ... in pagecache_commit_dirty_node(); halt HOT 11
- issue(unix_clock): clock_getcpuclockid and clock_getres unexpected behavior HOT 3
- issue: assertion w->retval++ < (w->poll_fds->length / sizeof(struct pollfd)) failed at ../unix/poll.c:939 (IP 0xf..) in poll_notify(); halt HOT 7
- arm64 golang hello-wold fails to run on MacBook Air M1 HOT 2
- issue: assertion staging->end + min < size failed at /nanos/src/fs/tlog.c:427 in log_write_internal() HOT 1
- allow passing in network settings via kernel boot args for firecracker
- Much Slower Transfer Rate for HTTP Requests Compared to Native HOT 11
- Is the `memfd_create` syscall supported? HOT 4
- Missing `FUTEX_WAKE_BITSET` implementation HOT 2
- cannot enable executable stack as shared object requires: Permission denied HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from nanos.