Commit Graph

74 Commits

Author SHA1 Message Date
ryo 473c5ef3b0 fixed parsing of event options.
if event option was specivied, it was stuck in a busy loop.
2022-12-26 08:00:13 +00:00
ryoon 671f47e060 Reflect recent new options for top operation, add a and c 2022-12-26 03:25:55 +00:00
christos 073c713eeb use malloc instead of alloca so that SSP works. 2022-12-23 19:37:06 +00:00
ryo 63a85c5bd2 the "scale" option can be specified in the event name even in "tprof monitor" 2022-12-16 08:02:04 +00:00
ryo 923aefa047 - added 'c' command to tprof-top to show/hide event counter.
- column widths were not calculated correctly and sometimes displayed incorrectly.
- use putp() for terminfo str.
- fix build error with llvm.
2022-12-16 08:00:47 +00:00
ryo 372d4eb272 if column width changes, the screen must be updated. 2022-12-09 02:19:07 +00:00
ryo 37e8e83852 supported AMD family added 2022-12-09 01:59:51 +00:00
ryo 2495b25d45 mainly fixes around display.
- use terminfo
- dynamically adjust column widths
- mode can be changed while running
2022-12-09 01:56:40 +00:00
ryo 38fd9876a2 add accumulative mode. "tprof top -a" 2022-12-09 01:55:46 +00:00
msaitoh db24b2c2b2 Add AMD family 19h (zen3 and zen4) support to tprof. 2022-12-08 05:29:27 +00:00
msaitoh f1f580f5a3 Use lowercase consistently for hexadecimal numbers. No functional change. 2022-12-08 02:12:18 +00:00
msaitoh f5823b203c KNF. No functional change. 2022-12-07 08:11:49 +00:00
ryo f8c9791718 fix build error with llvm 2022-12-05 05:02:45 +00:00
ryo e43c6d637e fix build error of printf format 2022-12-01 03:32:24 +00:00
ryo e93233db9a add "top" subcommand to tprof(8) 2022-12-01 00:43:27 +00:00
ryo 14ff263e51 split ksyms stuff into ksyms.[ch] 2022-12-01 00:41:10 +00:00
ryo 07a5918990 Improve tprof(8)
- Added "tprof count" subcommand to perform counts only.
- Event options (u,k) are now optional. The default value is both userland and kernel. (:uk)
- Event counters can be displayed with SIGINFO during `tprof monitor' or `tprof count'.
2022-12-01 00:40:05 +00:00
ryo caba1a6f47 Improve tprof(4)
- Multiple events can now be handled simultaneously.
- Counters should be configured with TPROF_IOC_CONFIGURE_EVENT in advance,
  instead of being configured at TPROF_IOC_START.
- The configured counters can be started and stopped repeatedly by
  PROF_IOC_START/TPROF_IOC_STOP.
- The value of the performance counter can be obtained at any timing as a 64bit
  value with TPROF_IOC_GETCOUNTS.
- Backend common parts are handled in tprof.c as much as possible, and functions
  on the tprof_backend side have been reimplemented to be more primitive.
- The reset value of counter overflows for profiling can now be adjusted.
  It is calculated by default from the CPU clock (speed of cycle counter) and
  TPROF_HZ, but for some events the value may be too large to be sufficient for
  profiling. The event counter can be specified as a ratio to the default or as
  an absolute value when configuring the event counter.
- Due to overall changes, API and ABI have been changed. TPROF_VERSION and
  TPROF_BACKEND_VERSION were updated.
