mirror of
https://github.com/genodelabs/genode.git
synced 2024-12-21 06:33:31 +00:00
base: extend emergency dataspace size
The emergency dataspace is used to accommodate the corner case where a signal context capability is created while issuing the first resource request. Normally, the attempt to upgrade the signal-session quota under such a constrained situation would fail. By freeing the emergency dataspace in this situation, we regain enough quota to upgrade the signal session. This is a follow up commit for "base: Raise RAM quota of signal session to 16K" and fixes the resource_request test on 64-bit platforms.
This commit is contained in:
parent
eaac3cc1bd
commit
ea9c2199e8
2
repos/base-linux/src/base/env/platform_env.h
vendored
2
repos/base-linux/src/base/env/platform_env.h
vendored
@ -412,7 +412,7 @@ namespace Genode {
|
||||
*
|
||||
* See the comment of '_fallback_sig_cap()' in 'env/env.cc'.
|
||||
*/
|
||||
constexpr static size_t _emergency_ram_size() { return 4*1024; }
|
||||
constexpr static size_t _emergency_ram_size() { return 8*1024; }
|
||||
Ram_dataspace_capability _emergency_ram_ds;
|
||||
|
||||
|
||||
|
2
repos/base/src/base/env/platform_env.h
vendored
2
repos/base/src/base/env/platform_env.h
vendored
@ -97,7 +97,7 @@ class Genode::Platform_env : public Genode::Env, public Emergency_ram_reserve
|
||||
*
|
||||
* See the comment of '_fallback_sig_cap()' in 'env/env.cc'.
|
||||
*/
|
||||
constexpr static size_t _emergency_ram_size() { return 4*1024; }
|
||||
constexpr static size_t _emergency_ram_size() { return 8*1024; }
|
||||
Ram_dataspace_capability _emergency_ram_ds;
|
||||
|
||||
public:
|
||||
|
@ -230,6 +230,7 @@ void Signal_context::submit(unsigned num)
|
||||
|
||||
Signal_connection * Signal_transmitter::connection() { return signal_connection(); }
|
||||
|
||||
|
||||
/*********************
|
||||
** Signal receiver **
|
||||
*********************/
|
||||
|
@ -67,6 +67,9 @@ int main(int argc, char **argv)
|
||||
* successively upgrade the session. At one point, we will run out of our
|
||||
* initial quota. Now, before we can issue another upgrade, we first need
|
||||
* to request additional resources.
|
||||
*
|
||||
* Note that the construction of the signal receiver will consume a part
|
||||
* of the quota we preserved as 'KEEP_QUOTA'.
|
||||
*/
|
||||
printf("\n-- draining signal session --\n");
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user