nova: add requesting time of killed SCs

Fixes #3587
This commit is contained in:
Alexander Boettcher 2017-09-08 11:29:26 +02:00 committed by Christian Helmuth
parent bcb7f45201
commit 0a1bc1f4b7
3 changed files with 12 additions and 4 deletions

View File

@ -1 +1 @@
fdf169a91f3aaa9a343924faa16966cbc79f31e7 e1ea2d79b890ec24b65effb5b9718019db97ec56

View File

@ -4,7 +4,7 @@ DOWNLOADS := nova.git
# r10 branch # r10 branch
URL(nova) := https://github.com/alex-ab/NOVA.git URL(nova) := https://github.com/alex-ab/NOVA.git
REV(nova) := b4c0d9e659772e2fe7f9e4595420ebc6a71d5467 REV(nova) := 68c2fb1671e75d811a4787e35b0d0c6cc85815c0
DIR(nova) := src/kernel/nova DIR(nova) := src/kernel/nova
PATCHES := $(sort $(wildcard $(REP_DIR)/patches/*.patch)) PATCHES := $(sort $(wildcard $(REP_DIR)/patches/*.patch))

View File

@ -858,8 +858,10 @@ Platform::Platform()
{ {
uint64_t sc_time = 0; uint64_t sc_time = 0;
enum SYSCALL_OP { IDLE_SC = 0, CROSS_SC = 1 }; enum SYSCALL_OP { IDLE_SC = 0, CROSS_SC = 1,
uint8_t syscall_op = (name == "cross") ? CROSS_SC : IDLE_SC; KILLED_SC = 2 };
uint8_t syscall_op = (name == "cross") ? CROSS_SC :
((name == "killed") ? KILLED_SC : IDLE_SC);
uint8_t res = Nova::sc_ctrl(sc_sel, sc_time, syscall_op); uint8_t res = Nova::sc_ctrl(sc_sel, sc_time, syscall_op);
if (res != Nova::NOVA_OK) if (res != Nova::NOVA_OK)
@ -894,6 +896,12 @@ Platform::Platform()
_cpus.width(), 1), _cpus.width(), 1),
sc_idle_base + kernel_cpu_id, sc_idle_base + kernel_cpu_id,
"cross"); "cross");
new (core_mem_alloc()) Trace_source(Trace::sources(),
Affinity::Location(genode_cpu_id, 0,
_cpus.width(), 1),
sc_idle_base + kernel_cpu_id,
"killed");
} }
/* add exception handler EC for core and EC root thread to trace sources */ /* add exception handler EC for core and EC root thread to trace sources */