360658 |
05-May-2020 |
dim |
Merge llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp 9.0.0 final release r372316.
(NOTE: This does not yet consolidate all the llvm project sources under contrib/llvm-project (e.g., MFC r355940), due to Subversion limitations. It will be done in a follow-up MFC.)
MFC r348610 (by emaste):
build llvm-ar and llvm-nm with Clang (promote out of CLANG_EXTRAS)
To facilitate experimentation with LTO we require an ar that supports LLVM IR, and to a lesser degree also an nm. As a first step always install llvm-ar and llvm-nm.
Sponsored by: The FreeBSD Foundation
MFC r350453 (by asomers):
Add a CXXWARNFLAGS variable
Some warning flags are valid for C++ but not C. GCC 8 complains if you pass such flags when building a C file. Using a separate variable for these flags allows building both C and C++ files in the same directory (such as the fusefs tests) under GCC.
Reviewed by: cem, emaste Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D21116
MFC r350467 (by luporl):
[PPC64] Backport fix for missing IRELATIVE relocations
This is a backport of LLVM commit 8331f61a51a7a0a1efbf5ed398e181593023d151, llvm-svn: 353981:
ELF: Allow GOT relocs pointing to non-preemptable ifunc to resolve to an IRELATIVE where possible.
This is needed in order to make ifuncs work correctly on PPC64.
It fixes an issue with lld, in which it would skip emitting necessary IRELATIVE relocations. Without this change, indirect calls to ifuncs would result in a segmentation fault, in static binaries or when defined in the main binary (outside shared libraries).
This change also reverts the local "Preserve relocations against ifuncs when -zifunc-noplt" commit and replaces it by its upstream version, as part of the merge.
Reviewed by: markj Differential Revision: https://reviews.freebsd.org/D21102
MFC r351662 (by emaste):
lldb: shorten thread names to make logs easier to follow
lldb prepends the thread name to log entries, and the existing thread name for the FreeBSD ProcessMonitor thread was longer than the kernel's supported thread name length, and so was truncated. This made logs hard to read, as the truncated thread name ran into the log message. Shorten "lldb.process.freebsd.operation" to just "freebsd.op" so that logs are more readable.
(Upstreaming to lldb still to be done).
MFC r352095 (by emaste):
compiler-rt: use more __sanitizer_time_t on FreeBSD
A few structs were using long for time_t members.
Obtained from: LLVM r370755
MFC r352096 (by emaste):
compiler-rt: use 64-bit time_t for all FreeBSD archs except i386
Obtained from: LLVM r370756
MFC r352167 (by imp):
Remove dir empty since r276851
MFC r352168 (by imp):
Remove dirs empty since r280031
MFC r352169 (by imp):
Remove dir empty since r314564
MFC r352170 (by imp):
Remove dir empty since r327952
MFC r352171 (by imp):
Remove dirs (and their now-empty parents) empty since r344779
MFC r352792 (by emaste):
compiler-rt: correct RISC-V struct_kernel_stat64_sz
The value of struct_kernel_stat64_sz introduced by review D5021 for RISC-V was incorrect.
Also add a __riscv_xlen == 64 conditional as the 32-bit ABI is not yet finalized.
Submitted by: Luís Marques Differential Revision: https://reviews.freebsd.org/D21684
MFC r353018 (by kevans):
clang: use -mxgot for 32-bit mips
Various bits in usr.bin/clang/* will fail to compile without -mxgot due to truncated relocations. -mxgot entails a speed penalty, but I suspect we don't care as much about compiler performance in 32-bit mips land.
Reviewed by: arichardson Differential Revision: https://reviews.freebsd.org/D21698
MFC r353358:
Merge llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp 9.0.0 final release r372316.
Release notes for llvm, clang, lld and libc++ 9.0.0 are available here:
https://releases.llvm.org/9.0.0/docs/ReleaseNotes.html https://releases.llvm.org/9.0.0/tools/clang/docs/ReleaseNotes.html https://releases.llvm.org/9.0.0/tools/lld/docs/ReleaseNotes.html https://releases.llvm.org/9.0.0/projects/libcxx/docs/ReleaseNotes.html
PR: 240629
MFC r353363:
Put in a band-aid fix for lldb 9 exiting with "Expected<T> must be checked before access or destruction" when launching executables, while we sort this out with upstream.
Reported by: jbeich PR: 241137
MFC r353415:
Revert r353363 in preparation for applying upstream fix:
Put in a band-aid fix for lldb 9 exiting with "Expected<T> must be checked before access or destruction" when launching executables, while we sort this out with upstream.
PR: 241137
MFC r353416:
Pull in r374444 from upstream lldb trunk (by me):
Fix process launch failure on FreeBSD after r365761
Summary: After rLLDB365761, and with `LLVM_ENABLE_ABI_BREAKING_CHECKS` enabled, launching any process on FreeBSD crashes lldb with:
``` Expected<T> must be checked before access or destruction. Expected<T> value was in success state. (Note: Expected<T> values in success mode must still be checked prior to being destroyed). ```
This is because `m_operation_thread` and `m_monitor_thread` were wrapped in `llvm::Expected<>`, but this requires the objects to be correctly initialized before accessing them.
To fix the crashes, use `llvm::Optional<>` for the members (as indicated by labath), and use local variables to store the return values of `LaunchThread` and `StartMonitoringChildProcess`. Then, only assign to the member variables after checking if the return values indicated success.
Reviewers: devnexen, emaste, MaskRay, mgorny
Reviewed By: devnexen
Subscribers: jfb, labath, krytarowski, lldb-commits
Differential Revision: https://reviews.llvm.org/D68723
PR: 241137
MFC r353579 (by jhb):
Use __FreeBSD_version to determine if gets() has been removed.
GCC compilers set __FreeBSD__ statically to a build-time determined targeted version (which in ports always matches the build host's version). This means that when building any version (12 or 13, etc.) of riscv or some other architecture via GCC on a 12.x host, __FreeBSD__ will always be set to 12. As a result, __FreeBSD__ cannot be used to reliably detect the target FreeBSD version being built. Instead, __FreeBSD_version from either <sys/param.h> (in the kernel) or <osreldate.h> (in userland) should be used.
This changes the gets() test in libc++ to use __FreeBSD_version from <osreldate.h>.
Reported by: jenkins (riscv64 and amd64-gcc) Reviewed by: dim, imp Differential Revision: https://reviews.freebsd.org/D22034
MFC r353711 (by mhorne):
Fix build of LLVM RISC-V backend
Reviewed by: dim MFC with: r353358 Differential Revision: https://reviews.freebsd.org/D21963
MFC r353738:
Pull in r372651 from upstream lld trunk (by Simon Atanasyan):
[mips] Support elf32btsmipn32_fbsd / elf32ltsmipn32_fbsd emulations
Patch by Kyle Evans.
Requested by: kevans
MFC r353739:
Pull in r374154 from upstream clang trunk (by Simon Atanasyan):
[mips] Set default float ABI to "soft" on FreeBSD
Initial patch by Kyle Evans.
Fix PR43596
Requested by: kevans
MFC r353936:
Bump clang's default target CPU for the i386 architecture (aka "x86") to i686, as per the discussion on the freebsd-arch mailing list. Earlier in r352030, I had already bumped it to i586, to work around missing atomic 64 bit functions for the i386 architecture.
Relnotes: yes
MFC r354097:
Pull in r372186 from upstream llvm trunk (by Eli Friedman):
[ARM] VFPv2 only supports 16 D registers.
r361845 changed the way we handle "D16" vs. "D32" targets; there used to be a negative "d16" which removed instructions from the instruction set, and now there's a "d32" feature which adds instructions to the instruction set. This is good, but there was an oversight in the implementation: the behavior of VFPv2 was changed. In particular, the "vfp2" feature was changed to imply "d32". This is wrong: VFPv2 only supports 16 D registers.
In practice, this means if you specify -mfpu=vfpv2, the compiler will generate illegal instructions.
This patch gets rid of "vfp2d16" and "vfp2d16sp", and fixes "vfp2" and "vfp2sp" so they don't imply "d32".
Differential Revision: https://reviews.llvm.org/D67375
Pull in r372187 from upstream clang trunk (by Eli Friedman):
[ARM] Update clang for removal of vfp2d16 and vfp2d16sp
Matching fix for https://reviews.llvm.org/D67375 (r372186).
Differential Revision: https://reviews.llvm.org/D67467
This should fix clang generating invalid opcodes for floating point operations on armv6.
Requested by: mmel
MFC r354146:
Pull in r373338 from upstream llvm trunk (by Simon Pilgrim):
Revert rL349624 : Let TableGen write output only if it changed, instead of doing so in cmake, attempt 2
Differential Revision: https://reviews.llvm.org/D55842 ----------------- As discussed on PR43385 this is causing Visual Studio msbuilds to perpetually rebuild all tablegen generated files
Pull in r373664 from upstream llvm trunk (by Nico Weber):
Reland r349624: Let TableGen write output only if it changed, instead of doing so in cmake
Move the write-if-changed logic behind a flag and don't pass it with the MSVC generator. msbuild doesn't have a restat optimization, so not doing write-if-change there doesn't have a cost, and it should fix whatever causes PR43385.
This should fix the scenario where an incremental build from before r353358 (the clang 9.0.0 upgrade) to r353358 or later fails to update the timestamp of the generated lib/clang/headers/arm_fp16.h header.
After such a build, installing world from read-only source and object directories would attempt to generate the header again, leading to "clang-tblgen: error opening arm_fp16.h.d:Read-only file system".
Reported by: avg, np PR: 241402
MFC r354339:
Merge commit 97e362607 from llvm git (by Nemanja Ivanovic):
[PowerPC] Do not emit HW loop if the body contains calls to lrint/lround
These two intrinsics are lowered to calls so should prevent the formation of CTR loops. In a subsequent patch, we will handle all currently known intrinsics and prevent the formation of HW loops if any unknown intrinsics are encountered.
Differential revision: https://reviews.llvm.org/D68841
This should fix an "invalid CRT loop" assertion when building the www/node port for powerpc64.
Requested by: Alfredo Dal'Ava Júnior <alfredo.junior@eldorado.org.br>
MFC r354347 (by cem):
Fix llvm-libunwind userspace build on ARM
GCC's libgcc exports a few ARM-specific symbols for ARM EABI, AEABI, or EHABI or whatever it's called. Export the same ones from LLVM-libunwind's libgcc_s, on ARM. As part of this, convert libgcc_s from a direct Version.map to one constructed from component Symbol.map files. This allows the ARM-specific Symbol.map to be included only on ARM.
Fix ARM-only oddities in struct name/aliases in LLVM-libunwind to match non-ARM definitions and ARM-specific expectations in libcxxrt / libcompiler_rt.
No functional change intended for non-ARM architectures.
This commit does not actually flip the switch for ARM defaults from libgcc to llvm-libunwind, but makes it possible (to compile, anyway).
MFC r354418 (by cem):
clang: Enable unwind tables on !amd64
There doesn't seem to be much sense in defaulting "on" unwind tables on amd64 and not on other arches. It causes surprising differences between platforms, such as the PR below.
Prior to this change, FreeBSD inherited the default implementation of the method from the Gnu.h Generic_Elf => Generic_GCC parent class, which returned true only for amd64 targets. Override that and opt on always, similar to, e.g., NetBSD.
PR: 241562 Reported by: lwhsu Reviewed by: dim Discussed with: emaste Relnotes: yes Differential Revision: https://reviews.freebsd.org/D22252
MFC r354429:
Merge commit 8e34dd941 from llvm git (by Sanjay Patel):
[x86] avoid crashing when splitting AVX stores with non-simple type (PR43916)
The store splitting transform was assuming a simple type (MVT), but that's not necessarily the case as shown in the test.
This should fix 'Assertion failed: (isSimple() && "Expected a SimpleValueType!")' when building the security/openssl111 port targeting a CPU that supports AVX, but not AVX2, such as sandybridge.
PR: 241747
MFC r354469:
Merge commit f596f4507 from llvm git (by Sam Elliott):
[RISCV] Add Custom Parser for Atomic Memory Operands
Summary: GCC Accepts both (reg) and 0(reg) for atomic instruction memory operands. These instructions do not allow for an offset in their encoding, so in the latter case, the 0 is silently dropped.
Due to how we have structured the RISCVAsmParser, the easiest way to add support for parsing this offset is to add a custom AsmOperand and parser. This parser drops all the parens, and just keeps the register.
This commit also adds a custom printer for these operands, which matches the GCC canonical printer, printing both `(a0)` and `0(a0)` as `(a0)`.
Reviewers: asb, lewis-revill
Reviewed By: asb
Subscribers: s.egerton, hiraditya, rbar, johnrusso, simoncook, apazos, sabuasal, niosHD, kito-cheng, shiva0217, jrtc27, MaskRay, zzheng, edward-jones, rogfer01, MartinMosbeck, brucehoult, the_o, rkruppe, jfb, PkmX, jocewei, psnobl, benna, Jim, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D65205
llvm-svn: 367553
Merge commit f596f4507 from llvm git (by Sam Elliott):
[RISCV] Add FreeBSD targets
Reviewers: asb
Reviewed By: asb
Subscribers: simoncook, s.egerton, lenary, psnobl, benna, mhorne, emaste, kito-cheng, shiva0217, rogfer01, rkruppe, cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D57795
Patch by James Clarke (jrtc27)
llvm-svn: 367557
Merge commit f596f4507 from llvm git (by Hsiangkai Wang):
[DebugInfo] Generate fixups as emitting DWARF .debug_frame/.eh_frame.
It is necessary to generate fixups in .debug_frame or .eh_frame as relaxation is enabled due to the address delta may be changed after relaxation.
There is an opcode with 6-bits data in debug frame encoding. So, we also need 6-bits fixup types.
Differential Revision: https://reviews.llvm.org/D58335
llvm-svn: 366524
Merge commit f596f4507 from llvm git (by Hsiangkai Wang):
[DebugInfo] Some fields do not need relocations even relax is enabled.
In debug frame information, some fields, e.g., Length in CIE/FDE and Offset in FDE are attributes to describe the structure of CIE/FDE. They are not related to the relaxed code. However, these attributes are symbol differences. So, in current design, these attributes will be filled as zero and LLVM generates relocations for them.
We only need to generate relocations for symbols in executable sections. So, if the symbols are not located in executable sections, we still evaluate their values under relaxation.
Differential Revision: https://reviews.llvm.org/D61584
llvm-svn: 366531
Merge commit f596f4507 from llvm git (by Alex Bradbury):
[RISCV] Don't force absolute FK_Data_X fixups to relocs
The current behavior of shouldForceRelocation forces relocations for the majority of fixups when relaxation is enabled. This makes sense for fixups which incorporate symbols but is unnecessary for simple data fixups where the fixup target is already resolved to an absolute value.
Differential Revision: https://reviews.llvm.org/D63404 Patch by Edward Jones.
llvm-svn: 369257
Merge commit f596f4507 from llvm git (by Alex Bradbury):
[RISCV] Implement getExprForFDESymbol to ensure RISCV_32_PCREL is used for the FDE location
Follow binutils in using RISCV_32_PCREL for the FDE initial location. As explained in the relevant binutils commit <https://github.com/riscv/riscv-binutils-gdb/commit/a6cbf936e3dce68114d28cdf60d510a3f78a6d40>, the ADD/SUB pair of relocations is problematic in the presence of linker relaxation.
This patch has the same end goal as D64715 but includes test changes and avoids adding a new global VariantKind to MCExpr.h (preferring RISCVMCExpr VKs like the rest of the RISC-V backend).
Differential Revision: https://reviews.llvm.org/D66419
llvm-svn: 369375
This series of merges will permit riscv64 kernels and riscv64sf worlds to build with clang instead of gcc (but still using the bfd linker).
Requested by: jhb Obtained from: https://github.com/freebsd/freebsd/compare/master...bsdjhb:riscv_clang
MFC r354662 (by jhb):
Sync target triple generation with the version in Makefile.inc1.
Reviewed by: dim Sponsored by: DARPA Differential Revision: https://reviews.freebsd.org/D22333
MFC r354692 (by emaste):
llvm: use AT_EXECPATH from ELF auxiliary vectors for getExecutablePath
/proc/curproc/file and the KERN_PROC_PATHNAME sysctl may not return the desired path if there are multiple hardlinks to the file.
PR: 241932 Tested by: ler Sponsored by: The FreeBSD Foundation
MFC r354707 (by emaste):
llvm: use elf_aux_info to get executable's path, if available
Obtained from: LLVM a0a38b81ea MFC with: r354692 Sponsored by: The FreeBSD Foundation
MFC r354979:
Merge commit 7bed381ea from llvm git (by Simon Atanasyan):
[mips] Implement Octeon+ `saa` and `saad` instructions
`saa` and `saad` are 32-bit and 64-bit store atomic add instructions.
memory[base] = memory[base] + rt
These instructions are available for "Octeon+" CPU. The patch adds support for both instructions to MIPS assembler and diassembler and introduces new CPU type - "octeon+".
Next patches will implement `.set arch=octeon+` directive and `AFL_EXT_OCTEONP` ISA extension flag support.
Differential Revision: https://reviews.llvm.org/D69849
This is one of the upstream changes needed for adding support for the OCTEON+ CPU type, so that we can test Clang builds using the most commonly available FreeBSD/mips64 reference platform, the Edge Router Lite.
Requested by: kevans
MFC r354980:
Merge commit 3718102d4 from llvm git (by Simon Atanasyan):
[mips] Support `octeon+` CPU in the `.set arch=` directive
Differential Revision: https://reviews.llvm.org/D69850
This is one of the upstream changes needed for adding support for the OCTEON+ CPU type, so that we can test Clang builds using the most commonly available FreeBSD/mips64 reference platform, the Edge Router Lite.
Requested by: kevans
MFC r354981:
Merge commit bf996f761 from llvm git (by Simon Atanasyan):
[mips] Write `AFL_EXT_OCTEONP` flag to the `.MIPS.abiflags` section
Differential Revision: https://reviews.llvm.org/D69851
This is one of the upstream changes needed for adding support for the OCTEON+ CPU type, so that we can test Clang builds using the most commonly available FreeBSD/mips64 reference platform, the Edge Router Lite.
Requested by: kevans
MFC r354982:
Merge commit 3552d3e0f from llvm git (by Simon Atanasyan):
[mips] Add `octeon+` to the list of CPUs accepted by the driver
This is one of the upstream changes needed for adding support for the OCTEON+ CPU type, so that we can test Clang builds using the most commonly available FreeBSD/mips64 reference platform, the Edge Router Lite.
Requested by: kevans
MFC r354983:
Merge commit e578d0fd2 from llvm git (by Simon Atanasyan):
[mips] Fix `__mips_isa_rev` macros value for Octeon CPU
This is one of the upstream changes needed for adding support for the OCTEON+ CPU type, so that we can test Clang builds using the most commonly available FreeBSD/mips64 reference platform, the Edge Router Lite.
Requested by: kevans
MFC r354984:
Merge commit 0d14656b9 from llvm git (by Simon Atanasyan):
[mips] Set __OCTEON__ macros
This is one of the upstream changes needed for adding support for the OCTEON+ CPU type, so that we can test Clang builds using the most commonly available FreeBSD/mips64 reference platform, the Edge Router Lite.
Requested by: kevans
MFC r354985:
Merge commit a751f557d from llvm git (by Simon Atanasyan):
[mips] Set macros for Octeon+ CPU
This is one of the upstream changes needed for adding support for the OCTEON+ CPU type, so that we can test Clang builds using the most commonly available FreeBSD/mips64 reference platform, the Edge Router Lite.
Requested by: kevans
MFC r355397:
Merge commit 241cbf201 from llvm git (by Nemanja Ivanovic):
[PowerPC] Fix crash in peephole optimization
When converting reg+reg shifts to reg+imm rotates, we neglect to consider the CodeGenOnly versions of the 32-bit shift mnemonics. This means we produce a rotate with missing operands which causes a crash.
Committing this fix without review since it is non-controversial that the list of mnemonics to consider should include the 64-bit aliases for the exact mnemonics.
Fixes PR44183.
This should fix "Assertion failed: (idx < size()), function operator[], file /usr/src/contrib/llvm/include/llvm/ADT/SmallVector.h, line 153" when building the graphics/mesa-dri port for the PowerPC64 ELFv2 ABI.
Reported by: Alfredo Dal'Ava Júnior <alfredo.junior@eldorado.org.br>
MFC r355602:
Add a few missed source files to libllvm, for the MK_LLVM_TARGET_BPF=yes case. Otherwise, linking of clang and other llvm based executables would complain about missing symbols.
Reported by: rstone
MFC r355645 (by cem):
arm: libgcc_s: Fix ABI breakage introduced in r354347
Provide the symbol version for llvm-libunwind's _Unwind_Backtrace that libgcc has historically provided on arm, in addition to the (default) standard version used on all other arch.
Reported by: mmel
MFC r355803 (by mmel):
Fix LLVM libunwnwind _Unwind_Backtrace symbol version for ARM. In original GNU libgcc, _Unwind_Backtrace is published with GCC_3.3 version for all architectures but ARM. For ARM should be publishes with GCC_4.3.0 version. This was originally omitted in r255095, fixed in r318024 and omitted aging in LLVM libunwind implementation in r354347.
For ARM _Unwind_Backtrace should be published as default with GCC_4.3.0 version , (because this is right original version) and again as normal(not-default) with GCC_3.3 version (to maintain ABI compatibility compiled/linked with wrong pre r318024 libgcc)
PR: 233664 |
339767 |
26-Oct-2018 |
mmacy |
hwpmc: Enable hwpmc support for AMD Family 17H devices
Adds new counters and events for family 17H devices. Adds libpmc support for family 17H devices.
Direct commit to 11 as this is supported by way of JSON counter descriptions on 12 & HEAD.
Submitted by: Girish Nandibasappa Differential Revision: https://reviews.freebsd.org/D17464 |
331722 |
29-Mar-2018 |
eadler |
Revert r330897:
This was intended to be a non-functional change. It wasn't. The commit message was thus wrong. In addition it broke arm, and merged crypto related code.
Revert with prejudice.
This revert skips files touched in r316370 since that commit was since MFCed. This revert also skips files that require $FreeBSD$ property changes.
Thank you to those who helped me get out of this mess including but not limited to gonzo, kevans, rgrimes.
Requested by: gjb (re) |
331319 |
21-Mar-2018 |
kib |
MFC r328087 (by fabient): Fix pmcstat exit from kernel introduced by r325275.
PR: 223689 |
330897 |
14-Mar-2018 |
eadler |
Partial merge of the SPDX changes
These changes are incomplete but are making it difficult to determine what other changes can/should be merged.
No objections from: pfg |
328837 |
04-Feb-2018 |
jhibbits |
MFC r327911:
Replace the PMC class struct copy with an explicit memcpy() |
323799 |
20-Sep-2017 |
kib |
MFC r323230: Skylake server core PMC support for hwpmc(4). |
323798 |
20-Sep-2017 |
kib |
MFC r323229: Minor style changes to make forthcoming code stand out less. |
321224 |
19-Jul-2017 |
ngie |
MFC r316601:
pmc.atomsilvermont(3): fix manlint warnings
Start new sentences on new lines.
Sentences affected by the change are wrapped at <80 columns. Other potentially offending lines have been left alone to reduce churn. |
321221 |
19-Jul-2017 |
ngie |
MFC r316600:
pmc(3): add additional references for libpmc functions in the SEE ALSO section
These functions are already referenced throughout the manpage -- this makes their presence more apparent. |
321219 |
19-Jul-2017 |
ngie |
MFC r316602:
pmc_read(3): fix manlint error
Remove spurious trailing comma from last .Nm entry in NAME section. |
319618 |
06-Jun-2017 |
trasz |
MFC r318816:
Don't end up manpage titles with a full stop.
Approved by: re (marius) |
317328 |
23-Apr-2017 |
trasz |
MFC r316468:
Fix typo.
Sponsored by: DARPA, AFRL |
302408 |
08-Jul-2016 |
gjb |
Copy head@r302406 to stable/11 as part of the 11.0-RELEASE cycle. Prune svn:mergeinfo from the new branch, as nothing has been merged here.
Additional commits post-branch will follow.
Approved by: re (implicit) Sponsored by: The FreeBSD Foundation |
298896 |
01-May-2016 |
pfg |
lib: minor spelling fixes in comments.
No functional change.
|
298107 |
16-Apr-2016 |
gjb |
Merge the projects/release-pkg branch to head.
This allows packaging the base system with pkg(8), including but not limited to providing the ability to provide upstream binary update possibilities for non-tier-1 architectures.
This merge is a requirement of the 11.0-RELEASE, and as such, thank you to everyone that has tested the project branch.
Documentation in build(7) etc. is still somewhat sparse, but updates to those parts will follow.
Sponsored by: The FreeBSD Foundation
|
296263 |
01-Mar-2016 |
trasz |
Connect pmc.haswellxeon(3) to the build; looks like it was missed in r279829.
MFC after: 1 month Sponsored by: The FreeBSD Foundation
|
291494 |
30-Nov-2015 |
rrs |
Add support for Intel Skylake and Intel Broadwell PMC's. The Broadwell PMC's have been tested on the Broadwell-Xeon with a hacked up version of pmcstudy -T. I still need to circle back and add in to pmcstudy all the new tests from the Broadwell Vtune guide (for the hacked up version I just made it so I could run the -T option). The Skylake CPU is not yet available (even though Intel is advertising it .. imagine that). The Skylake PMC's will need to be tested once we can get a sample skylake CPU :-)
Sponsored by: Netflix Inc.
|
291307 |
25-Nov-2015 |
bdrewery |
META MODE: Prefer INSTALL=tools/install.sh to lessen the need for xinstall.host.
This both avoids some dependencies on xinstall.host and allows bootstrapping on older releases to work due to lack of at least 'install -l' support.
Sponsored by: EMC / Isilon Storage Division
|
290929 |
16-Nov-2015 |
jtl |
Change the driver stats to what they really are: unsigned values.
When pmcstat exits after some samples were dropped, give the user an idea of how many were lost. (Granted, these are global numbers, but they may still help quantify the scope of the loss.)
Differential Revision: https://reviews.freebsd.org/D4123 Approved by: gnn (mentor) MFC after: 1 month Sponsored by: Juniper Networks
|
289317 |
14-Oct-2015 |
bz |
For the Cortex-A8 use the a8 and not the a9 events table.
MFC after: 2 weeks Sponsored by: DARPA/AFRL Differential Revision: https://reviews.freebsd.org/D3882
|
284345 |
13-Jun-2015 |
sjg |
Add META_MODE support.
Off by default, build behaves normally. WITH_META_MODE we get auto objdir creation, the ability to start build from anywhere in the tree.
Still need to add real targets under targets/ to build packages.
Differential Revision: D2796 Reviewed by: brooks imp
|
284218 |
10-Jun-2015 |
br |
o Rework ARMv7 events list using aliases - same way as we have for arm64. o Extend it with Cortex A9-specific events.
|
283120 |
19-May-2015 |
jhb |
Use fixed enum values for PMC_CLASSES().
This removes one of the frequent causes of ABI breakage when new CPU types are added to hwpmc(4).
Differential Revision: https://reviews.freebsd.org/D2586 Reviewed by: davide, emaste, gnn (earlier version) MFC after: 2 weeks
|
283112 |
19-May-2015 |
br |
Add Performance Monitoring Counters support for AArch64. Family-common and CPU-specific counters implemented.
Supported CPUs: ARM Cortex A53/57/72.
Reviewed by: andrew, bz, emaste, gnn, jhb Sponsored by: ARM Limited Differential Revision: https://reviews.freebsd.org/D2555
|
281793 |
20-Apr-2015 |
joel |
Minor mdoc fixes.
|
281713 |
18-Apr-2015 |
jhibbits |
Implement hwpmc(4) for Freescale e500 core.
This supports e500v1, e500v2, and e500mc. Tested only on e500v2, but the performance counters are identical across all, with e500mc having some additional events.
Relnotes: Yes
|
281098 |
05-Apr-2015 |
adrian |
Add support for the MIPS74K SoC family performance counters events.
These are similar to the mips24k performance counters - some are available on perfcnt0/3, some are available on perfcnt1/4. However, the events aren't all the same.
* Add the events, named the same as from Linux oprofile. * Verify they're the same as "MIPS32(R) 74KTM Processor Core Family Software User's Manual"; Document Number: MD00519; Revision 01.05. * Rename INSTRUCTIONS to something else, so it doesn't clash with the alias INSTRUCTIONS. I'll try to tidy this up later; there are a few other aliases to add and shuffle around.
Tested:
* QCA9558 SoC (AP135 board) - MIPS74Kc core (no FPU.) * make universe; where it didn't fail for other reasons.
TODO:
* It'd be nice to support the four performance counters in at least this hardware, rather than just two.
Reviewed by: bsdimp ("looks good; don't break world".)
|
279835 |
10-Mar-2015 |
rstone |
Fix Ivy Bridge+ MEM_UOPS_RETIRED counters
The MEM_UOPS_RETIRED actually work the same way as the Sandy Bridge counters, but the counters were documented in a different way and that seemed to cause the Ivy Bridge counters to be implemented incorrectly. Use the same counter definitions as Sandy Bridge. While I'm here, rename the counters to match what's documented in the datasheet.
Differential Revision: https://reviews.freebsd.org/D1590 MFC after: 1 month Sponsored by: Sandvine Inc.
|
279833 |
10-Mar-2015 |
rstone |
Use the correct event table for Haswell Xeon events
Differential Revision: https://reviews.freebsd.org/D1588 MFC after: 1 month Sponsored by: Sandvine Inc.
|
279832 |
10-Mar-2015 |
rstone |
Fix Sandy Bridge+ hwpmc branch counters
On Sandy Bridge and later, to count branch-related events you have to or together a mask indicating the type of branch instruction to count (e.g. direct jump, branch, etc) and a bits indicating whether to count taken and not-taken branches. The current counter definitions where defining this bits individually, so the counters never worked and always just counted 0.
Fix the counter definitions to instead contain the proper combination of masks. Also update the man pages to reflect the new counters.
Differential Revision: https://reviews.freebsd.org/D1587 MFC after: 1 month Sponsored by: Sandvine Inc.
|
279829 |
10-Mar-2015 |
rstone |
Add manpage for Haswell Xeon pmc implementation
Differential Revision: https://reviews.freebsd.org/D1584 Reviewed by: gnn MFC After: 1 month Sponsored by: Sandvine Inc
|
277835 |
28-Jan-2015 |
br |
Add ARMv7 performance monitoring counters.
Differential Revision: https://reviews.freebsd.org/D1687 Reviewed by: rpaulo Sponsored by: DARPA, AFRL
|
277177 |
14-Jan-2015 |
rrs |
Update the hwpmc driver to have the new type HASWELL_XEON. Also go back through HASWELL, IVY_BRIDGE, IVY_BRIDGE_XEON and SANDY_BRIDGE to straighten out all the missing PMCs. We also add a new pmc tool pmcstudy, this allows one to run the various formulas from the documents "Using Intel Vtune Amplifier XE on XXX Generation platforms" for IB/SB and Haswell. The tool also allows one to postulate your own formulas with any of the various PMC's. At some point I will enahance this to work with Brendan Gregg's flame-graphs so we can flamegraph various PMC interactions. Note the manual page also needs some work (lots of work) but gnn has committed to help me with that ;-) Reviewed by: gnn MFC after:1 month Sponsored by: Netflix Inc.
|
276657 |
04-Jan-2015 |
joel |
mdoc: sort SEE ALSO.
|
269182 |
28-Jul-2014 |
gnn |
Update the list of cross references to include the more modern set of processors that we now support.
|
267803 |
23-Jun-2014 |
joel |
mdoc: remove superfluous paragraph macros.
|
267773 |
23-Jun-2014 |
bapt |
use .Mt to mark up email addresses consistently (part3)
PR: 191174 Submitted by: Franco Fichtner <franco at lastsummer.de>
|
267062 |
04-Jun-2014 |
kib |
For Xeon 7500 and 48XX (Nehalem EX and Westmere EX) variants of the Core i7 and Westmere processors, the uncore PMC subsystem is completely different from the uncore PMC on smaller versions of CPUs. Disable existing uncore hwpmc code for EX, otherwise non-existing MSRs are accessed.
The cores PMCs seems to be identical for non-EX and EX, according to the SDM.
Reviewed by: davide, fabient Sponsored by: The FreeBSD Foundation MFC after: 2 weeks
|
263446 |
20-Mar-2014 |
hiren |
Update hwpmc to support core events for Atom Silvermont microarchitecture. (Model 0x4D as per Intel document 330061-001 01/2014)
Tested by: Olivier Cochard-Labbe <olivier@cochatrd.me> MFC after: 4 weeks
|
261342 |
01-Feb-2014 |
jhibbits |
Add hwpmc(4) support for the PowerPC 970 class processors, direct events. This also fixes asserts on removal of the module for the mpc74xx.
The PowerPC 970 processors have two different types of events: direct events and indirect events. Thus far only direct events are supported. I included some documentation in the driver on how indirect events work, but support is for the future.
MFC after: 1 month
|
258572 |
25-Nov-2013 |
rstone |
pmc(3) does not document a dependency on <sys/types.h> but <pmc.h> requires it, so include it explicitly from <pmc.h>.
MFC after: 1 month
|
250203 |
03-May-2013 |
uqs |
Always install pmc.foo(3) manpages.
There is no point in hiding, e.g. pmc.xscale(3) from a developer running on amd64, when the target arch in question will probably never have manual pages installed at all.
Reviewed by: sbruno, hiren
|
248871 |
29-Mar-2013 |
joel |
Remove EOL whitespace.
|
248842 |
28-Mar-2013 |
sbruno |
Update hwpmc to support Haswell class processors. 0x3C: /* Per Intel document 325462-045US 01/2013. */
Add manpage to document all the goodness that is available in this processor model.
Submitted by: hiren panchasara <hiren.panchasara@gmail.com> Reviewed by: jimharris, sbruno Obtained from: Yahoo! Inc. MFC after: 2 weeks
|
248783 |
27-Mar-2013 |
bryanv |
Add missing space
MFC after: 3 days
|
247329 |
26-Feb-2013 |
mav |
Add support for good old 8192Hz profiling clock to software PMC.
Reviewed by: fabient
|
246166 |
31-Jan-2013 |
sbruno |
Update hwpmc to support the Xeon class of Ivybridge processors. case 0x3E: /* Per Intel document 325462-045US 01/2013. */
Add manpage to document all the goodness that is available in this processor model.
No support for uncore events at this time.
Submitted by: hiren panchasara <hiren.panchasara@gmail.com> Reviewed by: davide, jimharris, sbruno Obtained from: Yahoo! Inc. MFC after: 2 weeks
|
242622 |
05-Nov-2012 |
dim |
Fix a few warnings from newer clang 3.2 in libpmc, about comparing enum pmc_event values against integer constants which fall outside the enum range.
Reviewed by: fabient, sbruno MFC after: 3 days
|
241974 |
24-Oct-2012 |
sbruno |
Cleanup and rename some variables in libpmc and hwpmc.
Submitted by: hiren panchasara <hiren.panchasara@gmail.com> Reviewed by: jimharris@ sbruno@ Obtained from: Yahoo! Inc. MFC after: 2 weeks
|
241745 |
19-Oct-2012 |
joel |
Remove trailing whitespace.
|
241741 |
19-Oct-2012 |
sbruno |
Update man page crossreferences to sandybridge xeon class
MFC after: 2 weeks
|
241738 |
19-Oct-2012 |
sbruno |
Update hwpmc to support the Xeon class of Sandybridge processors. (Model 0x2D /* Per Intel document 253669-044US 08/2012. */)
Add manpage to document all the goodness that is available in this processor model.
No support for uncore events at this time.
Submitted by: hiren panchasara <hiren.panchasara@gmail.com> Reviewed by: jimharris@ fabient@ Obtained from: Yahoo! Inc. MFC after: 2 weeks
|
241255 |
06-Oct-2012 |
kientzle |
Fix "make install"
Also make arm the same as other platforms: Install man pages for all CPUs in the family.
|
240174 |
06-Sep-2012 |
joel |
Remove trailing whitespace.
|
240173 |
06-Sep-2012 |
joel |
Minor mdoc fix.
|
240164 |
06-Sep-2012 |
fabient |
Add Intel Ivy Bridge support to hwpmc(9). Update offcore RSP token for Sandy Bridge. Note: No uncore support.
Will works on Family 6 Model 3a.
MFC after: 1 month Tested by: bapt, grehan
|
236438 |
02-Jun-2012 |
joel |
mdoc: minor Bl improvements.
|
233650 |
29-Mar-2012 |
joel |
mdoc: sort prologue macros.
|
233648 |
29-Mar-2012 |
eadler |
Remove trailing whitespace per mdoc lint warning
Disussed with: gavin No objection from: doc Approved by: joel MFC after: 3 days
|
233628 |
28-Mar-2012 |
fabient |
Add software PMC support.
New kernel events can be added at various location for sampling or counting. This will for example allow easy system profiling whatever the processor is with known tools like pmcstat(8).
Simultaneous usage of software PMC and hardware PMC is possible, for example looking at the lock acquire failure, page fault while sampling on instructions.
Sponsored by: NETASQ MFC after: 1 month
|
233565 |
27-Mar-2012 |
joel |
Remove useless Ta macro.
|
233462 |
25-Mar-2012 |
joel |
Remove superfluous paragraph macro.
|
233451 |
25-Mar-2012 |
gonzo |
Update manual pages for MIPS-related CPUs:
- Rename pmc.mips to pmc.mips24k since it covers just one CPU, no whole architecture - Add documetnations for Octeon's PMC counters - Remove CAVEATS section from pmc.mips24k page: PMC for MIPS supports sampling now.
|
233335 |
23-Mar-2012 |
gonzo |
Add Octeon-related parts to libpmc
|
233321 |
22-Mar-2012 |
jkoshy |
Correct a function prototype.
Submitted by: "Anders Magnusson" <ragge at ludd.ltu.se>, via joel
|
233320 |
22-Mar-2012 |
gonzo |
Make reusable part of code have mips prefix, not mips24
|
232377 |
02-Mar-2012 |
pluknet |
Kill EoL whitespaces, and minor lint.
|
232366 |
01-Mar-2012 |
davide |
- Add support for the Intel Sandy Bridge microarchitecture (both core and uncore counting events) - New manpages with event lists. - Add MSRs for the Intel Sandy Bridge microarchitecture
Reviewed by: attilio, brueffer, fabient Approved by: gnn (mentor) MFC after: 3 weeks
|
232159 |
25-Feb-2012 |
gjb |
Whitespace cleanup: o Wrap sentences on to new lines o Rewrap lines where possible while trying to keep the diff to a minimum
Found with: textproc/igor MFC after: 1 week X-MFC-With: r232157
|
232158 |
25-Feb-2012 |
gjb |
Whitespace cleanup: o Wrap sentences on to new lines o Cleanup trailing whitespace
Found with: textproc/igor MFC after: 1 week X-MFC-With: r232157
|
232157 |
25-Feb-2012 |
gjb |
Fix various typos in manual pages.
Submitted by: amdmi3 PR: 165431 MFC after: 1 week
|
231871 |
17-Feb-2012 |
brueffer |
Switch the license boilerplates to our standard one.
Advantages: - Reduces the number of different license versions in the tree - Eliminates a typo - Removes some incorrect author attributions due to c/p - Removes c/p error potential for future pmc manpages
Approved by: jkoshy, gnn, rpaulo, fabient (copyright holders) MFC after: 1 week
|
229470 |
04-Jan-2012 |
fabient |
Update PMC events from October 2011 Intel documentation.
Submitted by: Davide Italiano <davide.italiano@gmail.com> MFC after: 3 days
|
228869 |
24-Dec-2011 |
jhibbits |
Implement hwpmc counting PMC support for PowerPC G4+ (MPC745x/MPC744x). Sampling is in progress.
Approved by: nwhitehorn (mentor) MFC after: 9.0-RELEASE
|
228557 |
16-Dec-2011 |
dim |
In lib/libpmc/libpmc.c, struct pmc_cputype_map's pm_cputype field should be of type 'enum pmc_cputype', not 'enum pmc_class'.
MFC after: 1 week
|
226514 |
18-Oct-2011 |
fabient |
Add a flush of the current PMC log buffer before displaying the next top.
As the underlying block is 4KB if the PMC throughput is low the measurement will be reported on the next tick. pmcstat(8) use the modified flush API to reclaim current buffer before displaying next top.
MFC after: 1 month
|
226436 |
16-Oct-2011 |
eadler |
- change "is is" to "is" or "it is" - change "the the" to "the"
Approved by: lstewart Approved by: sahil (mentor) MFC after: 3 days
|
218532 |
11-Feb-2011 |
imp |
Revert last commit: CPUTYPE will be defined here
|
218531 |
11-Feb-2011 |
imp |
Don't require CPUTYPE to be defined for ARM, but use it if it is.
|
214867 |
06-Nov-2010 |
uqs |
Fix manpage markup.
|
213573 |
08-Oct-2010 |
uqs |
mdoc: drop redundant .Pp and .LP calls
They have no effect when coming in pairs, or before .Bl/.Bd
|
213402 |
04-Oct-2010 |
gnn |
Fix punctuation and grammar, mostly by ending sentences with a period.
MFC after: 1 day
|
212224 |
05-Sep-2010 |
fabient |
Fix invalid class removal when IAF is not the last class. Keep IAF class with 0 PMC and change the alias in libpmc to IAP.
MFC after: 1 week
|
211725 |
23-Aug-2010 |
imp |
MFtbemd:
Prefer MACHNE_CPUARCH to MACHINE_ARCH in most contexts where you want to test of all the CPUs of a given family conform.
|
211397 |
16-Aug-2010 |
joel |
Fix typos, spelling, formatting and mdoc mistakes found by Nobuyuki while translating these manual pages. Minor corrections by me.
Submitted by: Nobuyuki Koganemaru <n-kogane@syd.odn.ne.jp>
|
210933 |
06-Aug-2010 |
joel |
Fix typos and spelling mistakes.
|
210823 |
03-Aug-2010 |
joel |
Spelling fixes.
|
208914 |
08-Jun-2010 |
uqs |
mdoc: remove literal tabs where they don't belong
|
208860 |
05-Jun-2010 |
fabient |
Fix memory leak on error.
Found with: Coverity Prevent(tm) MFC after: 1 month
|
208732 |
02-Jun-2010 |
uqs |
mdoc cleanup
Garbage collect unused sections, macros and arguments. Fix prologue and remove empty lines.
Found by: mdocml
|
208595 |
27-May-2010 |
uqs |
mdoc: Use mdoc macro for the (R) symbol
While here, also drop the unneeded quotes
|
208027 |
13-May-2010 |
uqs |
mdoc: move CAVEATS, BUGS and SECURITY CONSIDERATIONS sections to the bottom of the manpages and order them consistently.
GNU groff doesn't care about the ordering, and doesn't even mention CAVEATS and SECURITY CONSIDERATIONS as common sections and where to put them.
Found by: mdocml lint run Reviewed by: ru
|
207482 |
01-May-2010 |
rstone |
When configuring hwpmc to use the EXT_SNOOP event, only send a default cachestate qualifier on the Atom processor. Other Intel processors do not accept a cachestate qualifier and currently hwpmc will return EINVAL if you try to use the EXT_SNOOP event on those processors
Approved by: jkoshy (mentor) MFC after: 2 weeks
|
206622 |
14-Apr-2010 |
uqs |
mdoc: order prologue macros consistently by Dd/Dt/Os
Although groff_mdoc(7) gives another impression, this is the ordering most widely used and also required by mdocml/mandoc.
Reviewed by: ru Approved by: philip, ed (mentors)
|
206089 |
02-Apr-2010 |
fabient |
- Support for uncore counting events: one fixed PMC with the uncore domain clock, 8 programmable PMC. - Westmere based CPU (Xeon 5600, Corei7 980X) support. - New man pages with events list for core and uncore. - Updated Corei7 events with Intel 253669-033US December 2009 doc. There is some removed events in the documentation, they have been kept in the code but documented in the man page as obsolete. - Offcore response events can be setup with rsp token.
Sponsored by: NETASQ
|
205512 |
23-Mar-2010 |
rpaulo |
Finish the much belated Intel XScale hwpmc(4) man page.
|
204635 |
03-Mar-2010 |
gnn |
Add support for hwpmc(4) on the MIPS 24K, 32 bit, embedded processor.
Add macros for properly accessing coprocessor 0 registers that support performance counters.
Reviewed by: jkoshy rpaulo fabien imp MFC after: 1 month
|
202157 |
12-Jan-2010 |
jkoshy |
Bug fix: add a missing initializer.
Submitted by: Luca Pizzamiglio <luca.pizzamiglio at gmail dot com> PR: i386/142742
|
201381 |
02-Jan-2010 |
ed |
Build lib/ with WARNS=6 by default.
Similar to libexec/, do the same with lib/. Make WARNS=6 the norm and lower it when needed.
I'm setting WARNS?=0 for secure/. It seems secure/ includes the Makefile.inc provided by lib/. I'm not going to touch that directory. Most of the code there is contributed anyway.
|
200928 |
23-Dec-2009 |
rpaulo |
Intel XScale hwpmc(4) support.
This brings hwpmc(4) support for 2nd and 3rd generation XScale cores. Right now it's enabled by default to make sure we test this a bit. When the time comes it can be disabled by default. Tested on Gateworks boards.
A man page is coming.
Obtained from: //depot/user/rpaulo/xscalepmc/...
|
198788 |
02-Nov-2009 |
brueffer |
Use our canonical .Dd format.
Submitted by: Ulrich Spoerlein
|
198433 |
24-Oct-2009 |
jkoshy |
Not all Intel Core (TM) CPUs implement PMC_CLASS_IAF fixed-function counters. For such CPUs, use an alternate mapping of convenience names to events supported by PMC_CLASS_IAP programmable counters.
Testing and review by: fabient
|
197741 |
04-Oct-2009 |
rpaulo |
Install x86 related man pages on x86 systems only.
Reviewed by: jkoshy
|
196469 |
23-Aug-2009 |
jkoshy |
Use a more appropriate choice of words.
Submitted by: danfe
|
196449 |
23-Aug-2009 |
jkoshy |
Use US spellings, fix typos.
|
196448 |
23-Aug-2009 |
jkoshy |
Fix typos.
|
196447 |
23-Aug-2009 |
jkoshy |
Fix a typo.
|
196446 |
23-Aug-2009 |
jkoshy |
Fix typos, use American English spellings.
|
196445 |
23-Aug-2009 |
jkoshy |
Fix typos.
|
196441 |
23-Aug-2009 |
jkoshy |
Correct typos.
|
196440 |
23-Aug-2009 |
jkoshy |
Correct grammar.
|
196438 |
23-Aug-2009 |
jkoshy |
Fix a typo.
Reported by: John McCullough <jmccullo at cs.ucsd.edu>
|
196437 |
23-Aug-2009 |
jkoshy |
Fix typos.
Reported by: Harald Servat <redcrash at gmail dot com>
|
193810 |
09-Jun-2009 |
jkoshy |
Document the fact that some Core2 family CPUs lack fixed-function counters.
|
193809 |
09-Jun-2009 |
jkoshy |
Fix parsing of Core2 event qualifiers.
Submitted by: Nikola K <laladelausanne at gmail dot com>
|
190395 |
24-Mar-2009 |
fabient |
Allow compile from c++ for libpmc
Approved by: jkoshy (mentor) MFC after: 3 days
|
187761 |
27-Jan-2009 |
jeff |
- Add support for nehalem/corei7 cpus. This supports all of the core counters defined in the reference manual. It does not support the 'uncore' events.
Reviewed by: jkoshy Sponsored by: Nokia
|
185763 |
08-Dec-2008 |
jkoshy |
Document processor errata that affect performance measurement.
|
185585 |
03-Dec-2008 |
jkoshy |
Fixes for Core2 Extreme support.
Submitted by: "Artem Belevich" <artemb at gmail dot com>
|
185364 |
27-Nov-2008 |
jkoshy |
Update description of an event.
Submitted by: "Verplanke, Edwin" <edwin dot verplanke at intel dot com>
|
185363 |
27-Nov-2008 |
jkoshy |
- Add support for PMCs in Intel CPUs of Family 6, model 0xE (Core Solo and Core Duo), models 0xF (Core2), model 0x17 (Core2Extreme) and model 0x1C (Atom).
In these CPUs, the actual numbers, kinds and widths of PMCs present need to queried at run time. Support for specific "architectural" events also needs to be queried at run time.
Model 0xE CPUs support programmable PMCs, subsequent CPUs additionally support "fixed-function" counters.
- Use event names that are close to vendor documentation, taking in account that: - events with identical semantics on two or more CPUs in this family can have differing names in vendor documentation, - identical vendor event names may map to differing events across CPUs, - each type of CPU supports a different subset of measurable events.
Fixed-function and programmable counters both use the same vendor names for events. The use of a class name prefix ("iaf-" or "iap-" respectively) permits these to be distinguished.
- In libpmc, refactor pmc_name_of_event() into a public interface and an internal helper function, for use by log handling code.
- Minor code tweaks: staticize a global, freshen a few comments.
Tested by: gnn
|
185326 |
26-Nov-2008 |
jkoshy |
Fix buglets.
|
185247 |
24-Nov-2008 |
jkoshy |
Correction: these PMCs do not support a "umask" modifier.
|
185246 |
24-Nov-2008 |
jkoshy |
- Document the rules used to determine when spellings of events are equivalent. - Reorder text to make the manual page more coherent.
|
184995 |
15-Nov-2008 |
jkoshy |
- Document the class name prefix for these PMCs. - Document the "anythread" qualifier, available on Atom CPUs. - Add examples.
|
184932 |
13-Nov-2008 |
jkoshy |
Tweak -mdoc usage.
|
184917 |
13-Nov-2008 |
jkoshy |
Document UMASK values, fix errors.
|
184916 |
13-Nov-2008 |
jkoshy |
Fix typos, document UMASK values.
|
184914 |
13-Nov-2008 |
jkoshy |
Remove duplicates, fix errors and document UMASK values.
|
184892 |
12-Nov-2008 |
jkoshy |
Document the alternate event names supported for "architectural" PMC events.
|
184891 |
12-Nov-2008 |
jkoshy |
Use spellings that are close to vendor documentation.
|
183725 |
09-Oct-2008 |
jkoshy |
- Sparsely number enumerations 'pmc_cputype' and 'pmc_event' in order to reduce ABI disruptions when new cpu types and new PMC events are added in the future. - Support alternate spellings for PMC events. Derive the canonical spelling of an event name from its enumeration name in 'enum pmc_event'. - Provide a way for users to disambiguate between identically named events supported by multiple classes of PMCs in a CPU. - Change libpmc's machine-dependent event specifier parsing code to better support CPUs containing two or more classes of PMC resources.
|
183641 |
06-Oct-2008 |
jkoshy |
Correct a typo.
|
183597 |
04-Oct-2008 |
jkoshy |
- Add cross-references. - Tweak -mdoc use.
|
183596 |
04-Oct-2008 |
jkoshy |
Add cross-references.
|
183595 |
04-Oct-2008 |
jkoshy |
Cross-reference new manual pages.
|
183594 |
04-Oct-2008 |
jkoshy |
- Cross-reference new manual pages. - Spell new PMC class names correctly.
|
183593 |
04-Oct-2008 |
jkoshy |
Add manual pages for performance measurement counters present in Intel Atom(tm), Core(tm) and Core2(tm) CPUs.
|
183543 |
02-Oct-2008 |
jkoshy |
- Document event numbers associated with event names. - Document an event that was missed out earlier. - Sort event names alphabetically.
|
183540 |
02-Oct-2008 |
jkoshy |
- Document event numbers. - Sort event names.
|
183537 |
02-Oct-2008 |
jkoshy |
-mdoc tweaks.
|
183534 |
02-Oct-2008 |
jkoshy |
- Document event numbers. - Correct misspellings of two event names.
|
183533 |
02-Oct-2008 |
jkoshy |
Document event numbers alongside event names.
Requested by: Arun Sharma <arun at sharma-home dot net>
|
183267 |
22-Sep-2008 |
jkoshy |
Document changes in behaviour due to sparse CPU numbering support.
|
183184 |
19-Sep-2008 |
jkoshy |
Keep symbols in sorted order.
|
183139 |
18-Sep-2008 |
jkoshy |
Improve grammar.
|
183138 |
18-Sep-2008 |
jkoshy |
Document new PMC classes, capabilities and CPU kinds. Improve typography.
|
183107 |
17-Sep-2008 |
jkoshy |
Whitespace fixes.
|
183105 |
17-Sep-2008 |
jkoshy |
Add event name aliases for Pentium PMCs.
|
183087 |
16-Sep-2008 |
jkoshy |
Replace PMC-dependent content with references to the appropriate manual pages.
|
183086 |
16-Sep-2008 |
jkoshy |
Build and install PMC-dependent manual pages.
|
183085 |
16-Sep-2008 |
jkoshy |
Fix a typo.
|
183084 |
16-Sep-2008 |
jkoshy |
Move PMC documentation to separate manual pages, one per PMC class.
|
183082 |
16-Sep-2008 |
jkoshy |
Move TSC specific PMC information to its own manual page.
|
183075 |
16-Sep-2008 |
jkoshy |
Correct an event name alias: event "k7-dc-misses" does not support a unitmask.
|
177162 |
14-Mar-2008 |
jkoshy |
- Document Pentium and Pentium MMX events. - Update (c) years and the manual page's date.
|
177107 |
12-Mar-2008 |
jkoshy |
Bring the behaviour of pmc_capabilities() and pmc_width() in line with documentation: set 'errno' and return -1 in case of an error.
Update (c) years.
|
177106 |
12-Mar-2008 |
jkoshy |
Describe return values from pmc_ncpu() and pmc_npmc() better.
|
175914 |
03-Feb-2008 |
jkoshy |
Correct a typo.
|
174406 |
07-Dec-2007 |
jkoshy |
Improve style(9) compliance and trim a long text line.
|
174215 |
03-Dec-2007 |
jkoshy |
Add callchain parsing to -lpmc.
Sponsored by: FreeBSD Foundation and Google Inc.
|
174212 |
03-Dec-2007 |
jkoshy |
Replace a spurious cross-reference to hwpmc(4) with correct text.
|
173900 |
25-Nov-2007 |
jkoshy |
- Add an overview of the pmc(3) API. - Defer detailed descriptions of individual functions in the API to function-specific manual pages.
|
173899 |
25-Nov-2007 |
jkoshy |
Move the following functions into their own manual pages: - pmc_attach(), pmc_detach(). - pmc_capabilities(), pmc_cpuinfo(), pmc_ncpu(), pmc_npmc(), pmc_pmcinfo(), pmc_width(). - pmc_get_driver_stats(). - pmc_get_msr(). - pmc_read(), pmc_rw(), pmc_write(). - pmc_set(). - pmc_start(), pmc_stop().
|
173889 |
25-Nov-2007 |
jkoshy |
- Describe function pmc_init() in its own manual page. - Describe functions pmc_configure_logfile(), pmc_flush_logfile() and pmc_writelog() in their own manual page.
|
173880 |
24-Nov-2007 |
jkoshy |
Describe convenience functions `pmc_name_of_{capability,class,cputype, disposition,event,mode,state}' in their own manual page.
|
173872 |
23-Nov-2007 |
jkoshy |
Describe pmc_event_names_of_class() in its own manual page.
|
173871 |
23-Nov-2007 |
jkoshy |
Describe pmc_enable() and pmc_disable() in their own manual page.
|
173870 |
23-Nov-2007 |
jkoshy |
Describe pmc_allocate() and pmc_release() in their own manual page.
|
168660 |
12-Apr-2007 |
jkoshy |
Fix a bug in the description of the "p6-div" event. [1]
Update the description of the "p6-div" and "p6-mul" events according to the "Intel(r) 64 and IA-32 Architectures Software Developers Manual Volume 3B: System Programming Guide, Part 2, November 2006".
Reported by: Harald Servat <redcrash at gmail dot com> [1]
|
168612 |
11-Apr-2007 |
jkoshy |
Correct a typo in an event name alias.
Reported by: Harald Servat <redcrash at gmail dot com>
|
167903 |
26-Mar-2007 |
jkoshy |
Clarify memory management rules for pmc_cpuinfo().
Suggested by: "Harald Servat" <redcrash at gmail dot com>
|
162385 |
17-Sep-2006 |
ru |
Markup fixes.
|
157144 |
26-Mar-2006 |
jkoshy |
MFP4: Support for profiling dynamically loaded objects.
Kernel changes:
Inform hwpmc of executable objects brought into the system by kldload() and mmap(), and of their removal by kldunload() and munmap(). A helper function linker_hwpmc_list_objects() has been added to "sys/kern/kern_linker.c" and is used by hwpmc to retrieve the list of currently loaded kernel modules.
The unused `MAPPINGCHANGE' event has been deprecated in favour of separate `MAP_IN' and `MAP_OUT' events; this change reduces space wastage in the log.
Bump the hwpmc's ABI version to "2.0.00". Teach hwpmc(4) to handle the map change callbacks.
Change the default per-cpu sample buffer size to hold 32 samples (up from 16).
Increment __FreeBSD_version.
libpmc(3) changes:
Update libpmc(3) to deal with the new events in the log file; bring the pmclog(3) manual page in sync with the code.
pmcstat(8) changes:
Introduce new options to pmcstat(8): "-r" (root fs path), "-M" (mapfile name), "-q"/"-v" (verbosity control). Option "-k" now takes a kernel directory as its argument but will also work with the older invocation syntax.
Rework string handling in pmcstat(8) to use an opaque type for interned strings. Clean up ELF parsing code and add support for tracking dynamic object mappings reported by a v2.0.00 hwpmc(4).
Report statistics at the end of a log conversion run depending on the requested verbosity level.
Reviewed by: jhb, dds (kernel parts of an earlier patch) Tested by: gallatin (earlier patch)
|
156907 |
20-Mar-2006 |
jkoshy |
Update the pmc(3) manual page's date string and freshen the year in the (c) line for pmc.3 and libpmc.c.
|
155998 |
25-Feb-2006 |
jkoshy |
Add an alias 'unhalted-cycles' denoting cycles where the CPU is not in a halt or sleep state.
|
152761 |
24-Nov-2005 |
ru |
Fix prototypes.
|
152551 |
17-Nov-2005 |
ru |
-mdoc sweep.
|
148223 |
21-Jul-2005 |
jkoshy |
Add COMPATIBILITY and HISTORY sections.
MFC after: 3 days
|
148222 |
21-Jul-2005 |
jkoshy |
Catch with the source code. Sort a list alphabetically. Add a HISTORY section.
MFC after: 3 days
|
148011 |
14-Jul-2005 |
brueffer |
- Remove MLINKS to nonexistant manpages - Change some section numbers to match reality - For MLINKS to manpages from ports, mention which port installs them
MFC after: 3 days
|
147864 |
09-Jul-2005 |
jkoshy |
Fix a bug in pmclog_read() that causes it to return with a false error when a log record crosses an internal buffer boundary.
Approved by: re (scottl)
|
147759 |
03-Jul-2005 |
jkoshy |
- Update the CPU version check to recognize P4/EMT64 CPUs. [1] - Allow libpmc(3) to support P4/EMT64 PMCs on the amd64 architecture and AMD K8 PMCs on the i386. [2]
Submitted by: ps [1] Pointy hat: myself [2] Approved by: re (scottl)
|
147708 |
30-Jun-2005 |
jkoshy |
MFP4:
- pmcstat(8) gprof output mode fixes:
lib/libpmc/pmclog.{c,h}, sys/sys/pmclog.h: + Add a 'is_usermode' field to the PMCLOG_PCSAMPLE event + Add an 'entryaddr' field to the PMCLOG_PROCEXEC event, so that pmcstat(8) can determine where the runtime loader /libexec/ld-elf.so.1 is getting loaded.
sys/kern/kern_exec.c: + Use a local struct to group the entry address of the image being exec()'ed and the process credential changed flag to the exec handling hook inside hwpmc(4).
usr.sbin/pmcstat/*: + Support "-k kernelpath", "-D sampledir". + Implement the ELF bits of 'gmon.out' profile generation in a new file "pmcstat_log.c". Move all log related functions to this file. + Move local definitions and prototypes to "pmcstat.h"
- Other bug fixes: + lib/libpmc/pmclog.c: correctly handle EOF in pmclog_read(). + sys/dev/hwpmc_mod.c: unconditionally log a PROCEXIT event to all attached PMCs when a process exits. + sys/sys/pmc.h: correct a function prototype. + Improve usage checks in pmcstat(8).
Approved by: re (blanket hwpmc)
|
147586 |
24-Jun-2005 |
ru |
- Tidy up the markup. - Clarify the sections on "Cascading P4 PMCs" and "Precise Event Based Sampling" (1) - Bump document date.
Reviewed by: jkoshy Submitted by: jkoshy (1) Approved by: re (blanket)
|
147584 |
24-Jun-2005 |
ru |
Tidy up the markup.
Reviewed by: jkoshy Approved by: re (blanket)
|
147219 |
10-Jun-2005 |
jkoshy |
Fix tinderbox breakage.
|
147191 |
09-Jun-2005 |
jkoshy |
MFP4:
- Implement sampling modes and logging support in hwpmc(4).
- Separate MI and MD parts of hwpmc(4) and allow sharing of PMC implementations across different architectures. Add support for P4 (EMT64) style PMCs to the amd64 code.
- New pmcstat(8) options: -E (exit time counts) -W (counts every context switch), -R (print log file).
- pmc(3) API changes, improve our ability to keep ABI compatibility in the future. Add more 'alias' names for commonly used events.
- bug fixes & documentation.
|
145774 |
01-May-2005 |
jkoshy |
Add convenience APIs pmc_width() and pmc_capabilities() to -lpmc. Have pmcstat(8) and pmccontrol(8) use these APIs.
Return PMC class-related constants (PMC widths and capabilities) with the OP GETCPUINFO call leaving OP PMCINFO to return only the dynamic information associated with a PMC (i.e., whether enabled, owner pid, reload count etc.).
Allow pmc_read() (i.e., OPS PMCRW) on active self-attached PMCs to get upto-date values from hardware since we can guarantee that the hardware is running the correct PMC at the time of the call.
Bug fixes: - (x86 class processors) Fix a bug that prevented an RDPMC instruction from being recognized as permitted till after the attached process had context switched out and back in again after a pmc_start() call.
Tighten the rules for using RDPMC class instructions: a GETMSR OP is now allowed only after an OP ATTACH has been done by the PMC's owner to itself. OP GETMSR is not allowed for PMCs that track descendants, for PMCs attached to processes other than their owner processes.
- (P4/HTT processors only) Fix a bug that caused the MI and MD layers to get out of sync. Add a new MD operation 'get_config()' as part of this fix.
- Allow multiple system-mode PMCs at the same row-index but on different CPUs to be allocated.
- Reject allocation of an administratively disabled PMC.
Misc. code cleanups and refactoring. Improve a few comments.
|
145440 |
23-Apr-2005 |
jkoshy |
Note events affected by processor errata.
|
145351 |
21-Apr-2005 |
jkoshy |
Add event aliases for P6 and K8 PMCs.
|
145340 |
20-Apr-2005 |
marcel |
o Do not include <machine/pmc_mdep.h>. It's automaticly included for us when <sys/pmc.h> is included. o Replace "#if __i386__" and "#if __amd64__" with the equivalent of "#ifdef __i386__" and "#ifdef __amd64__" (resp.) These tokens are not defined on all platforms. o Conditionally compile pmc_parse_mask() on i386 and amd64 only. It's only referenced there. This will change when support for other platforms is added, of course.
Ok'd by: jkoshy@
|
145315 |
20-Apr-2005 |
jkoshy |
Remove extra Id keyword.
|
145280 |
19-Apr-2005 |
jkoshy |
Remove superfluous CFLAGS lines. Use the conditional '?=' construct for WARNS lines.
Submitted by: ru
|
145256 |
19-Apr-2005 |
jkoshy |
Bring a working snapshot of hwpmc(4), its associated libraries, userland utilities and documentation into -CURRENT.
Bump FreeBSD_version.
Reviewed by: alc, jhb (kernel changes)
|