[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20240205053819.3cf848f0@rorschach.local.home>
Date: Mon, 5 Feb 2024 05:38:19 -0500
From: Steven Rostedt <rostedt@...dmis.org>
To: richard clark <richard.xnu.clark@...il.com>
Cc: nico@...xnic.net, Mark Rutland <mark.rutland@....com>,
mhiramat@...nel.org, linux-arm-kernel@...ts.infradead.org,
linux-trace-kernel@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: Re: Question about the ipi_raise filter usage and output
On Mon, 5 Feb 2024 17:57:29 +0800
richard clark <richard.xnu.clark@...il.com> wrote:
> Hi guys,
>
> With the ipi_raise event enabled and filtered with:
> echo 'reason == "Function call interrupts"' > filter, then the 'cat
> trace' output below messages:
> ...
> insmod-3355 [010] ....1.. 24479.230381: ipi_raise:
> target_mask=00000000,00000bff (Function call interrupts)
> ...
> The above output is triggered by my kernel module where it will smp
> cross call a remote function from cpu#10 to cpu#11, for the
> 'target_mask' value, what does the '00000000,00000bff' mean?
> ~~~~~~~~~~~~~~
It's the CPU mask. bff is bits 101111111111 or CPUs = 0-9,11.
>
> Another question is for the filter, I'd like to catch the IPI only
> happening on cpu#11 *AND* a remote function call, so how to write the
> 'target_cpus' in the filter expression?
>
> I try to write below:
> echo 'target_cpus == 11 && reason == "Function call interrupts"' >
> events/ipi/ipi_raise/filter
You mean when it is sent only to CPU 11? Not when the event is
happening on CPU 11. Like the above example, the event was triggered on
CPU 10, but the mask was for all the other CPUs.
If you are looking for just CPU 11, you can do:
echo 'target_cpus == 0x800 && reason == "Function call interrupts"'
>
> But the 'cat trace' doesn't show anything about cpu#11 IPI info,
> although both the /proc/interrupts and the smp_processor_id() in the
> remote function shows there's IPI sent to the cpu#11.
>
-- Steve
Powered by blists - more mailing lists