-
-
Notifications
You must be signed in to change notification settings - Fork 605
OSv Release 0.10
Tzach Livyatan edited this page Jul 3, 2014
·
2 revisions
We are pleased to announce the release of OSv 0.10 Alpha Release.
Some of the noteworthy performance improvement are in this release are:
- Implementation of Timer Wheel
- Improve TCP Tx performance by about 10% with virtio::net not using indirect buffers
- Improve TCP Tx performance for small packets by about 5% with avoiding excessive kicks
- Improve ZFS performance enabling real-time by default when creating ZFS data-set
- Improve ZFS mount time when previous instance has performed I/O
Some of the noteworthy additions are:
- New REST API
- Query thread status
- Activate/Deactivate trace points
- Controlling sampling profiler *Get environment variables
New API schema is available here
- libosv.so, a library containing all visible OSv symbols. Useful for loading as a module for JNI or JNA users.
more applications are enabled on OSv. Few of the latest are:
- CRuby
- OpenDayLight
Work on AArch64 port continue to progress, few of the latest updates:
- support for ELF lazy function resolution
- QEMU system emulation now boots our image successfully, after fixes both here and in QEMU.
- more complete pl011 console support (now takes inputs)
- There is a performance regression on GCE. We are looking into it and expect to have a fix release in the near future.
- Images of the new release are available at osv.io/downloads and using capstan search
- EC2 community AMI are available here
Amnon Heiman (1):
modules: add the osvinit module
Asias He (2):
runtime: Implement times()
scripts: Zero download GCE support
Avi Kivity (56):
Merge branch 'memarea'
vfs: add dentry_ref, a smart pointer for dentrys
vfs: convert file::f_dentry to dentry_ref
vfs: make error class build in C code
vfs: add C++ namei()
vfs: covert sys_stat, sys_statfs to C++ namei
Merge branch 'timerwheel' of https://github.com/tgrabiec/osv
build: fix tst-static-thread-variable.so dependencies
x64: add lfence accessor
pvclock: add LFENCE before reading the time stamp counter
tests: add monotonic clock test case
Merge branch 'dref'
procfs: fix use-after-free
vga: initialize _offset
Update mgmt
mgmt: update
mgmt: update
Update external/x64/misc.bin for yaml-cpp
external: update x64 openjdk.bin
xen: comment out HYPERVISOR_poll()
mmu: avoid allocation in allocate_intermediate_level()
x64: switch stacks in general_protection
Add defer() utility
mempool: protect debug allocator against recursion
external: add aarch64 submodules
build: add gcc sysroot for cross builds
Update gcc.bin for glibc sysroot
build: relax naming of boost libraries
libc: define max_align_t
runtime: define __stack_chk_guard
Switch to newer gcc
Merge branch 'mmu'
build: make boost-lib-dir more robust
mgmt: update
mgmt: update
build: allow side-by-side aarch64 and x64 builds
build: provide a default for CROSS_PREFIX
build: CROSS_PREFIX is always defined
build: use build/$(mode).$(arch) in preference to the build/$(mode) symlink
build: avoid referring to $(out) in internal Makefile
build: rename *.mak to *.mk
build: move mode-related configuration to conf/*.mk
build: move arch-specific configuration to conf/$(arch).mk
Merge branch 'build'
vfs: remove checks on symlink target
cpiod: don't ignore symlinks
modules: allow symbolic links
build: teach upload_manifest about symlinks
java: fix RPATH trouble
Merge tag 'rpath-5' of https://github.com/avikivity/osv
apps: update
scripts: add script to setup a development environment
acpi: run interrupt handler in a thread
mgmt: update
mgmt: update
vfs: stop polls before destroying file object
Calle Wilund (3):
trace: make trace points active state / backtrace individually controlled, with API calls for external (REST) management
trace: Cleanup enable_tracepoint function
trace: Binary trace dump API
Claudio Fontana (21):
aarch64: implement lock adapter for arch_fpu
aarch64: update to latest Mach-Virt addresses
elf: move arch-specific relocation enums to arch
elf: replace non-ascii 'fi' character combination with 'fi'
elf: aarch64: relocate pltgot
elf: move arch-specific object rela relocs to arch
elf: move arch-specific object jump slot relocs to arch
elf: move arch-specific initial dynamic segment relocs
aarch64: gic: do not abort on cpumask read as zero
aarch64: exceptions: enable PPIs and SPIs separately
drivers: pl011: implement data input path
elf: initialize init_table to zero, ensure TLS is found
build.mk: aarch64: don't destroy the instruction at offset 0x10
runtime: make abort and __assert_fail callable early
elf: support R_X86_64_COPY relocation
aarch64: entry.S: do not treat all sync aborts as page faults
aarch64: libc: remove unnecessary AARCH64_PORT_STUB
async: remove unused include directive
build.mk: fix info message broken by previous commits
aarch64: handle more page fault cases
tools: add uush
Dmitry Fleytman (17):
release-ec2: update template AMIs
elf-loader: avoid module self-referencing on local symbols resolution
run-elf: cancel alarms after native program execution
vmxnet3: mimic Linux driver registration
vmxnet3: avoid excessive kicks on TX
smp-boot-x64: fix switch to long mode
ec2-release: check image format before upload
release-ec2: make credentials management more robust
setup.py: fix error handling
setup.py: add missing packages for Fedora 20
setup.py: get distribution type and version in a portable way
setup.py: introduce Ubuntu 14.04 support
setup.py: Introduce ec2 and testing environments
README: add gawk to debian prerequisites
release-ec2: move generic code to separate file
ec2-utils: introduce more instance-related functions
ec2-utils: introduce optional timeout for wait for instance start helper
Don Marti (1):
Fix spelling of "below" in comments.
Elazar Leibovich (2):
tests: add auto-load safe-path init command to gdb
gdb: pretty print PERCPU(type, var)
Glauber Costa (18):
math: make math functions generic
math: provide some more floating point symbols
fs: stub chroot
sem: implement sem_timedwait
libc: add header for ffsl and ffsll
poll: fix problem with events
stub __libc_start_main
linux compat: define macros for syscalls
sysconf: available number of physpages
lib: Fix size of 'struct rusage'
libc: Fix RUSAGE definitions
time: move process_time to common code
libc: Basic getrusage implementation
run: "fix" redis boot.
linux: adjust gettid visibility
provide a shared library containing most of OSv symbols
libosv: warn against version mismatch
libosv.so make it work with python2 as well
Gleb Natapov (29):
mmu: remove unused function debug_count_ptes
mmu: call correct unmap() callback for huge pages in unpopulate class
mmu: fix name of the function that reads pte in virt_to_pte_rcu
mmu: fix a race in fast sigsegv code.
mmu: remove unneeded code from cleanup_intermediate_pages
mmu: fix RCU page table walking
mmu: make hw_ptep class to be a template parametrized on pte level
mmu: remove size parameter from page ops class and file map/unmap functions
mmu: consolidate (small|huge)_page mapper operations
console: do not capture local variables by reference
mmu: check ParentLevel before checking if pte is large.
mmu: drop the need for hw_ptep<-1>
mmu: replace static arch_pt_element functions by class inheritance
mmu: make user()/accessed() functions arch independent interface.
mmu: make pt_element class to be a template parametrized on pte level
mmu: remove unused make_large_pte function
mmu: make pt_element::large() check pt level
mmu: drop 'large' parameter from pt_element::addr()
mmu: hide 'large' property from pte instantiation code
mmu: provide pt_level_traits class
mmu: assert if dirty() is called on wrong pte
zfs: call vnode_pager_setsize() to set vnode size in zfs_write()
mmu: re-enable clear_pte() tracepoint
pagecache: trace dirty page eviction
mmu: inject SIGBUS if a file is accessed beyond its end via mmap
mmu: align vma range end address to a page size
mmu: do not populate addresses beyond file size during mmap(MAP_POPULATE)
acpi: shutdown OSv on power button ACPI event
dhcp: add handling of option 121 "Classless Static Route"
Jaspal Singh Dhillon (15):
vfs: implement futimesat()
vfs: fix errno in futimesat()
tests: add test for futimesat()
dlfcn: implement dlclose()
vfs: fix namei() and friends
vfs: implement utimensat() and futimens()
tests: add test for utimensat()
vfs: fix utimes() to handle NULL as argument
tests: add a test for utimes()
core: implement ppoll()
libc: implement sethostname()
core: implement pselect()
build.mk: move modules/tests/usr.manifest to build/
poll: handle case of negative fds
tests: enable test for negative fds in tst-poll
KANATSU Minoru (20):
README: add description about building for Arch user
libc: add getgrnam_r for porting CRuby
libc: move getgrnam from runtime.cc
libc: add function of pgid for porting CRuby
libc: add getpgrp for porting CRuby
libc: add getppid for porting CRuby
libc: add getpwnam_r to porting CRuby
libc: add setegid for porting CRuby
libc: add seteuid for porting CRuby
libc: add setregid for porting CRuby
libc: add setreuid for porting CRuby
libc: add sid function for porting CRuby
libc: add waitpid for porting CRuby
libc: add pthread_attr_getguardsize() for porting CRuby
mempool: add malloc_usable_size() to C linkage for porting CRuby
libc: add eaccess() to run irb
Remove double include
libc: add finite(), finitef(), finitel()
libc: use weak_alias(); instead of declare eaccess()
libc: add pthread_attr_setinheritsched to run WEBrick its ruby HTTP server
Nadav Har'El (20):
clock_gettime(CLOCK_PROCESS_CPUTIME_ID) - subtract idle time
elf: Run init functions only after loading object hierarchy
Add missing cfgetispeed()
Fix cfset*speed() nonsense
Fix cfsetspeed()
Fix bug in readv() and fread()
Remove dead code
Test readv() and fread()
Fix writev() as well
elf: warn when using unsupported combination of PIE and TLS
Use osv::run in run_elf()
Remove unnecessary #include
sched: Add API for iterating over all threads
Add test for sethostname() and friends
Add names to threads running external executables
scripts: top.py
Fix libosv build with python 2
top.py: add tie-breaker sort criterion
console: Fix echo on VGA console
kbd: change mapping of backspace from ^H to ^?
Pawel Dziepak (1):
mempool, trace: use single tracepoint to track memory allocations
Paweł Dziepak (14):
mmu: introduce memory areas
mempool: use memory areas to determine the object allocator
mempool: remove non_mempool_obj_offset
kmem_cache: do not ignore alignment requirements
zfs: align zio buffers to a page boundary
mempool: introduce page memory allocator
mempool: make large memory allocator less wasteful
mmu: remove reinterpret_cast from get_mem_area_base()
mmu: use static_casts in translate_mem_area()
mmu: make get_mem_area() static inline instead of constexpr
zfs: align vdev_label_t buffer to page boundary
xen: align grant table to page boundary
libosv: use .balign instead of .align
libosv: add padding after the content of the note
Pekka Enberg (22):
scripts: Fix download.osv.io S3 bucket name
scripts: Fix capstan release upload
tests: printf benchmark
Merge branch 'master' of github.com:elazarl/osv
drivers: Rename ConsoleDriver to console_driver
drivers: Rename ConsoleMultiplexer to console_multiplexer
serial: Fix formatting
serial: Eliminate temporary variable
serial: Drop unused <string.h> include
serial: Move register definitions to source file
serial: Split register definitions
serial: Rename writeByte to putchar
drivers: Rename IsaSerialConsole to isa_serial_console
tests: Rename tst-fsx.c to misc-fsx.c
Merge branch 'java' of https://github.com/tgrabiec/osv
x64: Move pvclock-abi.cc under arch directory
mgmt: update to latest
mgmt: update to latest
mgmt: update to latest
mgmt: update to latest
upload_manifest.py: Fix infinite loop in unsymlink
Revert "build.mk: move modules/tests/usr.manifest to build/"
Prasad Joshi (11):
vfs: change vfs_lookup to CPP code
vfs: delete dentry of removed directory in sys_rmdir
vfs: add support to follow symlink in namei
vfs: open with O_NOFOLLOW must fail when path is symlink
vfs: modify rename to work with symlink
vfs: unlink change to work with symlink
vfs: add lstat support
vfs: add symlink support
tests: add symlink test
eventfd: add eventfd support
tests: add eventfd unit test
Raphael S. Carvalho (24):
bsd: Implement some of the kobj functions
zfs: Re-enable spa_config_load
tests: Make misc-fs-stress work on ZFS on Linux
scripts: Add script for benchmarking ZFS mount time
zfs: Improve mount time when previous instance has performed I/O
Add entries to .gitignore
shrinkers: wake_waiters should be called when target is zero
drivers: Add null device
random: save needlessly entropy waste during OSv build process
vfs: Fix isatty on console file descriptors
drivers: null: read must return zero upon success
zfs: Port relatime property from ZFSonLinux
zfs: Enable relatime by default when creating ZFS dataset
elf: reuse page_size definition from mmu headers
libc: stub getgroups and setgroups
vfs: bio: call bio_sync when closing the vfs layer
elf: unload _used_by_resolve_plt_got on object removal
zfs: Implement zfs_ioctl
tests: Fix misc-readbench
random: hw source of entropy should be conditionally registered
random: Avoid uneeded buffer allocation/deletion
random: Add a note to avoid misconception about virtio_rng_read
vfs: Move dentry-specific functions to a new file
random: Clarify unblocking message
Takuya ASADA (8):
pthread: implement pthread_exit
vmxnet3: Fix TSO support on VMware Player/Workstation/Fusion
libc: add inet_addr, inet_aton
bsd: Add support IP socket options
virtio-net: enable multicast
vmxnet3: enable multicast
console: probe PCI VGA device using driver_manager
console: use existing isa_serial_console instance instead of creating new one
Tomasz Grabiec (46):
gdb: implement __bool__ which is required by python3
gdb: add osv load-elf command
core: introduce bitset iteration utilities
core: introduce timer_set data structure
tests: add test for timer_set
core: switch async timers to use timer_set
core: switch sched::timer_list to use timer_set
core: avoid unnecessary clock reschedules
core: use unordered_queue_mpsc for released_timer_tasks
pvclock: fix system_time() atomic-read logic
java: fix indentation issues
java: remove redundant local variable
java: make 'java' module depend on 'fonts'
java: add copyright banner to usr.manifest
java: do not print uncaught exception form the child context on the console
tests: detect ContextFailedException as a failure pattern
java: make runjava.jar domain all-privileged
tests: add test exploiting issue with protection domain permissions
kvmclock: ensure _boot_systemtime is set only once.
java: grant exitVM permission to isolates by default
tests: add test for exitVM permission under presence of SecurityManager
trace: remove use of global state in fetch_and_inc_if_less()
build: Use -O0 for debug build instead of -Og
pvclock-abi: respect the TSC_STABLE_BIT flag
xen: remove trailing newline form xenirq thread's name
clock: extract common code between kvmclock and xenclock
tests: introduce microbenchmark for various locking primitives
clock: use migration_lock to protect access to per-CPU data
java: set OSv version in 'osv.version' system property
tests: add test for presence of 'osv.version' property
java: isolated contexts should not inherit system properties
tcp: trim mbuf to IP packet length in the net channel path
java: exclude '.' from default system class loader's class path
tests: add test exploiting class path issue
modules: make run_java() interface more convenient
tests: do not rely on osv::power_off() to sleep
modules: introduce a concept of repository
modules: make api.require() impose compilation ordering
sampler: make start_sampler() always succeed
modules: include apps.git as module repository
modules: configure osv.git/modules as module repository
manifest: Add syntax for creating symbolic links in the guest image
cpio: Log creation of symbolic links
modules: Add syntax for creating symbolic links
modules: java: Simplify creation of links
build: fix the build
Vinicius Tinti (1):
x64: Remove extra comma in boot16.S
Vlad Zolotarov (11):
ring_spsc: revert the previous commit to push()
virtio-vring: bug fix in use_indirect()
virtio-vring: Make use_indirect() inline since it's heavily used in a fast path
net: increase the minimum allocation size of the mbuf for TCP xmit
virtio::net: Don't use indirect buffers
virtio-net:txq: Don't caclucate the sg length
sendmsg: kern_sendit(): create a local copy of user's iovec
virtio::net::txq: Use proper size of virtio_net_hdr
percpu_xmit: cleanup
percpu_xmit::xmit(): fix an "if" on xmit_prep() exit code
virtio::net::txq: Added some debug statistics.
Zika L'Etrange (2):
tests: Add test to check access to static __thread variable
posix: Add getcontext, setcontext, and makecontext
wangbicheng (1):
dhcp: Fix MTU logging