2022-12-01 00:32:52 +00:00
msaitoh 052df59bc6 Disable the unsupported events from the bit vector length in EAX. 2022-06-13 09:28:58 +00:00
msaitoh c07439c64e Add topdown-slots to Intel architectural performance monitoring version 1. 2022-06-13 07:40:58 +00:00
msaitoh 61a8c80144 Add note about tprof(4) for people like me who forget to load tprof_x86. 2022-05-25 06:17:19 +00:00
skrll 3064404475 Output alignement - give lwp 6 characters 2021-10-14 09:52:40 +00:00
jmcneill 2763548bcd Print the path that we failed to open on error 2021-01-30 11:46:25 +00:00
rin 2b36317ff7 Support aarch64eb; just works fine. 2020-11-17 10:47:17 +00:00
knakahara 0a27bcec22 Fix typo in a comment. 2020-04-17 03:15:50 +00:00
jmcneill eea38b83c1 Add AMD Family 15h to supported model list 2019-10-11 20:18:20 +00:00
jmcneill 1434425dff Add support for AMD Family 15h 2019-10-11 18:05:52 +00:00
maxv 0acc4e3e94 Add support for AMD Family 17h. 2019-05-29 17:09:17 +00:00
kre 4b0905d49c Fix merge botch. 2019-01-27 05:12:30 +00:00
pgoyette d91f98a871 Merge the [pgoyette-compat] branch 2019-01-27 02:08:33 +00:00
knakahara 4ed6c77e42 tprof: Add goldmont plus support. Tested by msaitoh@n.o, thanks. 2018-11-26 23:20:56 +00:00
knakahara 4fd01caa16 tprof: Add goldmont support.
I tested on Atom C3558 (Denverton).
2018-11-26 07:45:47 +00:00
maxv 71256c3b0d Note support for Intel Silvermont/Airmont. 2018-11-20 06:43:26 +00:00
knakahara a8700cbec5 tprof: Add silvermont, airmont support.
I tested on Atom C2758 (Rangeley).
2018-11-15 07:20:31 +00:00
maxv 1b2a6113eb Add a "support" section. 2018-07-24 10:05:36 +00:00
maxv 8c9dd8d036 Use errx, there is no errno. 2018-07-24 09:50:37 +00:00
wiz b15bdb80e1 Various improvements to man page. Sync usage. 2018-07-18 16:50:05 +00:00
jmcneill 091e75868b Add ARMv7 support. 2018-07-15 23:50:53 +00:00
jmcneill 0b7c38e1ef Add ARMv8 support. 2018-07-15 16:25:31 +00:00
jmcneill de53e8aea9 Fix a crash when running tprof with no arguments; check argc before accessing argv[0] 2018-07-14 16:34:15 +00:00
jmcneill 4ab6de2316 Mark tprof_event_init, tprof_event_list, tprof_event_lookup as dead 2018-07-14 15:38:59 +00:00
maxv 8addf8a6b5 specialreg.h is x86-specific, don't include it 2018-07-14 07:54:37 +00:00
maxv 9896bc73ca Finish the Skylake/Kabylake table, and improve the output of "tprof analyze". 2018-07-14 07:54:04 +00:00
joerg e290a3e9b8 Mark tprof_monitor as dead 2018-07-13 19:54:53 +00:00
maxv c52e6df86c Ask for a file path with the "analyze" command, instead of reading stdin. 2018-07-13 12:04:50 +00:00
maxv 5ae6235d0e Remove tpfmt(1). Its code was merged into tprof(8). 2018-07-13 11:14:14 +00:00
maxv 96b21aedb9 Merge tpfmt(1) into tprof(8). We want to have access to everything with
only one tool. The code is copied mostly as-is, and the functionality is
available via the "analyze" command.

Eg:
	tprof monitor -e llc-misses:k -o myfile.out sleep 20
	tprof analyze < myfile.out

Will move soon, I don't like the reading via stdin.
2018-07-13 11:03:36 +00:00
maxv 48aa814610 Skylake/Kabylake are family 6, so add a check for that. While here improve
the layout of "tprof list".
2018-07-13 09:53:42 +00:00
maxv ab933b7bbb Change the arguments of the tprof tool, to match the behavior of pmc(1) and
cpuctl(8). They become:

	tprof list
	tprof monitor -e name:option [-o outfile] command
2018-07-13 09:04:31 +00:00
maxv 8dd2f31aad Inline the values in amd_f10h_names[], we're not going to use defines for
each CPU model found in the wild.
2018-07-13 08:09:21 +00:00