mirror of
https://github.com/mmueller41/genode.git
synced 2026-01-21 12:32:56 +01:00
Notify hypervisor that core affinities were changed in CIP. This is necessary because the hypervisor has to update the ownership of the cell's CPU core resources.
This commit is contained in:
@@ -411,6 +411,11 @@ namespace Tukija {
|
||||
return syscall_5(NOVA_PD_CTRL, Pd_op::PD_DEBUG, pd, limit, usage);
|
||||
}
|
||||
|
||||
ALWAYS_INLINE
|
||||
inline uint8_t cell_ctrl(mword_t pd, Cell_control const op)
|
||||
{
|
||||
return syscall_0(TUKIJA_CELL_CTRL, op, pd);
|
||||
}
|
||||
|
||||
ALWAYS_INLINE
|
||||
inline uint8_t assign_pci(mword_t pd, mword_t mem, mword_t rid)
|
||||
|
||||
@@ -71,6 +71,15 @@ namespace Tukija {
|
||||
NOVA_PD_CTRL = 0xf,
|
||||
TUKIJA_CREATE_CELL = 0x10,
|
||||
TUKIJA_ALLOCATE = 0x11,
|
||||
TUKIJA_CELL_CTRL = 0x12,
|
||||
};
|
||||
|
||||
/**
|
||||
* Tukija operations
|
||||
*/
|
||||
enum Cell_control
|
||||
{
|
||||
UPDATE_AFFINITY = 0,
|
||||
};
|
||||
|
||||
/**
|
||||
|
||||
@@ -101,6 +101,7 @@ class Ealan::Cell_component : public Genode::Rpc_object<Cell>,
|
||||
/* TODO: implement */
|
||||
Genode::log("Changing cell's affinity to ", affinity);
|
||||
_calculate_mask_for_location(&_cip->cores_reserved, affinity.location());
|
||||
Tukija::cell_ctrl(_native_pd.sel(), Tukija::Cell_control::UPDATE_AFFINITY);
|
||||
}
|
||||
|
||||
bool is_brick() override {
|
||||
|
||||
Reference in New Issue
Block a user