From 95971221361d45ddfe6d0feb8b595a8fac7492c8 Mon Sep 17 00:00:00 2001 From: Przemyslaw Wirkus <przemyslaw.wirkus@linaro.org> Date: Tue, 7 Nov 2023 10:32:18 +0000 Subject: [PATCH 01/17] wperf: bump release version to 3.2.1 --- content/install-guides/wperf.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/content/install-guides/wperf.md b/content/install-guides/wperf.md index 1d264acef..8908abb73 100644 --- a/content/install-guides/wperf.md +++ b/content/install-guides/wperf.md @@ -57,15 +57,15 @@ https://gitlab.com/Linaro/WindowsPerf/windowsperf/-/releases To download directly from command prompt, use: ```console -mkdir windowsperf-bin-3.2.0 -cd windowsperf-bin-3.2.0 -curl https://gitlab.com/api/v4/projects/40381146/packages/generic/windowsperf/3.2.0/windowsperf-bin-3.2.0.zip --output windowsperf-bin-3.2.0.zip +mkdir windowsperf-bin-3.2.1 +cd windowsperf-bin-3.2.1 +curl https://gitlab.com/api/v4/projects/40381146/packages/generic/windowsperf/3.2.1/windowsperf-bin-3.2.1.zip --output windowsperf-bin-3.2.1.zip ``` Unzip the package: ```console -tar -xmf windowsperf-bin-3.2.0.zip +tar -xmf windowsperf-bin-3.2.1.zip ``` ## Install wperf driver @@ -80,7 +80,7 @@ Open a `Windows Command Prompt` terminal with `Run as administrator` enabled. Navigate to the `windowsperf-bin-<version>` directory. ```command -cd windowsperf-bin-3.2.0 +cd windowsperf-bin-3.2.1 ``` ### Install with devcon {#devcon} @@ -133,11 +133,11 @@ cd .. wperf --version ``` You should see output similar to: -```output +```console Component Version GitVer ========= ======= ====== -wperf 3.2.0 a947eed8 -wperf-driver 3.2.0 a947eed8 +wperf 3.2.1 c831cfc2 +wperf-driver 3.2.1 c831cfc2 ``` ## Further reading From ee9e12e2c8ebfa0e491dee70fe2d43782a00e6d8 Mon Sep 17 00:00:00 2001 From: Przemyslaw Wirkus <przemyslaw.wirkus@linaro.org> Date: Tue, 7 Nov 2023 10:33:12 +0000 Subject: [PATCH 02/17] wperf: use 'console' block to avoid empty new lines in command line output --- content/install-guides/wperf.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/content/install-guides/wperf.md b/content/install-guides/wperf.md index 8908abb73..5ccb7f2aa 100644 --- a/content/install-guides/wperf.md +++ b/content/install-guides/wperf.md @@ -93,7 +93,7 @@ devcon install wperf-driver.inf Root\WPERFDRIVER ``` You will see output similar to: -```output +```console Device node created. Install is complete when drivers are installed... Updating drivers for Root\WPERFDRIVER from <path>\wperf-driver.inf. Drivers installed successfully. @@ -111,7 +111,7 @@ cd wperf-driver wperf-devgen install ``` You will see output similar to: -```output +```console Executing command: install. Install requested. Waiting for device creation... From 3adfd4e06c2cdda465f85ac5d3d38787ea36411e Mon Sep 17 00:00:00 2001 From: Przemyslaw Wirkus <przemyslaw.wirkus@linaro.org> Date: Tue, 7 Nov 2023 10:45:22 +0000 Subject: [PATCH 03/17] wperf: add 'Uninstall wperf driver' section --- content/install-guides/wperf.md | 37 +++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/content/install-guides/wperf.md b/content/install-guides/wperf.md index 5ccb7f2aa..446c154c5 100644 --- a/content/install-guides/wperf.md +++ b/content/install-guides/wperf.md @@ -139,6 +139,43 @@ Component Version GitVer wperf 3.2.1 c831cfc2 wperf-driver 3.2.1 c831cfc2 ``` + +## Uninstall wperf driver + +You can uninstall (aka "remove") the kernel driver using either the Visual Studio [devcon](#devcon) utility or the supplied [installer](#devgen). + +{{% notice Note%}} +You must uninstall the driver as `Administrator`. +{{% /notice %}} + +### Uninstall with devcon {#devcon} + +Below command removes the device from the device tree and deletes the device stack for the device. As a result of these actions, child devices are removed from the device tree and the drivers that support the device are unloaded. See [DevCon Remove](https://learn.microsoft.com/en-us/windows-hardware/drivers/devtest/devcon-remove) article for more details. + +```command +devcon remove wperf-driver.inf Root\WPERFDRIVER +``` +You should see output similar to: +```console +ROOT\SYSTEM\0001 : Removed +1 device(s) were removed. +``` + +### Uninstall with wperf-devgen {#devgen} + +```command +wperf-devgen uninstall +``` +You should see output similar to: +```console +Executing command: uninstall. +Uninstall requested. +Waiting for device creation... +Device uninstalled successfully. +Trying to remove driver <path>\wperf-driver.inf. +Driver removed successfully. +``` + ## Further reading [Announcing WindowsPerf: Open-source performance analysis tool for Windows on Arm](https://community.arm.com/arm-community-blogs/b/infrastructure-solutions-blog/posts/announcing-windowsperf) From 3909d62a9118012b217bbba78383f3413a5157bc Mon Sep 17 00:00:00 2001 From: Przemyslaw Wirkus <przemyslaw.wirkus@linaro.org> Date: Tue, 7 Nov 2023 12:06:45 +0000 Subject: [PATCH 04/17] wperf: add links to current WindowsPerf blogs --- .../laptops-and-desktops/windowsperf/_next-steps.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/content/learning-paths/laptops-and-desktops/windowsperf/_next-steps.md b/content/learning-paths/laptops-and-desktops/windowsperf/_next-steps.md index 891b638ee..ef9cff9ad 100644 --- a/content/learning-paths/laptops-and-desktops/windowsperf/_next-steps.md +++ b/content/learning-paths/laptops-and-desktops/windowsperf/_next-steps.md @@ -19,6 +19,18 @@ further_reading: title: Announcing WindowsPerf Open-source performance analysis tool for Windows on Arm link: https://community.arm.com/arm-community-blogs/b/infrastructure-solutions-blog/posts/announcing-windowsperf type: blog + - resource: + title: WindowsPerf release 2.4.0 introduces the first stable version of sampling model support + link: https://www.linaro.org/blog/windowsperf-release-2-4-0-introduces-the-first-stable-version-of-sampling-model-support/ + type: blog + - resource: + title: WindowsPerf Release 2.5.1 + link: https://www.linaro.org/blog/windowsperf-release-2-5-1/ + type: blog + - resource: + title: WindowsPerf Release 3.0.0 + link: https://www.linaro.org/blog/windowsperf-release-3-0-0/ + type: blog - resource: title: Windows on Arm overview link: https://learn.microsoft.com/en-us/windows/arm/overview From 45276ef535694acd66906342d46777c2f3810c8d Mon Sep 17 00:00:00 2001 From: pareenaverma <pareena.verma@arm.com> Date: Tue, 7 Nov 2023 13:29:41 -0500 Subject: [PATCH 05/17] Updated wperf.md to revert to output where applicable --- content/install-guides/wperf.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/content/install-guides/wperf.md b/content/install-guides/wperf.md index 446c154c5..3eb598b0e 100644 --- a/content/install-guides/wperf.md +++ b/content/install-guides/wperf.md @@ -93,7 +93,7 @@ devcon install wperf-driver.inf Root\WPERFDRIVER ``` You will see output similar to: -```console +```output Device node created. Install is complete when drivers are installed... Updating drivers for Root\WPERFDRIVER from <path>\wperf-driver.inf. Drivers installed successfully. @@ -111,7 +111,7 @@ cd wperf-driver wperf-devgen install ``` You will see output similar to: -```console +```output Executing command: install. Install requested. Waiting for device creation... @@ -133,7 +133,7 @@ cd .. wperf --version ``` You should see output similar to: -```console +```output Component Version GitVer ========= ======= ====== wperf 3.2.1 c831cfc2 @@ -156,7 +156,7 @@ Below command removes the device from the device tree and deletes the device sta devcon remove wperf-driver.inf Root\WPERFDRIVER ``` You should see output similar to: -```console +```output ROOT\SYSTEM\0001 : Removed 1 device(s) were removed. ``` From 7a3eb8ce81a320ebb75c4270ac7a80e10730466b Mon Sep 17 00:00:00 2001 From: RonanSynnottArm <Ronan.Synnott@arm.com> Date: Wed, 8 Nov 2023 05:43:17 +0000 Subject: [PATCH 06/17] updates to flexnet install guide --- content/install-guides/license/flexnet.md | 41 ++++++++++++++++++++--- 1 file changed, 37 insertions(+), 4 deletions(-) diff --git a/content/install-guides/license/flexnet.md b/content/install-guides/license/flexnet.md index 4313cbed6..e81933bde 100644 --- a/content/install-guides/license/flexnet.md +++ b/content/install-guides/license/flexnet.md @@ -11,7 +11,9 @@ multi_install: false # Set to true if first page of multi-page articl multitool_install_part: true # Set to true if a sub-page of a multi-page article, else false layout: installtoolsall # DO NOT MODIFY. Always true for tool install articles --- -Older Arm products do not support UBL licenses. These will be enabled with FlexNet Publisher floating licenses. You will be supplied with license key(s) to generate your license(s). +Older Arm products do not support user-based licenses. These will be enabled with FlexNet Publisher floating licenses. + +You will be supplied with license key(s) to generate such license(s). ## License server set up @@ -55,11 +57,42 @@ export ARMLMD_LICENSE_FILE=port@server The license can also be activated in the various Arm tool IDEs. -For example [Arm Development Studio](https://developer.arm.com/Tools%20and%20Software/Arm%20Development%20Studio)), via `Help` > `Arm License Manager`. You will need to specify the appropriate Development Studio Edition as the `Active Product`. +For example [Arm Development Studio](https://developer.arm.com/Tools%20and%20Software/Arm%20Development%20Studio)), via `Help` > `Arm License Manager`. + +If `ARMLMD_LICENSE_FILE` is not set, use `Add` > `Add product license`, and specify `port` and `server` information for your license server. + +Arm Development Studio will also ask to specify the appropriate [Edition](https://developer.arm.com/Tools%20and%20Software/Arm%20Development%20Studio#Editions) as the `Active Product`. ### Verify setup -To verify that the license is set up correctly, execute an Arm tool that does not support user-based licensing, for example: +To verify that the license is set up correctly, set the following environment variable: + +#### Windows +```console +set FLEXLM_DIAGNOSTICS=3 +``` +#### Linux +```console +export FLEXLM_DIAGNOSTICS=3 +``` + +and execute an appropriate Arm tool, for example `Arm Compiler for Embedded`: ```command -armcc --vsn +armclang --version ``` + +Observe the output, which will be similar to: +```output +Checkout succeeded: ds_suite_rowan/04C6 0E2A CDA4 6344 + License file: port@server + License Server: port@server +Checkout succeeded: ds_compiler_rowan/141D C968 2E7F 4187 + License file: port@server + License Server: port@server +Product: Arm Development Studio Gold Edition 2023.0 +Component: Arm Compiler for Embedded 6.20 +``` + +{{% notice Note %}} +Unset the `FLEXLM_DIAGNOSTICS` environment variable afterwards, as this will impact the tools performance. +{{% /notice %}} From 979f4219da58ef815c185e04347f2bf1878b7bb8 Mon Sep 17 00:00:00 2001 From: Przemyslaw Wirkus <przemyslaw.wirkus@linaro.org> Date: Wed, 8 Nov 2023 10:01:08 +0000 Subject: [PATCH 07/17] wperf: fix misleading intro to WindowsPerf --- .../windowsperf/windowsperf.md | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/content/learning-paths/laptops-and-desktops/windowsperf/windowsperf.md b/content/learning-paths/laptops-and-desktops/windowsperf/windowsperf.md index 6b9cdeb30..c4f7a427f 100644 --- a/content/learning-paths/laptops-and-desktops/windowsperf/windowsperf.md +++ b/content/learning-paths/laptops-and-desktops/windowsperf/windowsperf.md @@ -3,10 +3,25 @@ layout: learningpathall title: WindowsPerf weight: 2 --- -[WindowsPerf](https://gitlab.com/Linaro/WindowsPerf/windowsperf) is a port of the popular Linux [perf](https://perf.wiki.kernel.org) tool for performance analysis. + +# Overview + +[WindowsPerf](https://gitlab.com/Linaro/WindowsPerf/windowsperf) is (Linux [perf]([perf](https://perf.wiki.kernel.org)) inspired) Windows on Arm performance profiling tool. Profiling is based on ARM64 PMU and its hardware counters. WindowsPerf already supports the counting model for obtaining aggregate counts of occurrences of special events, and sampling model for determining the frequencies of event occurrences produced by program locations at the function, basic block, and/or instruction levels. Learn more in this [blog](https://community.arm.com/arm-community-blogs/b/infrastructure-solutions-blog/posts/announcing-windowsperf) announcing the first release. +## WindowsPerf architecture + +`WindowsPerf` is composed of two main components: +- [wperf](https://gitlab.com/Linaro/WindowsPerf/windowsperf/-/tree/main/wperf) a command line interface (CLI) sometimes refereed as "user-space app" and +- [wperf-driver](https://gitlab.com/Linaro/WindowsPerf/windowsperf/-/tree/main/wperf-driver). `wperf-driver` is a (signed) Kernel-Mode Driver Framework (KMDF) driver. + +## WindowsPerf releases + +You can find all binary releases of `WindowsPerf` [here](https://gitlab.com/Linaro/WindowsPerf/windowsperf/-/releases). + +# Installation + For installation instructions see the [install guide](/install-guides/wperf). ## Using WindowsPerf From d6ceacddbe817201cc4ffc39b4a69a3e8b42dab0 Mon Sep 17 00:00:00 2001 From: Przemyslaw Wirkus <przemyslaw.wirkus@linaro.org> Date: Tue, 7 Nov 2023 11:06:49 +0000 Subject: [PATCH 08/17] wperf: s/output/console/ to avoid extra empty new lines in console text --- .../laptops-and-desktops/windowsperf/windowsperf.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/learning-paths/laptops-and-desktops/windowsperf/windowsperf.md b/content/learning-paths/laptops-and-desktops/windowsperf/windowsperf.md index 6b9cdeb30..5d82d0c17 100644 --- a/content/learning-paths/laptops-and-desktops/windowsperf/windowsperf.md +++ b/content/learning-paths/laptops-and-desktops/windowsperf/windowsperf.md @@ -27,7 +27,7 @@ wperf list The output should be similar to: -```output +```console List of pre-defined events (to be used in -e) Alias Name Raw Index Event Type From 6abed7144db9ec111157d2ea940d5e062a915cd6 Mon Sep 17 00:00:00 2001 From: Przemyslaw Wirkus <przemyslaw.wirkus@linaro.org> Date: Tue, 7 Nov 2023 11:09:59 +0000 Subject: [PATCH 09/17] wperf: update depricated example with -d command line option --- .../windowsperf/windowsperf.md | 21 ++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/content/learning-paths/laptops-and-desktops/windowsperf/windowsperf.md b/content/learning-paths/laptops-and-desktops/windowsperf/windowsperf.md index 5d82d0c17..e6c16162f 100644 --- a/content/learning-paths/laptops-and-desktops/windowsperf/windowsperf.md +++ b/content/learning-paths/laptops-and-desktops/windowsperf/windowsperf.md @@ -50,20 +50,27 @@ List of supported metrics (to be used in -m) Specify the `event` to profile with `-e`. Groups of events, known as `metrics` can be specified with `-m`. -For example, generate a report for Core 0 (`-c 0`) for two seconds (`-d 2`) with: +For example, generate a report for CPU core 0 (`-c 0`) for two seconds (`sleep 2`) with: ```command -wperf stat -e cpu_cycles -m icache -c 0 -d 2 +wperf stat -e cpu_cycles -m icache -c 0 sleep 2 ``` This will output a report similar to: ```output +counting ... done + +Performance counter stats for core 0, no multiplexing, kernel mode excluded, on Arm Limited core implementation: +note: 'e' - normal event, 'gN' - grouped event with group number N, metric name will be appended if 'e' or 'g' comes from it + counter value event name event idx event note ============= ========== ========= ========== - 649,973,325 cycle fixed e - 277,788,076 l1i_cache 0x14 g0,icache - 7,415,699 l1i_cache_refill 0x01 g0,icache + 7,408,075 cycle fixed e + 2,271,166 l1i_cache 0x14 g0,icache + 126,875 l1i_cache_refill 0x01 g0,icache 0 l2i_cache 0x27 g0,icache 0 l2i_cache_refill 0x28 g0,icache - 813,129,394 inst_retired 0x08 g0,icache - 649,973,325 cpu_cycles 0x11 e + 6,247,674 inst_retired 0x08 g0,icache + 7,408,075 cpu_cycles 0x11 e + + 2.281 seconds time elapsed ``` Example use cases are provided in the WindowsPerf [documentation](https://gitlab.com/Linaro/WindowsPerf/windowsperf/-/blob/main/wperf/README.md#counting-model). From eb77df8e4f3d904c90ee4ff06cc8b02871b4c379 Mon Sep 17 00:00:00 2001 From: Przemyslaw Wirkus <przemyslaw.wirkus@linaro.org> Date: Tue, 7 Nov 2023 11:21:58 +0000 Subject: [PATCH 10/17] wperf: add 'Obtain information about wperf configuration' chapter --- .../windowsperf/windowsperf.md | 49 ++++++++++++++++++- 1 file changed, 48 insertions(+), 1 deletion(-) diff --git a/content/learning-paths/laptops-and-desktops/windowsperf/windowsperf.md b/content/learning-paths/laptops-and-desktops/windowsperf/windowsperf.md index e6c16162f..cc22e2091 100644 --- a/content/learning-paths/laptops-and-desktops/windowsperf/windowsperf.md +++ b/content/learning-paths/laptops-and-desktops/windowsperf/windowsperf.md @@ -46,6 +46,47 @@ List of supported metrics (to be used in -m) ... ``` +## Obtain information about wperf configuration + +Command line option `test` prints on screen various `wperf` configuration settings: + +```command +wperf test +``` + +```console + Test Name Result + ========= ====== + request.ioctl_events [EVT_CORE] False + request.ioctl_events [EVT_DSU] False + request.ioctl_events [EVT_DMC_CLK/EVT_DMC_CLKDIV2] False + pmu_device.vendor_name Arm Limited + pmu_device.product_name neoverse-n1 + pmu_device.product_name(extended) Neoverse N1 (neoverse-n1), armv8.1, pmu_v3 + pmu_device.product [] armv8-a,armv9-a,neoverse-n1,neoverse-n2,neoverse-n2-r0p0,neoverse-n2-r0p1,neoverse-n2-r0p3,neoverse-v1 + pmu_device.m_product_alias (neoverse-n2-r0p0:neoverse-n2),(neoverse-n2-r0p1:neoverse-n2) + pmu_device.events_query(events) [EVT_CORE] 110 + pmu_device.events_query(events) [EVT_DSU] 9 + pmu_device.events_query(events) [EVT_DMC_CLK] 3 + pmu_device.events_query(events) [EVT_DMC_CLKDIV2] 26 + PMU_CTL_QUERY_HW_CFG [arch_id] 0x000f + PMU_CTL_QUERY_HW_CFG [core_num] 0x0050 + PMU_CTL_QUERY_HW_CFG [fpc_num] 0x0001 + PMU_CTL_QUERY_HW_CFG [gpc_num] 0x0006 + PMU_CTL_QUERY_HW_CFG [total_gpc_num] 0x0006 + PMU_CTL_QUERY_HW_CFG [part_id] 0x0d0c + PMU_CTL_QUERY_HW_CFG [pmu_ver] 0x0004 + PMU_CTL_QUERY_HW_CFG [rev_id] 0x0001 + PMU_CTL_QUERY_HW_CFG [variant_id] 0x0003 + PMU_CTL_QUERY_HW_CFG [vendor_id] 0x0041 + PMU_CTL_QUERY_HW_CFG [midr_value] 0x000000000000413fd0c1 +... +``` + +{{% notice Note%}} +You can output `wperf test` command in JSON format. Use `--json` command line option to enable JSON output. +{{% /notice %}} + ## Generate sample profile Specify the `event` to profile with `-e`. Groups of events, known as `metrics` can be specified with `-m`. @@ -55,7 +96,7 @@ For example, generate a report for CPU core 0 (`-c 0`) for two seconds (`sleep 2 wperf stat -e cpu_cycles -m icache -c 0 sleep 2 ``` This will output a report similar to: -```output +```console counting ... done Performance counter stats for core 0, no multiplexing, kernel mode excluded, on Arm Limited core implementation: @@ -73,4 +114,10 @@ note: 'e' - normal event, 'gN' - grouped event with group number N, metric name 2.281 seconds time elapsed ``` + +{{% notice Note%}} +You can output `wperf stat` command in JSON format. Use `--json` command line option to enable JSON output. +{{% /notice %}} + + Example use cases are provided in the WindowsPerf [documentation](https://gitlab.com/Linaro/WindowsPerf/windowsperf/-/blob/main/wperf/README.md#counting-model). From 7a60d6df0e4b6b94daa8668dfafcafca3530605d Mon Sep 17 00:00:00 2001 From: Przemyslaw Wirkus <przemyslaw.wirkus@linaro.org> Date: Tue, 7 Nov 2023 11:24:07 +0000 Subject: [PATCH 11/17] wperf: add note to list command --- .../laptops-and-desktops/windowsperf/windowsperf.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/content/learning-paths/laptops-and-desktops/windowsperf/windowsperf.md b/content/learning-paths/laptops-and-desktops/windowsperf/windowsperf.md index cc22e2091..0aad95a1c 100644 --- a/content/learning-paths/laptops-and-desktops/windowsperf/windowsperf.md +++ b/content/learning-paths/laptops-and-desktops/windowsperf/windowsperf.md @@ -46,6 +46,10 @@ List of supported metrics (to be used in -m) ... ``` +{{% notice Note%}} +You can extend `wperf list` command output with additional information like event and metrics description with `-v` command line option. +{{% /notice %}} + ## Obtain information about wperf configuration Command line option `test` prints on screen various `wperf` configuration settings: From b92025a05d8c9077c2c5d783b2c94b0a70c65bdc Mon Sep 17 00:00:00 2001 From: Przemyslaw Wirkus <przemyslaw.wirkus@linaro.org> Date: Tue, 7 Nov 2023 11:30:00 +0000 Subject: [PATCH 12/17] wperf: add JSON format review question. --- .../laptops-and-desktops/windowsperf/_review.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/content/learning-paths/laptops-and-desktops/windowsperf/_review.md b/content/learning-paths/laptops-and-desktops/windowsperf/_review.md index 520f5349f..0c7053c5b 100644 --- a/content/learning-paths/laptops-and-desktops/windowsperf/_review.md +++ b/content/learning-paths/laptops-and-desktops/windowsperf/_review.md @@ -31,6 +31,17 @@ review: explanation: > Use `-c` to specify the processor(s) in the system you wish to profile. + - questions: + question: > + WindowsPerf can output data in JSON format with `--json` command line option. + answers: + - "True" + - "False" + correct_answer: 1 + explanation: > + Some `wperf` commands such as `list`, `test` or `stat` (and few more!) can output data in JSON format. + + # ================================================================================ # FIXED, DO NOT MODIFY # ================================================================================ From b129a5ed459d4993b2a0112590b0ab6d0d5bda08 Mon Sep 17 00:00:00 2001 From: Przemyslaw Wirkus <przemyslaw.wirkus@linaro.org> Date: Wed, 8 Nov 2023 10:43:36 +0000 Subject: [PATCH 13/17] Revert "wperf: s/output/console/ to avoid extra empty new lines in console text" This reverts commit d6ceacddbe817201cc4ffc39b4a69a3e8b42dab0. --- .../laptops-and-desktops/windowsperf/windowsperf.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/learning-paths/laptops-and-desktops/windowsperf/windowsperf.md b/content/learning-paths/laptops-and-desktops/windowsperf/windowsperf.md index 0aad95a1c..cb90c3369 100644 --- a/content/learning-paths/laptops-and-desktops/windowsperf/windowsperf.md +++ b/content/learning-paths/laptops-and-desktops/windowsperf/windowsperf.md @@ -27,7 +27,7 @@ wperf list The output should be similar to: -```console +```output List of pre-defined events (to be used in -e) Alias Name Raw Index Event Type From 2997d9b72f423a8c1eb575a37704e9bc3519843e Mon Sep 17 00:00:00 2001 From: Przemyslaw Wirkus <przemyslaw.wirkus@linaro.org> Date: Wed, 8 Nov 2023 10:47:48 +0000 Subject: [PATCH 14/17] wperf: revert to using ouptput block --- .../laptops-and-desktops/windowsperf/windowsperf.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/content/learning-paths/laptops-and-desktops/windowsperf/windowsperf.md b/content/learning-paths/laptops-and-desktops/windowsperf/windowsperf.md index cb90c3369..62c25554c 100644 --- a/content/learning-paths/laptops-and-desktops/windowsperf/windowsperf.md +++ b/content/learning-paths/laptops-and-desktops/windowsperf/windowsperf.md @@ -58,7 +58,7 @@ Command line option `test` prints on screen various `wperf` configuration settin wperf test ``` -```console +```output Test Name Result ========= ====== request.ioctl_events [EVT_CORE] False @@ -100,7 +100,7 @@ For example, generate a report for CPU core 0 (`-c 0`) for two seconds (`sleep 2 wperf stat -e cpu_cycles -m icache -c 0 sleep 2 ``` This will output a report similar to: -```console +```output counting ... done Performance counter stats for core 0, no multiplexing, kernel mode excluded, on Arm Limited core implementation: From 8bcb237bc81d44a168c09a99a45475366bcbdb58 Mon Sep 17 00:00:00 2001 From: pareenaverma <pareena.verma@arm.com> Date: Wed, 8 Nov 2023 09:00:38 -0500 Subject: [PATCH 15/17] Update windowsperf.md --- .../laptops-and-desktops/windowsperf/windowsperf.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/content/learning-paths/laptops-and-desktops/windowsperf/windowsperf.md b/content/learning-paths/laptops-and-desktops/windowsperf/windowsperf.md index c4f7a427f..15b754568 100644 --- a/content/learning-paths/laptops-and-desktops/windowsperf/windowsperf.md +++ b/content/learning-paths/laptops-and-desktops/windowsperf/windowsperf.md @@ -6,14 +6,14 @@ weight: 2 # Overview -[WindowsPerf](https://gitlab.com/Linaro/WindowsPerf/windowsperf) is (Linux [perf]([perf](https://perf.wiki.kernel.org)) inspired) Windows on Arm performance profiling tool. Profiling is based on ARM64 PMU and its hardware counters. WindowsPerf already supports the counting model for obtaining aggregate counts of occurrences of special events, and sampling model for determining the frequencies of event occurrences produced by program locations at the function, basic block, and/or instruction levels. +[WindowsPerf](https://gitlab.com/Linaro/WindowsPerf/windowsperf) is (Linux [perf]([perf](https://perf.wiki.kernel.org)) inspired) Windows on Arm performance profiling tool. Profiling is based on ARM64 PMU and its hardware counters. WindowsPerf supports the counting model for obtaining aggregate counts of occurrences of special events, and sampling model for determining the frequencies of event occurrences produced by program locations at the function, basic block, and/or instruction levels. Learn more in this [blog](https://community.arm.com/arm-community-blogs/b/infrastructure-solutions-blog/posts/announcing-windowsperf) announcing the first release. ## WindowsPerf architecture `WindowsPerf` is composed of two main components: -- [wperf](https://gitlab.com/Linaro/WindowsPerf/windowsperf/-/tree/main/wperf) a command line interface (CLI) sometimes refereed as "user-space app" and +- [wperf](https://gitlab.com/Linaro/WindowsPerf/windowsperf/-/tree/main/wperf) a command line interface (CLI) sometimes referred as "user-space app" and - [wperf-driver](https://gitlab.com/Linaro/WindowsPerf/windowsperf/-/tree/main/wperf-driver). `wperf-driver` is a (signed) Kernel-Mode Driver Framework (KMDF) driver. ## WindowsPerf releases From b09dcdb9ec41627c915facb92a1dc296305bafc8 Mon Sep 17 00:00:00 2001 From: pareenaverma <pareena.verma@arm.com> Date: Wed, 8 Nov 2023 09:06:28 -0500 Subject: [PATCH 16/17] Update _review.md --- .../learning-paths/laptops-and-desktops/windowsperf/_review.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/learning-paths/laptops-and-desktops/windowsperf/_review.md b/content/learning-paths/laptops-and-desktops/windowsperf/_review.md index 0c7053c5b..1e2c8e867 100644 --- a/content/learning-paths/laptops-and-desktops/windowsperf/_review.md +++ b/content/learning-paths/laptops-and-desktops/windowsperf/_review.md @@ -39,7 +39,7 @@ review: - "False" correct_answer: 1 explanation: > - Some `wperf` commands such as `list`, `test` or `stat` (and few more!) can output data in JSON format. + Some `wperf` commands such as `list`, `test` or `stat` can output data in JSON format. # ================================================================================ From 5545e4552f10c31929e83135aea4f733cc68ccca Mon Sep 17 00:00:00 2001 From: pareenaverma <pareena.verma@arm.com> Date: Wed, 8 Nov 2023 14:38:18 +0000 Subject: [PATCH 17/17] Moved restrict LP to be cross-platform in the appropriate categories --- .wordlist.txt | 5 ++++- .../restrict-keyword-c99/_index.md | 7 ++++++- .../restrict-keyword-c99/_next-steps.md | 4 ++-- .../restrict-keyword-c99/_review.md | 0 .../restrict-keyword-c99/restrict-example-sve2.md | 0 .../restrict-keyword-c99/what-is-restrict.md | 0 .../restrict-keyword-c99/when-to-use-restrict.md | 0 .../laptops-and-desktops/windowsperf/windowsperf.md | 2 +- 8 files changed, 13 insertions(+), 5 deletions(-) rename content/learning-paths/{embedded-systems => cross-platform}/restrict-keyword-c99/_index.md (89%) rename content/learning-paths/{embedded-systems => cross-platform}/restrict-keyword-c99/_next-steps.md (80%) rename content/learning-paths/{embedded-systems => cross-platform}/restrict-keyword-c99/_review.md (100%) rename content/learning-paths/{embedded-systems => cross-platform}/restrict-keyword-c99/restrict-example-sve2.md (100%) rename content/learning-paths/{embedded-systems => cross-platform}/restrict-keyword-c99/what-is-restrict.md (100%) rename content/learning-paths/{embedded-systems => cross-platform}/restrict-keyword-c99/when-to-use-restrict.md (100%) diff --git a/.wordlist.txt b/.wordlist.txt index e0aa9c790..5eea79e6d 100644 --- a/.wordlist.txt +++ b/.wordlist.txt @@ -1648,4 +1648,7 @@ prepend initialise ptr LLSoftSecBook -nodeSelector \ No newline at end of file +nodeSelector +KMDF +DevCon + diff --git a/content/learning-paths/embedded-systems/restrict-keyword-c99/_index.md b/content/learning-paths/cross-platform/restrict-keyword-c99/_index.md similarity index 89% rename from content/learning-paths/embedded-systems/restrict-keyword-c99/_index.md rename to content/learning-paths/cross-platform/restrict-keyword-c99/_index.md index e52d14a9d..438f61ded 100644 --- a/content/learning-paths/embedded-systems/restrict-keyword-c99/_index.md +++ b/content/learning-paths/cross-platform/restrict-keyword-c99/_index.md @@ -27,7 +27,12 @@ tools_software_languages: - Coding operatingsystems: - Linux - +shared_path: true +shared_between: + - laptops-and-desktops + - servers-and-cloud-computing + - smartphones-and-mobile + ### FIXED, DO NOT MODIFY # ================================================================================ diff --git a/content/learning-paths/embedded-systems/restrict-keyword-c99/_next-steps.md b/content/learning-paths/cross-platform/restrict-keyword-c99/_next-steps.md similarity index 80% rename from content/learning-paths/embedded-systems/restrict-keyword-c99/_next-steps.md rename to content/learning-paths/cross-platform/restrict-keyword-c99/_next-steps.md index 16c3acfb4..365ebaedf 100644 --- a/content/learning-paths/embedded-systems/restrict-keyword-c99/_next-steps.md +++ b/content/learning-paths/cross-platform/restrict-keyword-c99/_next-steps.md @@ -1,7 +1,7 @@ --- -next_step_guidance: You should now be able to test the `restrict` keyword in your own code. Why not explore these other embedded software learning paths. +next_step_guidance: You should now be able to test the `restrict` keyword in your own code. We recommend exploring the learning path on porting your code to Arm Scalable Vector Extensions as a next step. -recommended_path: /learning-paths/embedded-systems/ +recommended_path: /learning-paths/servers-and-cloud-computing/sve/ further_reading: - resource: diff --git a/content/learning-paths/embedded-systems/restrict-keyword-c99/_review.md b/content/learning-paths/cross-platform/restrict-keyword-c99/_review.md similarity index 100% rename from content/learning-paths/embedded-systems/restrict-keyword-c99/_review.md rename to content/learning-paths/cross-platform/restrict-keyword-c99/_review.md diff --git a/content/learning-paths/embedded-systems/restrict-keyword-c99/restrict-example-sve2.md b/content/learning-paths/cross-platform/restrict-keyword-c99/restrict-example-sve2.md similarity index 100% rename from content/learning-paths/embedded-systems/restrict-keyword-c99/restrict-example-sve2.md rename to content/learning-paths/cross-platform/restrict-keyword-c99/restrict-example-sve2.md diff --git a/content/learning-paths/embedded-systems/restrict-keyword-c99/what-is-restrict.md b/content/learning-paths/cross-platform/restrict-keyword-c99/what-is-restrict.md similarity index 100% rename from content/learning-paths/embedded-systems/restrict-keyword-c99/what-is-restrict.md rename to content/learning-paths/cross-platform/restrict-keyword-c99/what-is-restrict.md diff --git a/content/learning-paths/embedded-systems/restrict-keyword-c99/when-to-use-restrict.md b/content/learning-paths/cross-platform/restrict-keyword-c99/when-to-use-restrict.md similarity index 100% rename from content/learning-paths/embedded-systems/restrict-keyword-c99/when-to-use-restrict.md rename to content/learning-paths/cross-platform/restrict-keyword-c99/when-to-use-restrict.md diff --git a/content/learning-paths/laptops-and-desktops/windowsperf/windowsperf.md b/content/learning-paths/laptops-and-desktops/windowsperf/windowsperf.md index 240087ec5..f1aafd09a 100644 --- a/content/learning-paths/laptops-and-desktops/windowsperf/windowsperf.md +++ b/content/learning-paths/laptops-and-desktops/windowsperf/windowsperf.md @@ -14,7 +14,7 @@ Learn more in this [blog](https://community.arm.com/arm-community-blogs/b/infras `WindowsPerf` is composed of two main components: - [wperf](https://gitlab.com/Linaro/WindowsPerf/windowsperf/-/tree/main/wperf) a command line interface (CLI) sometimes referred as "user-space app" and -- [wperf-driver](https://gitlab.com/Linaro/WindowsPerf/windowsperf/-/tree/main/wperf-driver). `wperf-driver` is a (signed) Kernel-Mode Driver Framework (KMDF) driver. +- [wperf-driver](https://gitlab.com/Linaro/WindowsPerf/windowsperf/-/tree/main/wperf-driver) a (signed) Kernel-Mode Driver Framework (KMDF) driver. ## WindowsPerf releases