Skip to content

Tags: nanovms/nanos

Tags

0.1.53

Toggle 0.1.53's commit message
Logging: add user-adjustable log levels ("err", "warn", "info")

The log_printf() function now takes an enum log_level parameter,
and prints the message to the console if the supplied level is
lower than or equal than the configured kernel log level (which can
be set via the "log_level" manifest option). The default log level
is "err".
The msg_{err,warn,info} macros have been repurposed so that in
kernel code they expand to log_printf() function calls; calls to
these macros have been modified so that the format string starts
with a sensible prefix; the trailing newline is added by
log_printf(), thus it has been removed from the macro invocations.
Some rprintf() and thread_log() calls have been converted to use
the msg_{print,err,warn,info} macros.

0.1.52

Toggle 0.1.52's commit message
ARM: add support for Azure instances

This change ports the Hyper-V drivers to the ARM architecture,
which allows Nanos to run on Azure ARM-based instances; in
addition, the SMBIOS entry point is passed from the UEFI bootloader
to the kernel so that the cloud_init klib can detect (via DMI)
whether the kernel is running on an Azure instance and finalize
instance deployment according to Azure requirements.

0.1.51

Toggle 0.1.51's commit message
Virtio-9P device attach: fix initialization of virtio_9p struct

Since commit d037970, in multi-vCPU instances root filesystem
initialization can complete before PCI bus discovery; this means
that any filesystem mount points specified in the manifest options
can be already processed by the time a virtio-9p device is probed
and a corresponding volume is added; this in turn means that the
`volume_add()` function called by `v9p_dev_attach()` can trigger a
direct call to `v9p_fs_init()`.
The `v9p_fs_init()` function uses the `general` field of the
`virtio_9p` struct, which in the current code is initialized after
calling the `volume_add()` function; this causes `v9p_fs_init()`
to access an uninitialized pointer, leading to an unhandled page
fault. The same issue applies to the `backed` field of the struct.
This change fixes the above issue by moving the initialization of
the struct fields before the call to `volume_add()`. In addition,
the unused `dev` field is being removed, and setting the DRIVER_OK
flag in the device status field is being moved before the call to
`volume_add()` (according to the virtio specs, a driver must not
send any buffer available notifications to the device before
setting DRIVER_OK).

0.1.50

Toggle 0.1.50's commit message
Klib linker scripts: use ELF segments with appropriate permissions

This change amends the linker scripts for the klibs so that each
klib ELF file has 3 segments: a text segment with read and execute
permissions, a data segment with read-only permissions, and a data
segment with read/write permissions. This avoids mapping an entire
klib image with both write and execute permissions when the kernel
loads a klib.
In addition, the SECTIONS directive in the linker scripts has been
fixed so that all the read-only input sections are mapped to the
.text and .rodata output sections; this decreases the size of the
klib ELF files.

0.1.49

Toggle 0.1.49's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
bump ruby to newer version (#1987)

* bump ruby to newer version

* bump

* .

---------

Co-authored-by: Ian Eyberg <[email protected]>

0.1.48

Toggle 0.1.48's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
bump mac dep (#1957)

Co-authored-by: Ian Eyberg <[email protected]>

0.1.47

Toggle 0.1.47's commit message
stage2, uefi: allocate untyped buffers from tagged region

This addresses a long-standing bug in targets that use a rewind tag for
values (specifically the stage2 and uefi bootloaders), whereby an untyped
buffer allocation was being allocated without creating space for the tag
type. This could manifest in an incorrect tag type being read for a buffer. To
remedy this, an additional tagged region heap is created of type tag_unknown,
and untyped buffer values (currently only coming from decode_value() when
using an old TFS encoding for backward compatibility) are allocated from that
heap.

0.1.46

Toggle 0.1.46's commit message
getsockopt(): add support for SO_DOMAIN

This socket option at the SOL_SOCKET level contains the socket
domain value (e.g. AF_INET or AF_INET6).

0.1.45

Toggle 0.1.45's commit message
netlink RTM_GETADDR: add support for AF_INET6 and AF_UNSPEC

This adds netlink support for reporting IPv6 interface addresses via the
RTM_GETADDR request. It also handles the AF_UNSPEC address family by reporting
both IPv4 and IPv6 addresses.

0.1.44

Toggle 0.1.44's commit message
ATA: honor maximum number of sectors in each I/O request

This commit adds a new function to the ATA disk driver to retrieve
the maxiumum number of sectors that can be submitted in a single
I/O request, which depends on whether LBA48 addressing is
supported. This new function is called by both the x86_64
bootloader and the kernel ATA PCI driver, which check the maximum
sector count value to split each I/O request so that it doesn't
exceed the limit.
This fixes booting on vsphere VMs with IDE disk emulation.