Thanks for the info.

2018년 10월 23일 (화) 오후 3:02, <[email protected]>님이 작성:

> Hi,
>
> I attached two of the benchmark results that I pulled from the last run.
>
> Looking at the top of each of them I get similar results to you:
>
>  "Benchmark": "One way IPC microbenchmarks",
>  "Direction": "client->server",
>  "Function": "seL4_Call",
>  SMP on (mean, stddev)        444.125,  5.176871642217914
>  SMP off  (mean, stddev)       305.125,  8.94427190999916
>
> The thing to note is that the measurement is still IPC between two threads
> of the same address space on the same core.
> The overhead comes from a lock that is introduced in the SMP seL4
> configuration. When any syscall happens, the core that the syscall is
> performed on has to acquire the lock before it can handle the syscall. If
> another core is performing a syscall, the first core will be blocked until
> the lock is released.
> This can be found in the kernel entry code
> "kernel/src/arch/arm/c_traps.c", look at the NODE_LOCK_SYS macro.
> Essentially the overhead comes from the memory barrier required to
> implement the lock, and the extra instructions for acquiring and releasing
> the lock on every syscall.
>
> Kind regards,
> Kent.
>
_______________________________________________
Devel mailing list
[email protected]
https://sel4.systems/lists/listinfo/devel

Reply via email to