Ecosyste.ms: OpenCollective

An open API service for software projects hosted on Open Collective.

github.com/unikraft/unikraft

A next-generation cloud native kernel designed to unlock best-in-class performance, security primitives and efficiency savings.
https://github.com/unikraft/unikraft

lib/ukboot: Updates for inlining with platform and scheduling changes

Changes:
* init the IRQ subsystem
* init the timer after memory allocator initialization
* enabl...

c6d29929dce676c744053b73a2c6718501032636 authored over 6 years ago by Costin Lupu <[email protected]>
arch/x86_64: Add function for stack pointer retrieval

Signed-off-by: Costin Lupu <[email protected]>
Reviewed-by: Simon Kuenzer <simon.kuenzer@nec...

73d9c704029858ed01686b26d17c563eab1156ce authored over 6 years ago by Costin Lupu <[email protected]>
plat/common: Common x86 CPU interrupt flag handling

Introducing new header for native interrupt flag functions.

Signed-off-by: Costin Lupu <costin....

2c3ca554f3924b32b01e4e261343053ce4c3d940 authored over 6 years ago by Costin Lupu <[email protected]>
include/uk: Add `extern C` to `plat/time.h`

Make include/uk/plat/time.h header usable with C++

Signed-off-by: Simon Kuenzer <simon.kuenzer@...

c5b9312a797b17b7f5bc6e261d962eec4c9693cf authored over 6 years ago by Simon Kuenzer <[email protected]>
plat/common: Common x86 threading code

We define a new primitive - the software context - used in context switching for
cooperative sch...

b18c01228e36e4d9134be79490d2adc5f51db900 authored over 6 years ago by Costin Lupu <[email protected]>
lib/uksched: Updates for inlining with plat/common changes

When creating a new thread, the scheduler allocates the stack, sets the thread
address on the st...

c9a0515f3dd1639df9225c38af48e8866b151b07 authored over 6 years ago by Costin Lupu <[email protected]>
arch/x86_64: Add nop() macro

Signed-off-by: Costin Lupu <[email protected]>
Reviewed-by: Simon Kuenzer <simon.kuenzer@nec...

f6ba13741c72775e07037aafa1963dd87546e526 authored over 6 years ago by Costin Lupu <[email protected]>
lib/ukdebug: Print bottom of stack instead of thread name

The option of printing the thread name of the one
issueing a uk_printd() call did not work all t...

5ba14cb4389c9eb0fa2105184a92c9c193a3686f authored over 6 years ago by Simon Kuenzer <[email protected]>
plat/kvm: Remove prints before console is initialized (x86)

Remove debug print before the console is initialized because
this print is going to the same con...

f85c858b20e27e7d6ebb2a9fb486fc37b1c4d608 authored over 6 years ago by Simon Kuenzer <[email protected]>
plat/kvm: Place early boot code to the start of the image (x86)

Places early boot code (e.g., 64bit mode switch) and
data (e.g., GDT) to the start of the image....

e27ffaa8c25145356f6a9d5f913d9809338d584a authored over 6 years ago by Simon Kuenzer <[email protected]>
build: use -p1 instead of -p0 in patch command

The -p1 is more commonly used. And, what is more important, this is
the way git generates patche...

d35ae74b0b39ccbd36197f22b8ab4a10fb73f814 authored over 6 years ago by Yuri Volchkov <[email protected]>
doc: Reduce pressure in 'selector' choosing instructions

The sentence "cross your fingers that the reviewer(s) do(es) not
complain" sounds a bit too hars...

a5da3c7ab53c8e0b9899ac20fd2c7af6efdc5781 authored over 6 years ago by Yuri Volchkov <[email protected]>
build: Add -no-pie to GCC flags

On Debian distributions (e.g., Debian/Ubuntu), the GCC has the
"-pie" flag enabled by default. I...

cc7eb555080775cf2cb4a595a07b6121ff0f7361 authored over 6 years ago by Wei Chen <[email protected]>
lib/ukboot: Call constructors from initarrays

Call initialization/constructor functions listed in
preinit_array and init_array during early bo...

bdbe4587f5899d1225f55c227d806b6a54d102c7 authored over 6 years ago by Simon Kuenzer <[email protected]>
include: Add ctors.h header for iterating over init arrays

Adds `ctors.h` header that provide helper macros and defintions
for iterating over preinit_array...

