Commit Graph

119 Commits

Author SHA1 Message Date
Alexander Boettcher 183a2c1be6 vbox: support more graphic modes
Fixes #1319
2014-12-09 18:21:09 +01:00
Christian Prochaska b4f41aecad vbox: enable 1-byte MMIO writes at 4-/8-byte aligned address
Fixes #1318
2014-12-08 17:39:23 +01:00
Alexander Boettcher 513be78c05 seoul: adapt to nitpicker and use fixed seoul repo
Fixes #1307
2014-12-05 11:01:24 +01:00
Alexander Boettcher 6d391aae10 vbox: support routing serial output to Genode
Fixes #1308
2014-12-01 17:29:17 +01:00
Alexander Boettcher 604b831e1e vbox: update to virtualbox 4.3.16
Fixes #1296
2014-11-28 12:02:40 +01:00
Martin Stein 8f9355b360 thread API & CPU session: accounting of CPU quota
In the init configuration one can configure the donation of CPU time via
'resource' tags that have the attribute 'name' set to "CPU" and the
attribute 'quantum' set to the percentage of CPU quota that init shall
donate. The pattern is the same as when donating RAM quota.

! <start name="test">
!   <resource name="CPU" quantum="75"/>
! </start>

This would cause init to try donating 75% of its CPU quota to the child
"test".  Init and core do not preserve CPU quota for their own
requirements by default as it is done with RAM quota.

The CPU quota that a process owns can be applied through the thread
constructor. The constructor has been enhanced by an argument that
indicates the percentage of the programs CPU quota that shall be granted
to the new thread. So 'Thread(33, "test")' would cause the backing CPU
session to try to grant 33% of the programs CPU quota to the thread
"test". By now, the CPU quota of a thread can't be altered after
construction. Constructing a thread with CPU quota 0 doesn't mean the
thread gets never scheduled but that the thread has no guaranty to receive
CPU time. Such threads have to live with excess CPU time.

Threads that already existed in the official repositories of Genode were
adapted in the way that they receive a quota of 0.

This commit also provides a run test 'cpu_quota' in base-hw (the only
kernel that applies the CPU-quota scheme currently). The test basically
runs three threads with different physical CPU quota. The threads simply
count for 30 seconds each and the test then checks wether the counter
values relate to the CPU-quota distribution.

fix #1275
2014-11-28 12:02:37 +01:00
Alexander Boettcher 4de6d54e50 vmm: tag printf with compiler "printf" attribute
Issue #1296
2014-11-20 17:10:18 +01:00
Sebastian Sumpf 97d117c89d noux: reinitialize Genode::config 2014-11-20 16:39:16 +01:00
Christian Prochaska 2583aa2ab4 tool_chain: update GCC to version 4.7.4
Fixes #1051.
2014-11-20 16:39:16 +01:00
Alexander Boettcher 3babee4e19 vbox: support resetting of a VM
Fixes #1290
2014-11-12 14:47:47 +01:00
Christian Prochaska cb51d67c8d vbox: don't enforce instruction emulation after recall event
Fixes #1284
2014-11-12 14:44:17 +01:00
Christian Prochaska ac47053b2f vbox: set the 'CPUM_CHANGED_GLOBAL_TLB_FLUSH' flag
Fixes #1281
2014-11-12 14:44:16 +01:00
Christian Prochaska d65826a85d vbox: always transfer FPU ownership back to the VM
When the 'Mtd::FPU' flag is set during the registration of a
virtualization event handler, it must also be set whenever the event
handler returns.

Fixes #1283
2014-11-12 14:44:16 +01:00
Christian Prochaska e3fa8c9f22 vbox: save the guest FPU state before 'longjmp()'
'longjmp()' restores the (partial) FPU state saved by 'setjmp()', so it's
necessary to save the guest FPU state before calling 'longjmp()'.

Fixes #1282
2014-11-12 14:44:16 +01:00
Christian Helmuth 351dad80af noux: increase timeout for tool-chain test
This is just a quick fix to calm down the buildbot - a revised
implementation is needed according to issue #1277. Further, the reason
for the increased test duration on several platforms must be
investigated.
2014-10-21 11:05:15 +02:00
Norman Feske a3985f3d04 ports: rpi support in netperf run scripts 2014-10-13 14:53:36 +02:00
Sebastian Sumpf 0b0074d2ff seoul: update pae branch
Fixes #1262
2014-10-10 14:46:14 +02:00
Alexander Boettcher a48efd0a9d seoul: enable -Wall and fix warnings
Issue #1262
2014-10-10 14:46:02 +02:00
Sebastian Sumpf b32b6948c7 seoul: use pae branch of seoul
Fixes #1262
2014-10-10 13:02:31 +02:00
Alexander Boettcher d006185d90 seoul: add script turning Genode scenario into VM
Related to issue #1261
2014-10-10 13:02:31 +02:00
Bernhard Kauer 27d76f77d1 seoul: update branch to using vbios emulators
* use seoul branch containing vbios emulator

* report the memory model in the VBE mode info as otherwise the
  Genode framebuffer driver will ignore this mode

