|
Revision tags: perseant-exfatfs-base-20250801 netbsd-11-base netbsd-10-1-RELEASE perseant-exfatfs-base-20240630 perseant-exfatfs-base netbsd-9-4-RELEASE netbsd-10-0-RELEASE netbsd-10-0-RC6 netbsd-10-0-RC5 netbsd-10-0-RC4 netbsd-10-0-RC3 netbsd-10-0-RC2 netbsd-10-0-RC1 netbsd-10-base netbsd-9-3-RELEASE cjep_sun2x-base1 cjep_sun2x-base cjep_staticlib_x-base1 netbsd-9-2-RELEASE cjep_staticlib_x-base netbsd-9-1-RELEASE phil-wifi-20200421 phil-wifi-20200411 is-mlppp-base phil-wifi-20200406 netbsd-9-0-RELEASE netbsd-9-0-RC2 netbsd-9-0-RC1 phil-wifi-20191119 netbsd-9-base phil-wifi-20190609 pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930 pgoyette-compat-0906 pgoyette-compat-0728
|
| 1.1 |
15-Jul-2018 |
jmcneill |
branches: 1.1.2; 1.1.4; Add ARMv7 support.
|
|
Revision tags: perseant-exfatfs-base-20250801 netbsd-11-base netbsd-10-1-RELEASE perseant-exfatfs-base-20240630 perseant-exfatfs-base netbsd-9-4-RELEASE netbsd-10-0-RELEASE netbsd-10-0-RC6 netbsd-10-0-RC5 netbsd-10-0-RC4 netbsd-10-0-RC3 netbsd-10-0-RC2 netbsd-10-0-RC1 netbsd-10-base netbsd-9-3-RELEASE cjep_sun2x-base1 cjep_sun2x-base cjep_staticlib_x-base1 netbsd-9-2-RELEASE cjep_staticlib_x-base netbsd-9-1-RELEASE phil-wifi-20200421 phil-wifi-20200411 is-mlppp-base phil-wifi-20200406 netbsd-9-0-RELEASE netbsd-9-0-RC2 netbsd-9-0-RC1 phil-wifi-20191119 netbsd-9-base phil-wifi-20190609 pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930 pgoyette-compat-0906 pgoyette-compat-0728
|
| 1.1 |
15-Jul-2018 |
jmcneill |
branches: 1.1.2; 1.1.4; Add ARMv8 support.
|
|
Revision tags: perseant-exfatfs-base-20250801 netbsd-11-base netbsd-10-1-RELEASE perseant-exfatfs-base-20240630 perseant-exfatfs-base netbsd-9-4-RELEASE netbsd-10-0-RELEASE netbsd-10-0-RC6 netbsd-10-0-RC5 netbsd-10-0-RC4 netbsd-10-0-RC3 netbsd-10-0-RC2 netbsd-10-0-RC1 netbsd-10-base netbsd-9-3-RELEASE cjep_sun2x-base1 cjep_sun2x-base cjep_staticlib_x-base1 netbsd-9-2-RELEASE cjep_staticlib_x-base netbsd-9-1-RELEASE phil-wifi-20200421 phil-wifi-20200411 is-mlppp-base phil-wifi-20200406 netbsd-9-0-RELEASE netbsd-9-0-RC2 netbsd-9-0-RC1 phil-wifi-20191119 netbsd-9-base phil-wifi-20190609 pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930 pgoyette-compat-0906 pgoyette-compat-0728
|
| 1.3 |
14-Jul-2018 |
jmcneill |
branches: 1.3.2; 1.3.4; Mark tprof_event_init, tprof_event_list, tprof_event_lookup as dead
|
| 1.2 |
14-Jul-2018 |
maxv |
specialreg.h is x86-specific, don't include it
|
| 1.1 |
13-Jul-2018 |
maxv |
Revamp tprof.
Rewrite the Intel backend to use the generic PMC interface, which is available on all Intel CPUs. Synchronize the AMD backend with the new interface.
The kernel identifies the PMC interface, and gives its id to userland. Userland then queries the events itself (via cpuid etc). These events depend on the PMC interface.
The tprof utility is rewritten to allow the user to choose which event to count (which was not possible until now, the event was hardcoded in the backend). The command line format is based on usr.bin/pmc, eg:
tprof -e llc-misses:k -o output sleep 20
The man page is updated too, but the arguments will likely change soon anyway so it doesn't matter a lot.
The tprof utility has three tables:
Intel Architectural Version 1 Intel Skylake/Kabylake AMD Family 10h
A CPU can support a combination of tables. For example Kabylake has Intel-Architectural-Version-1 and its own Intel-Kabylake table.
For now the Intel Skylake/Kabylake table contains only one event, just to demonstrate that the combination of tables works. Tested on an Intel Core i5 Kabylake.
The code for AMD Family 10h is taken from the code I had written for usr.bin/pmc. I haven't tested it yet, but it's the same as pmc(1), so I guess it works as-is.
The whole thing is written in such a way that (I think) it is not complicated to add more CPU models, and more architectures (other than x86).
|
|
Revision tags: perseant-exfatfs-base-20250801 netbsd-11-base perseant-exfatfs-base-20240630 perseant-exfatfs-base
|
| 1.19 |
07-Jul-2023 |
msaitoh |
tprof(8): Add support for Skylake-X and Cascade Lake.
|
| 1.18 |
07-Jul-2023 |
msaitoh |
Modify comment. No functional change.
|
| 1.17 |
12-Apr-2023 |
msaitoh |
KNF. No functional change.
|
| 1.16 |
10-Apr-2023 |
msaitoh |
Add Cometlake support.
|
|
Revision tags: netbsd-10-base
|
| 1.15 |
08-Dec-2022 |
msaitoh |
branches: 1.15.2; Add AMD family 19h (zen3 and zen4) support to tprof.
|
| 1.14 |
08-Dec-2022 |
msaitoh |
Use lowercase consistently for hexadecimal numbers. No functional change.
|
| 1.13 |
07-Dec-2022 |
msaitoh |
KNF. No functional change.
|
| 1.12 |
13-Jun-2022 |
msaitoh |
Disable the unsupported events from the bit vector length in EAX.
|
| 1.11 |
13-Jun-2022 |
msaitoh |
Add topdown-slots to Intel architectural performance monitoring version 1.
|
|
Revision tags: cjep_sun2x-base1 cjep_sun2x-base cjep_staticlib_x-base1 cjep_staticlib_x-base phil-wifi-20200421
|
| 1.10 |
17-Apr-2020 |
knakahara |
Fix typo in a comment.
|
|
Revision tags: phil-wifi-20200411 is-mlppp-base phil-wifi-20200406 phil-wifi-20191119
|
| 1.9 |
11-Oct-2019 |
jmcneill |
Add support for AMD Family 15h
|
|
Revision tags: netbsd-9-base phil-wifi-20190609
|
| 1.8 |
29-May-2019 |
maxv |
branches: 1.8.2; 1.8.4; Add support for AMD Family 17h.
|
|
Revision tags: pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226
|
| 1.7 |
26-Nov-2018 |
knakahara |
tprof: Add goldmont plus support. Tested by msaitoh@n.o, thanks.
|
| 1.6 |
26-Nov-2018 |
knakahara |
tprof: Add goldmont support.
I tested on Atom C3558 (Denverton).
|
|
Revision tags: pgoyette-compat-1126
|
| 1.5 |
15-Nov-2018 |
knakahara |
tprof: Add silvermont, airmont support.
I tested on Atom C2758 (Rangeley).
|
|
Revision tags: pgoyette-compat-1020 pgoyette-compat-0930 pgoyette-compat-0906 pgoyette-compat-0728
|
| 1.4 |
14-Jul-2018 |
maxv |
branches: 1.4.2; Finish the Skylake/Kabylake table, and improve the output of "tprof analyze".
|
| 1.3 |
13-Jul-2018 |
maxv |
Skylake/Kabylake are family 6, so add a check for that. While here improve the layout of "tprof list".
|
| 1.2 |
13-Jul-2018 |
maxv |
Inline the values in amd_f10h_names[], we're not going to use defines for each CPU model found in the wild.
|
| 1.1 |
13-Jul-2018 |
maxv |
Revamp tprof.
Rewrite the Intel backend to use the generic PMC interface, which is available on all Intel CPUs. Synchronize the AMD backend with the new interface.
The kernel identifies the PMC interface, and gives its id to userland. Userland then queries the events itself (via cpuid etc). These events depend on the PMC interface.
The tprof utility is rewritten to allow the user to choose which event to count (which was not possible until now, the event was hardcoded in the backend). The command line format is based on usr.bin/pmc, eg:
tprof -e llc-misses:k -o output sleep 20
The man page is updated too, but the arguments will likely change soon anyway so it doesn't matter a lot.
The tprof utility has three tables:
Intel Architectural Version 1 Intel Skylake/Kabylake AMD Family 10h
A CPU can support a combination of tables. For example Kabylake has Intel-Architectural-Version-1 and its own Intel-Kabylake table.
For now the Intel Skylake/Kabylake table contains only one event, just to demonstrate that the combination of tables works. Tested on an Intel Core i5 Kabylake.
The code for AMD Family 10h is taken from the code I had written for usr.bin/pmc. I haven't tested it yet, but it's the same as pmc(1), so I guess it works as-is.
The whole thing is written in such a way that (I think) it is not complicated to add more CPU models, and more architectures (other than x86).
|