651011f943dc80f2d8b5afd2b961b8b1704fa7c5 authored over 6 years ago by Simon Kuenzer <[email protected]>
include/essentials: Provide constructor macros

Provide constructor attribute macros for marking a
function symbol as constructor. The linker/co...

cee3c82026b7a0b64591f8fe1908c947e61a304a authored over 6 years ago by Simon Kuenzer <[email protected]>
plat/kvm: Add preinit_array and init_array sections (x86)

Adds preinit_array and init_array sections with the linker script.
Those sections are populated ...

2562b217ee11dd4e4b92d2cc99a4d95456f3ec7e authored over 6 years ago by Simon Kuenzer <[email protected]>
plat/xen: Add preinit_array and init_array sections (x86, ARM)

Adds preinit_array and init_array sections with the linker script.
Those sections are populated ...

c268d51ed2cc4276df09bf089e9b61f75c2fb979 authored over 6 years ago by Simon Kuenzer <[email protected]>
plat/kvm: Align linker script with Xen platform ones

The linker scripts of Xen and KVM diverged too much. This patch
is aligning KVMs with the ones f...

53a85c758286c3299c9ea5e23281c5d43174461f authored over 6 years ago by Simon Kuenzer <[email protected]>
include/essentials: Provide __used, __section macros

Provide attribute macros for marking symbols as used
and for specifying a target section for a s...

dbef5ced55a743295b2b3a0e87f212a95aa3fb0a authored over 6 years ago by Simon Kuenzer <[email protected]>
build: Use GCC replacements for `ld`, `ar`, and `nm`

Instead of using `ld`, `ar`, and `nm`,
use GCC's replacements.
This opens further optimizations ...

6685166914481c67aa724139998833103a97b673 authored over 6 years ago by Simon Kuenzer <[email protected]>
lib/ukdebug: Separate condition string from format in UK_ASSERT, UK_WARNIF

Whenever a condition expression for UK_ASSERT() and UK_WARNIF()
is not fulfilled, the macros str...

4dfb8975bfc3afaa5746450a7e470b44a08e9fb0 authored over 6 years ago by Simon Kuenzer <[email protected]>
build: Provide LTO as build option

Introduces a build option that enables link time optmizations (LTO).
When enabled, GCC is doing ...

2f2779bb46cb75c2783daf7486eb38952dec3c69 authored over 6 years ago by Simon Kuenzer <[email protected]>
lib/ukalloc: uk_posix_memalign_ifpages: Return zero on success

According to the Linux Programmer's Manual,
posix_memalign() returns zero on success instead
of ...

a323fbd67ac3cb21139633b300a024538167493e authored over 6 years ago by Kenichi Yasukata <[email protected]>
plat/kvm: Fix __packed macro usage in multiboot.h

When using nolibc, multiboot_mmap_entry structure layout was padded
instead of packed because th...

0dba10c0881d36605d33233b6490f3bd1dc527c9 authored over 6 years ago by Costin Lupu <[email protected]>
lib/uksched: Add waiting queue

Waiting queues are used for managing threads that wait for some
condition to become true. The im...

3bf8a296b8ead5fb0a89044d69fb0d0ead49ae01 authored almost 7 years ago by Costin Lupu <[email protected]>
lib/ukdebug: Add thread info to debug messages

Add the name of the thread to the debug messages.
If the name is null or the thread was not crea...

4a55e18d382fed28e569408119320482c9cec419 authored almost 7 years ago by Dafna Hirschfeld <[email protected]>
lib/ukdebug: Add timestamp to debug messages

Add timestamp to the debug messages.
The timestamp is retrieved from the platform's
monotonic cl...

98d3888a020e46fc965a319fa0343bd26174d109 authored almost 7 years ago by Dafna Hirschfeld <[email protected]>
arch/time: Add macro for the subsecond part of nanoseconds

Add macro that retrieve the subsecond part of the
given nanoseconds.

Signed-off-by: Dafna Hirsc...

2c6c1a19bbd86f240a1c3ba5180806f38074bb3a authored almost 7 years ago by Dafna Hirschfeld <[email protected]>
arch/time: Add macros for printing nanoseconds types

Add macros for printing __nsec and __snsec types
withing formatted string.

Signed-off-by: Dafna...

501288aad9da0922f077690df5fdc48879a8322a authored almost 7 years ago by Dafna Hirschfeld <[email protected]>
build: use -MD for generating .d files

