genode/repos/os/run
Josef Söntgen 150d143755 os: use Request_stream API in NVMe driver
As a result of the API change the memory handling could be simplified.
Since the Block session dataspace is now directly used for DMA, we
actually only have to provide the memory for setting up PRP lists for
large requests (for the moment more than 8 KiB of data).

As we limit the maximum data transfer length to 2 MiB, we get by with
just a page per request. Those memory is allocated beforehand for the
maximum number of I/O requests, which got bumbed to 512 entries. Since
not all NVMe controllers support such large a maximum data transfer
length and this many entries, especially older ones, the values are
capped according to the properties of the controller during
initialization. (The memory demands of the component are around 3 MiB
due to setting up for the common case, even if a particular controller
is only able to make use of less.)

(Although there are controllers whose maximum memory page size is more
than 4K, the driver is hardcoded to solely use 4K pages.)

In addition to those changes, the driver now supports the 'SYNC' and
'TRIM' operations of the Block session by using the NVMe 'FLUSH' and
'WRITE_ZEROS' commands.

Fixes #3702.
2020-04-17 12:39:32 +02:00
..
ahci_bench.run os: name ahci_drv unambigously (ref #2190) 2019-05-16 13:11:01 +02:00
ahci_block.run os: adjust tests to changed output of block client 2020-03-26 11:38:54 +01:00
audio_out_click.run Move timer from os to base repository 2019-01-14 12:33:57 +01:00
block_request_stream.run block_tester: update to new block-client API 2019-05-06 16:15:25 +02:00
block_tester.run os: expand block_tester.run 2020-03-26 11:38:54 +01:00
bomb.run Move timer from os to base repository 2019-01-14 12:33:57 +01:00
cache.run Simple cache performance test 2019-05-16 13:11:00 +02:00
cpu_bench.run cpu_bench: fixes to make it work reliably 2019-08-13 12:02:03 +02:00
cpu_quota.run Move timer from os to base repository 2019-01-14 12:33:57 +01:00
demo.run demo: support more platforms in test / drivers RAM 2019-05-16 13:11:02 +02:00
fb_bench.run os: increase RAM quota for drivers in fb_bench.run 2020-02-04 15:59:33 +01:00
framebuffer.run run: use drivers_interactive-* pkg where possible 2019-05-16 13:11:01 +02:00
gpio_led.run os: name gpio_drv unambigously (ref #2190) 2019-05-16 12:52:59 +02:00
gpio_signal.run os: name gpio_drv unambigously (ref #2190) 2019-05-16 12:52:59 +02:00
init_smp.run Move timer from os to base repository 2019-01-14 12:33:57 +01:00
input_filter.run input_filter: dead-key sequence support 2019-08-28 14:22:32 +02:00
input.run Move timer from os to base repository 2019-01-14 12:33:57 +01:00
kdb_uart_drv.run Move timer from os to base repository 2019-01-14 12:33:57 +01:00
loader.run run: use drivers_interactive-* pkg where possible 2019-05-16 13:11:01 +02:00
log_core.run nova: early message on successful boot 2020-04-17 12:39:31 +02:00
mixer.run Move timer from os to base repository 2019-01-14 12:33:57 +01:00
nic_bridge_stress.run nic_router/nic_bridge: free MAC addresses 2019-04-01 19:33:48 +02:00
nic_dump.run run: enable 'imx7d_sabre' in network tests 2019-07-09 08:58:38 +02:00
nic_router_flood.run nic_router: do DHCP when re-config to dynamic IP 2019-11-19 14:42:22 +01:00
nic_router_stress.run nic_router/nic_bridge: free MAC addresses 2019-04-01 19:33:48 +02:00
nic_stress.inc nic_stress: further reduce nr of rounds on sel4 2020-03-26 11:38:55 +01:00
nvme.run os: use Request_stream API in NVMe driver 2020-04-17 12:39:32 +02:00
pci.run platform_drv.inc: support acpi_drv and acpica 2018-05-30 13:36:31 +02:00
ping_nic_router.run ping_nic_router.run: test dhcp renew 2020-03-26 11:38:56 +01:00
ping.run run: enable 'imx7d_sabre' in network tests 2019-07-09 08:58:38 +02:00
pointer.run Move timer from os to base repository 2019-01-14 12:33:57 +01:00
rom_to_file.run Move timer from os to base repository 2019-01-14 12:33:57 +01:00
rtc.run rtc: use depot archives in test 2020-03-26 11:38:54 +01:00
sandbox.run New sandbox library extracted from init component 2020-02-04 15:51:09 +01:00
sd_card_bench.run Retire OMAP4 support 2020-04-17 12:39:32 +02:00
sd_card.run os: name sd_card_drv unambigously (ref #2190) 2019-05-16 13:11:01 +02:00
smbios_decoder.run smbios_decoder: XML report from SMBIOS table ROM 2019-08-13 12:02:26 +02:00
tar_rom.run Move timer from os to base repository 2019-01-14 12:33:57 +01:00
test.run test.run: build vfs plugins of in rom list 2019-07-09 08:58:38 +02:00
timeout.run test/timeout: configurable fast-polling buffers 2019-05-27 14:46:54 +02:00
tz_vmm.run os: name tz_vmm unambigously (ref #2190) 2019-05-27 14:46:53 +02:00
uart.run os: rename uart_drv unambigously (ref #2190) 2019-05-16 13:11:01 +02:00
usb_block.run os: name gpio_drv unambigously (ref #2190) 2019-05-16 12:52:59 +02:00
vmm_arm.run vmm: ARMv8 virtio for network and console 2020-02-27 14:46:59 +01:00
vmm_x86.run vm_session: evaluate priority 2019-05-06 16:15:25 +02:00