Commit Graph

9104 Commits

Author SHA1 Message Date
Norman Feske
7c0ece225a Remove noux from Vim example scenario
Issue #3696
2020-03-17 15:19:01 +01:00
Norman Feske
82bf754341 Remove noux from tool-chain test
Issue #3696
2020-03-17 12:34:57 +01:00
Norman Feske
8d8cb4d183 ports/make: avoid aliasing with libc symbols
This patch prefixes a few symbols in the make binary that are offered by
both the libc and the make binary. The clash of symbol names produces
confusing runtime linkage otherwise. This becomes a problem during
fork/evecve.
2020-03-17 12:34:57 +01:00
Norman Feske
2e24b2775f tool/check_abi: prevent use of temporary files
Issue #3696
2020-03-17 12:34:13 +01:00
Norman Feske
ab7b285896 libc: allocate errno of main thread statically
The thread-local errno instance for the main thread must not be
allocated on the application heap because it must survive 'execve'.

Fixes #3701
2020-03-17 12:34:13 +01:00
Norman Feske
fdce4f06ad libc: prune session labels of forked processes
This patch reduces the size of session labels for all services other
than LOG, keeping only the last element. This avoids exceeding the
maximum label length in the presence of deep fork hierarchies, e.g., for
running the tool chain.

Fixes #3700
2020-03-17 12:34:13 +01:00
Christian Helmuth
22d902d9c2 libc: propagate socket config to child processes
Fixes #3698
2020-03-16 14:30:04 +01:00
Norman Feske
877a8ef80b vfs/pipe: trigger I/O-progress handler on EOF
When the last writer closes the pipe, we must trigger the I/O progress
handler to deliver the final EOF to the client (READ_OK with out count
of 0).

Fixes #3697
2020-03-13 19:57:56 +01:00
Norman Feske
8e6fcf107e Remove noux from SSH exec terminal
This patch replaces the former Noux instance by a sub init that hosts
the combination of VFS + fs_rom + bash. If bash exits, the whole sub
init exits, which implicitly tears down the terminal session used by the
sub init. The latter is expected by the test sequence.

Issue #3696
2020-03-13 19:46:51 +01:00
Norman Feske
11fb122ae5 Remove noux from ssh_terminal.run
Issue #3696
2020-03-13 19:46:51 +01:00
Norman Feske
c748136fb3 Remove noux_vfs_audit.run
This run script was merely a development vehicle.

Issue #3696
2020-03-13 19:46:51 +01:00
Norman Feske
cb13cc1ea2 Remove noux from fs_query.run
Issue #3696
2020-03-13 19:46:51 +01:00
Norman Feske
2079c40d3f Remove noux from vfs_import.run
Issue #3696
2020-03-13 19:46:51 +01:00
Norman Feske
60290fb301 Remove noux and cpu_sampler_noux from autopilot
Issue #3696
2020-03-13 19:46:51 +01:00
Norman Feske
bad088af11 os/vfs.h: fix possible nullptr dereference
Fixes #3694
2020-03-13 19:40:29 +01:00
Norman Feske
27c10e0d5a vfs/tar: return inode numbers of null records
The tar vfs plugin returns an inode value of zero and a type directory
for null records, which wrongly triggers the file-system loop detection
of the find utility. This patch returns the node pointer as inode value
instead, which is a unique value.

Fixes #3695
2020-03-13 19:40:28 +01:00
Norman Feske
2275f0b399 Add fork test to depot autopilot 2020-03-13 19:40:04 +01:00
Norman Feske
03f5126c4d Add execve test to depot autopilot 2020-03-13 19:40:04 +01:00
Martin Stein
672cb57cc2 ping_nic_router.run: test dhcp renew
Ref #3681
2020-03-12 14:36:44 +01:00
Norman Feske
cfeb9c027a vfs: distinguish NO_PERM from NO_ENTRY in unlink
This patch changes the 'Single_file_system' to return NO_PERM only if
the to-be-unlinked file corresponds to the single file. This way, a
<rom> co-mounted with a <ram> file-system does not stand in the way of
unlinking files from the <ram>. The concrete symptom occurred the
following scenario:

  <vfs>
    <dir name="home">
      <ram/>
      <rom name="..."/>
    </dir>
  </vfs>