We do not need to run compiler second time with the same flags plus
'-MM', and modify destinatio...

80f9769330ac86f1cccf413135c20ab5570ef0ab authored almost 7 years ago by Yuri Volchkov <[email protected]>
build: fix unconditional full recompilation

Files app.uk and elib.uk are regenerated always, but config.h depends
on both of them. And becau...

51c0364c20ec51c32c2b172d64c55ad52bf16939 authored almost 7 years ago by Yuri Volchkov <[email protected]>
doc/developers: Fix typos in directory and file names

Replace 'uc' with 'uk' in a directory and file names.

Signed-off-by: Dafna Hirschfeld <dafna3@g...

0c21879f138c5377032838676848c8d75b407ec3 authored almost 7 years ago by Dafna Hirschfeld <[email protected]>
doc/*: Fix spelling typos

Fix spelling typos found with 'spell' command.

Signed-off-by: Dafna Hirschfeld <[email protected]...

0ed197163afc28dd38624e177721aee73827a4b9 authored almost 7 years ago by Dafna Hirschfeld <[email protected]>
plat/kvm/x86: Prevent removing of variables put into .bss.* sections

When using -fdata-sections option of gcc, global and static variables
are placed into .bss.varna...

f6c13cea7d5f269c840169b2136c0125e84e5074 authored almost 7 years ago by Costin Lupu <[email protected]>
build: Prefix UK_PLAT_ to platform's BASE variables

In order to be inline with the naming of UK_PLAT_BASE
and UK_PLAT_COMMON_BASE, populate platform...

cac0440f6928c254eafe9cb678a64fd779e43787 authored almost 7 years ago by Simon Kuenzer <[email protected]>
plat/*: Expose UK_PLAT_BASE, UK_PLAT_COMMON_BASE variable

Expose UK_PLAT_BASE and UK_PLAT_COMMON_BASE Makefile variable
to simplify code-organization. The...

fda7b1cad9033c769e16ef1e9e318e30628b437f authored almost 7 years ago by Simon Kuenzer <[email protected]>
plat/xen: Console reading support for x86_64

Implements ukplat_cink() for Xen. The code is ported
from Mini-OS. It currently works for x86_64...

62f107bf6e41d48f6baf45fb453274b0ce04de2f authored almost 7 years ago by Simon Kuenzer <[email protected]>
lib/ukalloc: Add assertion to page allocator compatibility wrapper

uk_get_real_start() is used by the compatibility wrapper
to figure out the address of meta infor...

0b27cb097bc2fd64494905b0091f44f518027bb8 authored almost 7 years ago by Simon Kuenzer <[email protected]>
lib/ukalloc: Correct uk_pfree() interface behaviour

As designed, every allocator interface calls a *_do_*()
variant which actually implements the op...

a9a4201d1d49e2ada488d0df8bee982c22617939 authored almost 7 years ago by Simon Kuenzer <[email protected]>
plat/xen: Fix symbol displacement while linking (x86)

The current linker script might not place _libxenplat_start, shared_info or
hypercall_page at lo...

d2f9536b8e15b39897ca3c4e8fa8796954172758 authored almost 7 years ago by Bruno Alvisio <[email protected]>
plat/xen: Fix memory set read-only (x86)

Function _init_mem_set_readonly should skip setting to read-only the
mapped _libxenplat_shared_i...

df4b792c5f69dd39945c82c4369ce07c1230fbc8 authored almost 7 years ago by Bruno Alvisio <[email protected]>
plat/*: Move generic platform configuration to submenu

Move generic platform configuration options to a new
platform configuration submenu called "Plat...

6303facc2dd63823a305bac54e888a573a1c67c1 authored almost 7 years ago by Simon Kuenzer <[email protected]>
plat/*: Add memory region names

Add configuration option that enables a name field in
struct ukplat_memregion_desc (inlucde/uk/p...

f8adb579015c9d1c7deebc417632d7e99c232486 authored almost 7 years ago by Simon Kuenzer <[email protected]>
plat/xen: Include Unikraft config header within console.c

uk/config.h is required for console.c. The option XEN_DBGEMERGENCY
is exposed by it. The config ...

8b94640c82706ad691c03845ff92e8e9bb288288 authored about 7 years ago by Simon Kuenzer <[email protected]>
plat/xen: Do not discard characters on console

Retry sending characters to console ring instead of discarding
them whenever the ring is full (b...

b28fb3f18726c40d6ec5bd43415b7e55240ae80d authored about 7 years ago by Simon Kuenzer <[email protected]>
plat/xen: Add console support for x86_64

Console support is ported from Mini-OS. It currently
works for x86_64 only.

Signed-off-by: Simo...

0bc9633a01380829d53d0796fd8be6b7859b23f7 authored about 7 years ago by Simon Kuenzer <[email protected]>
arch/x86_64: Change CPPFLAGS to CXXFLAGS

C++ flags weren't being properly propagated.

Signed-off-by: Felipe Huici <[email protected]...

40b7ff0aaab379bd0d8aa3acb31fc0f07120bb5c authored about 7 years ago by Felipe Huici <[email protected]>
arch/arm: Change CPPFLAGS to CXXFLAGS

C++ flags weren't being properly propagated.

Signed-off-by: Felipe Huici <[email protected]...

56025fcea3487d8ef94a9280c3b9a3b2f3513f1e authored about 7 years ago by Felipe Huici <[email protected]>
doc/contributing: Reference to MAINTAINERS.md in introduction

Add a reference to the MAINTAINERS.md file in the introduction.

Signed-off-by: Simon Kuenzer <s...

b890a7329ee7aa46a7a713c5c1623e4e3290617e authored about 7 years ago by Simon Kuenzer <[email protected]>
doc/contributing: Add project name as prefix to all patches

As long as Unikraft uses a shared mailing list with mini-os,
all patches should be prefixed with...

73c2ce8f8bc4ca08841ad8baf883733097e4631b authored about 7 years ago by Simon Kuenzer <[email protected]>
build: Protect from building without bootstrapping library

Adds a feature flag called HAVE_BOOTENTRY which should be
set by libraries that provide ukplat_e...

519ad1b79f5af2343a852a6a75a857261ecae75a authored about 7 years ago by Simon Kuenzer <[email protected]>
build: 'Rename global invisible options' to 'feature flags'

Signed-off-by: Simon Kuenzer <[email protected]>

a0c882ab3224225df0bef65c2f3867d53191cfde authored about 7 years ago by Simon Kuenzer <[email protected]>
doc/users: Correct repository URLs

The URLs in the git clone commands were pointing to a wrong location.

Signed-off-by: Simon Kuen...

a97e80880fd6c585d5387a130c34141568142e6c authored about 7 years ago by Simon Kuenzer <[email protected]>
Increase Unikraft version for public release

Signed-off-by: Simon Kuenzer <[email protected]>

de72ede38b91c93807a2f740c33f7ca6712ed1b0 authored about 7 years ago by Simon Kuenzer <[email protected]>
lib/ukschedcoop: Add cooperative round-robin scheduler

Substantial parts of this code come from Mini-OS.

Signed-off-by: Costin Lupu <[email protected]...

1e1a8f5b50dd1a450f6de78d07a068d3b7d006f4 authored about 7 years ago by Simon Kuenzer <[email protected]>
lib/uksched: Add abstraction library for schedulers

Signed-off-by: Costin Lupu <[email protected]>
Signed-off-by: Simon Kuenzer <simon.kuenzer@n...

1353814b3199f6aae2c3d23d40f7ec17d60dea67 authored about 7 years ago by Simon Kuenzer <[email protected]>
lib/ukallocbbuddy: Add binary buddy allocator implementation

Substantial parts of this code come from Mini-OS.

Signed-off-by: Simon Kuenzer <simon.kuenzer@n...

154a9b466b398bbc4b8e899691361db77136955f authored about 7 years ago by Simon Kuenzer <[email protected]>
doc: Add user and developer guides

The guides can be built into various formats with sphinx.

Signed-off-by: Felipe Huici <felipe.h...

d3e7f577f4f5871bafb27f535fbb1fea5543ee88 authored about 7 years ago by Simon Kuenzer <[email protected]>
lib/ukalloc: Add abstraction library for memory allocators

Signed-off-by: Simon Kuenzer <[email protected]>
Signed-off-by: Florian Schmidt <florian.s...

a8cb90f65ad35e8aee7156f73639b2ffb1bf71ac authored about 7 years ago by Simon Kuenzer <[email protected]>
lib/ukdebug: Add printing and debug helpers

Signed-off-by: Simon Kuenzer <[email protected]>
Signed-off-by: Florian Schmidt <florian.s...

347cb7db45f4420bdbcda8a4b566167570b19c72 authored about 7 years ago by Simon Kuenzer <[email protected]>
lib/ukargparse: Add argument parser

Signed-off-by: Simon Kuenzer <[email protected]>

17327dfe617a890aa135fbb538501d88755e6187 authored about 7 years ago by Simon Kuenzer <[email protected]>
lib/ukboot: Add Unikraft bootstrapping

Signed-off-by: Simon Kuenzer <[email protected]>
Signed-off-by: Costin Lupu <costin.lupu@c...

cfa2c08ae79b4a90fc2f8f06b16a6a3b2bbf4f3f authored about 7 years ago by Simon Kuenzer <[email protected]>
plat: Add platform interface

Add header files for platform interface.

Signed-off-by: Simon Kuenzer <[email protected]>...

828efb76ebb235966a52c9c7f7b76ef3bec36ec6 authored about 7 years ago by Simon Kuenzer <[email protected]>
plat/xen: Add Xen (x86_64, ARM) platform code

Substantial parts of this code come from Mini-OS.

Currently, scheduling, memory allocation, and...

3c3dc48b52484b08a8987d4fc20939e98025f9e7 authored about 7 years ago by Simon Kuenzer <[email protected]>
plat/linuxu: Add linux userspace (x86_64, ARM) platform code

Currently, scheduling and interrupts are not implemented.

Signed-off-by: Simon Kuenzer <simon.k...

7c7518d281af8a0e5bb798a11ba1e4a2f9b5a621 authored about 7 years ago by Simon Kuenzer <[email protected]>
lib/fdt: Add flat device tree manipulation library

libfdt is part of the Device Tree Compiler (DTC).
It was ported from https://github.com/dgibson/...

add25f12e7dc0aec3d97ec2b2226f913f1de5903 authored about 7 years ago by Simon Kuenzer <[email protected]>
lib/nolibc: Add nolibc, a minimal subset of libc functions

Parts of this code was ported from Mini-OS.

Signed-off-by: Simon Kuenzer <simon.kuenzer@neclab....

1760d9ef441b6715e44c2747107235a84ac04f19 authored about 7 years ago by Simon Kuenzer <[email protected]>
plat/kvm: Add KVM (x86_64) platform code

Substantial parts of this code come from solo5.

Currently, scheduling and interrupts are not im...

2c910885490225d49325f628b86adf9f798a37df authored about 7 years ago by Simon Kuenzer <[email protected]>
arch/x86_64: Add x86_64 architecture build

Signed-off-by: Simon Kuenzer <[email protected]>

307a36d3589b2253c55c0afe9fa959e2cac9d5a0 authored about 7 years ago by Simon Kuenzer <[email protected]>
build: Add build and configuration framework

Makefile system for building and configuration.

This contains kconfig from buildroot and checkp...

8277edb38e82c8294d6e36ea6c724afedc98d9e5 authored about 7 years ago by Simon Kuenzer <[email protected]>
arch: Add architecture interface

Add header files for architecture interface.

Signed-off-by: Simon Kuenzer <simon.kuenzer@neclab...

eacdeffeaa3e323e43fb4222188fc7c6c47cb7a3 authored about 7 years ago by Simon Kuenzer <[email protected]>
arch/arm: Add ARM architecture code

Signed-off-by: Simon Kuenzer <[email protected]>
Signed-off-by: Florian Schmidt <florian.s...

128897c0778e489434219ae69abb24dfad498ee7 authored about 7 years ago by Simon Kuenzer <[email protected]>
doc: Project operation documentation

Signed-off-by: Simon Kuenzer <[email protected]>
Signed-off-by: Florian Schmidt <florian.s...

60c57a38cd8443d3b69260e99016930f5cb5fcd1 authored about 7 years ago by Simon Kuenzer <[email protected]>
Add gitignore

Signed-off-by: Simon Kuenzer <[email protected]>

93310a2ccd252743408b62869a3c2dbff28ed26d authored about 7 years ago by Simon Kuenzer <[email protected]>
initial commit (empty)

Signed-off-by: Florian Schmidt <[email protected]>

44ab4c9e82078c2272b6ed4ec150879e7db21876 authored about 7 years ago by Florian Schmidt <[email protected]>