Fixes #1261
2014-10-10 13:02:31 +02:00
Alexander Boettcher 96d9e442f5 vbox: enable auto test for 32bit Genode host
Issue #1246
2014-10-10 13:02:28 +02:00
Alexander Boettcher 8b8c2713ae vfs: use 64bit for file offset and size
Fixes #1246
2014-10-10 13:02:28 +02:00
Christian Helmuth cf5eb9753e ports: fetch openvpn from github 2014-08-28 12:35:56 +02:00
Josef Söntgen 9f886e1d94 ports: add openvpn-2.3.4
The port was succesfully tested a echo test and lighttpd. DHCP over
OpenVPN is not tested and probably will not work out of the box.
Therefore, the ip address etc. need to be specified manually.

For now, only ethernet bridging (using a TAP device) is supported.

Fixes #1235.
2014-08-26 11:00:35 +02:00
Christian Prochaska a06bd8cfe8 GBD: migrate to new ports mechanism
Fixes #1237.
2014-08-22 16:16:40 +02:00
Christian Prochaska 38771dc693 GCC: migrate to new ports mechanism
Fixes #1234.
2014-08-22 16:16:40 +02:00
Christian Prochaska 4973f2a310 Qt5: migrate to new ports mechanism
Fixes #1233.
2014-08-22 16:16:40 +02:00
Norman Feske bfdc4138ba seoul: remove superfluous includes from console
The console included nitpicker_view headers, which were not used. The
headers vanished with the recent nitpicker API change, which broke the
build of seoul.
2014-08-15 10:19:48 +02:00
Norman Feske d3eac95ac5 Adapt run scripts to nitpicker config changes 2014-08-13 12:07:55 +02:00
Norman Feske dc1a08074a qt5: use window manager 2014-08-13 12:07:55 +02:00
Christian Prochaska 72bb821990 Fix 'noux_terminal_fs' test
Fixes #1213.
2014-07-24 10:18:08 +02:00
Norman Feske 0bef86223b debug_nitpicker.run: adapt to libc VFS changes 2014-07-24 10:18:08 +02:00
Norman Feske 6820de51ba gdb_monitor: Support session upgrades
This patch enables the debugging on services that rely on dynamic
session upgrades. For example, nitpicker expects its clients to donate
RAM quota that matches the size of the virtual framebuffer, which might
change during the lifetime of a nitpicker session.
2014-07-24 10:18:08 +02:00
Alexander Boettcher 5d06078d27 x86 vmm: add general multiprocessor support
* repos/ports/include/vmm
 - add support to specify cpu location during vCPU construction
* seoul
 - update to latest seoul branch supporting smp
 - adjust to vmm interface changes
 - vCPUs will be put in a round robin fashion on the available host CPUs,
   beginning with the next CPU after the default (boot) CPU
 - number of vCPUs can be specified in run script
* virtualbox
 - adjust to vmm interface changes
 - uses still one vCPU, placed on default (boot) CPU

Fixes #1212
2014-07-24 10:18:07 +02:00
Christian Prochaska a46de84f89 Fix race condition in page fault notification
When a page fault cannot be resolved, the GDB monitor can get a hint about
which thread faulted by evaluating the thread state object returned by
'Cpu_session::state()'. Unfortunately, with the current implementation,
the signal which informs GDB monitor about the page fault is sent before
the thread state object of the faulted thread has been updated, so it
can happen that the faulted thread cannot be determined immediately
after receiving the signal.

With this commit, the thread state gets updated before the signal is sent.

At least on base-nova it can also happen that the thread state is not
accessible yet after receiving the page fault notification. For this
reason, GDB monitor needs to retry its query until the state is
accessible.

Fixes #1206.
2014-07-24 10:18:07 +02:00
Alexander Boettcher c5380674df vbox: add network support
- support e1000 model by default and add support for pcnet model
- add Genode xml config option to enable network models

Fixes #1201
2014-07-24 10:18:06 +02:00
Alexander Boettcher 46124546f0 vbox: support to disable acpi
Issue #1201
2014-07-24 10:18:06 +02:00
Alexander Boettcher 761f0498a9 vbox: don't run shared folder test on qemu 2014-07-24 10:18:06 +02:00
Alexander Boettcher b8f6abc714 vbox: disable some exits to get TinyCore running 2014-07-09 16:26:06 +02:00
Alexander Boettcher 605a5d7df2 vbox: use priorities in run scripts
By using priorities, we make sure that the timer gets scheduled whenever
it is able to run regardless of how much load is on the system.
2014-07-09 16:26:06 +02:00
Alexander Boettcher 21e9eebf25 vbox: add LPT3 to ioport whitelist 2014-07-09 16:26:06 +02:00
Alexander Boettcher 6f75bb750a vbox: mouse queue quirk 2014-07-09 16:26:05 +02:00
Alexander Boettcher ca9f0ba89c os: extend on_alarm() by unsigned count value
The count value can be used to batch timeouts. I.e., if a periodic
timeout triggered multiple times before the timer had a chance to
process them, the count corresponds to the number of passed periods.
2014-07-09 16:26:05 +02:00
Norman Feske 6de13fd71c Disable config syntax check for tool-chain test 2014-07-09 16:26:04 +02:00
Alexander Boettcher 671e36bc45 vbox: disable ioapic support by default
and add xml configuration option to switch it on if required. Avoids trouble
on Windows 7 guest where IRQ injected by VMMDev PCI device is not delivered.

