Question about IPI

Adam Lackorzynski adam at
Sun Jul 20 23:23:40 CEST 2014

On Thu Jul 17, 2014 at 13:03:31 -0400, Yuxin Ren wrote:
> Now I want to how many IPIs are sent during an IPC. So I add a counter for
> IPI in the kernel, and in the user level, there is a client sending IPC to
> a server on another core.
> But I found some behavior are very strange.
> 1. The total number of IPI are not multiple times of the number of IPC. It
> seems that there are some "extra IPIs", and with the number of IPC
> increases, the number of "extra IPIs" are also increasing.

Well, as we already discussed, depending on the situation there might be
two or four IPIs. Do you mean that with 'extra IPIs'?

>   So my question is if there are some background program in the kernel or
> L4Re to send IPIs?

In user-land there's nothing per default that runs on other CPUs, so no.
The kernel will also only send IPIs around when necessary (what else :) )
such as when doing IPC.

> 2. If I add printf statement in the kernel, the number of IPIs are also
> increasing. Does printf in the kernel cause sending IPI? If it does, is
> there any methods to avoid this. Like in Linux, it has printk function in
> the kernel.

printf in the kernel does not use IPIs. But I could image that is alters
timing and thus order which can lead to more IPIs for IPC (as above).

Adam                 adam at

More information about the l4-hackers mailing list