Page MenuHomeFreeBSD

hwpmc(4): remove paragraph about Pentium Pro handling
ClosedPublic

Authored by mhorne on Jun 14 2023, 5:58 PM.
Tags
None
Referenced Files
Unknown Object (File)
Wed, Apr 10, 11:13 PM
Unknown Object (File)
Tue, Apr 9, 8:13 PM
Unknown Object (File)
Feb 10 2024, 11:58 PM
Unknown Object (File)
Dec 22 2023, 10:10 PM
Unknown Object (File)
Dec 12 2023, 7:33 AM
Unknown Object (File)
Dec 4 2023, 7:57 AM
Unknown Object (File)
Nov 21 2023, 4:08 AM
Unknown Object (File)
Nov 21 2023, 4:05 AM
Subscribers

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

Please also mention in the commit log that hwpmc(4) no longer supports this CPU model?

This revision is now accepted and ready to land.Jun 14 2023, 8:07 PM

Incidentally https://www.freebsd.org/platforms/i386/ states "FreeBSD/i386 should support any CPU compatible with the Intel(T) 80486 or better in 32-bit mode" which is outdated I guess -- what is our actual minimum i386 cpu?

e92a1350b50edf504316434144bea3566cf8badc is the commit that removed support?

Incidentally https://www.freebsd.org/platforms/i386/ states "FreeBSD/i386 should support any CPU compatible with the Intel(T) 80486 or better in 32-bit mode" which is outdated I guess -- what is our actual minimum i386 cpu?

From the PMC perspective? The earliest Intel CPU generation we still support appears to be the first generation Core architecture, which was x86-64. I do not think we support anything i386-specific anymore, but it is somewhat hard to tell with the Intel generation scheme.

For AMD we still have k7 (i386) support in the kernel, but the libpmc bits were removed in the commit you linked below. So I do not think it can be used at all, and most likely whoever has such hardware is not concerned with performance profiling.

In other words, I think pmc support may be dead on i386, other than measuring TSC or software events.

e92a1350b50edf504316434144bea3566cf8badc is the commit that removed support?

Yes, this is the one. This was a useful and large step forward in functionality, but the change did not come close to finishing the job in terms of what it removed. I've spent the last couple years purging the dead code, documentation, and fixing bugs.

We still have quite a bit of documentation in the form of class/processor-specific man pages which were made outdated if not obsolete by the change. Here are the Intel/AMD related pages we have:

pmc.atom(3) - measurement events for Intel Atom family CPUs
pmc.atomsilvermont(3) - measurement events for Intel Atom Silvermont family CPUs
pmc.core(3) - measurement events for Intel Core Solo and Core Duo family CPUs
pmc.core2(3) - measurement events for Intel Core2 family CPUs
pmc.corei7(3) - measurement events for Intel Core i7 and Xeon 5500 family CPUs
pmc.corei7uc(3) - uncore measurement events for Intel Core i7 and Xeon 5500 family CPUs
pmc.haswell(3) - measurement events for Intel Haswell family CPUs
pmc.haswelluc(3) - uncore measurement events for Intel Haswell family CPUs
pmc.haswellxeon(3) - measurement events for Intel Haswell Xeon family CPUs
pmc.iaf(3) - measurement events for Intel fixed function performance counters.
pmc.ivybridge(3) - measurement events for Intel Ivy Bridge family CPUs
pmc.ivybridgexeon(3) - measurement events for Intel Ivy Bridge Xeon family CPUs
pmc.k7(3) - measurement events for AMD Athlon (K7 family) CPUs
pmc.k8(3) - measurement events for AMD Athlon 64 (K8 family) CPUs
pmc.sandybridge(3) - measurement events for Intel Sandy Bridge family CPUs
pmc.sandybridgeuc(3) - uncore measurement events for Intel Sandy Bridge family CPUs
pmc.sandybridgexeon(3) - measurement events for Intel Sandy Bridge Xeon family CPUs
pmc.ucf(3) - measurement events for Intel uncore fixed function performance counters.
pmc.westmere(3) - measurement events for Intel Westmere family CPUs
pmc.westmereuc, pmc.westmere(3) - uncore measurement events for Intel Westmere family CPUs

Ideally I would like to see these reduced into pmc.intel(3) and pmc.amd(3). I am not so keen on being the one to do it, so I will probably start with filing a PR.

Yes, this is the one. This was a useful and large step forward in functionality, but the change did not come close to finishing the job in terms of what it removed.

Yeah, I'm fine with just not supporting old cruft, and if that means we don't really support much of pmc on i386 that is fine with me.

I am not so keen on being the one to do it, so I will probably start with filing a PR.

Sounds good, having a PR to track is at least a good first step :)