From 84c16d4344c8a6ad3abadc72fe6beabaf22da8e0 Mon Sep 17 00:00:00 2001 From: Hari Nagalla Date: Thu, 10 Jul 2025 17:03:46 -0500 Subject: [PATCH] feat(linux): AM64X: Add remote proc performance numbers for 11.1 release Initial RPMessage IPC latency numbers with RT-linux kernel. Signed-off-by: Hari Nagalla --- .../linux/RT_Linux_Performance_Guide.rst | 39 ++++++++++++++++++ .../AM64X/linux/img/R5_0_0_m1_ipc_latency.png | Bin 0 -> 7595 bytes .../linux/img/R5_0_0_m490_ipc_latency.png | Bin 0 -> 8418 bytes .../AM64X/linux/img/m4_0_m1_ipc_latency.png | Bin 0 -> 7652 bytes .../AM64X/linux/img/m4_0_m490_ipc_latency.png | Bin 0 -> 8285 bytes 5 files changed, 39 insertions(+) create mode 100644 source/devices/AM64X/linux/img/R5_0_0_m1_ipc_latency.png create mode 100644 source/devices/AM64X/linux/img/R5_0_0_m490_ipc_latency.png create mode 100644 source/devices/AM64X/linux/img/m4_0_m1_ipc_latency.png create mode 100644 source/devices/AM64X/linux/img/m4_0_m490_ipc_latency.png diff --git a/source/devices/AM64X/linux/RT_Linux_Performance_Guide.rst b/source/devices/AM64X/linux/RT_Linux_Performance_Guide.rst index 6911d9ebe..bfb00780e 100644 --- a/source/devices/AM64X/linux/RT_Linux_Performance_Guide.rst +++ b/source/devices/AM64X/linux/RT_Linux_Performance_Guide.rst @@ -757,3 +757,42 @@ Listed for each algorithm are the code snippets used to run each benchmark test. | + +RP Message Inter-Processor Communication (IPC) Latency +------------------------------------------------------ + +RP Message latency Performance +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +RP Message latency is the delay measured from sending a round trip echo message from +a Linux application to a remote processor and back. The following measurements use +a RP message length of 1 byte and 490 bytes for comparison. + +The Linux user space application `rpmsg_char_benchmark `__ captures these latency values. + +Test commands used for running IPC latency tests: + +.. code:: console + + rpmsg_char_benchmark -r 2 -n 100000 -m 1 & chrt -f -p 80 $! + +Latencies reported: + + +.. csv-table:: + :header: "Remote Processor","Message Size (in bytes)","Average round trip (usecs)","Max round trip (usecs)" + + "R5F0_0","1","32","205" + "R5F0_0","490","162","272" + "M4F","1","41","186" + "M4F","490","301","446" + +.. image:: img/R5_0_0_m1_ipc_latency.png + +.. image:: img/R5_0_0_m490_ipc_latency.png + +.. image:: img/m4_0_m1_ipc_latency.png + +.. image:: img/m4_0_m490_ipc_latency.png + +| diff --git a/source/devices/AM64X/linux/img/R5_0_0_m1_ipc_latency.png b/source/devices/AM64X/linux/img/R5_0_0_m1_ipc_latency.png new file mode 100644 index 0000000000000000000000000000000000000000..b0c2b199d4fddb76a7c1b6d103aa1b84e9cb84e2 GIT binary patch literal 7595 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 C2yqbr literal 0 HcmV?d00001 diff --git a/source/devices/AM64X/linux/img/R5_0_0_m490_ipc_latency.png b/source/devices/AM64X/linux/img/R5_0_0_m490_ipc_latency.png new file mode 100644 index 0000000000000000000000000000000000000000..3a8c03dcf6c41fc455dbb5e9ddc423b331b8e644 GIT binary patch literal 8418 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 F^26UFN$HYq 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 literal 0 HcmV?d00001