The following sequence of commands wrongly resulted in "Operation not
permitted":

 $ mkdir -p /home/a/b/c
 $ rm -f /home/a/b/c/d

In this case, rm should not fail (unlink should return ENOENT)

Fixes #3690
2020-03-11 16:07:17 +01:00
Martin Stein
0313e0104c nic_router: keep dyn IP when updating domain obj
When updating the domain object of interfaces that stay with the same domain
during a reconfiguration, until now, the normal "detach raw" function was used.
This caused the old domain object to discard a dynamic IP config as all
interfaces detached. This caused interfaces also to discard network links
established with the old configuration although it wasn't necessary. Thus, now
we use a dedicated "detach" in case that an interface actually stays with its
domain. This new "detach" doesn't decrease the interface counter of the domain,
so, it'll not discard its dynamic IP config. If, however, during a
reconfiguration, there's no interface calling this function (all interfaces
move to another or no domain), the dynamic IP config is still discarded as
expected.

Fixes #3686
2020-03-11 15:44:16 +01:00
Martin Stein
7bf74b4aac nic_stress: further reduce nr of rounds on sel4
Otherwise, the limit of caps in Capability_space_sel4 in the NIC router is
reached.

Fixes #3684
2020-03-11 15:44:08 +01:00
Martin Stein
4244aba6cb nic_router: don't call DHCP client on requests
Until now, the DHCP client was called also for DHCP requests when an interface
had a domain but yet no IP config. Now, an interface distinguishes between DHCP
requests and replies first and then accordingly calls the DHCP server or the
DHCP client if they're available. This also prevents that the DHCP client has
to handle packet headers other than that of DHCP.

Fixes #3681
2020-03-11 15:44:03 +01:00
Martin Stein
a68f3b05aa nic_router: fix lifetime of DHCP clients
Let the DHCP client be a constructible member of Interface that is constructed
only as long as the interface is attached to a domain with a dynamic IP config.
This prevents DHCP client timeouts from a period with dynamic IP config to
trigger after a reconfiguration to a static IP config. Furthermore, handle
DHCP-reply packets at an interface only when the DHCP client its constructed.
Otherwise drop such packets.

Ref #3681
2020-03-11 15:43:57 +01:00
Stefan Kalkowski
f842c92ee1 hw: correct the ARM cache maintainance operations
This commit fixes the following issues regarding cache maintainance
under ARM:

* read out I-, and D-cache line size at runtime and use the correct one
* remove 'update_data_region' call from unprivileged syscalls
* rename 'update_instr_region' syscall to 'cache_coherent_region' to
  reflect what it doing, namely make I-, and D-cache coherent
* restrict 'cache_coherent_region' syscall to one page at a time
* lookup the region given in a 'cache_coherent_region' syscall in the
  page-table of the PD to prevent machine exceptions in the kernel
* only clean D-cache lines, do not invalidate them when pages where
  added on Cortex-A8 and ARMv6 (MMU sees phys. memory here)
* remove unused code relicts of cache maintainance

In addition it introduces per architecture memory clearance functions
used by core, when preparing new dataspaces. Thereby, it optimizes:

* on ARMv7 using per-word assignments
* on ARMv8 using cacheline zeroing
* on x86_64 using 'rept stosq' assembler instruction

Fix #3685
2020-03-11 15:43:02 +01:00
Stefan Kalkowski
f954ab6304 depot_autopilot: re-enable test-fs_packet on rpi
Fixes #3249
2020-03-11 15:37:19 +01:00
Alexander Boettcher
6d2e8a562a nova: remove specific stack area location
and use instead the generic one of base

Fixes #3654
2020-03-11 15:35:54 +01:00
Sebastian Sumpf
e97524ba7d usb_block: switch to Request_stream API
- remove old 'Driver' interface
- implement Request stream front end
- fix some namespacing

issue #3661
2020-03-11 15:35:48 +01:00
Josef Söntgen
96c93dae49 vfs: implement 'sync' in Block VFS plugin
Fixes #3659.
2020-03-11 15:35:42 +01:00
Sebastian Sumpf
a7c408e41e block_tester: add 'sync' command to replay
issue #3636
2020-03-11 15:35:38 +01:00
Sebastian Sumpf
9fa91df4c4 ahci: add sync operation support
- implemement 'flush cache ext' for ATA
- enable sync operation for request stream

