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
|
@ -412,7 +412,7 @@ namespace Genode {
|
||||||
*
|
*
|
||||||
* See the comment of '_fallback_sig_cap()' in 'env/env.cc'.
|
* 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;
|
Ram_dataspace_capability _emergency_ram_ds;
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -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'.
|
* 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;
|
Ram_dataspace_capability _emergency_ram_ds;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
|
@ -230,6 +230,7 @@ void Signal_context::submit(unsigned num)
|
||||||
|
|
||||||
Signal_connection * Signal_transmitter::connection() { return signal_connection(); }
|
Signal_connection * Signal_transmitter::connection() { return signal_connection(); }
|
||||||
|
|
||||||
|
|
||||||
/*********************
|
/*********************
|
||||||
** Signal receiver **
|
** 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
|
* 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
|
* initial quota. Now, before we can issue another upgrade, we first need
|
||||||
* to request additional resources.
|
* 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");
|
printf("\n-- draining signal session --\n");
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue