-
-
Notifications
You must be signed in to change notification settings - Fork 607
OSv release 0.04
Announcing the release of OSv “Dobrinishte”0.0.4 (unstable release). OSv is a new OS, designed from the ground up to run in a virtual, cloud environment We are very pleased to announce the release of OSv 0.0.4. This release contains new features, performance and stability improvements over OSv 0.0.3
- release date: Dec 9 2014
OSv scheduler was re-implemented to follow our fair decaying scheduler design [1]. The new “Fair Scheduler” advantages are:
- Simpler, easier to reason about, and as result less buggy
- Thread priority survive CPU migration
- Can use longer history More on Decay fair scheduler
External modules can be now easily build with OSv. The following application already available as examples:
- cassandra
- memcached
- tomcat
- specjvm
- rogue
for more information, see the new submoudole project
Switch to demand paging for anonymous virtual memory. Using lazy physical memory allocation for anonymous mmap'd memory regions, as used by Cassandra
It is now possible to set a javamain file with multiple Java main declarations. This allows setting a launch sequence of multiple, independent Java services. Practically it allow to decouple the CLI/SSH execution the web server.
Add support for /dev/random implementation includes reading from host virtio-rng if available, allowing Java secure random generator faster boot
- openjdk 1.7.0.60-2.4.3.0.fc19
- CRaSH 1.3.0-beta11
- QEMU/KVM image for download
- Amazon EC2 AMI per region
Amnon Heiman (2):
java: Support for loading multiple mains
Start up shell and management web in parallel
Asias He (5):
fs: Remove execute mode of files under fs directory
zfs: Remove unused zfs_freebsd_xxx zfs_vnodeops
build.mk: Rename usr.raw to bare.raw
Add .swp files to gitignore
virtio-blk: Switch to and add tracepoint
Avi Kivity (82):
build: fix .tls_template_size calculation
poll: refactor poll() in terms of file pointers, not file descriptors
epoll: switch to file based implementation using do_poll()
tests: add tcp connection test
build: bring back libgcc_s.so
tst-except: add test for _Unwind_Resume
epoll: switch epoll_object to using file pointers
vfs: give 'file' a proper destructor
vfs: prevent double initialization of file::f_lock
tst-tcp: clean up better after threads
tst-tcp: close socket before retaking the lock
epoll: remove epoll registrations after close()
sched: prevent a re-armed timer from being ignored
sched: fix iteration across timer list
build: source dialect control
libc: implement the GNU variant of strerror_r()
tests: add a test for strerror_r()
tests: add strerror_r() test
build: add missing tst-strerror.so to tests list
net: adjust SO_REUSEADDR to match Linux semantics
tst-tcp: set SO_REUSEADDR
gdb: add 'osv info virtio'
zfs: remove fake struct file definition
vfs_syscalls.c: convert to C++
Add helper for converting designated initializers to C++
vfs_fops.c: convert to C++
ramfs_vnops: convert to C++
devfs_vnops: convert to C++
file: move file operations out-of-line
socketpair: fix wierd initialization
file: add helpers for accessing fields
file: make it a C++ type
file: make sys_open() allocate the file structure
uipc_syscalls.c: convert to C++
fdesc: make it a little more efficient
net: avoid falloc() in sys_close()
net: avoid falloc() in kern_accept()
net: avoid falloc() in kern_socketpair()
vfs: drop falloc()
Merge branch 'file++'
file: add make_file() API
file: add a variant of make_file() with unique_ptr<> opaques
net: switch sys_socket() to make_file()
net: switch kern_accept() to make_file()
net: switch kern_socketpair() to make_file()
epoll: convert to make_file()
console: convert to make_file()
sys_open(): convert to make_file()
af_local: convert to make_file()
pipe: convert to make_file()
file: drop public declarations of falloc_noinstall() and finit()
file: drop file_makebad()
file: don't initialize with memset()
file: move initialization from falloc_noinstall() to finit()
file: fix falloc_noinstall() error case
file: fold falloc_noinstall() into make_file()
file: convert finit() to file's constructor
file: allow make_file() to create files with a type derived from 'file'
file: generalize make_file() to be able to create derived types
file: add virtual functions corresponding to f_ops
file: close() outside destructor
file: make fo_init() optional
file: make 'opaque' optional
console: make it a derived class of file
initialize: add a way to initialize an array, similar to C99 designated initializers
sys_socket.c: convert to C++
linux_ioctl_socket.c: convert to C++
net: use a file derived class for sockets (socket_file)
pipe: make it a derived class of 'file'
af_local: convert to a derive class of file
epoll: convert to a derived class of file
vfs: convert vfs files to be derived from class file
file: remove unused make_file() implementations
file: remove badfileops
file: remove fileops
external: update openjdk to 1.7.0.60-2.4.3.0.fc19
Merge branch 'file++'
virtio-rng: fix excessive serialization with multiple consumers
virtio-rng: fix incorrect use of valarray
virtio-rng: drop excessive producer/consumer serialization
net: fix socket ioctl() bypassing Linux adjustments
linux_ioctl.cc: fix indentation
Benoît Canet (4):
loader: Allow to execute multiple .so file in sequential order.
mkfs.so: split mkfs.so in mkfs.so and cpiod.so.
build.mk: Create an intermediate bare.img containing only a formated /usr.
core: make osv::run return shared pointer or null and store it on loader.cc
Dan Schatzberg (1):
x64: Fix rare SMP deadlock when acquiring stack
Dmitry Fleytman (5):
release-ec2: fix AMI replication code
release-ec2: Introduce image and version parameters
xen: move per-cpu interrupt threads to .percpu section
release-ec2: Make replicated AMIs public
release-ec2: use tput for message coloring
Glauber Costa (14):
mmu: move huge_page_size to mmu.hh
sched: start thread list early
sched: avoid dereferencing current() fields on thread creation
sched: add a new thread state, prestarted
sched: start and initialize early threads
mmu: allow early tlb flushes
sched: delay initialization of early threads
x64: Use inline assembly for setcsr function
xen: use bsrq instead of bsrl for event channels
apic: fix allbutself delivery mode
sched: remove on_thread_stack
sched: change thread list into an unordered map
sched: add function to find a thread given its id
linux: add priority stubs
Gleb Natapov (1):
trace: infer storage/runtime args from assign() signature
Nadav Har'El (26):
percpu: Reduce size of .percpu section
Partial implementation of aligned_alloc() and posix_memaligned().
Explicitly request alignment when allocating per-cpu area
Power-off, instead of halt, when loader can't run command
Replace numbers in prio.hh by automatically defined numbers
Fix possible deadlock in condvar
Warn about incorrect use of percpu<> / PERCPU(..).
sched: Don't change runtime of a queued thread
sched: Use schedule(), not yield() in idle thread
sched: No need for "yield" parameter of schedule()
sched: New scheduler algorithm
sched: Doxygen documentation of a bit of the scheduler
Overhaul "debugging" section of README
Reduce number of unnecessary sections in our executable
gdb: Fix printout of runtime
Test for scheduler's single-CPU fairness.
Test: Small bugfix for tst-loadbalance
Trivial: typos in core/lfmutex.cc
Fix boot-time stdout support
sched: ignore backward jumps in clock
Fix HPET driver clock rollback
Fix exception (in x86 sense, not C++) handling during boot
Fix crash on malformed command line
Add license/fastlog2.txt
Add a few missing __*_chk functions
Fix error in __vsnprintf_chk()
Or Cohen (1):
Use interrupt flag for jline stty mode
Pekka Enberg (42):
bsd: Fix formatting in porting/network.cc
x64: Fix stack alignment in fault handlers
Remove scripts/nbd_client.pyc from the tree
Add .pyc files to gitignore
libc: pthread_kill() stub
build.mk: Fix bootfs and usr manifest dependencies
libc/pthread.cc: Switch to WARN_STUBBED()
vfs: Add pivot_root() system call
ramfs: unmount
ZFS root filesystem
scripts/test.py: Show running test case name
Reformat Java code
test.py: add tst-except.so
mmu: VMA permission flags
mmu: Optimistic locking in populate()
mmu: Anonymous memory demand paging
mmu: MAP_POPULATE support for anon mmap()
tests: Anonymous demand paging microbenchmark
tests: mincore() tests for demand paging
test.py: add utimes.so
test.py: add tst-strerror_r.so
pthread: Populate mmap'd stack pages
test.py: add tst-pipe.so
virtio: Add virtio::probe() helper
virtio-net: Use virtio::probe() helper
virtio-blk: Use virtio::probe() helper
vfs: Make '/dev' directory at image creation time
devfs: device_destroy() API
virtio: Fix device init with no MSI support
virtio: Add virtio-rng driver
tests: tst-random.so
Update to latest mgmt.git
test.py: Stop test execution on error
vfs: MNT_FORCE unmount
vfs: Fix sys_pivot_root()
loader: Unmount rootfs at poweroff
virtio-rng: Remove blocking /dev/urandom
mgmt: Start up web earlier
run.py: Make guest memory 2 GB by default
zfs: Fix build breakage in zfs_setattr()
apps: Bump version
usr.manifest: Add missing JVM security files
Raphael S. Carvalho (19):
scripts/run.py: Add wait feature
mmu: Make fill from fill_page support variable page sizes
vfs: Introduce vop_eperm
scripts: Change mkzfs.py to call run.py with unsafe cache.
vfs: Make error messages when mounting rootfs more verbose.
libc/network: feof shouldn't be used on a closed file
zfs: Wire up VOP_SETATTR
devfs/ramfs: Change vop_null to vop_eperm
vfs: Unify attribute flags into a common place
vfs: Add the utimes system call
tests: Add tst-utimes
zfs: Fix debug mode build
vfs: Fix hard link on subsequent calls for the same dentry
Add tst-fs-link.so to the whitelist of test.py
mmap: fail if flags contain both MAP_SHARED and MAP_PRIVATE
mmap: Improve mmap validation
mmap: Check file-backed mmap arguments
tests: Add new tests into tst-mmap-file.so
mmu: Simplify mmu::map_file interface
Takuya ASADA (2):
OSv module support
Add negotiation flag check for FLUSH
Tomasz Grabiec (24):
Fix lack of locking in libc in file and memstream related operations
Introduce test for libc locking
Add missing tst-libc-locking.cc file
loader.py: add wrapper for intrusive list
loader.py: extract trace iteration so that it can be reused
loader.py: add commands for function duration analysis
Makefile: use abolute paths in generated variables
build.mk: process modules in one rule
vfs: end message printed by sys_panic() with new line
module.py: refactor
Consolidate module manifests generation
Add /tmp entry to usr.manifest
module.py: fix "make module" invocation
Add java.security properties to the image
test.py: extend failure patterns
modules: Add support for run configurations
modules: Add support for resolving variables in manifest rules
modules: Use OSV_BASE variable in manifest for mgmt
Add 'empty' image config
Add image configuration for tomcat appliance
Add image configuration for cassandra
mgmt: use prod environment in module run config
Add osv-apps as submodule under apps
Configure module paths for tomcat and cassandra
dleifker at gmail.com (1):
Fix make flag in readme for debug mode
ufokaradagli at gmail.com (1):
README.md: Fix typos
大谷津昂季 (1):
ovs: fix build error. (bsd/porting/networking.cc)