#
fdafd315 |
|
24-Nov-2023 |
Warner Losh <imp@FreeBSD.org> |
sys: Automated cleanup of cdefs and other formatting Apply the following automated changes to try to eliminate no-longer-needed sys/cdefs.h includes as well as now-empty blank lines in a row. Remove /^#if.*\n#endif.*\n#include\s+<sys/cdefs.h>.*\n/ Remove /\n+#include\s+<sys/cdefs.h>.*\n+#if.*\n#endif.*\n+/ Remove /\n+#if.*\n#endif.*\n+/ Remove /^#if.*\n#endif.*\n/ Remove /\n+#include\s+<sys/cdefs.h>\n#include\s+<sys/types.h>/ Remove /\n+#include\s+<sys/cdefs.h>\n#include\s+<sys/param.h>/ Remove /\n+#include\s+<sys/cdefs.h>\n#include\s+<sys/capsicum.h>/ Sponsored by: Netflix
|
#
685dc743 |
|
16-Aug-2023 |
Warner Losh <imp@FreeBSD.org> |
sys: Remove $FreeBSD$: one-line .c pattern Remove /^[\s*]*__FBSDID\("\$FreeBSD\$"\);?\s*\n/
|
#
4d846d26 |
|
10-May-2023 |
Warner Losh <imp@FreeBSD.org> |
spdx: The BSD-2-Clause-FreeBSD identifier is obsolete, drop -FreeBSD The SPDX folks have obsoleted the BSD-2-Clause-FreeBSD identifier. Catch up to that fact and revert to their recommended match of BSD-2-Clause. Discussed with: pfg MFC After: 3 days Sponsored by: Netflix
|
#
aba91805 |
|
05-May-2023 |
Mitchell Horne <mhorne@FreeBSD.org> |
hwpmc: use kstack_contains() This existing helper function is preferable to the hand-rolled calculation of the kstack bounds. Make some small style improvements while here. Notably, rename every instance of "r", the return address, to "ra". Tidy the includes in the affected files. Reviewed by: jkoshy MFC after: 2 weeks Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D39909
|
#
cb6abe87 |
|
08-Sep-2022 |
Elliott Mitchell <ehem+freebsd@m5p.com> |
hwpmc: purge EOL release compatibility
|
#
dc0cde7a |
|
21-Jul-2022 |
Dimitry Andric <dim@FreeBSD.org> |
Adjust pcm_md_initialize() definition to avoid clang 15 warning With clang 15, the following -Werror warning is produced: sys/dev/hwpmc/hwpmc_x86.c:245:18: error: a function declaration without a prototype is deprecated in all versions of C [-Werror,-Wstrict-prototypes] pcm_md_initialize() ^ void This is because pcm_md_initialize() is declared with a (void) argument list, but defined with an empty argument list. Make the definition match the declaration. MFC after: 3 days
|
#
f95e683f |
|
23-Jul-2021 |
Mark Johnston <markj@FreeBSD.org> |
Annotate amd64 stack unwinders with __nomemorysanitize Sponsored by: The FreeBSD Foundation
|
#
5d243d41 |
|
09-Jul-2021 |
Mark Johnston <markj@FreeBSD.org> |
hwpmc: Disable KASAN in pmc_save_kernel_callchain() As in commit 831850d8b087, this routine can trigger false positives, so exclude it from instrumentation. Reported by: pho Sponsored by: The FreeBSD Foundation
|
#
53071ed1 |
|
07-Feb-2020 |
Konstantin Belousov <kib@FreeBSD.org> |
pmc: Add Hygon Dhyana support. To make the PMC tool pmcstat working properly on Hygon platform, add support for Hygon Dhyana family 18h by using the PMC initialization code path of AMD family 17h. Submitted by: Pu Wen <puwen@hygon.cn> MFC after: 1 week Differential revision: https://reviews.freebsd.org/D23562
|
#
718cf2cc |
|
27-Nov-2017 |
Pedro F. Giffuni <pfg@FreeBSD.org> |
sys/dev: further adoption of SPDX licensing ID tags. Mainly focus on files that use BSD 2-Clause license, however the tool I was using misidentified many licenses so this was mostly a manual - error prone - task. The Software Package Data Exchange (SPDX) group provides a specification to make it easier for automated tools to detect and summarize well known opensource licenses. We are gradually adopting the specification, noting that the tags are considered only advisory and do not, in any way, superceed or replace the license texts.
|
#
d95b3509 |
|
13-Jan-2015 |
Randall Stewart <rrs@FreeBSD.org> |
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.
|
#
e07ef9b0 |
|
23-Jan-2014 |
John Baldwin <jhb@FreeBSD.org> |
Move <machine/apicvar.h> to <x86/apicvar.h>.
|
#
0a15e5d3 |
|
13-Sep-2012 |
Attilio Rao <attilio@FreeBSD.org> |
Remove all the checks on curthread != NULL with the exception of some MD trap checks (eg. printtrap()). Generally this check is not needed anymore, as there is not a legitimate case where curthread != NULL, after pcpu 0 area has been properly initialized. Reviewed by: bde, jhb MFC after: 1 week
|
#
f5f9340b |
|
28-Mar-2012 |
Fabien Thomas <fabient@FreeBSD.org> |
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
|
#
158c4475 |
|
27-Jan-2012 |
Ed Maste <emaste@FreeBSD.org> |
pmc_*_initialize may return NULL if the CPU is not supported, so check that md is not null before dereferencing it. PR: kern/156540
|
#
a7d5f7eb |
|
19-Oct-2010 |
Jamie Gritton <jamie@FreeBSD.org> |
A new jail(8) with a configuration file, to replace the work currently done by /etc/rc.d/jail.
|
#
86cff089 |
|
07-Dec-2009 |
Fabien Thomas <fabient@FreeBSD.org> |
MFC 200060: Use a better check for a valid kernel stack address when capturing kernel call chains.
|
#
4816ae8d |
|
05-Dec-2009 |
Ed Maste <emaste@FreeBSD.org> |
MFC r200001: Fix parenthesis typo -- copy full frame pointer for userland callchain, not just one byte. Submitted by: Ryan Stone rysto32 at gmail dot com
|
#
c66e06a2 |
|
03-Dec-2009 |
Joseph Koshy <jkoshy@FreeBSD.org> |
Use a better check for a valid kernel stack address when capturing kernel call chains. Submitted by: Mark Unangst <mju at panasas.com> Tested by: fabient
|
#
1a12d24b |
|
01-Dec-2009 |
Ed Maste <emaste@FreeBSD.org> |
Fix parenthesis typo -- copy full frame pointer for userland callchain, not just one byte. Submitted by: Ryan Stone rysto32 at gmail dot com
|
#
21157ad3 |
|
14-Aug-2009 |
John Baldwin <jhb@FreeBSD.org> |
Adjust the handling of the local APIC PMC interrupt vector: - Provide lapic_disable_pmc(), lapic_enable_pmc(), and lapic_reenable_pmc() routines in the local APIC code that the hwpmc(4) driver can use to manage the local APIC PMC interrupt vector. - Do not enable the local APIC PMC interrupt vector by default when HWPMC_HOOKS is enabled. Instead, the hwpmc(4) driver explicitly enables the interrupt when it is succesfully initialized and disables the interrupt when it is unloaded. This avoids enabling the interrupt on unsupported CPUs which may result in spurious NMIs. Reported by: rnoland Reviewed by: jkoshy Approved by: re (kib) MFC after: 2 weeks
|
#
76120877 |
|
14-Aug-2009 |
John Baldwin <jhb@FreeBSD.org> |
Adjust the handling of the local APIC PMC interrupt vector: - Provide lapic_disable_pmc(), lapic_enable_pmc(), and lapic_reenable_pmc() routines in the local APIC code that the hwpmc(4) driver can use to manage the local APIC PMC interrupt vector. - Do not enable the local APIC PMC interrupt vector by default when HWPMC_HOOKS is enabled. Instead, the hwpmc(4) driver explicitly enables the interrupt when it is succesfully initialized and disables the interrupt when it is unloaded. This avoids enabling the interrupt on unsupported CPUs which may result in spurious NMIs. Reported by: rnoland Reviewed by: jkoshy Approved by: re (kib) MFC after: 2 weeks
|
#
5113aa0a |
|
26-Nov-2008 |
Jung-uk Kim <jkim@FreeBSD.org> |
Introduce cpu_vendor_id and replace a lot of strcmp(cpu_vendor, "..."). Reviewed by: jhb, peter (early amd64 version)
|
#
e829eb6d |
|
09-Nov-2008 |
Joseph Koshy <jkoshy@FreeBSD.org> |
- Separate PMC class dependent code from other kinds of machine dependencies. A 'struct pmc_classdep' structure describes operations on PMCs; 'struct pmc_mdep' contains one or more 'struct pmc_classdep' structures depending on the CPU in question. Inside PMC class dependent code, row indices are relative to the PMCs supported by the PMC class; MI code in "hwpmc_mod.c" translates global row indices before invoking class dependent operations. - Augment the OP_GETCPUINFO request with the number of PMCs present in a PMC class. - Move code common to Intel CPUs to file "hwpmc_intel.c". - Move TSC handling to file "hwpmc_tsc.c".
|
#
1ede983c |
|
23-Oct-2008 |
Dag-Erling Smørgrav <des@FreeBSD.org> |
Retire the MALLOC and FREE macros. They are an abomination unto style(9). MFC after: 3 months
|
#
d7f03759 |
|
19-Oct-2008 |
Ulf Lilleengen <lulf@FreeBSD.org> |
- Import the HEAD csup code which is the basis for the cvsmode work.
|
#
d0d0192f |
|
15-Sep-2008 |
Joseph Koshy <jkoshy@FreeBSD.org> |
Correct a callchain capture bug on the i386. On the i386 architecture, the processor only saves the current value of `%esp' on stack if a privilege switch is necessary when entering the interrupt handler. Thus, `frame->tf_esp' is only valid for an entry from user mode. For interrupts taken in kernel mode, we need to determine the top-of-stack for the interrupted kernel procedure by adding the appropriate offset to the current frame pointer. Reported by: kris, Fabien Thomas Tested by: Fabien Thomas <fabien.thomas at netasq dot com>
|
#
d07f36b0 |
|
07-Dec-2007 |
Joseph Koshy <jkoshy@FreeBSD.org> |
Kernel and hwpmc(4) support for callchain capture. Sponsored by: FreeBSD Foundation and Google Inc.
|
#
4dd9b0c0 |
|
28-Nov-2007 |
Joseph Koshy <jkoshy@FreeBSD.org> |
Revert revision 1.4. Intel CPUs with family 0x6, model 0xE and later (i.e., Intel Core(TM)) have a PMC architecture that differs somewhat from previous CPUs in family 0x6. Even though the basic programming model is similar, the documented set of legal values that may be loaded into their PMC MSRs differs from that of the previous PMCs in family 0x6 and reusing bit values valid for the older PMCs could result in undefined behaviour in the general case.
|
#
cef5d0ae |
|
03-Apr-2006 |
Paul Saab <ps@FreeBSD.org> |
Add support for Intel cpu model's 5 & 6. Approved by: jkoshy
|
#
e8fbd4a8 |
|
18-Nov-2005 |
Paul Saab <ps@FreeBSD.org> |
Add support for a new/unreleased Pentium-M. Reviewed by: jkoshy
|
#
e753fde4 |
|
22-Aug-2005 |
Joseph Koshy <jkoshy@FreeBSD.org> |
On x86 processors, turn off any 'INTERRUPT' capabilities on PMCs if the CPU does not have its local APIC enabled. MFC after: 3 days
|
#
86a65549 |
|
03-Jul-2005 |
Joseph Koshy <jkoshy@FreeBSD.org> |
- 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)
|
#
f263522a |
|
09-Jun-2005 |
Joseph Koshy <jkoshy@FreeBSD.org> |
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.
|