mirror of
https://github.com/genodelabs/genode.git
synced 2025-01-30 16:14:13 +00:00
cached_fs_rom: increase fs buffer size to 4 MiB
The default file-system communication-buffer size of 128 KiB combined with the clamping of requests to 1/4th the buffer size results in the fragementation of read operations into 32 KiB chunks. This is overly conservative and causes high context-switch overhead down the storage stack (vfs server -> part_block -> block driver). Related to #4613
This commit is contained in:
parent
20df224b19
commit
8bccc6e68f
@ -167,7 +167,7 @@ struct Cached_fs_rom::Transfer final
|
|||||||
if (!_fs.tx()->ready_to_submit())
|
if (!_fs.tx()->ready_to_submit())
|
||||||
throw Packet_alloc_failed();
|
throw Packet_alloc_failed();
|
||||||
|
|
||||||
size_t chunk_size = (size_t)min(_size, _fs.tx()->bulk_buffer_size()/4);
|
size_t chunk_size = (size_t)min(_size, _fs.tx()->bulk_buffer_size()/2);
|
||||||
return _fs.tx()->alloc_packet(chunk_size);
|
return _fs.tx()->alloc_packet(chunk_size);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -280,7 +280,7 @@ struct Cached_fs_rom::Main final : Genode::Session_request_handler
|
|||||||
Heap heap { env.pd(), env.rm() };
|
Heap heap { env.pd(), env.rm() };
|
||||||
|
|
||||||
Allocator_avl fs_tx_block_alloc { &heap };
|
Allocator_avl fs_tx_block_alloc { &heap };
|
||||||
File_system::Connection fs { env, fs_tx_block_alloc };
|
File_system::Connection fs { env, fs_tx_block_alloc, "", "/", false, 4*1024*1024 };
|
||||||
|
|
||||||
Session_requests_rom session_requests { env, *this };
|
Session_requests_rom session_requests { env, *this };
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user