-
-
Notifications
You must be signed in to change notification settings - Fork 604
OSv Release 0.14
We are pleased to announce the release of OSv 0.14 Alpha Release. Some of the noteworthy new features and improvements below.
We are proud to present OSv Dashboard The dashboard is a browser base UI pretension of the OSv and the virtual appliance status, visualizing the current system status in one place. Dashboard includes (among others):
- Main tab with Memory, CPU Disk chart
- Thread tab with interactive visualization of thread status and thread usage. You can select and search for particular thread by name.
- Trace tab, including a for each trace point frequency. Selection by name and search are available.
- JVM tab present basic JVM information like memory and GC, for the cases the Virtual Appliance is java base.
- Virtual Appliance tab present information relevant to the particular appliance. Tabs for Cassandra and Tomcat are currently available, with more too come.
- Swagger-UI for REST API interaction is still available, now as part of the bigger dashboard. To build the dashboard, just includes httpserver in the module list For example:
$ make -j 4 image=cassandra,httpserver
Once the appliance is running, the dashboard can be access via osv-ip:8000
We are continuously extending REST API coverage of OSv. Latest additions are:
-
Run API: new run API allows running an application after OSv has already started. The most common way to use a virtual appliance is to pre build it using Capstan or directly from source. However, in some cases, one would like to run an application after OSv already started. Possible use cases are:
- During the dev process, reducing the build/test cycle time
- When there is a configuration updates which must be done after OS is running, but before the application started
- Creating a generic OSv cloud image (e.g. EC2 AMI), uploading and run different application to it
-
Batch API: a "meta API", enabling a query/response of multiple REST API in one HTTP request. Useful in case one need to execute many query frequently, for example from the new OSv dashboard.
Full spec for latest API is available
Capstan now allow launching a Java application from the command line, with out the need of manually building a Capstanfile. Its as easy as:
$ capstan run target/capstan-example-java.jar
See example
More on setting SSL for the REST API (which the CLI usage) here
Some of the noteworthy additions are: initial support for device trees, including dynamic discovery of components (previously hard coded). This includes getting the physical memory information, OSv CLI, pl011 UART device, GIC interrupt controller, and the virtual timer.
- Zerocopy implementation for both Tx and Rx
- Set high priority on virtio-net's receive and transmit thread. What these two threads have in common is that each runs on a single CPU, but other CPUs can find themselves idle waiting for these threads to read new packets (or send old packets). To fully employ all available CPUs, it is important that both these threads run as soon as they can, regardless of which other thread happen to run on the same CPU. Setting both threads to high priority achieves that. This improve performance of a ycsb workload-C cassandra test on a KVM Guest with 4 vCPU by up to ~29% depend on the number of threads. Single vCPU results are desegregated by ~18% for the same use case.
Two of the most popular application development run time are now available on OSv:
Images of the new release are available at osv.io/downloads and using capstan search
EC2 community AMI are available here
Amnon Heiman (20):
Http Server: Support stringstream for multi-part body
Http Server: Move the json_exception wrapper to exception.hh
Http Server: Make set_headers static
Http Server: Return a json object when no handler is found
Http Server: expose the url parsing method
Swagger Definition: Add an API for batch processing
Http Serve: Add a batch api implementation
Http Server Testing: Add basic FS testing
Http server testing: Add basic network testing
Swagger API definition: The batch command parameter should be declare form
Http Server: dynamically generate the api-doc swagger
Http Server: register the models on call to their init function
Http Server: Add thread information
Http Server: Add redirect exception
Http Server: Adds a force path option to file_handler
Http Server: Setting the GUI as the root URL
Http Server: Add firmware provider API
Http Server: Expose the hypervisor type
Adding application registry support
Http Server: Add run_app API
Asias He (1):
epoll: Fix trace_epoll_ctl
Claudio Fontana (1):
drivers: do not repeat the pci config parsing
Constantine Peresypkin (1):
Add gnu_dev_* symbols
David Halls (2):
libc/time: Return GMT instead of NULL for tm_zone
libc: Fix pipe flag logic
Glauber Costa (1):
scripts/setup.py: Fix prerequisites for Ubuntu 14.04
Gleb Natapov (1):
pagecache: calculate size of the write page cache dynamically
Haifeng Gao (1):
virtio-net: remove unnecessary colon
KANATSU Minoru (4):
add option "nohalt" to use osv::poweroff() instead of osv::halt() if Guest aborted
drivers: add TIOCGWINSZ support to ioctl
scripts: add words for filtering error to tests/testing.py
scripts: add test script for CRuby
Nadav Har'El (16):
stub libaio support
libc: Implement pthread_attr_setstack()
mmap(): special treatment for MAP_STACK
poll(): fix bug in no_poll
console: support poll()
setup.py: add missing comma
api/sched.h - improve const correctness
sched: allow migrating an existing thread
Support Linux affinity-setting functions
tests/misc-ctxsw - eliminate OSv-only code
cpiod: exit early when can't create directories
cpiod: create implicit directories with default permissions
gdb: look for objects also in apps/ directory
Implement chmod()
libaio: stub more functions
Stub signalfd()
Or Cohen (6):
setup.py: Add libssl.so installation
Lua: Add LuaSec module
cli: Add support for HTTPS
Lua: Add LuaSec module
cli: poll() when waiting for ANSI codes response
cli: Fix depends/build for executable
Paweł Dziepak (10):
tests: fix quitting qemu
libc: add poll_[un]install() functions to event_fd
zcopy: create eventfd before calling zsend()
zcopy: make sure that non-zero value is written to eventfd
tests: zcopy: wait for POLLIN instead of POLLOUT
libc: use poll_wake() in eventfd implementation
eventfd: release mutex before calling poll_wake()
x64: skip unformated sections when iterating through dmi table
elf: get object entry point
app: use object entry point if failed looking up main()
Pekka Enberg (24):
scripts: Add 'osv-crash' image
httpserver/osv-gui: update to latest
Merge pull request #511 from rvs/master
apps: update to latest
cloud-init: Fix formatting glitches in main.cc
apps: update to latest
Revert "Lua: Add LuaSec module"
Firmware API
Hypervisor API
cloud-init: Probe for data source only on EC2 and GCE
config.json: Enable cloud init by default
apps: update to latest
testing.py: Fix broken regular expression
tools/cpiod: Show bad CPIO magic
tools/cpiod: mkdirp() error reporting
httpserver/osv-gui: update to latest
apps: update to latest
java: JVM assertion command line options
libc: sys_errlist and sys_nerr symbols
apps: update to latest
scripts/upload_manifest: Fix symlink permissions
scripts/osv: Add support for symlinks in filemap.py
scripts/osv: Respect allow_symlink flag in filemap
apps: update to latest
Raphael S. Carvalho (2):
vfs: update file system's vnode operation list
vfs: use va_size instead when calculating st_blocks
Roman Shaposhnik (1):
Derivates of Sun JDK treat -Dfoo as -Dfoo=true
Sergei Turukin (1):
x64: Fix R_X86_64_TPOFF64 relocation without symbol
Shlomi Livne (10):
Tester script to compile and execute tests
EC2 Tester script to launch an instance and run tests
loader: Moving resolution of environment of cmdline args
build.mk: Allow setting of environment variables in images args
ec2-tester bug fix for sh
Enhance run.py XEN networking support to allow mac address
ec2-simulator: allow reuse of address
loader: Extend resolution of arg environment variables
bsd/porting: Adding if_ip function to return an interface ip address
loader: Adding OSV_IP environment variable
Takuya ASADA (13):
net: Implement zerocopy TX
net: Implement zerocopy RX
tests: Add zerocopy send test
tests: Add zerocopy recv test
tests: Add zerocopy send&recv test
Hypervisor API: VMware support
setup.py: Lua CLI requires OpenSSL headers
setup.py: Add support Fedora 21
zcopy_rx: Don't assert when bytes = 0
zcopy_tx: add socket type check to drop unsupported protocol
zcopy_rx: add socket type check to drop unsupported protocol
cli: Add reboot command
libc: add __strncpy_chk
Tomasz Grabiec (3):
tests.py: add ability to run only tests which match a regex
httpserver: Accept only TLSv1.2
httpserver: tests: ensure that SSLv3 is rejected
Tzach Livyatan (1):
Update the Wiki URL in error message
Vlad Zolotarov (5):
virtio::net: Set infinite priority to worker threads
percpu_xmit::poll_until(): Beautify the code a bit
percpu_xmit::poll_until(): Call a yield() when trying to bypass a control to the "next" tx-worker
sched: yield() don't overwrite the runtime of a yielding thread
sched::yield(): Get rid of extra dereferencing