issue #3636
2020-03-11 15:35:36 +01:00
Alexander Boettcher
4da72c24e5 hw/x86: use PAT for write combining support
Fixes #3623
2020-03-11 15:35:27 +01:00
Alexander Boettcher
631f4d7621 hw/x86: add cpuid register macro
Issue #3623
2020-03-11 15:35:25 +01:00
Alexander Boettcher
d7622b1a46 hw/x86: implement wrmsr in macro
Issue #3623
2020-03-11 15:35:23 +01:00
Christian Helmuth
465b2e0a93 rtc: system_rtc pkg for PC and Linux
This depot package is the runtime for rtc_drv and system_rtc server with
coordinated update of system and hardware RTC via reports. It replaces
drivers_rtc which was never freestanding drivers package and, therefore,
has to be accompanied with a running platform_drv etc.

Fixes #3680
2020-03-11 15:31:44 +01:00
Christian Helmuth
1dc453768f rtc: use depot archives in test
Issue #3680
2020-03-11 15:30:33 +01:00
Christian Helmuth
19b9483372 rtc: recipe for linux_rtc_drv
Issue #3680
2020-03-11 15:30:23 +01:00
Sebastian Sumpf
c65495749f os: adjust tests to changed output of block client
issue #3671
2020-03-11 15:29:10 +01:00
Sebastian Sumpf
8590a0d99c os: expand block_tester.run
- use two disks with two partitions each
- one disk uses MBR and one GPT
- connect one 'part_block' to each disk
- run 'block_tester' and 'test-block-client' connecting to one partiion
  on each disk
- x86 uses 'ahci_drv' as disk back-end, Linux 'lx_block'
- on autopilot enable for Qemu only

issue #3671
2020-03-11 15:29:08 +01:00
Christian Prochaska
04b667c45e qt5: handle Genode signals as Qt signals in QPA plugin
Fixes #3688
2020-03-11 15:26:03 +01:00
Johannes Schlatow
e5b5559206 Qt5 tool chain: always build without zstd
Fixes #3687
2020-03-11 15:24:50 +01:00
Johannes Schlatow
c2e63c41e4 Backport changeset 82268 from virtualbox
Fixes #3689
2020-03-11 15:23:27 +01:00
Christian Helmuth
b0ad3633e9 Update URLs in LICENSE
The official AGPLv3 text from https://www.gnu.org/licenses/agpl-3.0.txt
now uses https:// consistently.
2020-03-11 11:28:13 +01:00
Christian Helmuth
5929f6300c fixup "Remove SVN build dependency from libc port" (port hash) 2020-03-10 15:51:42 +01:00
Norman Feske
8049341ff2 lx_hybrid_errno.run: add missing parent services 2020-03-10 12:32:02 +01:00
Alexander Boettcher
b4280f134c nova: avoid dying thread in platform.run
Avoids timely interference by dying thread.

Fixes #3670
2020-03-10 11:51:54 +01:00
Christian Helmuth
b03b3b7f80 Only rewind next-free pointer in Bit_allocator
Formerly, _next was always updated to the last free'd allocation, which
left large gaps on alloc/free bursts. Now, we try keep allocation
density high from the start of the array and ensure that allocations
happen at the lowest available index in the bit array.

Fixes #3679
2020-03-10 11:49:59 +01:00
Piotr Tworek
dfae4a2931 libc: Expose timespec_get symbol.
The function is exposed in libc headers provided by Genode, the code for
the function is being compiled and actually works, but the symbol is
missing from the symbols file resulting in linking failures. Add it to
the libc symbols file.

Fixes #3676
Fixes #3677
2020-03-10 11:47:33 +01:00
2267e83fc9 Remove SVN build dependency from libc port
Fixes #3678
2020-03-10 11:45:11 +01:00
Norman Feske
4779e1e7d8 sculpt: version 20.03
This patch increases the Sculpt version to avoid the risk of binary
compatibility clashes with index files published for the just-released
Sculpt 20.02 version.
2020-03-10 11:41:07 +01:00