If ioapic is required and Windows guest addition "hangs", look in file
DevPCI.cpp, function pciSetIrqInternal, variable fIsApicEnabled. If

config[0xde] == 0xbe
config[0xad] == 0xef

it works. "Deadbeaf" seems to/should be set in ACPI file vbox.dsl. Happens for
unknown reason not on Genode/Nova.

Fixes #1188
2014-06-26 12:06:00 +02:00
Alexander Boettcher f0c7eccdc7 vbox: save/restore fpu state of EMT thread
Issue #1188
2014-06-26 12:05:43 +02:00
Alexander Boettcher 149f199735 vbox: rework irq injection code
Issue #1188
2014-06-26 12:05:24 +02:00
Stefan Kalkowski 786fe805da base: introduce caching attributes (fix #1184)
On ARM it's relevant to not only distinguish between ordinary cached memory
and write-combined one, but also having non-cached memory too. To insert the
appropriated page table entries e.g.: in the base-hw kernel, we need to preserve
the information about the kind of memory from allocation until the pager
resolves a page fault. Therefore, this commit introduces a new Cache_attribute
type, and replaces the write_combined boolean with the new type where necessary.
2014-06-26 10:57:26 +02:00
Alexander Boettcher 963551877f netperf: wait for output of all spawned processes 2014-06-26 10:57:25 +02:00
Alexander Boettcher 3a8bf754e1 vbox: workaround for bug in Windows guest addition
In file

src/VBox/Additions/WINNT/SharedFolders/driver/file.c

the function

static int vbsfTransferCommon(VBSFTRANSFERCTX *pCtx)

in the

VbglR0CanUsePhysPageList()

branch does not correctly evaluate the read or written bytes from
the VMM. It ever assumes that whole pages are read/written.

Workaround the bug in the Windows guest additions of Vbox until fixed
upstream by filling up the read/write buffer completely within the VMM code
of Vbox.

Fixes #1176
2014-06-26 10:57:24 +02:00
Alexander Boettcher 5922617eab vbox: add test for shared folders
Issue #1176
2014-06-26 10:57:24 +02:00
Norman Feske 6d3a41a95c tool: Sort patches when generating port hashes
Issue #1082
2014-06-02 11:31:50 +02:00
Alexander Boettcher f2d38443f7 vbox: fix share-folder setup 2014-05-28 14:57:05 +02:00
Christian Helmuth a42a5995cf vbox: enable guest additions
Fixes #1157
2014-05-27 13:45:58 +02:00
Alexander Boettcher 4673eb9578 vbox: update to 4.2.24 2014-05-27 13:45:58 +02:00
Alexander Boettcher 2c61392237 vmm utils: cpu-session parameter for VMM thread
Issue #1157
2014-05-27 13:45:36 +02:00
Alexander Boettcher 8ef8e8ede9 rtc: document current interface
Issue #1148
2014-05-27 13:45:20 +02:00
Norman Feske 615830e107 Enable hash checks for ports mechanism 2014-05-27 13:45:03 +02:00
Christian Prochaska db89c85954 Qt5: ARM-related improvements
- fix compile errors when building for ARM
- use the correct device drivers in Qt run scripts

Fixes #1154.
2014-05-27 11:14:45 +02:00
Christian Prochaska 15e231d733 noux_gdb: adapt to libc VFS
Fixes #1150.
2014-05-27 11:14:44 +02:00
Norman Feske 6adbb9e438 ports: migrate to new ports mechanism
Issue #1082
2014-05-27 11:14:43 +02:00
Norman Feske 85a2ebc1c4 libports: migrate to new ports mechanism
Issue #1082
2014-05-27 11:14:42 +02:00
Christian Prochaska f1aa137c9d tool_chain: fix GDB build with makeinfo 5
Issue #1051.
2014-05-14 16:08:01 +02:00
Christian Prochaska 776d7f947f tool_chain: fix GCC build with makeinfo 5
Issue #1051.
2014-05-14 16:08:01 +02:00
Christian Prochaska d4bf55a308 tool_chain: use real patches
Issue #1051.
2014-05-14 16:08:00 +02:00
Sebastian Sumpf 99245aceb2 noux: Disable makeinfo for coreutils
Issue #1051
2014-05-14 16:08:00 +02:00
Norman Feske b2f78cc475 Unify 'make prepare' between libports and ports 2014-05-14 16:08:00 +02:00
Norman Feske ca971bbfd8 Move repositories to 'repos/' subdirectory
This patch changes the top-level directory layout as a preparatory
step for improving the tools for managing 3rd-party source codes.
The rationale is described in the issue referenced below.

Issue #1082
2014-05-14 16:08:00 +02:00