Skip to content

Releases: nanovms/nanos

0.1.42

31 Aug 15:01
Compare
Choose a tag to compare
0.1.42 Pre-release
Pre-release
TFS: inflate existing file extents, eliminate extent size maximum

When file data is being written beyond the range of an existing
file extent, if the storage space adjacent to the extent is free,
the extent can be extended to cover additional storage space,
instead of creating a new extent; this keeps the amount of file
metadata down and minimizes the number of disk I/O requests being
used to transfer a given amount of data.
The existing maximum limit of 1 MB on extent creation is no longer
necessary and is being removed. Since allocations from the storage
space are aligned to the allocation size, requesting large extents
can create large unallocated ranges in the storage space; in order
to be able to fill these ranges when requesting a new extent that
does not fit into a single contiguous storage area, the
create_extent() function upon allocation failure retries an
allocation with a smaller size (down to a 1MB limit); the code that
calls this function has been amended to properly handle the cases
where the size of a created extent is smaller than requested.

0.1.41

06 Jun 19:24
Compare
Choose a tag to compare
0.1.41 Pre-release
Pre-release
clone(2): fix check for attempts to create new process

The existing clone(2) syscall implementation was detecting whether
the user program is trying to create a new process by checking the
child_stack argument against a null value. This logic is based on
the fact that the glibc fork() wrapper that is provided as part of
the NPTL threading implementation invokes clone(2) with child_stack
set to 0. However, it is possible to create a new process even if
child_stack is non-zero: notably, the posix_spawn() implementation
in glibc invokes clone() with a valid stack pointer, which is
later unmapped by the parent process after the child starts
executing the newly created process. The correct way for clone(2)
to detect an attempt to create a new process is by checking for the
CLONE_THREAD flag.

0.1.40

27 Apr 15:01
abbf274
Compare
Choose a tag to compare
0.1.40 Pre-release
Pre-release
x2apic_ipi, xapic_ipi: target comparison requires explicit cast (#1720)

This resolves errors in the macOS build.

0.1.39

29 Mar 19:54
Compare
Choose a tag to compare
0.1.39 Pre-release
Pre-release
Unix fault handler: do not change CPU state

When the fault handler is invoked, the CPU state is the same as the
state when the interrupt was triggered. Therefore, it is not
necessary for the fault handler to set the state when returning the
current context; in fact, this causes a wrong state to be set when
a user thread generates a page fault that is resolved without
blocking, which may cause any subsequent exception generated by the
thread to be handled as if it was generated by the kernel.

0.1.38

02 Jan 20:06
Compare
Choose a tag to compare
0.1.38 Pre-release
Pre-release
net connection_handler: use input_buffer_handler for incoming data

The closure that handles incoming data on a given network
connection may close the connection (by invoking the output buffer
handler with a null buffer argument); if this happens, the
direct_conn struct is deallocated, thus it should not be accessed
anymore.
This change replaces the buffer_handler closure type for handling
incoming data with a new input_buffer_handler type, whose return
value is a boolean variable that indicates whether the connection
has been closed. The code in net/direct.c uses this return value to
ensure that the direct_conn struct is not accessed after closing a
connection. In addition, since in case of client connections the
associated direct struct is also deallocated, the
direct_conn_closed() function has been modified to return a boolean
value that indicates whether the direct struct has been
deallocated.
This change fixes a crash occurring on Microsoft Azure instances
when the cloud_init klib reports the instance status to the wire
server.

0.1.37

26 Oct 15:32
61d82e2
Compare
Choose a tag to compare
0.1.37 Pre-release
Pre-release
Merge pull request #1610 from nanovms/fix-firecracker

Fix firecracker and direct kernel loading support

gcp queue size, smp-enable, klib tls; brk; dirent; conc pf; huge backed heap

10 Aug 15:12
653ecb6
Compare
Choose a tag to compare
Merge pull request #1558 from nanovms/fix/epoll_wait_notify-no-thread

Set current thread to access user's epoll events array

dhcpv6, locked heap; file fuzzer; cwd; syslog klib; uname avx

18 Jun 15:53
a4d78d6
Compare
Choose a tag to compare
Merge pull request #1501 from nanovms/fix/unixsockets

Fix various unix socket bugs and behaviors

fuse / mgmt / multi-interface

27 Apr 14:13
adbaa4c
Compare
Choose a tag to compare
Pre-release
0.1.34

support static configuration and DHCP on multiple network interfaces …

tsc / aarch64 / minvim / balloon

08 Apr 23:55
Compare
Choose a tag to compare
Pre-release
PC platform vm_exit(): fix handling of reboot_on_exit flag

The PC platform code that handles a VM exit should reference the
root_fs global variable (defined in kernel/init.c), which holds a
pointer to the root filesystem, instead of a static variable that
is never set.