diff --git a/apps/scheduler/src/main.c b/apps/scheduler/src/main.c index 97985e44..037e7d03 100644 --- a/apps/scheduler/src/main.c +++ b/apps/scheduler/src/main.c @@ -86,7 +86,8 @@ static void yield_fn(int argc, char **argv) seL4_Yield(); } - seL4_Send(ep, seL4_MessageInfo_new(0, 0, 0, 0)); + /* Do a blocking call that doens't return: */ + seL4_Call(ep, seL4_MessageInfo_new(0, 0, 0, 0)); } static void benchmark_yield(seL4_CPtr ep, ccnt_t *results, volatile ccnt_t *end) diff --git a/libsel4benchsupport/sel4_arch_include/aarch32/sel4_arch/fault.h b/libsel4benchsupport/sel4_arch_include/aarch32/sel4_arch/fault.h index c3d70e6e..7b54c411 100644 --- a/libsel4benchsupport/sel4_arch_include/aarch32/sel4_arch/fault.h +++ b/libsel4benchsupport/sel4_arch_include/aarch32/sel4_arch/fault.h @@ -9,8 +9,9 @@ #ifdef CONFIG_KERNEL_MCS #define DO_REPLY_RECV_1(ep, ip, ro, swi) do { \ + seL4_MessageInfo_t m = seL4_MessageInfo_new(0, 0, 0, 1); \ register seL4_Word src asm("r0") = (seL4_Word)ep; \ - register seL4_MessageInfo_t info asm("r1") = seL4_MessageInfo_new(0, 0, 0, 1); \ + register seL4_Word info asm("r1") = m.words[0]; \ register seL4_Word scno asm("r7") = seL4_SysReplyRecv; \ register seL4_Word ro_copy asm("r6") = (seL4_Word) ro; \ register seL4_Word mr0 asm("r2") = ip; \ @@ -25,8 +26,9 @@ #else #define DO_REPLY_RECV_1(ep, ip, ro, swi) do { \ + seL4_MessageInfo_t m = seL4_MessageInfo_new(0, 0, 0, 1); \ register seL4_Word src asm("r0") = (seL4_Word)ep; \ - register seL4_MessageInfo_t info asm("r1") = seL4_MessageInfo_new(0, 0, 0, 1); \ + register seL4_Word info asm("r1") = m.words[0]; \ register seL4_Word scno asm("r7") = seL4_SysReplyRecv; \ register seL4_Word mr0 asm("r2") = ip; \ asm volatile(NOPS swi NOPS \ diff --git a/libsel4benchsupport/sel4_arch_include/aarch64/sel4_arch/fault.h b/libsel4benchsupport/sel4_arch_include/aarch64/sel4_arch/fault.h index 5b065534..1b7bd64c 100644 --- a/libsel4benchsupport/sel4_arch_include/aarch64/sel4_arch/fault.h +++ b/libsel4benchsupport/sel4_arch_include/aarch64/sel4_arch/fault.h @@ -9,8 +9,9 @@ #ifdef CONFIG_KERNEL_MCS #define DO_REPLY_RECV_1(ep, ip, ro, swi) do { \ + seL4_MessageInfo_t m = seL4_MessageInfo_new(0, 0, 0, 1); \ register seL4_Word src asm("x0") = (seL4_Word)ep; \ - register seL4_MessageInfo_t info asm("x1") = seL4_MessageInfo_new(0, 0, 0, 1); \ + register seL4_Word info asm("x1") = m.words[0]; \ register seL4_Word scno asm("x7") = seL4_SysReplyRecv; \ register seL4_Word ro_copy asm("x6") = (seL4_Word) ro; \ register seL4_Word mr0 asm("x2") = ip; \ @@ -25,8 +26,9 @@ #else #define DO_REPLY_RECV_1(ep, ip, ro, swi) do { \ + seL4_MessageInfo_t m = seL4_MessageInfo_new(0, 0, 0, 1); \ register seL4_Word src asm("x0") = (seL4_Word)ep; \ - register seL4_MessageInfo_t info asm("x1") = seL4_MessageInfo_new(0, 0, 0, 1); \ + register seL4_Word info asm("x1") = m.words[0]; \ register seL4_Word scno asm("x7") = seL4_SysReplyRecv; \ register seL4_Word mr0 asm("x2") = ip; \ asm volatile(NOPS swi NOPS \ diff --git a/settings.cmake b/settings.cmake index 54af1d77..111cddf7 100644 --- a/settings.cmake +++ b/settings.cmake @@ -96,7 +96,11 @@ if(NOT Sel4benchAllowSettingsOverride) if(SMP) if(RELEASE) - set(KernelMaxNumNodes 4 CACHE STRING "" FORCE) + if(KernelPlatformIMX93) + set(KernelMaxNumNodes 2 CACHE STRING "" FORCE) + else() + set(KernelMaxNumNodes 4 CACHE STRING "" FORCE) + endif() set(AppSmpBench ON CACHE BOOL "" FORCE) if(KernelPlatImx6) set(ElfloaderMode "secure supervisor" CACHE STRING "" FORCE)