MFC r343755: Regularize the Netflix copyright
Revert r351902 ... it didn't properly exclude rack.c changes
pmc: convert native to jsonl and track TSC value of samples- add '-j' options to filter to enable converting native pmc log format to json lines format to enable the use of scripts and external
pmc: convert native to jsonl and track TSC value of samples- add '-j' options to filter to enable converting native pmc log format to json lines format to enable the use of scripts and external tooling% pmc filter -j pmc.log pmc.jsonl- Record the tsc value in sampling interrupts as opposed to recording nanotime when the sample is copied to a global log in hardclock - potentially many milliseconds later.- At initialize record the tsc_freq and the time of day to give us an offset for translating the tsc values in callchain records
show more ...
hwpmc: add summary command and further metadata extensionsmetadata changes:- log pmc sample rate with pmcallocate- log proc flags with thread / process logging to identify user vs kernel thread
hwpmc: add summary command and further metadata extensionsmetadata changes:- log pmc sample rate with pmcallocate- log proc flags with thread / process logging to identify user vs kernel threadsfixes:- use log cpuid to translate event id to event nameImplement rudimentary summary command to track samplecounts by thread and process name within a pmc log.% make -j4 buildkernel >& /dev/null &% sudo pmcstat -S unhalted_core_cycles -S llc-misses -O foo sleep 15% pmc summary foocpu_clk_unhalted.thread_p_any: idle: 138108207162 clang-6.0: 105336158004 sh: 72340108510 make: 8642012963 kernel: 7754011631longest_lat_cache.miss: clang-6.0: 87502625 sh: 40901227 make: 5500165 kernel: 3300099 awk: 2000060% pmc summary -f ~/fooidx: 278 name: cpu_clk_unhalted.thread_p_any rate: 2000003idle: 69054clang-6.0: 52668sh: 36170make: 4321kernel: 3877hwpmc: proc(7445): 3319awk: 1289xargs: 357rand_harvestq: 181mtree: 102intr: 53zfskern: 31usb: 7pagedaemon: 4ntpd: 3syslogd: 1acpi_thermal: 1logger: 1syncer: 1snmptrapd: 1sleep: 1idx: 17 name: longest_lat_cache.miss rate: 100003clang-6.0: 875sh: 409make: 55kernel: 33awk: 20hwpmc: proc(7445): 14xargs: 9idle: 8intr: 3zfskern: 2
hwpmc: support sampling both kernel and user stacks when interrupted in kernelThis adds the -U options to pmcstat which will attribute in-kernel samplesback to the user stack that invoked the syst
hwpmc: support sampling both kernel and user stacks when interrupted in kernelThis adds the -U options to pmcstat which will attribute in-kernel samplesback to the user stack that invoked the system call. It is not the default,because when looking at kernel profiles it is generally more desirable tomerge all instances of a given system call together.Although heavily revised, this change is directly derived from D7350 byJonathan T. Looney.Obtained from: jtlSponsored by: Juniper Networks, Limelight Networks
libpmc: allow substring for list and add function for printing event details
pmcstat: suppress uninitialized warning of event
pmc(3)/hwpmc(4): update supported Intel processors to rely fully on thevendor provided pmu-events tables and sundry cleanups.The vendor pmu-events tables provide counter descriptions, defaultsamp
pmc(3)/hwpmc(4): update supported Intel processors to rely fully on thevendor provided pmu-events tables and sundry cleanups.The vendor pmu-events tables provide counter descriptions, defaultsample rates, event, umask, and flag values for all the counterconfiguration permutations. Using this gives us:- much simpler kernel code for the MD component- helpful long and short event descriptions- simpler user code- sample rates that won't overload the systemUpdate man page with newer sample types and remove unused sample type.
Revert r334242 "pmc(3)/hwpmc(4): update supported Intel processors to rely fully on the"because of squash commit messages
pmc(3)/hwpmc(4): update supported Intel processors to rely fully on thevendor provided pmu-events tables and sundry cleanups.The vendor pmu-events tables provide counter descriptions, defaultsample rates, event, umask, and flag values for all the counterconfiguration permutations. Using this gives us:- much simpler kernel code for the MD component- helpful long and short event descriptions- simpler user code- sample rates that won't overload the systemUpdate man page with newer sample types and remove unused sample type.Squashed commit of the following:commit 4459d43eff815bec08ccc5533dbe5de846f03128Author: Matt Macy <[email protected]>Date: Sat May 26 00:06:31 2018 -0700 libpmc: fix pmu function signatures for non amd64commit a2cb8bbc586c65d41f9b291430a2261ec67b59feAuthor: Matt Macy <[email protected]>Date: Fri May 25 22:38:11 2018 -0700 pmcstat: fix indentation of usagecommit f686954b15ff56a833ac80404898977cb80a265bAuthor: Matt Macy <[email protected]>Date: Fri May 25 22:19:49 2018 -0700 pmclog(3): add callchain and pmcallocatedyn, remove pcsamplecommit 73e13a0d2e9498c81c150d14d022050cee7511bbAuthor: Matt Macy <[email protected]>Date: Fri May 25 22:19:00 2018 -0700 pmclog.h: GC pcsample fieldcommit 3e93ffd65da641fa657539dad3c48e281f8b5798Author: Matt Macy <[email protected]>Date: Fri May 25 22:05:57 2018 -0700 hwpmc: make Intel core CPUs use external event tablescommit 634f5fae1e1644ac324003136c66cd9c619d1c93Author: Matt Macy <[email protected]>Date: Fri May 25 22:00:06 2018 -0700 pmclog: update log record types, bump PMC_MAJOR - explicitly make log record types a multiple of 8 bytes - hook in pmu event types for pmc_allocate records - remove references to no longer PCSAMPLE recordcommit 83d84fcd2d65bdf6ddcb2e155a22f0cfa2a9c225Author: Matt Macy <[email protected]>Date: Fri May 25 21:52:10 2018 -0700 libpmc: add support for having vendor table driven pmc_allocatecommit 9e6ad63c40c2fce8404847ace5078ca6cb33a736Author: Matt Macy <[email protected]>Date: Fri May 25 19:11:33 2018 -0700 hwpmc_core: add accessors for EVSEL & UMASK, make IAP_UMASK useful to usercommit 859dceb93daa6419a48c794db99b6758e5b041c9Author: Matt Macy <[email protected]>Date: Fri May 25 19:09:45 2018 -0700 pmcstat: update usage and man page as well as make -L consistent with pmccontrolcommit 79c7d8597e28c2eb13f5f9113e65ec2792ca57b1Author: Matt Macy <[email protected]>Date: Fri May 25 18:07:03 2018 -0700 pmu_util: add support for all current intel event keywordscommit d8089c7f6a6c8527f38324252b1ffb47004694c6Author: Matt Macy <[email protected]>Date: Fri May 25 17:45:00 2018 -0700 add description for new argumentscommit 058336740bab53c62ec88a3a026ea848cf3878c6Author: Matt Macy <[email protected]>Date: Fri May 25 17:38:15 2018 -0700 libpmc: move pmu_events table and pmu_utils out of libpmcstat so that they can be used by pmc_allocatecommit 049b66b382e2f833c3f47bc8df9e750cb265709fAuthor: Matt Macy <[email protected]>Date: Fri May 25 16:12:41 2018 -0700 pmcstat: hook pmu_events counter description utility routines incommit f5e01e7b37a691dc045e1aa16b3ebdd162515de8Author: Matt Macy <[email protected]>Date: Fri May 25 16:11:59 2018 -0700 pmu_events: add utility routines for listing counters and their descriptionscommit cba4d4f8907f772279f86f18f915e0d74d33ac56Author: Matt Macy <[email protected]>Date: Fri May 25 16:09:50 2018 -0700 pmu-events: expand out skylake regex to simplify string matches
pmcstat(8)- Document per thread filtering.Submitted by: kbowlingSponsored by: Limelight NetworksDifferential Revision: https://reviews.freebsd.org/D15549
pmcstat: add usage strings for -L and -I
pmcstat top mode + -I - use fully qualified address
pmcstat: don't compare signed and unsigned
libpmcstat: compile in events based on json description
pmc: bump PMC major version to reflect ABI breakage and make warning not require verbose
hwpmc: add thread id field to callchain and context switch records to allow filteringon thread in post-processing.To generate stacks for just ${THREADID}:pmcstat -R ${PREFIX}.pmcstat -L ${THREAD
hwpmc: add thread id field to callchain and context switch records to allow filteringon thread in post-processing.To generate stacks for just ${THREADID}:pmcstat -R ${PREFIX}.pmcstat -L ${THREADID} -z100 -G ${PREFIX}.stacksSponsored by: Limelight Networks
pmcstat: add option to not decode the leaf function in top mode-I will allow the user to see the hot instruction in questionas opposed getting the name of the function
Only call flush in pipe mode.It fixes a crash with a socket in top mode.Ex:# pmcstat -R 127.0.0.1:8080 -T -w1then# pmcstat -n1 -Sclock.prof -Slock.failed -O 127.0.0.1:8080MFC after: 1 weekSp
Only call flush in pipe mode.It fixes a crash with a socket in top mode.Ex:# pmcstat -R 127.0.0.1:8080 -T -w1then# pmcstat -n1 -Sclock.prof -Slock.failed -O 127.0.0.1:8080MFC after: 1 weekSponsored by: Stormshield
various: general adoption of SPDX licensing ID tags.Mainly focus on files that use BSD 2-Clause license, however the tool Iwas using misidentified many licenses so this was mostly a manual - error
various: general adoption of SPDX licensing ID tags.Mainly focus on files that use BSD 2-Clause license, however the tool Iwas using misidentified many licenses so this was mostly a manual - errorprone - task.The Software Package Data Exchange (SPDX) group provides a specificationto make it easier for automated tools to detect and summarize well knownopensource licenses. We are gradually adopting the specification, notingthat the tags are considered only advisory and do not, in any way,superceed or replace the license texts.No functional change intended.
pmcstat(8): unbreak build with LDFLAGS+=-Wl,--as-neededlibpmcstat.a requires libelf.so; reorder them accordingly.
DIRDEPS_BUILD: Update dependencies.Sponsored by: Dell EMC Isilon
Extract a set of pmcstat functions and interfaces to the new internallibrary -- libpmcstat.This includes PMC logging module, symbols lookup functions,ELF parsing, process management, PMC attachme
Extract a set of pmcstat functions and interfaces to the new internallibrary -- libpmcstat.This includes PMC logging module, symbols lookup functions,ELF parsing, process management, PMC attachment, etc.This allows to reuse code while building new hwpmc(4)-based applications.Also add pmcstat_symbol_search_by_name() function that allows to findmapped IP range for a given function name.Reviewed by: kibSponsored by: DARPA, AFRLDifferential Revision: https://reviews.freebsd.org/D12718
Fix off by one in calculation of the number of buckets for the pcaddresses.Reviewed by: markjSponsored by: The FreeBSD FoundationMFC after: 1 weekDifferential revision: https://reviews.freebsd.
Fix off by one in calculation of the number of buckets for the pcaddresses.Reviewed by: markjSponsored by: The FreeBSD FoundationMFC after: 1 weekDifferential revision: https://reviews.freebsd.org/D11864
12345