Commit Graph

1753 Commits

Author SHA1 Message Date
Christian Prochaska
68ba648897 libdrm/lima: fix double file descriptor close
Fixes #4703
2023-01-24 12:07:29 +01:00
Christian Prochaska
16ce6b7acc mesa/lima: don't call 'close()' for non-libc fd
Fixes #4702
2023-01-24 12:07:29 +01:00
Christian Helmuth
41d0c89a52 libc: remove misleading SNDCTL_DSP_RESET error message
Fixes #4676
2023-01-24 12:07:29 +01:00
Josef Söntgen
8384d7b5ed run/acpica: fix devices report route
Issue #4679.
2023-01-24 12:07:29 +01:00
Norman Feske
0ebb572f48 pkg/test-libc_connect_lwip: increase server RAM 2023-01-24 12:07:28 +01:00
Norman Feske
ff2176a586 vfs,libc: support write fds in select
By adding a 'write_ready' interface following the lines of the existing
'read_ready', VFS plugins become able to propagate the (de-)saturation
of I/O buffers to the VFS user. This information is important when using
a non-blocking file descriptor for writing into a TCP socket. Once the
application observes EAGAIN, it expects a subsequent 'select' call to
return as soon as new I/O buffer space becomes available.

Before this patch, the select call would always return under this
condition, causing an unnecessarily busy write loop.

Issue #4697
2023-01-24 12:07:28 +01:00
Norman Feske
5ad98f2b7c vfs,libc: introduce Vfs::Env::User interface
The new interface is meant to replace the 'Vfs::Io_response_handler'.
In contrast to the 'Io_response_handler', which had to be called
on a 'Vfs_handle', the new interface does not require any specific
'Vfs_handle'. It is merely meant to prompt the VFS user (like the libc)
to re-attempt stalled I/O operations but it does not provide any
immediate hint, about which of the handles have become ready for
reading/writing.

Issue #4697
2023-01-24 12:07:28 +01:00
Norman Feske
cf87b0fadb vfs: simplify File_io_service::write return values
This patch removes the 'Insufficient_buffer' exception by returning the
WRITE_ERR_WOULD_BLOCK result value instead. It also eliminates the
superfluous WRITE_ERR_AGAIN and WRITE_ERR_INTERRUPT codes.

Issue #4697
2023-01-24 12:07:28 +01:00
Norman Feske
d9f5dda322 lwip: increase TCP send buffer 32->80 packets
Issue #4697
2023-01-24 12:07:28 +01:00
Norman Feske
0584ac195c curl: increase maximum write-buffer size
The original size of 16K impedes the batched processing of network
packets. Changing the value to 256K reduces the number of context
switches when downloading large files and thereby improves the
throughput by more than 25% (base-hw on qemu_x86_64, using fetchurl
to download a file of 100 MiB via the NIC router from lighttpd).

Issue #4697
2023-01-24 12:07:28 +01:00
Norman Feske
8a9974b6f9 vfs/lwip: deferred wakeup of NIC server
This patch fosters the batching of network packets transferred by the
lwIP stack over the NIC connection. It replaces the eager submission of
the packet-stream's data-flow signals by explicit wakeup notifications.

The commit also increases the NIC session's buffer size from 128 to 1024
packets.

Issue #4697
2023-01-24 12:07:28 +01:00
Norman Feske
60175631df vfs/lwip: remove obsolete mutexes
Issue #4697
2023-01-24 12:07:28 +01:00
Norman Feske
fcf5fcd58c libports: remove stand-alone variant of lwIP
Since the lwip library is used only by the vfs_lwip plugin, this patch
moves the Genode-specific support code local to the VFS plugin, easing
further simplification and allowing for a tighter integration with the
VFS plugin.

The recipes for api/lwip and src/vfs_lwip stay separate as both parts
use different licenses.

Issue #4697
2023-01-24 12:07:28 +01:00
Norman Feske
7d8d4f4532 vfs,libc: deferred wakeup of remote peers
This patch facilitates the batching of I/O operations in the VFS library
by replacing the implicit wakeup of remote peer (via the traditional
packet-stream interface like 'submit_packet') by explicit wakeup
signalling.

