From: Bagas Sanjaya <bagasdotme@gmail.com>
To: Jiucheng Xu <jiucheng.xu@amlogic.com>
Cc: linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-amlogic@lists.infradead.org,
linux-arm-kernel@lists.infradead.org,
Jonathan Corbet <corbet@lwn.net>, Will Deacon <will@kernel.org>,
Mark Rutland <mark.rutland@arm.com>,
Neil Armstrong <neil.armstrong@linaro.org>,
Kevin Hilman <khilman@baylibre.com>,
Jerome Brunet <jbrunet@baylibre.com>,
Martin Blumenstingl <martin.blumenstingl@googlemail.com>,
Shuai Xue <xueshuai@linux.alibaba.com>,
John Garry <john.garry@huawei.com>,
Wan Jiabing <wanjiabing@vivo.com>,
Chris Healy <cphealy@gmail.com>,
Jianxin Pan <jianxin.pan@amlogic.com>,
Kelvin Zhang <kelvin.zhang@amlogic.com>,
Chris Healy <healych@amazon.com>
Subject: Re: [PATCH v10 2/2] docs/perf: Add documentation for the Amlogic G12 DDR PMU
Date: Wed, 16 Nov 2022 16:40:48 +0700 [thread overview]
Message-ID: <Y3SwIPnDvEOlL+Mz@debian.me> (raw)
In-Reply-To: <20221116003133.1049346-2-jiucheng.xu@amlogic.com>
[-- Attachment #1.1: Type: text/plain, Size: 9582 bytes --]
On Wed, Nov 16, 2022 at 08:31:33AM +0800, Jiucheng Xu wrote:
> diff --git a/Documentation/admin-guide/perf/meson-ddr-pmu.rst b/Documentation/admin-guide/perf/meson-ddr-pmu.rst
> new file mode 100644
> index 000000000000..15e93a751ced
> --- /dev/null
> +++ b/Documentation/admin-guide/perf/meson-ddr-pmu.rst
> @@ -0,0 +1,70 @@
> +.. SPDX-License-Identifier: GPL-2.0
> +
> +===========================================================
> +Amlogic SoC DDR Bandwidth Performance Monitoring Unit (PMU)
> +===========================================================
> +
> +There is a bandwidth monitor inside the DRAM controller. The monitor includes
> +4 channels which can count the read/write request of accessing DRAM individually.
> +It can be helpful to show if the performance bottleneck is on DDR bandwidth.
> +
> +Currently, this driver supports the following 5 Perf events:
> +
> ++ meson_ddr_bw/total_rw_bytes/
> ++ meson_ddr_bw/chan_1_rw_bytes/
> ++ meson_ddr_bw/chan_2_rw_bytes/
> ++ meson_ddr_bw/chan_3_rw_bytes/
> ++ meson_ddr_bw/chan_4_rw_bytes/
> +
> +meson_ddr_bw/chan_{1,2,3,4}_rw_bytes/ events are the channel related events.
> +Each channel support using keywords as filter, which can let the channel
> +to monitor the individual IP module in SoC.
> +
> +The following keywords are the filter:
> +
> ++ arm - DDR access request from CPU
> ++ vpu_read1 - DDR access request from OSD + VPP read
> ++ gpu - DDR access request from 3D GPU
> ++ pcie - DDR access request from PCIe controller
> ++ hdcp - DDR access request from HDCP controller
> ++ hevc_front - DDR access request from HEVC codec front end
> ++ usb3_0 - DDR access request from USB3.0 controller
> ++ hevc_back - DDR access request from HEVC codec back end
> ++ h265enc - DDR access request from HEVC encoder
> ++ vpu_read2 - DDR access request from DI read
> ++ vpu_write1 - DDR access request from VDIN write
> ++ vpu_write2 - DDR access request from di write
> ++ vdec - DDR access request from legacy codec video decoder
> ++ hcodec - DDR access request from H264 encoder
> ++ ge2d - DDR access request from ge2d
> ++ spicc1 - DDR access request from SPI controller 1
> ++ usb0 - DDR access request from USB2.0 controller 0
> ++ dma - DDR access request from system DMA controller 1
> ++ arb0 - DDR access request from arb0
> ++ sd_emmc_b - DDR access request from SD eMMC b controller
> ++ usb1 - DDR access request from USB2.0 controller 1
> ++ audio - DDR access request from Audio module
> ++ sd_emmc_c - DDR access request from SD eMMC c controller
> ++ spicc2 - DDR access request from SPI controller 2
> ++ ethernet - DDR access request from Ethernet controller
> +
> +
> +The following command is to show the total DDR bandwidth:
> +
> + .. code-block:: bash
> +
> + perf stat -a -e meson_ddr_bw/total_rw_bytes/ -I 1000 sleep 10
> +
> +This command will print the total DDR bandwidth per second.
> +
> +The following commands are to show how to use filter parameters:
> +
> + .. code-block:: bash
> +
> + perf stat -a -e meson_ddr_bw/chan_1_rw_bytes,arm=1/ -I 1000 sleep 10
> + perf stat -a -e meson_ddr_bw/chan_2_rw_bytes,gpu=1/ -I 1000 sleep 10
> + perf stat -a -e meson_ddr_bw/chan_3_rw_bytes,arm=1,gpu=1/ -I 1000 sleep 10
> +
> +The 1st command show how to use channel 1 to monitor the DDR bandwidth from ARM.
> +The 2nd command show using channel 2 to get the DDR bandwidth of GPU.
> +The 3rd command show using channel 3 to monitor the sum of ARM and GPU.
The wordings are rather weird, so I need to improve the doc:
---- >8 ----
diff --git a/Documentation/admin-guide/perf/meson-ddr-pmu.rst b/Documentation/admin-guide/perf/meson-ddr-pmu.rst
index 15e93a751ced8a..4a1fdb5aba4b24 100644
--- a/Documentation/admin-guide/perf/meson-ddr-pmu.rst
+++ b/Documentation/admin-guide/perf/meson-ddr-pmu.rst
@@ -4,11 +4,12 @@
Amlogic SoC DDR Bandwidth Performance Monitoring Unit (PMU)
===========================================================
-There is a bandwidth monitor inside the DRAM controller. The monitor includes
-4 channels which can count the read/write request of accessing DRAM individually.
-It can be helpful to show if the performance bottleneck is on DDR bandwidth.
+The Amlogic Meson G12 SoC contains a bandwidth monitor inside DRAM controller.
+The monitor includes 4 channels which can count the read/write request of
+individual DRAM. It can be helpful to show if the performance bottleneck is on
+DDR bandwidth.
-Currently, this driver supports the following 5 Perf events:
+Currently, this driver supports the following 5 perf events:
+ meson_ddr_bw/total_rw_bytes/
+ meson_ddr_bw/chan_1_rw_bytes/
@@ -16,55 +17,54 @@ Currently, this driver supports the following 5 Perf events:
+ meson_ddr_bw/chan_3_rw_bytes/
+ meson_ddr_bw/chan_4_rw_bytes/
-meson_ddr_bw/chan_{1,2,3,4}_rw_bytes/ events are the channel related events.
-Each channel support using keywords as filter, which can let the channel
-to monitor the individual IP module in SoC.
+meson_ddr_bw/chan_{1,2,3,4}_rw_bytes/ events are channel-specific events.
+Each channel support filtering, which can let the channel to monitor
+individual IP module in SoC.
-The following keywords are the filter:
+Below are DDR access request event filter keywords:
-+ arm - DDR access request from CPU
-+ vpu_read1 - DDR access request from OSD + VPP read
-+ gpu - DDR access request from 3D GPU
-+ pcie - DDR access request from PCIe controller
-+ hdcp - DDR access request from HDCP controller
-+ hevc_front - DDR access request from HEVC codec front end
-+ usb3_0 - DDR access request from USB3.0 controller
-+ hevc_back - DDR access request from HEVC codec back end
-+ h265enc - DDR access request from HEVC encoder
-+ vpu_read2 - DDR access request from DI read
-+ vpu_write1 - DDR access request from VDIN write
-+ vpu_write2 - DDR access request from di write
-+ vdec - DDR access request from legacy codec video decoder
-+ hcodec - DDR access request from H264 encoder
-+ ge2d - DDR access request from ge2d
-+ spicc1 - DDR access request from SPI controller 1
-+ usb0 - DDR access request from USB2.0 controller 0
-+ dma - DDR access request from system DMA controller 1
-+ arb0 - DDR access request from arb0
-+ sd_emmc_b - DDR access request from SD eMMC b controller
-+ usb1 - DDR access request from USB2.0 controller 1
-+ audio - DDR access request from Audio module
-+ sd_emmc_c - DDR access request from SD eMMC c controller
-+ spicc2 - DDR access request from SPI controller 2
-+ ethernet - DDR access request from Ethernet controller
++ arm - from CPU
++ vpu_read1 - from OSD + VPP read
++ gpu - from 3D GPU
++ pcie - from PCIe controller
++ hdcp - from HDCP controller
++ hevc_front - from HEVC codec front end
++ usb3_0 - from USB3.0 controller
++ hevc_back - from HEVC codec back end
++ h265enc - from HEVC encoder
++ vpu_read2 - from DI read
++ vpu_write1 - from VDIN write
++ vpu_write2 - from di write
++ vdec - from legacy codec video decoder
++ hcodec - from H264 encoder
++ ge2d - from ge2d
++ spicc1 - from SPI controller 1
++ usb0 - from USB2.0 controller 0
++ dma - from system DMA controller 1
++ arb0 - from arb0
++ sd_emmc_b - from SD eMMC b controller
++ usb1 - from USB2.0 controller 1
++ audio - from Audio module
++ sd_emmc_c - from SD eMMC c controller
++ spicc2 - from SPI controller 2
++ ethernet - from Ethernet controller
-The following command is to show the total DDR bandwidth:
+Examples:
- .. code-block:: bash
+ + Show the total DDR bandwidth per seconds:
- perf stat -a -e meson_ddr_bw/total_rw_bytes/ -I 1000 sleep 10
+ .. code-block:: bash
-This command will print the total DDR bandwidth per second.
+ perf stat -a -e meson_ddr_bw/total_rw_bytes/ -I 1000 sleep 10
-The following commands are to show how to use filter parameters:
- .. code-block:: bash
+ + Show individual DDR bandwidth from CPU and GPU respectively, as well as
+ sum of them:
- perf stat -a -e meson_ddr_bw/chan_1_rw_bytes,arm=1/ -I 1000 sleep 10
- perf stat -a -e meson_ddr_bw/chan_2_rw_bytes,gpu=1/ -I 1000 sleep 10
- perf stat -a -e meson_ddr_bw/chan_3_rw_bytes,arm=1,gpu=1/ -I 1000 sleep 10
+ .. code-block:: bash
+
+ perf stat -a -e meson_ddr_bw/chan_1_rw_bytes,arm=1/ -I 1000 sleep 10
+ perf stat -a -e meson_ddr_bw/chan_2_rw_bytes,gpu=1/ -I 1000 sleep 10
+ perf stat -a -e meson_ddr_bw/chan_3_rw_bytes,arm=1,gpu=1/ -I 1000 sleep 10
-The 1st command show how to use channel 1 to monitor the DDR bandwidth from ARM.
-The 2nd command show using channel 2 to get the DDR bandwidth of GPU.
-The 3rd command show using channel 3 to monitor the sum of ARM and GPU.
Thanks.
--
An old man doll... just what I always wanted! - Clara
[-- Attachment #1.2: signature.asc --]
[-- Type: application/pgp-signature, Size: 228 bytes --]
[-- Attachment #2: Type: text/plain, Size: 167 bytes --]
_______________________________________________
linux-amlogic mailing list
linux-amlogic@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-amlogic
WARNING: multiple messages have this Message-ID (diff)
From: Bagas Sanjaya <bagasdotme@gmail.com>
To: Jiucheng Xu <jiucheng.xu@amlogic.com>
Cc: linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-amlogic@lists.infradead.org,
linux-arm-kernel@lists.infradead.org,
Jonathan Corbet <corbet@lwn.net>, Will Deacon <will@kernel.org>,
Mark Rutland <mark.rutland@arm.com>,
Neil Armstrong <neil.armstrong@linaro.org>,
Kevin Hilman <khilman@baylibre.com>,
Jerome Brunet <jbrunet@baylibre.com>,
Martin Blumenstingl <martin.blumenstingl@googlemail.com>,
Shuai Xue <xueshuai@linux.alibaba.com>,
John Garry <john.garry@huawei.com>,
Wan Jiabing <wanjiabing@vivo.com>,
Chris Healy <cphealy@gmail.com>,
Jianxin Pan <jianxin.pan@amlogic.com>,
Kelvin Zhang <kelvin.zhang@amlogic.com>,
Chris Healy <healych@amazon.com>
Subject: Re: [PATCH v10 2/2] docs/perf: Add documentation for the Amlogic G12 DDR PMU
Date: Wed, 16 Nov 2022 16:40:48 +0700 [thread overview]
Message-ID: <Y3SwIPnDvEOlL+Mz@debian.me> (raw)
In-Reply-To: <20221116003133.1049346-2-jiucheng.xu@amlogic.com>
[-- Attachment #1: Type: text/plain, Size: 9582 bytes --]
On Wed, Nov 16, 2022 at 08:31:33AM +0800, Jiucheng Xu wrote:
> diff --git a/Documentation/admin-guide/perf/meson-ddr-pmu.rst b/Documentation/admin-guide/perf/meson-ddr-pmu.rst
> new file mode 100644
> index 000000000000..15e93a751ced
> --- /dev/null
> +++ b/Documentation/admin-guide/perf/meson-ddr-pmu.rst
> @@ -0,0 +1,70 @@
> +.. SPDX-License-Identifier: GPL-2.0
> +
> +===========================================================
> +Amlogic SoC DDR Bandwidth Performance Monitoring Unit (PMU)
> +===========================================================
> +
> +There is a bandwidth monitor inside the DRAM controller. The monitor includes
> +4 channels which can count the read/write request of accessing DRAM individually.
> +It can be helpful to show if the performance bottleneck is on DDR bandwidth.
> +
> +Currently, this driver supports the following 5 Perf events:
> +
> ++ meson_ddr_bw/total_rw_bytes/
> ++ meson_ddr_bw/chan_1_rw_bytes/
> ++ meson_ddr_bw/chan_2_rw_bytes/
> ++ meson_ddr_bw/chan_3_rw_bytes/
> ++ meson_ddr_bw/chan_4_rw_bytes/
> +
> +meson_ddr_bw/chan_{1,2,3,4}_rw_bytes/ events are the channel related events.
> +Each channel support using keywords as filter, which can let the channel
> +to monitor the individual IP module in SoC.
> +
> +The following keywords are the filter:
> +
> ++ arm - DDR access request from CPU
> ++ vpu_read1 - DDR access request from OSD + VPP read
> ++ gpu - DDR access request from 3D GPU
> ++ pcie - DDR access request from PCIe controller
> ++ hdcp - DDR access request from HDCP controller
> ++ hevc_front - DDR access request from HEVC codec front end
> ++ usb3_0 - DDR access request from USB3.0 controller
> ++ hevc_back - DDR access request from HEVC codec back end
> ++ h265enc - DDR access request from HEVC encoder
> ++ vpu_read2 - DDR access request from DI read
> ++ vpu_write1 - DDR access request from VDIN write
> ++ vpu_write2 - DDR access request from di write
> ++ vdec - DDR access request from legacy codec video decoder
> ++ hcodec - DDR access request from H264 encoder
> ++ ge2d - DDR access request from ge2d
> ++ spicc1 - DDR access request from SPI controller 1
> ++ usb0 - DDR access request from USB2.0 controller 0
> ++ dma - DDR access request from system DMA controller 1
> ++ arb0 - DDR access request from arb0
> ++ sd_emmc_b - DDR access request from SD eMMC b controller
> ++ usb1 - DDR access request from USB2.0 controller 1
> ++ audio - DDR access request from Audio module
> ++ sd_emmc_c - DDR access request from SD eMMC c controller
> ++ spicc2 - DDR access request from SPI controller 2
> ++ ethernet - DDR access request from Ethernet controller
> +
> +
> +The following command is to show the total DDR bandwidth:
> +
> + .. code-block:: bash
> +
> + perf stat -a -e meson_ddr_bw/total_rw_bytes/ -I 1000 sleep 10
> +
> +This command will print the total DDR bandwidth per second.
> +
> +The following commands are to show how to use filter parameters:
> +
> + .. code-block:: bash
> +
> + perf stat -a -e meson_ddr_bw/chan_1_rw_bytes,arm=1/ -I 1000 sleep 10
> + perf stat -a -e meson_ddr_bw/chan_2_rw_bytes,gpu=1/ -I 1000 sleep 10
> + perf stat -a -e meson_ddr_bw/chan_3_rw_bytes,arm=1,gpu=1/ -I 1000 sleep 10
> +
> +The 1st command show how to use channel 1 to monitor the DDR bandwidth from ARM.
> +The 2nd command show using channel 2 to get the DDR bandwidth of GPU.
> +The 3rd command show using channel 3 to monitor the sum of ARM and GPU.
The wordings are rather weird, so I need to improve the doc:
---- >8 ----
diff --git a/Documentation/admin-guide/perf/meson-ddr-pmu.rst b/Documentation/admin-guide/perf/meson-ddr-pmu.rst
index 15e93a751ced8a..4a1fdb5aba4b24 100644
--- a/Documentation/admin-guide/perf/meson-ddr-pmu.rst
+++ b/Documentation/admin-guide/perf/meson-ddr-pmu.rst
@@ -4,11 +4,12 @@
Amlogic SoC DDR Bandwidth Performance Monitoring Unit (PMU)
===========================================================
-There is a bandwidth monitor inside the DRAM controller. The monitor includes
-4 channels which can count the read/write request of accessing DRAM individually.
-It can be helpful to show if the performance bottleneck is on DDR bandwidth.
+The Amlogic Meson G12 SoC contains a bandwidth monitor inside DRAM controller.
+The monitor includes 4 channels which can count the read/write request of
+individual DRAM. It can be helpful to show if the performance bottleneck is on
+DDR bandwidth.
-Currently, this driver supports the following 5 Perf events:
+Currently, this driver supports the following 5 perf events:
+ meson_ddr_bw/total_rw_bytes/
+ meson_ddr_bw/chan_1_rw_bytes/
@@ -16,55 +17,54 @@ Currently, this driver supports the following 5 Perf events:
+ meson_ddr_bw/chan_3_rw_bytes/
+ meson_ddr_bw/chan_4_rw_bytes/
-meson_ddr_bw/chan_{1,2,3,4}_rw_bytes/ events are the channel related events.
-Each channel support using keywords as filter, which can let the channel
-to monitor the individual IP module in SoC.
+meson_ddr_bw/chan_{1,2,3,4}_rw_bytes/ events are channel-specific events.
+Each channel support filtering, which can let the channel to monitor
+individual IP module in SoC.
-The following keywords are the filter:
+Below are DDR access request event filter keywords:
-+ arm - DDR access request from CPU
-+ vpu_read1 - DDR access request from OSD + VPP read
-+ gpu - DDR access request from 3D GPU
-+ pcie - DDR access request from PCIe controller
-+ hdcp - DDR access request from HDCP controller
-+ hevc_front - DDR access request from HEVC codec front end
-+ usb3_0 - DDR access request from USB3.0 controller
-+ hevc_back - DDR access request from HEVC codec back end
-+ h265enc - DDR access request from HEVC encoder
-+ vpu_read2 - DDR access request from DI read
-+ vpu_write1 - DDR access request from VDIN write
-+ vpu_write2 - DDR access request from di write
-+ vdec - DDR access request from legacy codec video decoder
-+ hcodec - DDR access request from H264 encoder
-+ ge2d - DDR access request from ge2d
-+ spicc1 - DDR access request from SPI controller 1
-+ usb0 - DDR access request from USB2.0 controller 0
-+ dma - DDR access request from system DMA controller 1
-+ arb0 - DDR access request from arb0
-+ sd_emmc_b - DDR access request from SD eMMC b controller
-+ usb1 - DDR access request from USB2.0 controller 1
-+ audio - DDR access request from Audio module
-+ sd_emmc_c - DDR access request from SD eMMC c controller
-+ spicc2 - DDR access request from SPI controller 2
-+ ethernet - DDR access request from Ethernet controller
++ arm - from CPU
++ vpu_read1 - from OSD + VPP read
++ gpu - from 3D GPU
++ pcie - from PCIe controller
++ hdcp - from HDCP controller
++ hevc_front - from HEVC codec front end
++ usb3_0 - from USB3.0 controller
++ hevc_back - from HEVC codec back end
++ h265enc - from HEVC encoder
++ vpu_read2 - from DI read
++ vpu_write1 - from VDIN write
++ vpu_write2 - from di write
++ vdec - from legacy codec video decoder
++ hcodec - from H264 encoder
++ ge2d - from ge2d
++ spicc1 - from SPI controller 1
++ usb0 - from USB2.0 controller 0
++ dma - from system DMA controller 1
++ arb0 - from arb0
++ sd_emmc_b - from SD eMMC b controller
++ usb1 - from USB2.0 controller 1
++ audio - from Audio module
++ sd_emmc_c - from SD eMMC c controller
++ spicc2 - from SPI controller 2
++ ethernet - from Ethernet controller
-The following command is to show the total DDR bandwidth:
+Examples:
- .. code-block:: bash
+ + Show the total DDR bandwidth per seconds:
- perf stat -a -e meson_ddr_bw/total_rw_bytes/ -I 1000 sleep 10
+ .. code-block:: bash
-This command will print the total DDR bandwidth per second.
+ perf stat -a -e meson_ddr_bw/total_rw_bytes/ -I 1000 sleep 10
-The following commands are to show how to use filter parameters:
- .. code-block:: bash
+ + Show individual DDR bandwidth from CPU and GPU respectively, as well as
+ sum of them:
- perf stat -a -e meson_ddr_bw/chan_1_rw_bytes,arm=1/ -I 1000 sleep 10
- perf stat -a -e meson_ddr_bw/chan_2_rw_bytes,gpu=1/ -I 1000 sleep 10
- perf stat -a -e meson_ddr_bw/chan_3_rw_bytes,arm=1,gpu=1/ -I 1000 sleep 10
+ .. code-block:: bash
+
+ perf stat -a -e meson_ddr_bw/chan_1_rw_bytes,arm=1/ -I 1000 sleep 10
+ perf stat -a -e meson_ddr_bw/chan_2_rw_bytes,gpu=1/ -I 1000 sleep 10
+ perf stat -a -e meson_ddr_bw/chan_3_rw_bytes,arm=1,gpu=1/ -I 1000 sleep 10
-The 1st command show how to use channel 1 to monitor the DDR bandwidth from ARM.
-The 2nd command show using channel 2 to get the DDR bandwidth of GPU.
-The 3rd command show using channel 3 to monitor the sum of ARM and GPU.
Thanks.
--
An old man doll... just what I always wanted! - Clara
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 228 bytes --]
WARNING: multiple messages have this Message-ID (diff)
From: Bagas Sanjaya <bagasdotme@gmail.com>
To: Jiucheng Xu <jiucheng.xu@amlogic.com>
Cc: linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-amlogic@lists.infradead.org,
linux-arm-kernel@lists.infradead.org,
Jonathan Corbet <corbet@lwn.net>, Will Deacon <will@kernel.org>,
Mark Rutland <mark.rutland@arm.com>,
Neil Armstrong <neil.armstrong@linaro.org>,
Kevin Hilman <khilman@baylibre.com>,
Jerome Brunet <jbrunet@baylibre.com>,
Martin Blumenstingl <martin.blumenstingl@googlemail.com>,
Shuai Xue <xueshuai@linux.alibaba.com>,
John Garry <john.garry@huawei.com>,
Wan Jiabing <wanjiabing@vivo.com>,
Chris Healy <cphealy@gmail.com>,
Jianxin Pan <jianxin.pan@amlogic.com>,
Kelvin Zhang <kelvin.zhang@amlogic.com>,
Chris Healy <healych@amazon.com>
Subject: Re: [PATCH v10 2/2] docs/perf: Add documentation for the Amlogic G12 DDR PMU
Date: Wed, 16 Nov 2022 16:40:48 +0700 [thread overview]
Message-ID: <Y3SwIPnDvEOlL+Mz@debian.me> (raw)
In-Reply-To: <20221116003133.1049346-2-jiucheng.xu@amlogic.com>
[-- Attachment #1.1: Type: text/plain, Size: 9582 bytes --]
On Wed, Nov 16, 2022 at 08:31:33AM +0800, Jiucheng Xu wrote:
> diff --git a/Documentation/admin-guide/perf/meson-ddr-pmu.rst b/Documentation/admin-guide/perf/meson-ddr-pmu.rst
> new file mode 100644
> index 000000000000..15e93a751ced
> --- /dev/null
> +++ b/Documentation/admin-guide/perf/meson-ddr-pmu.rst
> @@ -0,0 +1,70 @@
> +.. SPDX-License-Identifier: GPL-2.0
> +
> +===========================================================
> +Amlogic SoC DDR Bandwidth Performance Monitoring Unit (PMU)
> +===========================================================
> +
> +There is a bandwidth monitor inside the DRAM controller. The monitor includes
> +4 channels which can count the read/write request of accessing DRAM individually.
> +It can be helpful to show if the performance bottleneck is on DDR bandwidth.
> +
> +Currently, this driver supports the following 5 Perf events:
> +
> ++ meson_ddr_bw/total_rw_bytes/
> ++ meson_ddr_bw/chan_1_rw_bytes/
> ++ meson_ddr_bw/chan_2_rw_bytes/
> ++ meson_ddr_bw/chan_3_rw_bytes/
> ++ meson_ddr_bw/chan_4_rw_bytes/
> +
> +meson_ddr_bw/chan_{1,2,3,4}_rw_bytes/ events are the channel related events.
> +Each channel support using keywords as filter, which can let the channel
> +to monitor the individual IP module in SoC.
> +
> +The following keywords are the filter:
> +
> ++ arm - DDR access request from CPU
> ++ vpu_read1 - DDR access request from OSD + VPP read
> ++ gpu - DDR access request from 3D GPU
> ++ pcie - DDR access request from PCIe controller
> ++ hdcp - DDR access request from HDCP controller
> ++ hevc_front - DDR access request from HEVC codec front end
> ++ usb3_0 - DDR access request from USB3.0 controller
> ++ hevc_back - DDR access request from HEVC codec back end
> ++ h265enc - DDR access request from HEVC encoder
> ++ vpu_read2 - DDR access request from DI read
> ++ vpu_write1 - DDR access request from VDIN write
> ++ vpu_write2 - DDR access request from di write
> ++ vdec - DDR access request from legacy codec video decoder
> ++ hcodec - DDR access request from H264 encoder
> ++ ge2d - DDR access request from ge2d
> ++ spicc1 - DDR access request from SPI controller 1
> ++ usb0 - DDR access request from USB2.0 controller 0
> ++ dma - DDR access request from system DMA controller 1
> ++ arb0 - DDR access request from arb0
> ++ sd_emmc_b - DDR access request from SD eMMC b controller
> ++ usb1 - DDR access request from USB2.0 controller 1
> ++ audio - DDR access request from Audio module
> ++ sd_emmc_c - DDR access request from SD eMMC c controller
> ++ spicc2 - DDR access request from SPI controller 2
> ++ ethernet - DDR access request from Ethernet controller
> +
> +
> +The following command is to show the total DDR bandwidth:
> +
> + .. code-block:: bash
> +
> + perf stat -a -e meson_ddr_bw/total_rw_bytes/ -I 1000 sleep 10
> +
> +This command will print the total DDR bandwidth per second.
> +
> +The following commands are to show how to use filter parameters:
> +
> + .. code-block:: bash
> +
> + perf stat -a -e meson_ddr_bw/chan_1_rw_bytes,arm=1/ -I 1000 sleep 10
> + perf stat -a -e meson_ddr_bw/chan_2_rw_bytes,gpu=1/ -I 1000 sleep 10
> + perf stat -a -e meson_ddr_bw/chan_3_rw_bytes,arm=1,gpu=1/ -I 1000 sleep 10
> +
> +The 1st command show how to use channel 1 to monitor the DDR bandwidth from ARM.
> +The 2nd command show using channel 2 to get the DDR bandwidth of GPU.
> +The 3rd command show using channel 3 to monitor the sum of ARM and GPU.
The wordings are rather weird, so I need to improve the doc:
---- >8 ----
diff --git a/Documentation/admin-guide/perf/meson-ddr-pmu.rst b/Documentation/admin-guide/perf/meson-ddr-pmu.rst
index 15e93a751ced8a..4a1fdb5aba4b24 100644
--- a/Documentation/admin-guide/perf/meson-ddr-pmu.rst
+++ b/Documentation/admin-guide/perf/meson-ddr-pmu.rst
@@ -4,11 +4,12 @@
Amlogic SoC DDR Bandwidth Performance Monitoring Unit (PMU)
===========================================================
-There is a bandwidth monitor inside the DRAM controller. The monitor includes
-4 channels which can count the read/write request of accessing DRAM individually.
-It can be helpful to show if the performance bottleneck is on DDR bandwidth.
+The Amlogic Meson G12 SoC contains a bandwidth monitor inside DRAM controller.
+The monitor includes 4 channels which can count the read/write request of
+individual DRAM. It can be helpful to show if the performance bottleneck is on
+DDR bandwidth.
-Currently, this driver supports the following 5 Perf events:
+Currently, this driver supports the following 5 perf events:
+ meson_ddr_bw/total_rw_bytes/
+ meson_ddr_bw/chan_1_rw_bytes/
@@ -16,55 +17,54 @@ Currently, this driver supports the following 5 Perf events:
+ meson_ddr_bw/chan_3_rw_bytes/
+ meson_ddr_bw/chan_4_rw_bytes/
-meson_ddr_bw/chan_{1,2,3,4}_rw_bytes/ events are the channel related events.
-Each channel support using keywords as filter, which can let the channel
-to monitor the individual IP module in SoC.
+meson_ddr_bw/chan_{1,2,3,4}_rw_bytes/ events are channel-specific events.
+Each channel support filtering, which can let the channel to monitor
+individual IP module in SoC.
-The following keywords are the filter:
+Below are DDR access request event filter keywords:
-+ arm - DDR access request from CPU
-+ vpu_read1 - DDR access request from OSD + VPP read
-+ gpu - DDR access request from 3D GPU
-+ pcie - DDR access request from PCIe controller
-+ hdcp - DDR access request from HDCP controller
-+ hevc_front - DDR access request from HEVC codec front end
-+ usb3_0 - DDR access request from USB3.0 controller
-+ hevc_back - DDR access request from HEVC codec back end
-+ h265enc - DDR access request from HEVC encoder
-+ vpu_read2 - DDR access request from DI read
-+ vpu_write1 - DDR access request from VDIN write
-+ vpu_write2 - DDR access request from di write
-+ vdec - DDR access request from legacy codec video decoder
-+ hcodec - DDR access request from H264 encoder
-+ ge2d - DDR access request from ge2d
-+ spicc1 - DDR access request from SPI controller 1
-+ usb0 - DDR access request from USB2.0 controller 0
-+ dma - DDR access request from system DMA controller 1
-+ arb0 - DDR access request from arb0
-+ sd_emmc_b - DDR access request from SD eMMC b controller
-+ usb1 - DDR access request from USB2.0 controller 1
-+ audio - DDR access request from Audio module
-+ sd_emmc_c - DDR access request from SD eMMC c controller
-+ spicc2 - DDR access request from SPI controller 2
-+ ethernet - DDR access request from Ethernet controller
++ arm - from CPU
++ vpu_read1 - from OSD + VPP read
++ gpu - from 3D GPU
++ pcie - from PCIe controller
++ hdcp - from HDCP controller
++ hevc_front - from HEVC codec front end
++ usb3_0 - from USB3.0 controller
++ hevc_back - from HEVC codec back end
++ h265enc - from HEVC encoder
++ vpu_read2 - from DI read
++ vpu_write1 - from VDIN write
++ vpu_write2 - from di write
++ vdec - from legacy codec video decoder
++ hcodec - from H264 encoder
++ ge2d - from ge2d
++ spicc1 - from SPI controller 1
++ usb0 - from USB2.0 controller 0
++ dma - from system DMA controller 1
++ arb0 - from arb0
++ sd_emmc_b - from SD eMMC b controller
++ usb1 - from USB2.0 controller 1
++ audio - from Audio module
++ sd_emmc_c - from SD eMMC c controller
++ spicc2 - from SPI controller 2
++ ethernet - from Ethernet controller
-The following command is to show the total DDR bandwidth:
+Examples:
- .. code-block:: bash
+ + Show the total DDR bandwidth per seconds:
- perf stat -a -e meson_ddr_bw/total_rw_bytes/ -I 1000 sleep 10
+ .. code-block:: bash
-This command will print the total DDR bandwidth per second.
+ perf stat -a -e meson_ddr_bw/total_rw_bytes/ -I 1000 sleep 10
-The following commands are to show how to use filter parameters:
- .. code-block:: bash
+ + Show individual DDR bandwidth from CPU and GPU respectively, as well as
+ sum of them:
- perf stat -a -e meson_ddr_bw/chan_1_rw_bytes,arm=1/ -I 1000 sleep 10
- perf stat -a -e meson_ddr_bw/chan_2_rw_bytes,gpu=1/ -I 1000 sleep 10
- perf stat -a -e meson_ddr_bw/chan_3_rw_bytes,arm=1,gpu=1/ -I 1000 sleep 10
+ .. code-block:: bash
+
+ perf stat -a -e meson_ddr_bw/chan_1_rw_bytes,arm=1/ -I 1000 sleep 10
+ perf stat -a -e meson_ddr_bw/chan_2_rw_bytes,gpu=1/ -I 1000 sleep 10
+ perf stat -a -e meson_ddr_bw/chan_3_rw_bytes,arm=1,gpu=1/ -I 1000 sleep 10
-The 1st command show how to use channel 1 to monitor the DDR bandwidth from ARM.
-The 2nd command show using channel 2 to get the DDR bandwidth of GPU.
-The 3rd command show using channel 3 to monitor the sum of ARM and GPU.
Thanks.
--
An old man doll... just what I always wanted! - Clara
[-- Attachment #1.2: signature.asc --]
[-- Type: application/pgp-signature, Size: 228 bytes --]
[-- Attachment #2: Type: text/plain, Size: 176 bytes --]
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next prev parent reply other threads:[~2022-11-16 9:41 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-11-16 0:31 [PATCH v10 1/2] perf/amlogic: Add support for Amlogic meson G12 SoC DDR PMU driver Jiucheng Xu
2022-11-16 0:31 ` Jiucheng Xu
2022-11-16 0:31 ` Jiucheng Xu
2022-11-16 0:31 ` [PATCH v10 2/2] docs/perf: Add documentation for the Amlogic G12 DDR PMU Jiucheng Xu
2022-11-16 0:31 ` Jiucheng Xu
2022-11-16 0:31 ` Jiucheng Xu
2022-11-16 9:40 ` Bagas Sanjaya [this message]
2022-11-16 9:40 ` Bagas Sanjaya
2022-11-16 9:40 ` Bagas Sanjaya
2022-11-16 9:56 ` Jiucheng Xu
2022-11-16 9:56 ` Jiucheng Xu
2022-11-16 9:56 ` Jiucheng Xu
2022-11-16 13:41 ` Bagas Sanjaya
2022-11-16 13:41 ` Bagas Sanjaya
2022-11-16 13:41 ` Bagas Sanjaya
2022-11-16 8:47 ` [PATCH v10 1/2] perf/amlogic: Add support for Amlogic meson G12 SoC DDR PMU driver Bagas Sanjaya
2022-11-16 8:47 ` Bagas Sanjaya
2022-11-16 8:47 ` Bagas Sanjaya
2022-11-16 9:49 ` Jiucheng Xu
2022-11-16 9:49 ` Jiucheng Xu
2022-11-16 9:49 ` Jiucheng Xu
2022-11-16 9:12 ` Neil Armstrong
2022-11-16 9:12 ` Neil Armstrong
2022-11-16 9:12 ` Neil Armstrong
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=Y3SwIPnDvEOlL+Mz@debian.me \
--to=bagasdotme@gmail.com \
--cc=corbet@lwn.net \
--cc=cphealy@gmail.com \
--cc=healych@amazon.com \
--cc=jbrunet@baylibre.com \
--cc=jianxin.pan@amlogic.com \
--cc=jiucheng.xu@amlogic.com \
--cc=john.garry@huawei.com \
--cc=kelvin.zhang@amlogic.com \
--cc=khilman@baylibre.com \
--cc=linux-amlogic@lists.infradead.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-doc@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mark.rutland@arm.com \
--cc=martin.blumenstingl@googlemail.com \
--cc=neil.armstrong@linaro.org \
--cc=wanjiabing@vivo.com \
--cc=will@kernel.org \
--cc=xueshuai@linux.alibaba.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.