mirror of
https://github.com/genodelabs/genode.git
synced 2024-12-19 21:57:55 +00:00
VFS: Configure File_system client buffer at runtime
Make the size of the packet buffer at the VFS File_system client configurable. This allows larger reads to be completed in a single packet cycle. Example: <vfs> <fs buffer_size="512K"/> </vfs> Fix #3167
This commit is contained in:
parent
4921388732
commit
2f33d44713
@ -7,7 +7,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Copyright (C) 2012-2017 Genode Labs GmbH
|
* Copyright (C) 2012-2019 Genode Labs GmbH
|
||||||
*
|
*
|
||||||
* This file is part of the Genode OS framework, which is distributed
|
* This file is part of the Genode OS framework, which is distributed
|
||||||
* under the terms of the GNU Affero General Public License version 3.
|
* under the terms of the GNU Affero General Public License version 3.
|
||||||
@ -628,6 +628,13 @@ class Vfs::Fs_file_system : public File_system
|
|||||||
Genode::Io_signal_handler<Fs_file_system> _ready_handler {
|
Genode::Io_signal_handler<Fs_file_system> _ready_handler {
|
||||||
_env.env().ep(), *this, &Fs_file_system::_ready_to_submit };
|
_env.env().ep(), *this, &Fs_file_system::_ready_to_submit };
|
||||||
|
|
||||||
|
static
|
||||||
|
Genode::size_t buffer_size(Genode::Xml_node const &config)
|
||||||
|
{
|
||||||
|
Genode::Number_of_bytes fs_default { ::File_system::DEFAULT_TX_BUF_SIZE };
|
||||||
|
return config.attribute_value("buffer_size", fs_default);
|
||||||
|
}
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
Fs_file_system(Vfs::Env &env, Genode::Xml_node config)
|
Fs_file_system(Vfs::Env &env, Genode::Xml_node config)
|
||||||
@ -638,7 +645,7 @@ class Vfs::Fs_file_system : public File_system
|
|||||||
_fs(_env.env(), _fs_packet_alloc,
|
_fs(_env.env(), _fs_packet_alloc,
|
||||||
_label.string(), _root.string(),
|
_label.string(), _root.string(),
|
||||||
config.attribute_value("writeable", true),
|
config.attribute_value("writeable", true),
|
||||||
::File_system::DEFAULT_TX_BUF_SIZE)
|
buffer_size(config))
|
||||||
{
|
{
|
||||||
_fs.sigh_ack_avail(_ack_handler);
|
_fs.sigh_ack_avail(_ack_handler);
|
||||||
_fs.sigh_ready_to_submit(_ready_handler);
|
_fs.sigh_ready_to_submit(_ready_handler);
|
||||||
|
Loading…
Reference in New Issue
Block a user