The wakeup signalling is triggered not before the VFS user settles down.
E.g., for libc-based applications, this is the case if the libc goes
idle, waiting for external I/O.
In the case of a busy writer to a non-blocking file descriptor or socket
(e.g., lighttpd), the remote peers are woken up once a write operation
yields an out-count of 0.

The deferring of wakeup signals is accommodated by the new 'Remote_io'
mechanism (vfs/remote_io.h) that is designated to be used by all VFS
plugins that interact with asynchronous Genode services for I/O.

Issue #4697
2023-01-24 12:07:27 +01:00
Norman Feske
9421a449ab test/libc_many_writes for examining write batching
This test reveals the patters of the batching of consecutive write
operations on a file-system session. It issues 100 writes of one byte
each, which should ideally result in large batches of operations
submitted to the file-system session at once.

The run script performs the write operations through a chain of two VFS
servers, thereby exercising the write batching of both the libc and the
intermediate VFS server.

Issue #4697
2023-01-24 12:07:27 +01:00
Christian Helmuth
b033b30f95 depot: update recipe hashes 2022-11-29 12:32:49 +01:00
Christian Prochaska
331a2e39eb qt5: reduce warning messages from QPA plugin
Fixes #4692
2022-11-29 12:29:57 +01:00
Josef Söntgen
15f75216c7 libdrm/lima: serialize poll and ioctl with mutex
There is at least one client that performs DRM calls from multiple
pthreads, which is not supported for now. We guard the concurrent
access by grabbing a pthread_mutex before each operation.
2022-11-29 12:29:57 +01:00
Christian Prochaska
f4b06be24b fetchurl: handle leading '/' in '_process_fetch()'
Fixes #4691
2022-11-29 12:29:57 +01:00
Christian Prochaska
ffb48ed030 extract: handle leading '/' in 'create_directories()'
Fixes #4690
2022-11-29 12:29:57 +01:00
Christian Helmuth
424ed1b79a libc: remove Reconstructible / use local_submit in kernel 2022-11-29 12:29:57 +01:00
Christian Prochaska
866df56131 libc: handle empty path string in file I/O functions
Fixes #4689
2022-11-29 12:29:57 +01:00
Christian Prochaska
5d62429164 libc: check path pointer in 'symlink' and 'unlink'
Fixes #4688
2022-11-29 12:29:57 +01:00
Stefan Kalkowski
f6825eea5f pci_decode: increase default ram quota
To circumvent problems of the page-table entries getting short on sel4,
increase the RAM quota for this component in all run-scripts.

Fix #4686
2022-11-29 12:29:57 +01:00
Stefan Kalkowski
10aa5ebf03 pci_decode: report devices from ACPI info
Although we do not have the full ACPI information parsed yet, to
announce non-PCI devices derived from the ACPI tables, the device
description of the assumed devices is now integral-part of pci_decode.
Formerly, the information was gained separatedly as boot-module, whereby
we lost synchronization in between ACPI/PCI parsing, BIOS handover, and
PS/2 emulation code already acting.
2022-11-29 12:29:57 +01:00
Stefan Kalkowski
c9efcfab17 sntp_dummy_rtc: add depot package recipe
This recipe combines the dummy_rtc_drv, which consumes a given time,
and provides the "Rtc" service to its clients with the simple NTP client,
which provides the current time to the RTC driver in regular intervals.

Ref genodelabs/genode#4687
2022-11-29 12:29:57 +01:00
Stefan Kalkowski
7cb19ee2b3 sntp_client: add depot src recipe
Ref genodelabs/genode#4687
2022-11-29 12:29:57 +01:00
Stefan Kalkowski
08378dd148 libports: remove platform_drv.inc from run-scripts
Ref genodelabs/genode#4671
2022-11-29 12:29:56 +01:00
Alexander Boettcher
224b766eb1 add acpi suspend test scenario
Test to trigger periodically ACPI suspend and resume and periodically
trying to restart graphic driver.

Tested successfully with X201 and T420.

