alex-ab / nova Goto Github PK
View Code? Open in Web Editor NEWThis project forked from udosteinberg/nova
NOVA Microhypervisor
Home Page: http://hypervisor.org
License: Other
This project forked from udosteinberg/nova
NOVA Microhypervisor
Home Page: http://hypervisor.org
License: Other
When tracing kernel IDLE times in Genode, I discovered the initial values of EC/SC times for idle are bogus. Some investigation led me to the moment, when IA32_TSC is reset on bootstrap. It seems Sc
as well as Ec
for kernel idle are constructed earlier and cache TSC values in the tsc
member. When the clock is turned back these values are well in the future, which breaks calculations in kernel and also in Genode. For example, trace_logger reports 0 and 1 are in most cases useless.
Commit 3e66916 fixes this issue.
The nova build fails with gcc 6 with the following error message:
gcc-6 -I../include -MP -MMD -pipe -m32 -march=i686 -mpreferred-stack-boundary=2 -mregparm=3 -Os -fdata-sections -ffunction-sections -fomit-frame-pointer -freg-struct-return -freorder-blocks -funit-at-a-time -fno-asynchronous-unwind-tables -fno-exceptions -fno-rtti -fno-stack-protector -fvisibility-inlines-hidden -fdiagnostics-color=auto -std=gnu++11 -Wall -Wextra -Waggregate-return -Wcast-align -Wcast-qual -Wconversion -Wdisabled-optimization -Wformat=2 -Wmissing-format-attribute -Wmissing-noreturn -Wpacked -Wpointer-arith -Wredundant-decls -Wshadow -Wwrite-strings -Wabi -Wctor-dtor-privacy -Wno-non-virtual-dtor -Wold-style-cast -Woverloaded-virtual -Wsign-promo -Wframe-larger-than=64 -Wlogical-op -Wstrict-null-sentinel -Wstrict-overflow=5 -Wvolatile-register-var -Wzero-as-null-pointer-constant -c ../src/acpi.cpp -o acpi-x86_32.o
In file included from ../src/acpi.cpp:28:0:
../include/acpi_rsdt.hpp:45:26: error: flexible array member in union
uint32 rsdt[];
^
../include/acpi_rsdt.hpp:46:26: error: flexible array member in union
uint64 xsdt[];
^
In file included from ../include/mdb.hpp:24:0,
from ../include/space.hpp:25,
from ../include/space_mem.hpp:29,
from ../include/pd.hpp:25,
from ../src/acpi.cpp:36:
../include/rcu.hpp: In member function 'bool Rcu_list::enqueue(Rcu_elem*)':
../include/rcu.hpp:67:69: warning: zero as null pointer constant [-Wzero-as-null-pointer-constant]
Rcu_elem * const unused = reinterpret_cast<Rcu_elem *>(0);
^
Makefile:104: recipe for target 'acpi-x86_32.o' failed
make: *** [acpi-x86_32.o] Error 1
I looked into it but there doesn't seem to be a simple and clean fix (at least none I could have easily fixed without understanding the code).
When the ioapic already consumes 120 gsi's, there are only a view left for MSIs. Also, a collision of MSI and GSI location is not reflected to user space.
As far as I can tell NOVA cannot remap the root ELF into the root EC if some sections have an ELF region that is small than their logical size in memory. This is sometimes the case when I build and link a Genode core image using Clang.
Line 279 in 792d131
Is it reasonable to make copies of these sections where they cannot be directly delegated, or does this need to be fixed during linking the root image?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.