vm_session: evaluate priority

Issue #3111
This commit is contained in:
Alexander Boettcher 2019-01-11 15:41:29 +01:00 committed by Christian Helmuth
parent d459432c45
commit d2229ab381
13 changed files with 30 additions and 14 deletions

View File

@ -86,7 +86,7 @@ class Genode::Vm_session_component
using Cap_quota_guard::upgrade;
Vm_session_component(Rpc_entrypoint &, Resources, Label const &,
Diag, Ram_allocator &ram, Region_map &);
Diag, Ram_allocator &ram, Region_map &, unsigned);
~Vm_session_component();
/*********************************

View File

@ -33,7 +33,8 @@ Vm_session_component::Vm_session_component(Rpc_entrypoint &ep,
Label const &,
Diag,
Ram_allocator &ram,
Region_map &local_rm)
Region_map &local_rm,
unsigned)
:
Ram_quota_guard(resources.ram_quota),
Cap_quota_guard(resources.cap_quota),

View File

@ -33,7 +33,8 @@ Vm_session_component::Vm_session_component(Rpc_entrypoint &ds_ep,
Label const &,
Diag,
Ram_allocator &ram_alloc,
Region_map &region_map)
Region_map &region_map,
unsigned)
:
Ram_quota_guard(resources.ram_quota),
Cap_quota_guard(resources.cap_quota),

View File

@ -67,7 +67,8 @@ class Genode::Vm_session_component
using Rpc_object<Vm_session, Vm_session_component>::cap;
Vm_session_component(Rpc_entrypoint &, Resources, Label const &,
Diag, Ram_allocator &ram, Region_map &);
Diag, Ram_allocator &ram, Region_map &,
unsigned priority);
~Vm_session_component();
/**************************

View File

@ -93,7 +93,8 @@ Vm_session_component::Vm_session_component(Rpc_entrypoint &ds_ep,
Label const &,
Diag,
Ram_allocator &ram_alloc,
Region_map &region_map)
Region_map &region_map,
unsigned)
:
Ram_quota_guard(resources.ram_quota),
Cap_quota_guard(resources.cap_quota),

View File

@ -86,7 +86,7 @@ class Genode::Vm_session_component
using Rpc_object<Vm_session, Vm_session_component>::cap;
Vm_session_component(Rpc_entrypoint &, Resources, Label const &,
Diag, Ram_allocator &ram, Region_map &);
Diag, Ram_allocator &ram, Region_map &, unsigned);
~Vm_session_component();
/*********************************

View File

@ -44,7 +44,8 @@ class Genode::Vm_session_component
public:
Vm_session_component(Rpc_entrypoint &, Resources resources,
Label const &, Diag, Ram_allocator &, Region_map &)
Label const &, Diag, Ram_allocator &,
Region_map &, unsigned)
:
Ram_quota_guard(resources.ram_quota),
Cap_quota_guard(resources.cap_quota),

View File

@ -107,7 +107,7 @@ class Genode::Vm_session_component
using Cap_quota_guard::upgrade;
Vm_session_component(Rpc_entrypoint &, Resources, Label const &,
Diag, Ram_allocator &ram, Region_map &);
Diag, Ram_allocator &ram, Region_map &, unsigned);
~Vm_session_component();
/*********************************

View File

@ -276,7 +276,8 @@ Vm_session_component::Vm_session_component(Rpc_entrypoint &ep,
Label const &,
Diag,
Ram_allocator &ram,
Region_map &local_rm)
Region_map &local_rm,
unsigned)
:
Ram_quota_guard(resources.ram_quota),
Cap_quota_guard(resources.cap_quota),

View File

@ -97,7 +97,7 @@ class Genode::Vm_session_component
using Cap_quota_guard::upgrade;
Vm_session_component(Rpc_entrypoint &, Resources, Label const &,
Diag, Ram_allocator &ram, Region_map &);
Diag, Ram_allocator &ram, Region_map &, unsigned);
~Vm_session_component();
/*********************************

View File

@ -69,7 +69,8 @@ Vm_session_component::Vm_session_component(Rpc_entrypoint &ep,
Label const &,
Diag,
Ram_allocator &ram,
Region_map &local_rm)
Region_map &local_rm,
unsigned)
try
:
Ram_quota_guard(resources.ram_quota),

View File

@ -34,12 +34,21 @@ class Genode::Vm_root : public Root_component<Vm_session_component>
Vm_session_component *_create_session(const char *args) override
{
unsigned priority = 0;
Arg a = Arg_string::find_arg(args, "priority");
if (a.valid()) {
priority = a.ulong_value(0);
/* clamp priority value to valid range */
priority = min((unsigned)Cpu_session::PRIORITY_LIMIT - 1, priority);
}
return new (md_alloc())
Vm_session_component(*ep(),
session_resources_from_args(args),
session_label_from_args(args),
session_diag_from_args(args),
_ram_allocator, _local_rm);
_ram_allocator, _local_rm, priority);
}
void _upgrade_session(Vm_session_component *vm, const char *args) override

View File

@ -34,7 +34,7 @@ build $build_components
create_boot_directory
install_config {
<config verbose="yes">
<config verbose="yes" prio_levels="2">
<parent-provides>
<service name="ROM"/>
<service name="IRQ"/>
@ -54,7 +54,7 @@ install_config {
<resource name="RAM" quantum="1M"/>
<provides><service name="Timer"/></provides>
</start>
<start name="vmm" caps="2048">
<start name="vmm" caps="2048" priority="-1">
<binary name="test-vmm_x86"/>
<resource name="RAM" quantum="256M"/>
</start>