Issue #4669
2022-11-29 12:29:56 +01:00
Alexander Boettcher
dee178aae5 acpica: execute suspend&resume ACPI methods
on 'system' ROM state changes.

Issue #4669
2022-11-18 14:46:04 +01:00
Alexander Boettcher
58ff53ec52 acpica: report S0-S5 sleep state support
Issue #4669
2022-11-18 14:46:04 +01:00
Roman Iten
da60200377 libports: use GitHub mirror for fatfs
It looks like http://www.elm-chan.org is blocking certain IP ranges,
because downloading the source archive on certain machines fails with
"403 Forbidden".

Fixes genodelabs/genode#4623
2022-11-17 15:35:58 +01:00
Christian Helmuth
c58d799f16 depot: update recipe hashes 2022-11-17 08:00:37 +01:00
Johannes Schlatow
f5ab6ea7ae libports: update expat to 2.5.0
Fixes #4662
2022-11-17 08:00:37 +01:00
Christian Prochaska
d323072bb6 libc: build 'libc-string' library with -O3
Fixes #4658
2022-11-17 08:00:37 +01:00
Sebastian Sumpf
0b569ed8c7 mesa/iris: remove binder patch
There is one binder with one memory zone per OpenGL context. The patch was
needed before because Genode didn't have proper context support (separate page
tables) leading to binders from one or more context being allocated to the same
GPU address with the same page tables. This was clearly an error and is fixed
with context support.

issue #4664
2022-11-17 08:00:36 +01:00
Sebastian Sumpf
c0367fc30e libdrm/iris: synchronization
The Morph browser seems to access libdrm multi-threaded. Put this into a
separate commit in order to revert it easily.

issue #4664
2022-11-17 08:00:36 +01:00
Sebastian Sumpf
25c1cdec95 libdrm/iris: GEN12+
* timestamp fequency
* topology

issue #4664
2022-11-17 08:00:36 +01:00
Stefan Kalkowski
03a142174f os: add dummy RTC driver package 2022-11-17 08:00:36 +01:00
Josef Söntgen
e507f1438a libports: add mesa_gpu-lima recipe
Similar to the others 'mesa_gpu' pkgs add one for 'lima'.
2022-11-17 08:00:36 +01:00
Christian Helmuth
49b07f898e qemu-usb: remove diagnostic error message 2022-11-17 08:00:36 +01:00
Stefan Kalkowski
3082950e74 usb_session: align USB packet allocation correctly
To prevent caching side-effects of USB DMA memory taken from the packet stream
all allocations of USB packets need to be on separated cachelines at least.

Fix genodelabs/genode#4655
2022-11-17 08:00:35 +01:00
Christian Prochaska
cd8538da9a qt5: apply pull request, change screen pixel format to RGB32
Fixes #4657
2022-11-17 08:00:35 +01:00
Christian Helmuth
a670c2a674 Download expat from GitHub
The tar.gz archive of version 2.4.9 vanished from sourceforge. As the
project moves to GitHub currently and the archive of 2.4.9 is still
available there, just update the download location.

Content and hashes did not change.
2022-11-17 08:00:35 +01:00
Christian Helmuth
9c136f66d4 ieee754: adjust RAM quota to sel4 2022-11-17 08:00:34 +01:00
Johannes Schlatow
5e4e634625 libs: use select_from_ports in eager assignments
If `select_from_ports` is evaluated lazily, we might miss a port during
the dependency check. A way to prevent this is to use the `:=` operator.

Fixes genodelabs/genode#4618
2022-11-17 08:00:34 +01:00
Alexander Boettcher
00ac4afb9f acpica: make battery report working for thinkpads
tested on T460p, X201, T470p

by periodically checking and reporting.

Issue #4631
2022-11-17 08:00:33 +01:00
Christian Helmuth
9079a083d2 depot: update recipe hashes 2022-10-13 12:35:27 +02:00
Christian Helmuth
847266d027 depot: update recipe hashes 2022-10-12 14:31:50 +02:00
Sebastian Sumpf
ac9ca67861 acpica: Increase RAM quota
Increase RAM quota to 6MB.

issue #4631
2022-10-12 12:09:37 +02:00